on main help sign in
fix: address potential indentation on commit messages trailings (#3106)

Some models like Qwen take this intentation too literally and add them to the commit message. The new system prompt fixes that.

commit3e6f95eb2409f5187053d337e6e48dc810b04539 authorAndrey Nering <andreynering@users.noreply.github.com> dateThu 11 Jun 2026, 15:31 (4 months ago) parent2c9d6d4
14 files changed+3516−4616
internal/agent/testdata/TestCoderAgent/glm-5.1/bash_tool.yaml+438−486 internal/agent/testdata/TestCoderAgent/glm-5.1/download_tool.yaml+188−528 internal/agent/testdata/TestCoderAgent/glm-5.1/fetch_tool.yaml+399−319 internal/agent/testdata/TestCoderAgent/glm-5.1/glob_tool.yaml+269−509 internal/agent/testdata/TestCoderAgent/glm-5.1/grep_tool.yaml+310−172 internal/agent/testdata/TestCoderAgent/glm-5.1/ls_tool.yaml+255−213 internal/agent/testdata/TestCoderAgent/glm-5.1/multiedit_tool.yaml+254−728 internal/agent/testdata/TestCoderAgent/glm-5.1/parallel_tool_calls.yaml+349−249 internal/agent/testdata/TestCoderAgent/glm-5.1/read_a_file.yaml+144−262 internal/agent/testdata/TestCoderAgent/glm-5.1/simple_test.yaml+94−194 internal/agent/testdata/TestCoderAgent/glm-5.1/sourcegraph_tool.yaml+353−435 internal/agent/testdata/TestCoderAgent/glm-5.1/update_a_file.yaml+293−277 internal/agent/testdata/TestCoderAgent/glm-5.1/write_tool.yaml+167−241 internal/agent/tools/bash.md.tpl+3−3
internal/agent/testdata/TestCoderAgent/glm-5.1/bash_tool.yaml+438−486
@@ -6,9 +6,9 @@ interactions:
66 proto: HTTP/1.1
77 proto_major: 1
88 proto_minor: 1
9− content_length: 33985
9+ content_length: 33979
1010 host: ""
11− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/bash_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use bash to create a file named test.txt with content 'hello bash'. do not print its timestamp\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/bash_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use bash to create a file named test.txt with content 'hello bash'. do not print its timestamp\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1212 headers:
1313 Accept:
1414 - application/json
@@ -25,105 +25,79 @@ interactions:
2525 content_length: -1
2626 uncompressed: true
2727 body: |+
28− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
28+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
2929
30− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
30+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_17d77bc98f64eb2b","type":"function","index":0,"function":{"name":"bash","arguments":""}}]},"finish_reason":null}]}
3131
32− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
32+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\"command\": "}}]},"finish_reason":null}]}
3333
34− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
34+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"touch -"}}]},"finish_reason":null}]}
3535
36− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" me"},"finish_reason":null}]}
36+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"t 202"}}]},"finish_reason":null}]}
3737
38− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
38+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"501010"}}]},"finish_reason":null}]}
3939
40− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" create"},"finish_reason":null}]}
40+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"000 test"}}]},"finish_reason":null}]}
4141
42− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
42+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".txt \u0026\u0026 echo '"}}]},"finish_reason":null}]}
4343
44− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
44+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"hello bash' \u003e"}}]},"finish_reason":null}]}
4545
46− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" named"},"finish_reason":null}]}
46+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" test.txt\", "}}]},"finish_reason":null}]}
4747
48− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
48+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"description\": \"Create"}}]},"finish_reason":null}]}
4949
50− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
50+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" test.txt with content"}}]},"finish_reason":null}]}
5151
52− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
52+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" 'hello bash'"}}]},"finish_reason":null}]}
5353
54− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
54+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
5555
56− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
56+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
5757
58− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"hello"},"finish_reason":null}]}
58+ data: {"id":"chatcmpl-7315a4f5b84f24e03e68c76c","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":687,"completion_tokens":42,"total_tokens":7860,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0011466,"hypercredits":0.022931999999999998},"remaining":{"hypercredits":0}}}
5959
60− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
61−
62− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
63−
64− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" using"},"finish_reason":null}]}
65−
66− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
67−
68− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
69−
70− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" tool"},"finish_reason":null}]}
71−
72− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
73−
74− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
75−
76− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" not"},"finish_reason":null}]}
77−
78− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" print"},"finish_reason":null}]}
79−
80− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" its"},"finish_reason":null}]}
81−
82− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" timestamp"},"finish_reason":null}]}
83−
84− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
85−
86− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_maHr9QegPpRMRiFEH9e4bSTo","type":"function","index":0,"function":{"name":"bash","arguments":""}}]},"finish_reason":null}]}
87−
88− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
89−
90− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
91−
92− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"command\": "}}]},"finish_reason":null}]}
93−
94− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"echo"}}]},"finish_reason":null}]}
95−
96− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" '"}}]},"finish_reason":null}]}
97−
98− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"hello"}}]},"finish_reason":null}]}
99−
100− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" bash"}}]},"finish_reason":null}]}
101−
102− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"'"}}]},"finish_reason":null}]}
103−
104− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \u003e"}}]},"finish_reason":null}]}
105−
106− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" test"}}]},"finish_reason":null}]}
107−
108− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".txt"}}]},"finish_reason":null}]}
109−
110− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\", \"description\": "}}]},"finish_reason":null}]}
111−
112− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"Create"}}]},"finish_reason":null}]}
113−
114− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" test"}}]},"finish_reason":null}]}
115−
116− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".txt"}}]},"finish_reason":null}]}
60+ data: [DONE]
11761
118− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" with"}}]},"finish_reason":null}]}
62+ headers:
63+ Content-Type:
64+ - text/event-stream
65+ status: 200 OK
66+ code: 200
67+ duration: 670.449167ms
68+- id: 1
69+ request:
70+ proto: HTTP/1.1
71+ proto_major: 1
72+ proto_minor: 1
73+ content_length: 34328
74+ host: ""
75+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/bash_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use bash to create a file named test.txt with content 'hello bash'. do not print its timestamp\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_17d77bc98f64eb2b\",\"function\":{\"arguments\":\"{\\\"command\\\": \\\"touch -t 202501010000 test.txt && echo 'hello bash' > test.txt\\\", \\\"description\\\": \\\"Create test.txt with content 'hello bash'\\\"}\",\"name\":\"bash\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"no output\",\"tool_call_id\":\"call_17d77bc98f64eb2b\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
76+ headers:
77+ Accept:
78+ - application/json
79+ Content-Type:
80+ - application/json
81+ User-Agent:
82+ - Charm-Crush/devel (https://charm.land/crush)
83+ url: https://hyper.charm.land/v1/chat/completions
84+ method: POST
85+ response:
86+ proto: HTTP/2.0
87+ proto_major: 2
88+ proto_minor: 0
89+ content_length: -1
90+ uncompressed: true
91+ body: |+
92+ data: {"id":"chatcmpl-a212f43447663ad85eecdc98","object":"chat.completion.chunk","created":1781202007,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
11993
120− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" content"}}]},"finish_reason":null}]}
94+ data: {"id":"chatcmpl-a212f43447663ad85eecdc98","object":"chat.completion.chunk","created":1781202007,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Done"},"finish_reason":null}]}
12195
122− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
96+ data: {"id":"chatcmpl-a212f43447663ad85eecdc98","object":"chat.completion.chunk","created":1781202007,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}]}
12397
124− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
98+ data: {"id":"chatcmpl-a212f43447663ad85eecdc98","object":"chat.completion.chunk","created":1781202007,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
12599
126− data: {"id":"chatcmpl-3e35182185e98776cee50f17","object":"chat.completion.chunk","created":1780069679,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":715,"completion_tokens":56,"total_tokens":7875,"prompt_tokens_details":{"cached_tokens":7104},"completion_tokens_details":{"reasoning_tokens":32},"cost":{"usd":0.0013062500000000001,"hypercredits":0.026125000000000002},"remaining":{"hypercredits":0}}}
100+ data: {"id":"chatcmpl-a212f43447663ad85eecdc98","object":"chat.completion.chunk","created":1781202007,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":736,"completion_tokens":2,"total_tokens":7869,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0010391999999999999,"hypercredits":0.020783999999999997},"remaining":{"hypercredits":0}}}
127101
128102 data: [DONE]
129103
@@ -132,8 +106,8 @@ interactions:
132106 - text/event-stream
133107 status: 200 OK
134108 code: 200
135− duration: 568.683583ms
136−- id: 1
109+ duration: 585.536708ms
110+- id: 2
137111 request:
138112 proto: HTTP/1.1
139113 proto_major: 1
@@ -157,781 +131,759 @@ interactions:
157131 content_length: -1
158132 uncompressed: true
159133 body: |+
160− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
134+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
161135
162− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
136+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
163137
164− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
138+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
165139
166− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
140+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
167141
168− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" produce"},"finish_reason":null}]}
142+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" produce"},"finish_reason":null}]}
169143
170− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
144+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
171145
172− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
146+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
173147
174− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
148+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
175149
176− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
150+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
177151
178− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"max"},"finish_reason":null}]}
152+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"under"},"finish_reason":null}]}
179153
180− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
154+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
181155
182− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
156+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
183157
184− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
158+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
185159
186− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
160+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"),"},"finish_reason":null}]}
187161
188− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
162+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
189163
190− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
164+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
191165
192− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
166+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
193167
194− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
168+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
195169
196− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
170+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
197171
198− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
172+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
199173
200− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
174+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
201175
202− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
176+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
203177
204− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
178+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
205179
206− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
180+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user's"},"finish_reason":null}]}
207181
208− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
182+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" request"},"finish_reason":null}]}
209183
210− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
184+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
211185
212− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
186+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
213187
214− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
188+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
215189
216− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" create"},"finish_reason":null}]}
190+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
217191
218− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
192+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
219193
220− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
194+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" create"},"finish_reason":null}]}
221195
222− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" named"},"finish_reason":null}]}
196+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
223197
224− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
198+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
225199
226− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
200+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" named"},"finish_reason":null}]}
227201
228− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
202+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
229203
230− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
204+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
231205
232− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
206+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
233207
234− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"hello"},"finish_reason":null}]}
208+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
235209
236− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
210+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
237211
238− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'."},"finish_reason":null}]}
212+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"hello"},"finish_reason":null}]}
239213
240− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" do"},"finish_reason":null}]}
214+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
241215
242− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" not"},"finish_reason":null}]}
216+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'."},"finish_reason":null}]}
243217
244− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" print"},"finish_reason":null}]}
218+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" do"},"finish_reason":null}]}
245219
246− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" its"},"finish_reason":null}]}
220+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" not"},"finish_reason":null}]}
247221
248− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" timestamp"},"finish_reason":null}]}
222+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" print"},"finish_reason":null}]}
249223
250− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
224+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" its"},"finish_reason":null}]}
251225
252− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
226+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" timestamp"},"finish_reason":null}]}
253227
254− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" could"},"finish_reason":null}]}
228+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
255229
256− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
230+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
257231
258− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
232+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
259233
260− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Create"},"finish_reason":null}]}
234+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
261235
262− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
236+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
263237
264− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
238+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
265239
266− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
240+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Create"},"finish_reason":null}]}
267241
268− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
242+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
269243
270− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
244+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
271245
272− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" via"},"finish_reason":null}]}
246+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
273247
274− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
248+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
275249
276− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" without"},"finish_reason":null}]}
250+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
277251
278− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" timestamp"},"finish_reason":null}]}
252+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" using"},"finish_reason":null}]}
279253
280− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
254+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
281255
282− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
256+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
283257
284− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
258+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" timestamp"},"finish_reason":null}]}
285259
286− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
260+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
287261
288− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
262+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Must"},"finish_reason":null}]}
289263
290− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Create"},"finish_reason":null}]}
264+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
291265
292− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
266+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
293267
294− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
268+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
295269
296− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
270+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
297271
298− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
272+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
299273
300− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
274+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
301275
302− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" via"},"finish_reason":null}]}
276+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
303277
304− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
278+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
305279
306− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" without"},"finish_reason":null}]}
280+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Create"},"finish_reason":null}]}
307281
308− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" timestamp"},"finish_reason":null}]}
282+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
309283
310− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
284+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
311285
312− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
286+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
313287
314− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
288+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
315289
316− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
290+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
317291
318− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
292+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" using"},"finish_reason":null}]}
319293
320− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Create"},"finish_reason":null}]}
294+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
321295
322− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
296+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
323297
324− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
298+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" timestamp"},"finish_reason":null}]}
325299
326− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
300+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
327301
328− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
302+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
329303
330− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
304+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
331305
332− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" via"},"finish_reason":null}]}
306+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
333307
334− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
308+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
335309
336− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" without"},"finish_reason":null}]}
310+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
337311
338− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" timestamp"},"finish_reason":null}]}
312+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
339313
340− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
314+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" C"},"finish_reason":null}]}
341315
342− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
316+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
343317
344− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
318+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
345319
346− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
320+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
347321
348− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
322+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"r"},"finish_reason":null}]}
349323
350− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
324+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
351325
352− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" C"},"finish_reason":null}]}
326+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
353327
354− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
328+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
355329
356− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
330+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
357331
358− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
332+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
359333
360− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
334+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
361335
362− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
336+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
363337
364− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
338+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
365339
366− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
340+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
367341
368− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
342+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
369343
370− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
344+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
371345
372− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
346+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
373347
374− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
348+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
375349
376− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
350+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
377351
378− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
352+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
379353
380− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
354+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
381355
382− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
356+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
383357
384− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
358+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
385359
386− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
360+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
387361
388− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
362+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
389363
390− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
364+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
391365
392− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
366+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
393367
394− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
368+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
395369
396− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
370+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
397371
398− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
372+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
399373
400− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
374+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"x"},"finish_reason":null}]}
401375
402− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
376+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
403377
404− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
378+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
405379
406− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
380+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"15"},"finish_reason":null}]}
407381
408− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" x"},"finish_reason":null}]}
382+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
409383
410− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
384+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
411385
412− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
386+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
413387
414− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"15"},"finish_reason":null}]}
388+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
415389
416− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
390+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"w"},"finish_reason":null}]}
417391
418− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
392+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
419393
420− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" w"},"finish_reason":null}]}
394+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"i"},"finish_reason":null}]}
421395
422− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
396+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
423397
424− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" i"},"finish_reason":null}]}
398+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
425399
426− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
400+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
427401
428− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
402+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"h"},"finish_reason":null}]}
429403
430− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
404+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
431405
432− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
406+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
433407
434− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
408+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
435409
436− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
410+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
437411
438− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
412+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
439413
440− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
414+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"h"},"finish_reason":null}]}
441415
442− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
416+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
443417
444− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
418+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
445419
446− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
420+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
447421
448− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
422+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
449423
450− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
424+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
451425
452− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
426+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
453427
454− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
428+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
455429
456− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
430+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"o"},"finish_reason":null}]}
457431
458− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
432+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
459433
460− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
434+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
461435
462− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
436+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
463437
464− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" b"},"finish_reason":null}]}
438+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
465439
466− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
440+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")b"},"finish_reason":null}]}
467441
468− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
442+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
469443
470− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
444+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
471445
472− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
446+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
473447
474− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
448+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
475449
476− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
450+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
477451
478− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
452+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"h"},"finish_reason":null}]}
479453
480− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
454+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
481455
482− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
456+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
483457
484− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" v"},"finish_reason":null}]}
458+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
485459
486− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
460+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
487461
488− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" i"},"finish_reason":null}]}
462+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
489463
490− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
464+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"u"},"finish_reason":null}]}
491465
492− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
466+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
493467
494− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
468+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
495469
496− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
470+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
497471
498− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
472+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"i"},"finish_reason":null}]}
499473
500− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" b"},"finish_reason":null}]}
474+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
501475
502− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
476+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"n"},"finish_reason":null}]}
503477
504− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
478+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
505479
506− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
480+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"g"},"finish_reason":null}]}
507481
508− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
482+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
509483
510− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
484+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
511485
512− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
486+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
513487
514− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
488+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
515489
516− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
490+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")b"},"finish_reason":null}]}
517491
518− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
492+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
519493
520− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" w"},"finish_reason":null}]}
494+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
521495
522− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
496+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
523497
524− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" i"},"finish_reason":null}]}
498+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
525499
526− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"43"},"finish_reason":null}]}
500+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
527501
528− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
502+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"h"},"finish_reason":null}]}
529503
530− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"44"},"finish_reason":null}]}
504+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
531505
532− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
506+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
533507
534− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"45"},"finish_reason":null}]}
508+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
535509
536− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
510+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"43"},"finish_reason":null}]}
537511
538− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"46"},"finish_reason":null}]}
512+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")n"},"finish_reason":null}]}
539513
540− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" u"},"finish_reason":null}]}
514+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"44"},"finish_reason":null}]}
541515
542− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"47"},"finish_reason":null}]}
516+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"o"},"finish_reason":null}]}
543517
544− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
518+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"45"},"finish_reason":null}]}
545519
546− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"48"},"finish_reason":null}]}
520+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
547521
548− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
522+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
549523
550− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"49"},"finish_reason":null}]}
524+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"46"},"finish_reason":null}]}
551525
552− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
526+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")t"},"finish_reason":null}]}
553527
554− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
528+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"47"},"finish_reason":null}]}
555529
556− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" i"},"finish_reason":null}]}
530+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"i"},"finish_reason":null}]}
557531
558− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"51"},"finish_reason":null}]}
532+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"48"},"finish_reason":null}]}
559533
560− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" m"},"finish_reason":null}]}
534+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"m"},"finish_reason":null}]}
561535
562− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"52"},"finish_reason":null}]}
536+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"49"},"finish_reason":null}]}
563537
564− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
538+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
565539
566− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"53"},"finish_reason":null}]}
540+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
567541
568− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
542+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
569543
570− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"54"},"finish_reason":null}]}
544+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"51"},"finish_reason":null}]}
571545
572− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
546+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
573547
574− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"55"},"finish_reason":null}]}
548+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"52"},"finish_reason":null}]}
575549
576− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
550+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
577551
578− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"56"},"finish_reason":null}]}
552+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"53"},"finish_reason":null}]}
579553
580− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" m"},"finish_reason":null}]}
554+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"m"},"finish_reason":null}]}
581555
582− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"57"},"finish_reason":null}]}
556+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"54"},"finish_reason":null}]}
583557
584− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" p"},"finish_reason":null}]}
558+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"p"},"finish_reason":null}]}
585559
586− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"58"},"finish_reason":null}]}
560+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"55"},"finish_reason":null}]}
587561
588− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
562+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
589563
590− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
564+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
591565
592− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
566+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" too"},"finish_reason":null}]}
593567
594− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"58"},"finish_reason":null}]}
568+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" long"},"finish_reason":null}]}
595569
596− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003e"},"finish_reason":null}]}
570+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
597571
598− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
572+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Need"},"finish_reason":null}]}
599573
600− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
574+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
601575
602− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Need"},"finish_reason":null}]}
576+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
603577
604− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
578+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
605579
606− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
580+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Maybe"},"finish_reason":null}]}
607581
608− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
582+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
609583
610− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Try"},"finish_reason":null}]}
584+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Bash"},"finish_reason":null}]}
611585
612− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" shorter"},"finish_reason":null}]}
586+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" create"},"finish_reason":null}]}
613587
614− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
588+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
615589
616− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
590+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
617591
618− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Create"},"finish_reason":null}]}
592+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
619593
620− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
594+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
621595
622− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
596+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
623597
624− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
598+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
625599
626− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
600+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" timestamp"},"finish_reason":null}]}
627601
628− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
602+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
629603
630− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
604+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
631605
632− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
606+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
633607
634− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" timestamp"},"finish_reason":null}]}
608+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" B"},"finish_reason":null}]}
635609
636− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
610+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
637611
638− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
612+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
639613
640− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
614+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
641615
642− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
616+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
643617
644− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Create"},"finish_reason":null}]}
618+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
645619
646− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
620+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"h"},"finish_reason":null}]}
647621
648− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
622+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
649623
650− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
624+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
651625
652− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
626+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
653627
654− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" bash"},"finish_reason":null}]}
628+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
655629
656− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
630+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
657631
658− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
632+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" c"},"finish_reason":null}]}
659633
660− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" timestamp"},"finish_reason":null}]}
634+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
661635
662− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
636+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"r"},"finish_reason":null}]}
663637
664− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Characters"},"finish_reason":null}]}
638+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
665639
666− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
640+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
667641
668− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" C"},"finish_reason":null}]}
642+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
669643
670− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
644+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
671645
672− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
646+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
673647
674− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
648+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
675649
676− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
650+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
677651
678− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
652+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
679653
680− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
654+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
681655
682− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
656+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
683657
684− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
658+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
685659
686− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
660+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
687661
688− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
662+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
689663
690− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
664+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
691665
692− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
666+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
693667
694− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
668+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
695669
696− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
670+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
697671
698− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
672+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
699673
700− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
674+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"15"},"finish_reason":null}]}
701675
702− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
676+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
703677
704− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
678+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
705679
706− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
680+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
707681
708− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
682+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
709683
710− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
684+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
711685
712− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
686+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
713687
714− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
688+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"x"},"finish_reason":null}]}
715689
716− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
690+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
717691
718− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
692+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
719693
720− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" x"},"finish_reason":null}]}
694+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
721695
722− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
696+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
723697
724− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
698+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
725699
726− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"15"},"finish_reason":null}]}
700+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
727701
728− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
702+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
729703
730− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
704+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" w"},"finish_reason":null}]}
731705
732− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" w"},"finish_reason":null}]}
706+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
733707
734− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
708+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"i"},"finish_reason":null}]}
735709
736− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" i"},"finish_reason":null}]}
710+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
737711
738− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
712+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
739713
740− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
714+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
741715
742− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
716+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"h"},"finish_reason":null}]}
743717
744− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
718+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
745719
746− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
720+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
747721
748− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
722+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
749723
750− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
724+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
751725
752− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
726+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
753727
754− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
728+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
755729
756− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
730+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
757731
758− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
732+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
759733
760− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
734+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
761735
762− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
736+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
763737
764− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
738+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
765739
766− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
740+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
767741
768− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
742+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
769743
770− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
744+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"o"},"finish_reason":null}]}
771745
772− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
746+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
773747
774− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
748+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
775749
776− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" b"},"finish_reason":null}]}
750+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
777751
778− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
752+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
779753
780− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
754+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
781755
782− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
756+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" b"},"finish_reason":null}]}
783757
784− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
758+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
785759
786− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
760+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
787761
788− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
762+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
789763
790− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
764+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
791765
792− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ,"},"finish_reason":null}]}
766+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
793767
794− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
768+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"h"},"finish_reason":null}]}
795769
796− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
770+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
797771
798− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
772+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
799773
800− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" n"},"finish_reason":null}]}
774+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
801775
802− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
776+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
803777
804− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
778+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
805779
806− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
780+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" n"},"finish_reason":null}]}
807781
808− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
782+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
809783
810− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
784+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"o"},"finish_reason":null}]}
811785
812− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
786+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
813787
814− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
788+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
815789
816− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" i"},"finish_reason":null}]}
790+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
817791
818− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
792+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
819793
820− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" m"},"finish_reason":null}]}
794+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
821795
822− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
796+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
823797
824− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
798+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
825799
826− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
800+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"i"},"finish_reason":null}]}
827801
828− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
802+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
829803
830− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
804+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"m"},"finish_reason":null}]}
831805
832− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
806+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"43"},"finish_reason":null}]}
833807
834− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
808+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
835809
836− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
810+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"44"},"finish_reason":null}]}
837811
838− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"43"},"finish_reason":null}]}
812+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
839813
840− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" m"},"finish_reason":null}]}
814+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"45"},"finish_reason":null}]}
841815
842− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"44"},"finish_reason":null}]}
816+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
843817
844− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" p"},"finish_reason":null}]}
818+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"46"},"finish_reason":null}]}
845819
846− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"45"},"finish_reason":null}]}
820+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
847821
848− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
822+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"47"},"finish_reason":null}]}
849823
850− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
824+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"m"},"finish_reason":null}]}
851825
852− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
826+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"48"},"finish_reason":null}]}
853827
854− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"45"},"finish_reason":null}]}
828+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"p"},"finish_reason":null}]}
855829
856− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
830+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"49"},"finish_reason":null}]}
857831
858− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
832+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
859833
860− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
834+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
861835
862− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
836+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
863837
864− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Return"},"finish_reason":null}]}
838+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"49"},"finish_reason":null}]}
865839
866− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
840+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
867841
868− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
842+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
869843
870− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
844+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" OK"},"finish_reason":null}]}
871845
872− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Create"},"finish_reason":null}]}
846+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
873847
874− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" test"},"finish_reason":null}]}
848+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
875849
876− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".txt"},"finish_reason":null}]}
850+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
877851
878− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" with"},"finish_reason":null}]}
852+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
879853
880− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" hello"},"finish_reason":null}]}
854+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
881855
882− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" bash"},"finish_reason":null}]}
856+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" It's"},"finish_reason":null}]}
883857
884− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":","},"finish_reason":null}]}
858+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
885859
886− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" no"},"finish_reason":null}]}
860+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
887861
888− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" timestamp"},"finish_reason":null}]}
862+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
889863
890− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
864+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"B"},"finish_reason":null}]}
891865
892− data: {"id":"chatcmpl-3f896991098deae412ae2685","object":"chat.completion.chunk","created":1780069679,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":224,"completion_tokens":374,"total_tokens":598,"completion_tokens_details":{"reasoning_tokens":356},"cost":{"usd":0.00048562,"hypercredits":0.0097124},"remaining":{"hypercredits":0}}}
866+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"ash"},"finish_reason":null}]}
893867
894− data: [DONE]
868+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" create"},"finish_reason":null}]}
895869
896− headers:
897− Content-Type:
898− - text/event-stream
899− status: 200 OK
900− code: 200
901− duration: 439.758791ms
902−- id: 2
903− request:
904− proto: HTTP/1.1
905− proto_major: 1
906− proto_minor: 1
907− content_length: 34451
908− host: ""
909− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/bash_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use bash to create a file named test.txt with content 'hello bash'. do not print its timestamp\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_maHr9QegPpRMRiFEH9e4bSTo\",\"function\":{\"arguments\":\"{\\\"command\\\": \\\"echo 'hello bash' > test.txt\\\", \\\"description\\\": \\\"Create test.txt with content\\\"}\",\"name\":\"bash\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"The user wants me to create a file named test.txt with content 'hello bash' using the bash tool, and not print its timestamp.\"},{\"content\":\"no output\",\"tool_call_id\":\"call_maHr9QegPpRMRiFEH9e4bSTo\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
910− headers:
911− Accept:
912− - application/json
913− Content-Type:
914− - application/json
915− User-Agent:
916− - Charm-Crush/devel (https://charm.land/crush)
917− url: https://hyper.charm.land/v1/chat/completions
918− method: POST
919− response:
920− proto: HTTP/2.0
921− proto_major: 2
922− proto_minor: 0
923− content_length: -1
924− uncompressed: true
925− body: |+
926− data: {"id":"chatcmpl-4ab91f0c6c3e7671bcf2a109","object":"chat.completion.chunk","created":1780069682,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
870+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" test"},"finish_reason":null}]}
871+
872+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".txt"},"finish_reason":null}]}
873+
874+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" with"},"finish_reason":null}]}
875+
876+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" hello"},"finish_reason":null}]}
877+
878+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" bash"},"finish_reason":null}]}
927879
928− data: {"id":"chatcmpl-4ab91f0c6c3e7671bcf2a109","object":"chat.completion.chunk","created":1780069682,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Done"},"finish_reason":null}]}
880+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" no"},"finish_reason":null}]}
929881
930− data: {"id":"chatcmpl-4ab91f0c6c3e7671bcf2a109","object":"chat.completion.chunk","created":1780069682,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}]}
882+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" timestamp"},"finish_reason":null}]}
931883
932− data: {"id":"chatcmpl-4ab91f0c6c3e7671bcf2a109","object":"chat.completion.chunk","created":1780069682,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
884+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
933885
934− data: {"id":"chatcmpl-4ab91f0c6c3e7671bcf2a109","object":"chat.completion.chunk","created":1780069682,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":45,"completion_tokens":4,"total_tokens":7857,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.0001,"hypercredits":0.002},"remaining":{"hypercredits":0}}}
886+ data: {"id":"chatcmpl-72a183e9f8f439005bd34946","object":"chat.completion.chunk","created":1781202007,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":211,"completion_tokens":384,"total_tokens":595,"completion_tokens_details":{"reasoning_tokens":240},"cost":{"usd":0.000443984,"hypercredits":0.00887968},"remaining":{"hypercredits":0}}}
935887
936888 data: [DONE]
937889
@@ -940,4 +892,4 @@ interactions:
940892 - text/event-stream
941893 status: 200 OK
942894 code: 200
943− duration: 2.925894959s
895+ duration: 898.554958ms
internal/agent/testdata/TestCoderAgent/glm-5.1/download_tool.yaml+188−528
@@ -6,9 +6,9 @@ interactions:
66 proto: HTTP/1.1
77 proto_major: 1
88 proto_minor: 1
9− content_length: 34010
9+ content_length: 34004
1010 host: ""
11− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/download_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"download the file from https://example-files.online-convert.com/document/txt/example.txt and save it as example.txt\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/download_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"download the file from https://example-files.online-convert.com/document/txt/example.txt and save it as example.txt\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1212 headers:
1313 Accept:
1414 - application/json
@@ -25,119 +25,37 @@ interactions:
2525 content_length: -1
2626 uncompressed: true
2727 body: |+
28− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
28+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
2929
30− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
30+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_05ccff4b0baf13e5","type":"function","index":0,"function":{"name":"download","arguments":""}}]},"finish_reason":null}]}
3131
32− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
32+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
3333
34− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
34+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": \"/tmp/c"}}]},"finish_reason":null}]}
3535
36− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" me"},"finish_reason":null}]}
36+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush-test/TestCoder"}}]},"finish_reason":null}]}
3737
38− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
38+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent/glm-"}}]},"finish_reason":null}]}
3939
40− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" download"},"finish_reason":null}]}
40+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5.1/download"}}]},"finish_reason":null}]}
4141
42− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
42+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_tool/example"}}]},"finish_reason":null}]}
4343
44− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
44+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".txt\", "}}]},"finish_reason":null}]}
4545
46− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
46+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"url\": \"https://"}}]},"finish_reason":null}]}
4747
48− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
48+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"example-files.online-"}}]},"finish_reason":null}]}
4949
50− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
50+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"convert.com/document/t"}}]},"finish_reason":null}]}
5151
52− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
52+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"xt/example.txt\""}}]},"finish_reason":null}]}
5353
54− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
54+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"}"}}]},"finish_reason":null}]}
5555
56− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" it"},"finish_reason":null}]}
56+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
5757
58− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" as"},"finish_reason":null}]}
59−
60− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
61−
62− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
63−
64− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
65−
66− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_LiiFGSBspKNdPTWMEMOLRvLr","type":"function","index":0,"function":{"name":"download","arguments":""}}]},"finish_reason":null}]}
67−
68− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
69−
70− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
71−
72− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": "}}]},"finish_reason":null}]}
73−
74− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/tmp"}}]},"finish_reason":null}]}
75−
76− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/c"}}]},"finish_reason":null}]}
77−
78− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush"}}]},"finish_reason":null}]}
79−
80− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test"}}]},"finish_reason":null}]}
81−
82− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/Test"}}]},"finish_reason":null}]}
83−
84− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Coder"}}]},"finish_reason":null}]}
85−
86− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent"}}]},"finish_reason":null}]}
87−
88− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/g"}}]},"finish_reason":null}]}
89−
90− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lm"}}]},"finish_reason":null}]}
91−
92− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-"}}]},"finish_reason":null}]}
93−
94− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5"}}]},"finish_reason":null}]}
95−
96− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"."}}]},"finish_reason":null}]}
97−
98− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1"}}]},"finish_reason":null}]}
99−
100− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/download"}}]},"finish_reason":null}]}
101−
102− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_tool"}}]},"finish_reason":null}]}
103−
104− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/example"}}]},"finish_reason":null}]}
105−
106− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".txt"}}]},"finish_reason":null}]}
107−
108− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\", \"url\": "}}]},"finish_reason":null}]}
109−
110− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"https"}}]},"finish_reason":null}]}
111−
112− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"://"}}]},"finish_reason":null}]}
113−
114− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"example"}}]},"finish_reason":null}]}
115−
116− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-files"}}]},"finish_reason":null}]}
117−
118− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".online"}}]},"finish_reason":null}]}
119−
120− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-"}}]},"finish_reason":null}]}
121−
122− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"convert"}}]},"finish_reason":null}]}
123−
124− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".com"}}]},"finish_reason":null}]}
125−
126− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/document"}}]},"finish_reason":null}]}
127−
128− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/t"}}]},"finish_reason":null}]}
129−
130− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"xt"}}]},"finish_reason":null}]}
131−
132− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/example"}}]},"finish_reason":null}]}
133−
134− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".txt"}}]},"finish_reason":null}]}
135−
136− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
137−
138− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
139−
140− data: {"id":"chatcmpl-b24616267883946383972241","object":"chat.completion.chunk","created":1780069683,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":718,"completion_tokens":64,"total_tokens":7886,"prompt_tokens_details":{"cached_tokens":7104},"completion_tokens_details":{"reasoning_tokens":19},"cost":{"usd":0.00128918,"hypercredits":0.0257836},"remaining":{"hypercredits":0}}}
58+ data: {"id":"chatcmpl-95515a64aa7a0f1370556019","object":"chat.completion.chunk","created":1781202014,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":690,"completion_tokens":44,"total_tokens":7865,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0011595999999999998,"hypercredits":0.023191999999999994},"remaining":{"hypercredits":0}}}
14159
14260 data: [DONE]
14361
@@ -146,7 +64,7 @@ interactions:
14664 - text/event-stream
14765 status: 200 OK
14866 code: 200
149− duration: 638.4435ms
67+ duration: 647.228042ms
15068- id: 1
15169 request:
15270 proto: HTTP/1.1
@@ -171,567 +89,315 @@ interactions:
17189 content_length: -1
17290 uncompressed: true
17391 body: |+
174− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
175−
176− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"User"},"finish_reason":null}]}
177−
178− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
179−
180− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
181−
182− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
183−
184− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
185−
186− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
187−
188− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
189−
190− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
191−
192− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
193−
194− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"download"},"finish_reason":null}]}
195−
196− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
197−
198− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
199−
200− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
201−
202− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" https"},"finish_reason":null}]}
203−
204− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"://"},"finish_reason":null}]}
205−
206− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"..."},"finish_reason":null}]}
207−
208− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
209−
210− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
211−
212− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" it"},"finish_reason":null}]}
213−
214− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" as"},"finish_reason":null}]}
215−
216− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
217−
218− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
219−
220− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
221−
222− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Must"},"finish_reason":null}]}
223−
224− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
225−
226− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
227−
228− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
229−
230− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
231−
232− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
233−
234− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
235−
236− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
237−
238− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
239−
240− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
241−
242− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
243−
244− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
245−
246− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" One"},"finish_reason":null}]}
247−
248− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
249−
250− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
251−
252− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
253−
254− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
255−
256− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
257−
258− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
259−
260− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
261−
262− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
92+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
26393
264− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Possible"},"finish_reason":null}]}
94+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
26595
266− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
96+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
26797
268− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
98+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
26999
270− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
100+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" generate"},"finish_reason":null}]}
271101
272− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Download"},"finish_reason":null}]}
102+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
273103
274− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
104+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
275105
276− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
106+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
277107
278− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
108+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
279109
280− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
110+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
281111
282− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
112+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
283113
284− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
114+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
285115
286− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" locally"},"finish_reason":null}]}
116+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
287117
288− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
118+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"),"},"finish_reason":null}]}
289119
290− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
120+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
291121
292− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
122+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
293123
294− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
124+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
295125
296− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
126+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
297127
298− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Download"},"finish_reason":null}]}
128+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summary"},"finish_reason":null}]}
299129
300− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
130+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" of"},"finish_reason":null}]}
301131
302− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
132+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user's"},"finish_reason":null}]}
303133
304− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
134+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" message"},"finish_reason":null}]}
305135
306− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
136+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
307137
308− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
138+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Content"},"finish_reason":null}]}
309139
310− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
140+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
311141
312− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" locally"},"finish_reason":null}]}
142+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
313143
314− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
144+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"download"},"finish_reason":null}]}
315145
316− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
146+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
317147
318− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
148+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
319149
320− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
150+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
321151
322− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
152+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" https"},"finish_reason":null}]}
323153
324− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Download"},"finish_reason":null}]}
154+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"://"},"finish_reason":null}]}
325155
326− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
156+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"example"},"finish_reason":null}]}
327157
328− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
158+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"-files"},"finish_reason":null}]}
329159
330− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
160+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".online"},"finish_reason":null}]}
331161
332− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
162+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"-con"},"finish_reason":null}]}
333163
334− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
164+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"vert"},"finish_reason":null}]}
335165
336− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
166+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".com"},"finish_reason":null}]}
337167
338− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
168+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/document"},"finish_reason":null}]}
339169
340− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
170+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/t"},"finish_reason":null}]}
341171
342− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
172+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"xt"},"finish_reason":null}]}
343173
344− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
174+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/example"},"finish_reason":null}]}
345175
346− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
176+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
347177
348− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
178+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
349179
350− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
180+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
351181
352− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
182+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" it"},"finish_reason":null}]}
353183
354− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
184+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" as"},"finish_reason":null}]}
355185
356− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
186+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
357187
358− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
188+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
359189
360− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
190+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
361191
362− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
192+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
363193
364− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
194+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" could"},"finish_reason":null}]}
365195
366− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
196+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
367197
368− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
198+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
369199
370− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
200+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Download"},"finish_reason":null}]}
371201
372− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
202+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
373203
374− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
204+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Save"},"finish_reason":null}]}
375205
376− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
206+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
377207
378− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
208+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
379209
380− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
210+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
381211
382− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
212+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
383213
384− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
214+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
385215
386− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
216+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
387217
388− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
218+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
389219
390− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
220+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Download"},"finish_reason":null}]}
391221
392− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
222+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
393223
394− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
224+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Save"},"finish_reason":null}]}
395225
396− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
226+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
397227
398− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
228+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
399229
400− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
230+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
401231
402− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
232+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
403233
404− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
234+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
405235
406− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
236+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
407237
408− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
238+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
409239
410− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
240+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" D"},"finish_reason":null}]}
411241
412− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
242+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
413243
414− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
244+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
415245
416− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
246+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")o"},"finish_reason":null}]}
417247
418− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
248+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
419249
420− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
250+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"w"},"finish_reason":null}]}
421251
422− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
252+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
423253
424− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
254+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"n"},"finish_reason":null}]}
425255
426− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
256+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
427257
428− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
258+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
429259
430− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
260+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
431261
432− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
262+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"o"},"finish_reason":null}]}
433263
434− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
264+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
435265
436− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
266+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
437267
438− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
268+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
439269
440− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
270+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"d"},"finish_reason":null}]}
441271
442− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
272+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
443273
444− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
274+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
445275
446− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
276+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
447277
448− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
278+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
449279
450− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
280+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
451281
452− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
282+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
453283
454− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
284+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
455285
456− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
286+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
457287
458− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
288+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"n"},"finish_reason":null}]}
459289
460− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
290+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
461291
462− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
292+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"d"},"finish_reason":null}]}
463293
464− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
294+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
465295
466− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
296+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
467297
468− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
298+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
469299
470− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" locally"},"finish_reason":null}]}
300+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" S"},"finish_reason":null}]}
471301
472− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
302+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
473303
474− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
304+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
475305
476− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
306+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"15"},"finish_reason":null}]}
477307
478− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"46"},"finish_reason":null}]}
308+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"v"},"finish_reason":null}]}
479309
480− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
310+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
481311
482− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
312+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
483313
484− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
314+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
485315
486− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"46"},"finish_reason":null}]}
316+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
487317
488− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
318+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
489319
490− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
320+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
491321
492− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" okay"},"finish_reason":null}]}
322+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
493323
494− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
324+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"x"},"finish_reason":null}]}
495325
496− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Alternatively"},"finish_reason":null}]}
326+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
497327
498− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
328+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
499329
500− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
330+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
501331
502− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Download"},"finish_reason":null}]}
332+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"m"},"finish_reason":null}]}
503333
504− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
334+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
505335
506− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
336+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"p"},"finish_reason":null}]}
507337
508− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
338+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
509339
510− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
340+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
511341
512− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
342+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
513343
514− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" as"},"finish_reason":null}]}
344+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
515345
516− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
346+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
517347
518− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
348+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
519349
520− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
350+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
521351
522− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
352+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
523353
524− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
354+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
525355
526− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Download"},"finish_reason":null}]}
356+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"x"},"finish_reason":null}]}
527357
528− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
358+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
529359
530− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
360+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
531361
532− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")+"},"finish_reason":null}]}
362+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
533363
534− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
364+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
535365
536− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
366+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
537367
538− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
368+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
539369
540− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
370+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
541371
542− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
372+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
543373
544− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
374+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
545375
546− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
376+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
547377
548− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
378+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
549379
550− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
380+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Return"},"finish_reason":null}]}
551381
552− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
382+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" just"},"finish_reason":null}]}
553383
554− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
384+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
555385
556− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
386+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
557387
558− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
388+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Download"},"finish_reason":null}]}
559389
560− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
390+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
561391
562− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
392+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Save"},"finish_reason":null}]}
563393
564− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
394+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" example"},"finish_reason":null}]}
565395
566− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
396+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".txt"},"finish_reason":null}]}
567397
568− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
398+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
569399
570− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
571−
572− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
573−
574− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
575−
576− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
577−
578− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
579−
580− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
581−
582− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
583−
584− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
585−
586− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
587−
588− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
589−
590− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
591−
592− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
593−
594− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
595−
596− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
597−
598− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
599−
600− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
601−
602− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
603−
604− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
605−
606− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
607−
608− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
609−
610− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
611−
612− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
613−
614− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
615−
616− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
617−
618− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
619−
620− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
621−
622− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
623−
624− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
625−
626− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
627−
628− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
629−
630− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
631−
632− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
633−
634− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
635−
636− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
637−
638− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
639−
640− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
641−
642− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
643−
644− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
645−
646− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
647−
648− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
649−
650− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
651−
652− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
653−
654− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" as"},"finish_reason":null}]}
655−
656− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
657−
658− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
659−
660− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
661−
662− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
663−
664− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
665−
666− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
667−
668− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
669−
670− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
671−
672− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
673−
674− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
675−
676− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
677−
678− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
679−
680− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
681−
682− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
683−
684− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
685−
686− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"46"},"finish_reason":null}]}
687−
688− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
689−
690− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
691−
692− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" also"},"finish_reason":null}]}
693−
694− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
695−
696− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"46"},"finish_reason":null}]}
697−
698− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
699−
700− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
701−
702− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
703−
704− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
705−
706− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
707−
708− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Choose"},"finish_reason":null}]}
709−
710− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
711−
712− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
713−
714− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Download"},"finish_reason":null}]}
715−
716− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" file"},"finish_reason":null}]}
717−
718− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" from"},"finish_reason":null}]}
719−
720− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" URL"},"finish_reason":null}]}
721−
722− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
723−
724− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" save"},"finish_reason":null}]}
725−
726− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" as"},"finish_reason":null}]}
727−
728− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" example"},"finish_reason":null}]}
729−
730− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".txt"},"finish_reason":null}]}
731−
732− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
733−
734− data: {"id":"chatcmpl-3f0f8f2b9b05cd8f7a280911","object":"chat.completion.chunk","created":1780069683,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":227,"completion_tokens":288,"total_tokens":515,"completion_tokens_details":{"reasoning_tokens":270},"cost":{"usd":0.00038124,"hypercredits":0.007624799999999999},"remaining":{"hypercredits":0}}}
400+ data: {"id":"chatcmpl-f1a00860a8c9b5792a4b781c","object":"chat.completion.chunk","created":1781202014,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":214,"completion_tokens":162,"total_tokens":376,"completion_tokens_details":{"reasoning_tokens":123},"cost":{"usd":0.00022348399999999998,"hypercredits":0.004469679999999999},"remaining":{"hypercredits":0}}}
735401
736402 data: [DONE]
737403
@@ -740,7 +406,7 @@ interactions:
740406 - text/event-stream
741407 status: 200 OK
742408 code: 200
743− duration: 837.561291ms
409+ duration: 1.270969417s
744410- id: 2
745411 request:
746412 proto: HTTP/1.1
@@ -786,15 +452,15 @@ interactions:
786452 - text/plain; charset=UTF-8
787453 status: 200 OK
788454 code: 200
789− duration: 610.98125ms
455+ duration: 1.405161459s
790456- id: 3
791457 request:
792458 proto: HTTP/1.1
793459 proto_major: 1
794460 proto_minor: 1
795− content_length: 34579
461+ content_length: 34459
796462 host: ""
797− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/download_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"download the file from https://example-files.online-convert.com/document/txt/example.txt and save it as example.txt\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_LiiFGSBspKNdPTWMEMOLRvLr\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/download_tool/example.txt\\\", \\\"url\\\": \\\"https://example-files.online-convert.com/document/txt/example.txt\\\"}\",\"name\":\"download\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"The user wants me to download a file from a URL and save it as example.txt.\"},{\"content\":\"Successfully downloaded 2574 bytes to example.txt (Content-Type: text/plain; charset=UTF-8)\",\"tool_call_id\":\"call_LiiFGSBspKNdPTWMEMOLRvLr\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
463+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/download_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"download the file from https://example-files.online-convert.com/document/txt/example.txt and save it as example.txt\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_05ccff4b0baf13e5\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/download_tool/example.txt\\\", \\\"url\\\": \\\"https://example-files.online-convert.com/document/txt/example.txt\\\"}\",\"name\":\"download\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"Successfully downloaded 2574 bytes to example.txt (Content-Type: text/plain; charset=UTF-8)\",\"tool_call_id\":\"call_05ccff4b0baf13e5\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
798464 headers:
799465 Accept:
800466 - application/json
@@ -811,29 +477,23 @@ interactions:
811477 content_length: -1
812478 uncompressed: true
813479 body: |+
814− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
815−
816− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Download"},"finish_reason":null}]}
817−
818− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"ed"},"finish_reason":null}]}
819−
820− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
480+ data: {"id":"chatcmpl-34bc8beeecd43ca412b6d043","object":"chat.completion.chunk","created":1781202016,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
821481
822− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" saved"},"finish_reason":null}]}
482+ data: {"id":"chatcmpl-34bc8beeecd43ca412b6d043","object":"chat.completion.chunk","created":1781202016,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Download"},"finish_reason":null}]}
823483
824− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" as"},"finish_reason":null}]}
484+ data: {"id":"chatcmpl-34bc8beeecd43ca412b6d043","object":"chat.completion.chunk","created":1781202016,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"ed and"},"finish_reason":null}]}
825485
826− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
486+ data: {"id":"chatcmpl-34bc8beeecd43ca412b6d043","object":"chat.completion.chunk","created":1781202016,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" saved as"},"finish_reason":null}]}
827487
828− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"example"},"finish_reason":null}]}
488+ data: {"id":"chatcmpl-34bc8beeecd43ca412b6d043","object":"chat.completion.chunk","created":1781202016,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `example.txt`"},"finish_reason":null}]}
829489
830− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".txt"},"finish_reason":null}]}
490+ data: {"id":"chatcmpl-34bc8beeecd43ca412b6d043","object":"chat.completion.chunk","created":1781202016,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" (257"},"finish_reason":null}]}
831491
832− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`."},"finish_reason":null}]}
492+ data: {"id":"chatcmpl-34bc8beeecd43ca412b6d043","object":"chat.completion.chunk","created":1781202016,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"4 bytes)."},"finish_reason":null}]}
833493
834− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
494+ data: {"id":"chatcmpl-34bc8beeecd43ca412b6d043","object":"chat.completion.chunk","created":1781202016,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
835495
836− data: {"id":"chatcmpl-a709ede8c6d38d00517c62ad","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":86,"completion_tokens":11,"total_tokens":7905,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.00015886,"hypercredits":0.0031772},"remaining":{"hypercredits":0}}}
496+ data: {"id":"chatcmpl-34bc8beeecd43ca412b6d043","object":"chat.completion.chunk","created":1781202016,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":7842,"completion_tokens":15,"total_tokens":7907,"prompt_tokens_details":{"cached_tokens":50},"cost":{"usd":0.011044799999999999,"hypercredits":0.22089599999999995},"remaining":{"hypercredits":0}}}
837497
838498 data: [DONE]
839499
@@ -842,4 +502,4 @@ interactions:
842502 - text/event-stream
843503 status: 200 OK
844504 code: 200
845− duration: 562.899125ms
505+ duration: 882.463667ms
internal/agent/testdata/TestCoderAgent/glm-5.1/fetch_tool.yaml+399−319
@@ -2,6 +2,137 @@
22version: 2
33interactions:
44- id: 0
5+ request:
6+ proto: HTTP/1.1
7+ proto_major: 1
8+ proto_minor: 1
9+ content_length: 34022
10+ host: ""
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/fetch_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"fetch the content from https://example-files.online-convert.com/website/html/example.html and tell me if it contains the word 'John Doe'\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
12+ headers:
13+ Accept:
14+ - application/json
15+ Content-Type:
16+ - application/json
17+ User-Agent:
18+ - Charm-Crush/devel (https://charm.land/crush)
19+ url: https://hyper.charm.land/v1/chat/completions
20+ method: POST
21+ response:
22+ proto: HTTP/2.0
23+ proto_major: 2
24+ proto_minor: 0
25+ content_length: -1
26+ uncompressed: true
27+ body: |+
28+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
29+
30+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_99f940f1ba82d698","type":"function","index":0,"function":{"name":"fetch","arguments":""}}]},"finish_reason":null}]}
31+
32+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
33+
34+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"format\": \"text"}}]},"finish_reason":null}]}
35+
36+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\", "}}]},"finish_reason":null}]}
37+
38+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"url\": "}}]},"finish_reason":null}]}
39+
40+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"https://example"}}]},"finish_reason":null}]}
41+
42+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-files.online"}}]},"finish_reason":null}]}
43+
44+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-convert.com"}}]},"finish_reason":null}]}
45+
46+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/website/html"}}]},"finish_reason":null}]}
47+
48+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/example.html\""}}]},"finish_reason":null}]}
49+
50+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"}"}}]},"finish_reason":null}]}
51+
52+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
53+
54+ data: {"id":"chatcmpl-230208510b8972ca92e7094d","object":"chat.completion.chunk","created":1781202017,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":697,"completion_tokens":27,"total_tokens":7855,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0010946,"hypercredits":0.021892},"remaining":{"hypercredits":0}}}
55+
56+ data: [DONE]
57+
58+ headers:
59+ Content-Type:
60+ - text/event-stream
61+ status: 200 OK
62+ code: 200
63+ duration: 862.781334ms
64+- id: 1
65+ request:
66+ proto: HTTP/1.1
67+ proto_major: 1
68+ proto_minor: 1
69+ content_length: 0
70+ host: example-files.online-convert.com
71+ headers:
72+ User-Agent:
73+ - crush/1.0
74+ url: https://example-files.online-convert.com/website/html/example.html
75+ method: GET
76+ response:
77+ proto: HTTP/2.0
78+ proto_major: 2
79+ proto_minor: 0
80+ content_length: -1
81+ uncompressed: true
82+ body: |-
83+ <!DOCTYPE html>
84+
85+ <html>
86+ <body>
87+
88+ <h1>HTML test file</h1>
89+
90+ <p>Purpose: Provide example of this file type<br>
91+ Document file type: HTML<br>
92+ Version: 1.0<br>
93+ Remark:</p>
94+
95+ <p><img align="right" style="height:5.0551cm;width:7.62cm;" src="data:image/*;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gADKv/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAY8CWAMBEQACEQEDEQH/xAAcAAACAwEBAQEAAAAAAAAAAAADBAABAgUGBwj/xAAZAQADAQEBAAAAAAAAAAAAAAAAAQIDBAX/2gAMAwEAAhADEAAAAfTw/R3PYecCwoIFhAg4ECDgoECBBwUFAg4FjicZBQLHE4FNQIECIsIOBBwIECBAgQIECBAgQIECBAgQOXpPwfTHlZikum9ShN2FpZb1KyPDKYB1aPu/NfW6F3hukQIKggWOBAg7CBAgQKCCgQIOwtVApqBAtOBTUCIscCDgQIECBAgQIECBAgQIECBAgQIEDj6z4bTP5djKyYqZYBMBVGlUEFpAm6DSF6qhfofg173VDtDLigg7CBY4ETscCBAgQcFAgQIOBAgoECBAgQIOBAgQIECBAgQIECBAgQIECBAgQIEBSpbmvlHZj4znngyxsyPUmWYDaMsEPaWGySl7raWA+4cO/uuvLDHmaC0QdhBwIOBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAzJjF3ohSG0W6cCBSLZASa57n5pefq1Xy5xz80k6GzI7RAyG5JQFvcKmDdYZAGP7p5W/re/Im0MTXRRCoECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgYFy4nmcVXjb0vWiL2wrmY470gOY9b53q5eJmfJ6Zc3V0hdukDAYDqqQWZG3tFoXuojakiWWwtgdfe/H3DrDHae90kiIOBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQICRPLxCukcbqAHPS9yQjHPb0A5ZkL3IUuJ0LznbHkezPArkTutIyzcmGxhaLaJIJtiZlMQ16oYfTOCullZ+2fomh1BQcCBAgQIECBAgQIECBAgQIECBAgQIECBAgQIFBYJpJ5vECXI+Zz1GkrrVuZC22SeEvToWVztoO76eFcq8jTTSSuq+Yexks0NsbAtkksMhY4kNmkRF0xFW0Jn3HwOjWoHon2/bPWpQIEHAgQIECBAgQIECBAgQIECBAgQIECBQWAw5aXFxe6nz0zjK2uatZUPYUc5wOjN+N9XP0nFXRm/O753lXE6sO9w05Gi1Lcu2egxPnPq8/lexYGNlBtGkJ3ZZnYqC0SUvpbCVNqOvqXk6+f649/y36n0o9G1YREHAgQIECBAgQIECBAgQIECBAgUGUc1IqfPa4sAqnz7W+eltIPnbMBuWlhnt8jaOjx36Lnvi9U97kfL6k0Mmb4O8clRi27N5Zy+ife+ZXK6I+RezhQAdWLI9osMARSJvclAC6OFoBT+veHt53oPVyes6p73VJQ0FBpOBAgQIECBAgQIECBAgQIEBAS2Z5rJhThPH0nh9GfW5NENoaxp3KtTamkriQ1nu8WvG6pWue35mvbzpmV2sWj0M3O+D2Z8W4czrJfczDtdKWDQ+Ee3yrtLVWGaQWVhvSUFh1QhunJkoKgN39s8HfxXdnun6jmr0XpR6/UCpRT7DcCBAgQIECBAgYCgIEDn5gbSqXLg4Ii40JMCNJbRzd5StK1CtwWb63LqpqlalW0KpNNN8j9TxdKmgaF2OVstNxXlt8ROGS6dA0OjkjLX0UHz3vx+Y+pnuZoKKsMiYmF6ugsHEUxVvAxj+r+Nt5Hsn0GB6zlsXqx9E6F47lOXR9B6UynAgUJUDAUfPS1QWTzkBKRpaQcnko0iFSCzm7R2OXXyvdhkMoyJyK4vRCdyxFGg1KQ2ZZFbLT7fE+tyaej59iwcHrh7lOznSep5vXFa25ARDcp6NSrSaLy3bj899DKkAquhlmWZDbwJO9CSWDIK1WwC2Mf1DyNdF9fNER2euO/1x8w5Z8/sfQCjaz05qAumtiFG1sg40GpzoLczA1ztY4fVHV5r63NoOoTs5+mfV59PE+nhBp2P5Pq4VwejNPQ0qYibQJvQ1qREO5V6HzdOdvfW5b7eK0jrYtmV5rrnz2yelNQunkKVp0sm6Hyv18PM9chpnhdPDFPSqYjppgo8yCqIkVlDWdWj7t4O/O2bcoqrh7Q3M+S68VrXoo0RqOzb6U2zlpwd8O3zaaT52swFbjz/AE59vn0hPD3n0PHvwurF/BmmywJUvI+nizm0tDu8tK3FI525aZIVhgehrUaQ7k/T8OvMa7GO3b510sCWIOeNrPnuivQ4NqE1muH0nb5qfK8f3YeC9OMh1cMrlL6VzNdY0J2RLIEmYzA8OmpX3LwenzHSblA0TchkvFd+O0tM02259Zjujc+Y7ef0/Du/jfmu3H1XFvaPDejzN51YubrPpeHbyHoYuZNnOvT8Ovh/T51dU7kczZuZMTkyfO2NQhtlRgdjE1AIn6HgsksuOvqeZ8vU6cu8svLdYEfa5r6cpKpR0NJ+u538z9jHy3VFD7fLgG2vTWug1WR6FgZpkbYnTUZ7K+w+H1c7YW1OpgolzN15jryS1REunlTqOyrcm/O9eDUV0MNPJ9/P0MdfWcGni/R5yQZt5S7PLr5zqyU1kkOCHQKjAst7g0GGxuR1StJiGCix2i0nMz13lag3rGRM9+lOSu+ep05eh1sNe9zy9lPku3JetfU8j8j34+L9CF7DRPQyzQ10iLEvbocGVK0to0k1Mhdej4+n02FaT9Zzvzu88baPNdeXL3GoNC62KfL7c6agQ3XZ5dObtPI6M+9xaeR9Dn3NuwIXOU1NYFRpPDNJUMNBYnLcTWsyKww1tUCh3KRthZ7fyNe3z6EenH3z5pfcyy5us8no1e5n28NOjK9ThPzP0cObpp9B848l2z839bMspvOOnjkrpS9VzddaCARJqJMktpdSjTNFdnm6PTc99jJ9XI0HluufMdfPxOk6WKNLJKfl9EruY7eK9DD1XDsJsTg0vxPpc2RmSG2pRYDYROJWzcrAaSzTwMFA29KTxOHUA8SJgXfc4X2sdUtdHsMwVr2OfNS5811X2+OulMdfHbrZT8g9/l6/F0dvOPGehnwOkw29lm9nGRJ6Vz9doEAkp2IsWRjplhWj6N53cWZ7WT0giXz/ANHDnbTydzoZElZaeg7EaB1fD6cjTRZYnMDn7SNhpIMLBUERaMNQdpROhU3pFC0hPRs5zTNIPCWtsQlCom7k+vzaNzv0scyzHmunUsHazTKv0eEfFvcxw6w8g0K3dpv55vZZAqsNL1VjoBuiJMRI6ZEZbyj2PD1eo5WyNVthhFPy31efFI8KgwLTOvlWdXx+nOg0UJrSFrKE9ml6dDyECgxRB7ict0KnR4VqbBLSnM5YiV7q5ccDKHLHVEmupzo0dDuefWxXO10JD62V+e68TOPMdT5u0N5Qlpcb6eUGmDZxzddIJa7HVWjLOhjmzKptS2vV5D6b5PZ6HCK0adNiJ8H34A0lalhtzOV6CIelrbHH6k7nK93tLI9KMNtShDKkvVElZaDTGPSUAbdjNEsxK9u07FgQarIyKMqvQ8j7vNqhq/N9OJI6PWcNEQCzDprBL9OPE1npZbeV9DneyktMoucKCpIAL2xuhVW0tociSIT0pK9Cwqa+veL1eK7M/qHDpwdAgLXPiu/ILz0IqAMcimpDtobQlsqAbA1RJjLbuUq3RpinWB4ZBEkyG017NI3KFS0nlJe6jImGntL0vEu9xa9XOwXXM1x4eunfxe4XnuiutguXtXE7OcDXWz1qsPS88kTDovH7Msi9AGxU16rDpuINKblKU1qrINxKd3+gPB6/Jbz6fBed2H5a+kfPvSwA0eEQAtW21DaQnsKbTtC1MiBksymM1y97LKw3BjZaWkQdBBbQKjLNyhjHVQWkDbfzn0nBSzOpnt0504OufK0l7Pb0MLyO7T0wItOZ0Y9bmfpsYBUYEyMlHjt63KTp5FkFdLg3YVJMTKd0aU9nCd3z9dPtPidHk+rLh9B9J83VcnyHoZcPonna0/lJEjZpbROQ+jOnJ6pG5qpJIfNK6MTCJo6B5MNwY2tIsKTyyC2jDKS0jLBuiJQYwNMnzeBu536/m2422XE1XocN9Si5wuTweyGYNquzGGGsoYTYYJnF2vyW+jUZgbPI9EMxJJCI2ltKh8Lp15mt/WvI35tM5VPP0fM/PdGfl+3FPR7kDTbylWxiToRoj0ArgdQSUzm9NI2xXSVjEobqwGBErHaQ26FtPDUAkyN1AgM5oNVTWs1orpZDMVztb1MdPLoQ1XSxxyBcktQvodFY7JyM0jdFJ8je1JjArA8okoklhaKb0gbEtdONvfX49vRRYlPcyfq+J+L9DLzHXnwulsSujjClUxL0M8tfdL3LEQvobkwzQIa1gNpYqtBkKRoIIQ4BpQ6IjSVhgeabOStlyudd9HOSKmYSOlkk6+euIBdE855vRbWOeKTMZMyx08oclNtFk4lyAWkaRpGh5qhtXKynlkbBpfW49/b47oUupmZzzR1fz71cVNEnTdiS5gKZ5bk1yutBqGIVOYC10ZAKAsodsgQIiA9nPc55Zhef6b5mrwFo2gbI2fOdhgAlRkH2eYp1yth7PTUrOqA83cdOxzcqmuj0ZQNjtq5KH1w4RA0Wy0BdZowFjy3FI6q3Q7v0/lvr461deg5ha0+jx/ZHgPVzMktQSEBt6KezfP6WprnsF6TeciqoAKB07Rh1oUSoZEvScmSGlgsLK5etZDSVjGzLbOc0PSS9VaRSjxTE1z9M3s9lbjY13j2Vo1x47okwEpxrcgQIn2oYKnmtUA24KgiMU7DLdN5ZV39U8XUmY1jaDAaijng9k+F9WdNDZ0uaOZtT8N/O1tBTaVtJXoaicMy6w0rVFRhuxWlGzxPWylV1QAc6QeURIqII0IQ+dtoFgnVBobios3y9I7mOvE2x9BlZebkBttg0PlyN5PVBRtxSzWhQQwEwTLC0sN03uZgyJbqqSsn6J5nUu65ab830sWLR+J9LLzvbivToUQvQzA1Fbuk94Tow1oKSjekNDxMNSanMqnSQavna6dXCTSmc88t6RpEHTNTK93EeX7NQVWkCbMjrTomDqfPrPsZ6dLiy4nZJ0954HgPFbpOTW0Wg7Bo5WqABFImySbSiVhpLSI2Nv1PFu0ll2TDX0Odq2fI/d509JBTIlcrlb07kn82a3jWVGlaLDKCB0Mo6cKoxJK2OI2q5W98bo07nPBoRogsoieh4EO2bJUMFnmuvXm66aSw2zK7E7JNFHz7nqS28MhrM22uefncyZUYoLD6KdUYQZPDnkVIwjRoLDcqmZCwGjNP0PJs3pfXyovPoppQ9J+WezkvRYNRIUufq24OtjYtldLm6IbMg9nPX580dK6UjeWdJaKsMo5utcvo16OOZw6XNlpOgyA7dgTNET52p5vs15utmlaRhvqzqqSJt9qRTePKSM76Ox3jwihZuMYVOQs0RrKOtNceoCLNFp7lbRiix0IYaSby73uePX515nWPN9q5PVIqZUk6ZZQ2QLkezoli3RGEujE1I1lmRLg9G3Th9TMuI3E0LIU2VBYEOjR/mzgqHQcrqt/nncLNHJ6HwujTV7Uo51vDbk31Cl1D2UDbbx59yktt38KPnzAGOg5TEoYjjEBWgWAAkokq28BinTLHamhety9TgrLl7R5bueHOgNKbiTJJUxU24T0IGi1RhpmIirq5QzC29Q3eLbeU7iWsM5KieUqCAj06M8+WWwW8t8/p0exyJmgWAoB09BLrzehgpkTuS6BR8canTm7Ppc2XRww5vTsS6NyYLN2GLo0Io2ZZmue89NyVluU6lWOkrCBB5a+nT6XiNs0CeJrmho1LYLraTUsTXSiOjhn0MYyy0jSERpG4JS2OmaRhu2apRFy8SZEFgqNojcZEgU95xEqosLZhuN3peLqoE+voNlCNXy9n2uLL0PFgrocz0ujo+dzibMC9B0aTMmeJwlAtGEUGnUZiiqMJYogei5uh6X0VWkufcDSFaBYAWBFk0wBOkQBi0FBTIKkUzAWERAtoVFCkuwGywzRhimwEVWz5NtOVOW7THowykOjes0TTSlak58frr0/Bj1ObLSOR6/S15nNytRhGx4F0c2aWwAYkdPLIMbnNVGDSlOU7pjmfa83ayCSgNSFZlhNy6SeVVIwXoQWhCXJXa0gYs6PSUSCLAZooVBbKHbMpSqW1sOlI9F7ywJMv5h5cpRupnUGUDDQSUGq4Xo9SNV2+Xn8r6Gvb4cWMstjnoda/BybTgg3o/jI2OFGBKswhpUOwNIsOyqJtLdAUh3Xp+IoZUQWkWmOhiWNzodyQMi03tFgNoydp4pZZmFTLZhqwHJtlN5FQWzOlA66S1W+LMikxWxhS2ONZZHR4NW+dTSo5+mvc5sfDer0eo4Mety58Tq33rZ8MFyNSw6U3nNA0gsgqmh7oyioNN2AmZT3bxRpvrcMRlixSjBo2y5e0QcCCpqmrVbag9ySXdFIV0DwVCtl0bHUgmshcvVAbBMazJoc6yE1GRlVWBYS3mgsPWT3L2CbtxZ+J9fo6mE9XllfRdCZ2MeQBtHY3EMy2SjhQYayyDiA0jBnM0LMlNUPoYPTeWgkkAg4EQIVWsp6HEWy7dyqRYVYCnaRIW5YaIFyYlFblmpImOgSNAPR6DaNiFRmZHUg0WU+b1XUo+SayTMvVNDaeJ075vXq8uTs5NIqXbMSJ66dDCIkynUlUVAKzSdtYHsKZmiDwTE38HCYGEstVIZu6Y1O2x0qTpBmDalK043TUh0jUog6RoebYkihUlNUINqRWqeUhWRkFtMqNS6FhkaFQDa09qA0vMniFNdUurfu8GDWWVDKnED0a22nQwjKJKZbxQTEgqBbok0sCTA5FXRlES6ud6hbSwFNUMyBNRmUEp22EVoELSVUaHQSFGVSpsg8hQbkieGhpXQJloKiwwhLSSy4zUlURupMUK6gtKtta3GJNobVu9HuPkaxlvKilmVq7JXeXMp1NVc5DcIedVSMhS1cllHhYp2TJWx/QeTpZ0epeBaQKDba1SFSBgNESRZg6Tku0ElqXKlqhHyZkLVOwzYhcrUuhlTQ10rb0gbBBVraMJFTsekCJCyIplgCkEU0oLkLYNKqqPnAmB0eWhVpzem+W11+aGJWNE4pTumuZdTOaVMyoAlVUKtkmRNYp+w598uNZplt/OytjSCzYLCDSfWhJBUhNYQaXdBhpuGZqmVmk9JeKAK6YhbSkOUSWVgEiBEyDtnSjQtCtIYDhDZWiVmVtDKnIlxDchpAEOluWUcqlrY6EaDJc7SstMKQtLU2FK9UaZewHsjUkFdMQfQefqEkvTlRaYKkjTmd8zSBBUI5W5Ct6HSBVKikbVN4oOjqF5boWsy6KRaoNSNBG8Erk2A2jzRiqRqjUD5dphZKRpeUpY5NCENGQy0FFo0601iQ7oFI2D1aSqQi5umfM1lO5ktfQ5u1xynpZIg0wXM+y+b2WhhsTU0aaTQ8SiFYEuLIDtXQLIplysCRqbRcrOzXs2SMKGUCgFzGSXkF7Q2syYUdWNKFlmKecVQ2WXQJFSa1eXJIo1K8qXCnLM2uK2hW6J3LyBEZYuIgytlRkDJlmmVVoxQokraWU+1z2Gk+XvVFTC0KFhNnQFAzTECqKawy8jNFSpQqp2PdNElNxikIBEsqj027epZJBAETpQlMlkb1SUSwgBIdEXOlripWdBOwaQhdTOzxWNEGpa570jNkkzSoeNFlm8zAtSc/WblZZdOM3AdU1dWMTn2ePQRhGCDbIiBQW2SQ2hlOmh5EsIGEXJQSgUh9TMGEKwhUtDMB9AchLC2AyekbbiQaMooRLLGLIu1kOcpqRJyJK4eQaK1Seza9NLSXMqbAYssRqTzW2bsUlbzQ6XLuUiRC26zopE001T1Ne2fShjL2lRkRnMZsIPEF0bZkAyasprMI91z8pPTUueapFT7GdtSH0By1SU2uvrRJdCtuxXD0zKeAPRgAQGowmW0GQjFoDM0LLLQJAs0AJSwgrLQ3dDzBSjDFqpnSdpxjWTX0ORnFEwMpETWaU0ilXq9dZA3obTGgaLQfQXgkiwsAGkwx26pKQE0Y4M0kMgmjFKck0zViWaZ1ekUA4VWXRcuQnd6zJoMJ4yJZdsea1bK0nDimI1TGhmigSiT00YWszmaT0imQTScTOnmweQvsNJ5DW9XjIoAZyxTMyMFkf/xAAvEAACAgIBBAIBBAICAwADAAABAgADBBESBRMhIhQxECMyQUIGFTNQICRAMDRD/9oACAEBAAEFAk413YOS+Sf+56lkUU4vV7BbmWHY+ogMYQmKdwAb8cixmmM8bLedz7lIze3XR1J68apkH/b9Qyq8d/8AKs7Zt82M2i/2CSrGag8DftZ9jZXc4+fAhH46ZfkrUluUyUtY3/bPkVJfP8iyu4M7PycqvwYx3AQYYQJ9wLFIBOubH1CgzwBvysM/x+57x8qifMx9qdj/AKckCCxDGcCdzcVtj/yXJrN7dQoXN6z1M2dVyOs0jo/Uc2zNvJ2PG/yTD4iNuH7b7P0CI/2IT+OkU9mjExnRzZgY0wcj5NX/AErsFGTmqiLdzGPaNkrunij2Xoq2ZjozZi9w5QMW68xWs4ZXUe5RZZlVXWX8rCeU36mfQ8zfqZ9Qia8/QX1hi/beCVG21G/HO5kqyeU6Diu9iBQP+luuCEcVmW4VDcvZssIrWxwz3rs9zIqWhRFVGl7dpsbI52ZXHHutyKXj4PT7KsvoxVPIhOp9JE+vG/AhJg+/3M0b6/uvgkiMwjaP4658t8pccVtR/trLunVtVT/0BOvxkXis3Z1dbr1BDXde14XdQewvYX/9l7e1BljjbyttpS+17Ssp7lItyONmJlIcvLyKbJ3Paq1tU2I0zKkyqsjGsx3bxG+mjGbM14bXGr6ZtERGOz7M7CIC0NZjzJV7EfIopXF+Tk59NHB//sJAEsYIj5irQ2cblq6iahlZVr2o5cXBZWheXsUoW727upYa6q+VgsL0lg3bUOK5h5S9u1gbadVl8ghURHnlFqazmlL24/XXdsnexvwYF8D7J1DKzofx6zfjXkytuRsMP3n2C6ZHxd9HxuwmDh//AEk6BYAZmSKLKMjuU5uUPjHqjLY/U2dcjN02IS7dTsZL8rT42LWtVtjhAl4VedTpjn9ZmDXEr2EwsVWoRK6+q0RO0q41FZTMxsZQx5yoPeUUVhaczu4Nd1uThG+f5WGfpbHx/VvEX6cz7BWaXlv2/up8AnR+05AaMXc6n08OcvFrpr6Dm44x1zzVKrOcBBMB/wDksyVWzNyVWd+wvk5HK03mhsy69cqm1rMutq0fJYItCCqZCrmUrZW60uarc1+Mwr37gzEqqa8mDK4WjmchOdcry9Wh1VGbcx3pFXXq6g3aVJVee5V7Y+Pd2q6NvejpY3UMZrsS6p6XbWh5PnevO9AtAIBG0X/bPLGlfD+Jz8tKr676c285GTg24uDk5mVY64GJfcqIEGTZ26sbJ7tn/wCN2CLWwdPw+QOAv0+R1Go0nqT1UZeY3ySLt57IXW+vhbwLrdUz9RNYeu5d5VzvK2eV3fqW37sy70sXmNd8cRa3NCXONTxsVbAmTzQ4gfihUvVaptrGPdXm1NQ3yUMDKlVCJXAPiJvuirIFYqtDz/Kr8awn9yryPP2UaLaMRfewefuE+
96+ qIIqIIXEYw6iEq96h+m9Qq7V/T+nLffdxI6M3Ufk18+PVsk8Me0DqGNYLav/CnIqtVLFf8AGXbxF1vGd5O3nZXrTcUGPmM729RCuuV+lZb+pkOtZu4vXyQ2bZFzH/UvftU4d6Ke/Mitu+pAXkd0MgPNTdZZ5VjuwkDY5D9+LYi4/TCWNV5OSMlVzc7W8IholFqU77AvYZFtKnkO49g3zdTctdlQRscWTLzHxa/8tai78Bp9yinwlXCFq+VpUsSImoCSdaioTFHlt7bU6hW3+sbDJlmRbjlr2Mx+pVVCzNp7HUcmzmLBOk5r9izqLjqC5vm7MaZGU70NYXqxbTYL83ibbDGyvTHyFCvkJ3qbzq+4K9p/WevjRZYOOTVyr4cqnarhmXV0tY697uzkJSjlUt5WZOxav1FPFWfkressACqfIMxAWvrtFVwzGa1We3JsqLTAp+PLbbe/ZYr4r0pRkGytcagXdqtv08axVmX2aIulbJt50dXXt3+TCPXEUG5trH5WMq1SxTyHifQJ9juINR3mzNecjHSxlycRqUupvdu3W14rvlddGJis/wAe7ZrXAF9lWWwuyBfzXEZymZfwxabm2hIma6IL85Frw15UXUZIs7jXZF3Ki7CSqynKZUvVuXT6MuyWZhtbp96kmrlk3W1/E7hBKDtAAvaeSh9S0einU8mbVRX7Qzzx+oCBMNtPR27Ma+oLXjjvV912gv3LbBk4td1rjqLsl2J+tY3KtBtMZHPC7JfIGItaJ22uPXL6Tj7MP1jlCHtIlhZUbxOTT+xJM4+qCHyx+vuJ+3IsVOn1Khyc07ycnqrqcFbON+ZjXhqslH+5XkNL67GGI/tWrmvqj2CtbSkyXLWMifH3vFVuUD6Zq9Z2W17JTbwxWZrL8BmOM/crnd41dOt1bZfWca4gWMEMsI7eP4dm9YdifxswtuA+oPsdcdjiNEL5mOr/ABjyvr6bltUC6Ui7/wBrK1TU93CwdcNzW0r2q6eIuoZ6kx2TdtI+dTkLW+GeLf5QjV9YJ2S3musdlqnU2gGLWjGxPFeiN6h+qvobMO9rWda9fkpkovTwbMAVWtV05EFu6bs1lx689r676WRreKkUXnSbNmHbaBk9u2vMxjj3Ydym/OULj0hnGHZaxr02E5DZ2Rk96rpifIzOp1MnUMRlanM02Of+NSdVO0t4lljNK/LNowa4cgsc+zbcmDlr+x3B5Opjj9RS6xxxvtTkpsIAptSl1dRi9+58k9zMoUW3XOPkZyr8f5fEsbrMrExqkq6li5GNVba97JAhgLJO5ueSpFgD7aJ4mjtl4z6TH8knU2ODvuYB7B6Jfbk5nQhfyHEvm497XZvP49tvOp04rWW7dW+SuOVcZqsmzqALYGAbK8hXGVR00VVV0Y7r1PIf44W8VWZV/M4tvx1usN13zHWM/Kb5H6VN6dtHyYF3YFKv/wD1fWuQEc+eXod7s8MPLMvMcPdz5wkSlKLGpmTbj2hjwGOqvn2WdpHsmS7V2144GIx+Ph9Po7avqzH6o71HBLLZhvYZ/lOcyD+i8jKvexttLFQC3ucndzA/qnkudSshiQOFfgMPFSklyEOXRdXb0yxP9b0zvZGQ9zd/VijqaYl5zCDOfqmhRQgZhxLcuMwA75GboVo6LfXkcS1x7qXoLOoXAU5Dg2WkcteiHct/eG9f5niOTsERdQN48mMdr6kMfCk6rMsiLE3otqLvlZerirqSKLrBlytkanpdZdVNlb2K/Puta9Jr71pXWN4iOa16tmNm5WEBF6riKOs5xzbG8SsFmqbTDuaNmozOQ33E8HwYiDhOHOENKieNkx+oYYpo/wBfi14eSLWLWfJaotkZODlplZX6L8VYOAoT9xtYvW/mu1gj3rYjaFpvctZfZsWebbPVeOo2wE+rfMO9ACb1PGifYajs05GbjiINl040pPoMPU+BX4q/db/b+1myen2ObL6EtnTXZMU36dAd3v8A+9jDXUMsrThrkIcTqFIfpqVl3bIbn/Wxm2x3EOjUG5WdwzQEJJhZYFGuIMb6UeF8Hk29+qGWP4w8RfkZOOHsCLTjW8WxkyGFVfL4prFbV+968WezjXD7BB7VhQHFfaYrB7EleacgW/49iLvlxJprMb2dvDHfEctaOyfZ/Efy24dzxtPEuMBiAmKPaz3jECKAJs8FY6GjFRar6MjVqZPDJybPSm5uNitldRoqV+r9WrQv1Z/9d1DO602Zi2g10QeQ3hu2QyU8AjHk54qCxLfWp5m2nnaxRuftBMV/H84JYWJ8bFqx8db17drLZXdVXc+WjZFeTXOO1O4QzV8e3NiKAZeqqD4bG1ojZ8RnPFlHKz/kH7XAErQNLh7KNVp4WocpxE+7PZSs1FU8vEu8xKxyduM5+qnZbyd+iBnNHTtmvpOAyZnSV1jKVyDvu143O6qoYWZ0ptdRyLEweqrcz9R/yusNV02xExkppzem4+KXl1PamRh2XWfFeqqwxBG+j6xz42IzQaiMNosZhpmjNsoBCZZR8XERslp0xmswqudltDOLMay1q8+98q7mRWbF7NOiB++orE0strV0uqULXvjYIm4fsHccGaHBzsU6142SJuJ9nQdtbYxFHcrT35ebHIKaIZzp9z+F+z5iruY2P2pgebcsKuTbbwsztZy5aj5NWUK7czjemFZtuoVocZcg475WXfkRSZlXW0Nh98Gq8CLkbOUU+OTt38QbJc+XUmfU8kqjEhVWBvViY0VNzjocyCzaj4lDCyymvFGDbbfjmdWauzBbRPcFjBN2V+UsUqaGaKeUL6AbkR+FgXbJ+6w7jn9MRG/TLbLEa35rInL3U+5MB8b9d+PMUwnUaN4m/BPrhEi62znSlpFS39zHakXW9UruxK78kPioFe1a6K8OstXM8M2T1GzSIeErq4BKK1Tt9qKP1fHNjzHDuWX0PWFbcCy1wB66T7H0FJPEgFGJSgxaZkgKSV31K+ykZ+RzTFrsvfA3/qspuVnUDe+ay+rIRKG0ncbV9ZeukcYn7mUcCCjHZm9Dt7AAVDs37/VJhAnjt/2Jn9laLFaN+7fjfgk/gft8weYftfIb9tbCPcxnfLDBtX5D9RPxurdRN1Fa7x7f0Jm3gLj8Di24iFbKrLL7K0rlVzkm31tbRrrBCJZoOtcxu0g6tZxr2dKbOHEmJUTEpgr0FTU4TgBNTRmYbQ6kiZ/UsdcG7iTX8GvFGXVmjDwqsJck4mPS3F1RluK468k5pOQYgMJUVMLNu6L5jKVqrYBWbcQcTZoP/DfZ3+D6z+B9eeI1Cfx/XyI0b8eYRuU+I6lmNYmtsiK07VdcSwc+pn2qLHFs5FsZdZGwtHI1j9WwWVMqYm4rtvu7Deaq2tEQlovpZbgNfk24YocpBVAogEA/G59w/X0Mqo2IcV1BpMx6rP8AXV4jlOldK+NmWWKWzehvbLqcipK1NcbTulyva9Siysztpo+Ba3Kqr7sCkOuns/dz8nyP4/vNT+PsaGo37T4B+nHgbEP1oTX4fcTxUojsOJPtjkJFvbud1iLvdk7QovZRG8UZxauml+QO5a1lq0KFTyZjUnfG2IXptVtFiDYzskyjyv1+dTUImtn6hM3snxH1qrGq+Tjvj1UNkDGGPZkNdkA3Rse/jc+R3W9o9HFMVF3aRupwLQNTkONgCms8ST6E+7/SzctA3/Y/jxOO/wAHcx8ay5/iY9Q44/HPx1rA8D2jHyq+pPsda23b+hr1ABniEgTHavtWILKeya4/tRbezWZDlq01uhvKcSihSPpS5QhxP0ydVgr4t0BXcvGz8ctTluMST55MSR5hB15EO4fJs6dca8JESq2gPmW6WqvJuFld/Kdbx1YZCgWmwynirXgpAvNQgMrLLLa9z6g8H+eX4B8WRYdQ/ncr9nNr7yMqxIL7BPkbPjc8weRyWEoY59mPhuUr2JoGIIltcd+3Uba2uTzU/H5V6+gIU0EvD6oOKoG2dbJQ8QOMEp2BUQC7Lq0e3GED8ek5LOXIn64wKYU8CoGU2f8AtGlQbSqrjsMg5dLmVUc1z8psah1cRVbSLY7MjGtKtPWIVPD9kt2APJizxyB1LYPxs7g8QfVR4kOWWzW+2zRqbmgxbIMMmfDBi4dfIYlUGOgllHud8mPlmhEQOGtrDE1hsc1cTiqObclZU+RXXWKha3sG5OBshROPGC3iyKWbxz3HfY4sx8AtZ5AMIh8Q+YFnGaH4I3OE7VZNtnbpyM4319Kt3e+Oplo7M6xmY7hjp91MQS632jktntTrl3GE0tku8TwSymDTRvs72VLj4B7K4s7FcGPXs1CdkS1NDme5X+pKkGuIn8TUK/jUZC0fiiP5JPGFp/WtbJsGqvRGKxZ7SwyKWjrXar1ukRStU149tJUJR5HY4MW9mHJWq83UshSs7K6jRR51PWa8gfk/dPUOFrZKvYcU2PTQwsIAl27cTNQq2q7FCpusstl/6qnesd/LD2VdxgIzJyP2v7m+128q1UCuyFmhNTU0JmoQo8yj0QH3GzAJr8H6348fi30TIs7n4Jh8x+4Ex9ctKlON6M9jtkp9b9ydz2NI8EHxXYY9oLJ9VuTLOatyJgJMya3avzGXcUfjRMAXexs75RtQsZmDYw7Aa8KoVK6L28fq+MZ1jqPZx2stsTysRACieLe41ntNPWKn5oW0WO46vyYaixKu5K0CzMPvR7jiBAJxmh+MoBgmw6KxlK+Qs1CDNRiFNY8aH4zGUV2JXtvsH9MeQxaYRLJlMa7McmcFWwE9zXtK2O98o0JIAILC0CUWKZZd5L2CV2kxf+NwFgnIfhfv6J3NKRsTYnmJ3MiurHqZMAaqfqN9eR1O178h0d0C6DjQZ2RqlTXe8F1eIsCDS6MaLQHsC4QgwawwGgBMv/n6c+5ubE1OJhpJnx4uOgnAar9ciEGcYSJlH2QrqchM5laHGvaJh3avXtjn7dxpiWPXb1Otbciqg6rHclygWhRAsyKyDik8SPB+1X2VTrjxV11BuceMa1tc/B+gNfjYE5Q+RsfhjqeddTSvF6UMkb6zffVLMi5379pi3WArkssGWpFl9ZCWrOIEXFusPxbawJsA+Sa1JARgaVedpoUcH4/I9Oq4AVuVFR2ABNichOUJhMf/APY3DPcD9SZD/qV7AbZLJ5I8oqM1+QNXrfY/ZaW4TNKMN6VYebE7aOy0y9g5xCli8Jm1nhiLyrdNR6tRgUlGwNNFCgrxZXTlT2zO157R0KmE7LTstO0TDVqdudozs+ezM3p+Pm4WV/jTAN/jmSXu6LYhbpWQIcDKE+PYIKDDjbi4tgZcflKFtrnNtaDMEq2Ernr+Nzc2fyRAuppYNfn6hsQQ2tyDWT9TfGwjg0OOhgpUTtTtTtTtwouyiiJ6wPye3zUzHv3WbmW4ZQfTo9df4yNmrp/3b5i6Q7RjtYpXYHnflvrRgXYm/K7nifyTOcFimG4aFsbrHtV1AmLnJHyMa2GrAefBVp/ri0bpgh6f7f65t/68iN00z4yh/ijfxUnxfPxzyNMarUFeoVmjCPxqcfwfvx+CkKCBYVnjlYV2e1z7djEY8VdRgOKaI7YEZK9cRLe9y7eQtdbi+u81oBWHVRpel7GPsRtEYKlZkORC5i2tP1DBy3URsj25ahsm2M8zmRGs8h5y3AZ4355OFK1lTGbybRGZGa3jxAiWskGUS3y35/Lr0MuDKM+S7TlbGNgNjOYrcWLzkBN1zlXP04wTWpoCNP5M3+W5TnZzL2KLMljChsNOMeVePWs46YeDxG+IUqFhnHZK7nGPxWWBFtuocjGUGtxxbALfGOydOa8McqrNtO344ARLP15/YNCf0jyYMDy9o3svneiQQwhcgrszR0rMGcLCzzlbOVkaxp3n0bjGIed2C0Tkm0evTmucq4Hrn3CPULBsTW4RZDyi/RSaAh3yMP51PE+5pJ2lBux7WNbsrDJpndDQ6actEkzluE7mx+C25kULdX8GtExBbe70c4OXLpI5Y/Ebrs5ZYfjbw0ebkibIfxOJIpWeVgr8mkxUVSUhQAiceQ4JOCwKY1QM4kn+f54mcG35ELNAWIX8HxPG9/jepyWCA6inY3PE1DzWK02sH2xnOHZh5Qb/AAYdEI5A/iX41VjaZFDNFLTuPsspclYHaBmgYwGa84qkjjM1OGZ0hgrZ1q004ldddKpVvRY9pAbEBi/86/uX2iJ4/G/O2MMEZgINgA6mtQT12VM0NzztvpSVm/x/B3Dz0Nzc+/xr8eIIRGXg3IwQ6hHj6A0Zx3BuaP48w7m/JMdm0HmwQDqOpZvO3r5TsQK5l9WSIxsxwHcxL0MD8ozkBzYZnDUxWIvydXWLapWrgx5acbM/jGc94cWipFUJNzztuM5rvxGE8T1M1o+fwGM5RuUUHR+vEb1gc68kedQjxwJnBSERVniczOREbzEBn6m13rcGtDzOP49jGDb+oZ5Ijo5gVpwnHjGQMOLcdsDz87gnHcKeeBlitLVcl8ZTGouRa8h0C5HMZjBqcduMxl1HQFuyY6hjt1nd02I7hFLGWWEBbY1ilUZJ4hIDcjqu4tDZyRCIvgKZyn1CRGpMSsxajOB32LOS02bNNvEBu4VYTiNtXHrENYgA0RqGfwD+AZ9zXkLqanHwPoDU34biAIGMPLSMonIGE+PGrA5ZQ80YAZ/JIn8HuRlE4GfrrDXf3DVkS3FlioteIDDz5IwB7qxbQWJG8x1SmjJRK6ybRx5GuqVVoHtLcvaA7LbhHnfGG9CeSzuid7YazbbGg1Lzs0a7dU7aQVmMNQDaHt7sCQ64u4EVQ7tjsxWsQUAKUG7KKmD4w4mllIpEWpd9lQGoEVVjpxlrBZ3yZjOLCyeGqG9VwLsdkxq9Mp2G+gq6Ktvi2uB0RNDlpZx8keGTz2js1wpDVuHGBi43F3DbVPaynYC21rb8ucrGdXYWU3R8jUozW71+Qa6mzneJkjnW3g6Dhk4bVoRsabXDhNmFmWOLBP1FhyreSZFgYZLSrLnyhDmcm+UA7ZVUvtpMVqzLKqyi0MtJpvsnx7mjV3GV12CKjtLV4xW8PyVV3yyqn2BqGkkdpSPjr26scIpRw2+RSkPDjuk7T8ez7PjAwYq8Th6rqR1nbRwKE4fBWfCPL4y82wp8JtnGtllNnKyhkIx3MekzsGWUPOFomn0qMZ2WMso8DHUG/AQmrpw5WYPIt0z1HT3Qph2ayKTK+6JyuDG1wKchhFzFE71bTuVid1YxBDuQqUDhdhh0XEs43YorWnH9LEKHttzfFGrannaZ1aphBUQfqJsRWs1yujWWSxrd87I9lkay3QuteDIKlrixN7grkEz5Hhb9myxGHNIbmSLlyzK2q38ibWheyLa3BL3Ba+wk5T8a8gyvME+WpKWnmMu0lc4BbMtCoyKuPfqMZ6GZTTys+KZWmLxb4yvyx96x9BadcKp262laUa7aidtJbi45jYdXbfCv4NiZagrchtxxv4aPH6dduzDvQfqBVe0FMlxLchtaCNVapmiVX2hBjK7x15BFbYrBYKunrO3rLF6lWW0gsF4vUm3NMegmWUWRap29EVGdtyV5acvBZxZlJgQ9vg4h8BT4Ybg3OVZchwF7hNIbTBlbj4FZ2a5XVxKan1CSYDCDNe4sXhzHELsGkGK3kG0qVsE2YWE5QMYCdAx28QE7DusGRaJ32iZU7mNrhjGdigl8INLMA8r8ARsbGlqAxKhEBWIyzcZVn036YPJNBk3xVgyQ1OXaptGl2nx9Ds84aDOy4SpWKrTuWVaQ4+41REXal0O9ExFsgV+2Md2NeP7/AAhv4uocNImKhBxgJRUvcsSsscfxZSeTUkyyoqvHU4blg4zY06+P7kMsQv3NttKeddmItcHMXc4zT0M9NWBSFRYavH8lBvU7ZKcLAzqwm/HLibCzRbXRa77Fny3WfOsIbMsj2IYSgZjqbTWwFDAwmWJziVhE4ieJ/P8AJ5Qc43gBR+AfHiMEVdAzhGqWdhDDj+TSixVG+KwlQKyCPUz+PWBUK8RtaVVrKkMFQWGsRKxtqQScdNtQsuwuRTArC3Ybg04VgdqfZ8RouL5qx+DoocWYoY1YFqFMUOhx63luMhBwxwXC1Y2ITDhAPbhKwtwF7teJyl+ERHxbQDWdbBCLLBucTGExbRTZeA2WSrRUt3ch06eiqTLU3KxoQEmcvHKEnXOERjo1ly1g5L7ouzrKe5ImWchrMyyq6m4244ZzOQ2x1LLSK6rTvlxbQIX1O/cQ/gxWO/48b8M2vPvDORAWDg9ngLyjqlilBBWFD8N9yvXfEGSGPdVYMmrmxBDPpGcFE4y7nxM+Rcr12MbIF2bAK3sx6ngw61Awv00wuMvwmAbBfl8ezka+MA3Fn8/w3rE2JoleJ5HYJfVpLmOjmtCSuhrUA4rrc4+LGXXCmo8a7KuYrCupG9tHqFkFSQj2dwsdxFO0Phix0hYMfrfsGBDEGCKTtH2Wcw7ChvDuAe7uLYrkSh3J5tsHlOC9yyoPSuMssrMfHa2VVcFtrDVUVwV8X8cWHlRuW0WLaLSro6CPdQZXol6E5lG2oO1IsVjqcp//xAAoEQACAQQCAQQBBQEAAAAAAAAAARECEBIhIDEDEzBBUUAiMkJQYXH/2gAIAQMBAT8BpeoQ6IUv+6bg/wCezHCLf4NJMqa6X4kEe1H5NTg8jm65K88In/pA0l7EEEcYII/pW4tW/g37PxabIYhdWxd4II/pYtv2JMtlTlmWvZiyuuD0oGOv+odQtCYtjVk7MQ0dm1+GrLo/4JYr+oxEjES2NWiSBX6G0QjHi/eg6KpfY4+P6aBK8jZWpFSx9FOiqrZTWpGSKz2PT4LgxWavJNoG4P8ASf6GBuDITtA9IyKUR8E9xboT0LSln+lNJJF2pKuE8GuKGrvY4PjQ/wA2SSl/ZnvQnJ5CtSkU0w9WmBMj5KarUpJCGUjQ0kZCdmK3k6uhivNvgdkhido2NIUMdP5SX2dFQ5TE5cihaKtFOuh/qOyllWtlFbMkJlFUVGxLV/i1ZBT/AKLb4PY7PV4Iv8HZEDYrQM7E0iR2Y1H4EWkmENiRVBKHtiZXopZXVJIuiUxtEk6FbvZTuk3BDtJJVozKahVwZHZFvJF4u2J3m0XaO0VKGY2/7ZL7K/vlPJnV09Wq0PomTor7JhFFRMDUsVkioTjiikVquiRIqaR+5kQJbHTZDYzy2i1VQ6/o3ApFPyPm1I6btW6JEPs+B9GOpOyk+SLyhMqq3ZrVqlOiJWhjq4KlmWzu77PnkmU1EaEK6hWaNlIhklbtJW9HYoRkyljVkhWXCTK1UM6Q9WpHsmSgqqhCdmOtQUqUNMUtj0yjeyp7MtCqM5KGRLKoIu3N3d8o0hShuabIY2rriiu9QqRIRCt0SMm7OxKBjrJMvoh3xk+RHk6OmVM+B9aFb+RXJS9Wp6GLopZkoKrvg+/ZcxopKRqBC2NCOyIHpCIMXatbu3sVSEzJopq+B3qHbLjFmTeYtT9FRXTBQyvopUlDKeh/uKqpKFLPIv1FPQ7Pom3xzj2PG9nTKaSrezybKVA9lIiZZUKoStUmtjGSdmJpEoWh2kY7QJC0Ips0PRM8UaqKlKKDs8aSMf1QNwhOGVOSlwPbM3xfuTBIhU/YipfJJ/EqcFDtTvoqeyIGMpTZJXV8HzarSOhNigSQ6SIEPQhkjEh07J0K9VKY+xrjRMlQiSTLY2fIyT55Md1xYrMiyqFWiU+rfxIIKXCKXqRMdqqpZMIfkQ3NmNSOCBQKzNjdsoJGIyRKQnN3TU2OmHabpiZl92yJG9kz+AzLY7TZnwK6FVJ/E7NlKlHZBUypaPHTLK6pdkhIYxRbohjZNm7QrQQYkHXCqT4sh2Q4918lZ2jixWRXq1LhCezs+CikpiSpxVoqrlFWldEjqGrq+uMEWQzuzklyNffN2d4srtlJVZ65OyMhEEW+bLZgNaKlBT0KyKao0eN7PIUlSlDduieKRAlZqyEJDs+jfdurL/SqqebRUotI+T5xaRiHydqFDGVDclDtMDdn
97+ +jZU5KZk8jacDJjmneTsdkZE30N3q6t0SPhPF3XOObFxYiRfq0YbkqphFB2NqRaGoqPN8IRS4ZVVLJJ4tWpRsdpJk0OokpsxsSs5KnaR3dkiIumPbvH4jFamR1PE8lUlHdo2V1Cr+yrdQjFQMi82pRocEkk3kki1MWkaJUH7hKCqDZ0ZXiyHx7F7y4spZJI+ilk4lbkp7u+xbY6dkQVuFAyCOGQ6iSSbwQdEyQKoyFZoppgY6CGhnRAhWizshEfhofd0MxIgq+yizeytFOmNjrUnkluB8Hd8YbIOrQQQIXeydGVnaru0lTE7pjHxYrK/V2x1MyZSzs1x+eKK18j6UiYzyfuK3oRV0NbK+ybzwdoIMbwQaFZCF1eSSq0DFZCUDXNWXF6IkVJiiOMM3wdkpKf9Kqf0iTVqm3UV9W/iLbK3L4Mnihk3i0XiRXWxiR0aGOy3ZWqHxV44VbvJkh1o9RHqHqHqMyYqrq0wNp7H0JzZ9lXRUeH6GlRLJvHFSzZ3dLjkjIbYtEjKR0ogqdodkrIWjsfFEwOozH5R+RmRkUsgeipkEcHZRZHZFpSHtFP2JzsaPgdJRqo83CbJWggj2JJvP0JikVmObtHVoGLZVx6E8iom8EFNu9D65NcKVHD5P4j0hEHwNi7PL0TeCLRd8I5wNCIgo0jJFVaRkdkjdoGhM6GK0EwMoKuiCDE0QUo18kor4pDV1sVn2MRQipSxDZ2VEiWVJVS4J4T7ejRq7py2OkQ20OqeED4RfI29mY3anoxb6H42RA2SbN2Q+uNC0O6E0YNjpaZiYoWirsT2eRFD0Pu3hejzVSrsqi8EDENEXghGiDRBVoq3eEQjEwYqWNcJJs2SMgmk9Wkfkx6KvIZHfJdXSRC+xLRKkbQqoMiiqkfkTFUrShVqRnj7O2KmDzeP+St4qvg8q0K0lVpsySSWSSSSSSS7Jj2OSX9D8h6iM0SjJDqRKKql8DqMiTIknnL5wQQavk0MghkWgxZToqWlAtQxnjUCoxt5erU9lamn2GQQRZEEGJqzEz1DIyG0zGg9M9IfjPTZ6bPSPSMTA9MwMSCCCPfl26s7dnQ5+DYojZ6i6Kn8iSWzyVbt5HeNcYu7RJFpEjQiUSjRpnqL6PUX0eqvofk/wzMzMdZmjMzMiWbG39E/4T/hJ+k0aIXKCCBR8mNBjR8D8dMH7WOqTsgi0Wi8Cpb6KVqHatPsXR5CSHEiWuEfp4TaUhMeyCTQyBUWX0SyaiWSzJmTJMryjRokm8EEXj2keo0N5EMzMyeORI6v8F5IFW5K64FU1atEEfoxF0VLer5agnhBBAyLxaSUIkk3+PPNOBEX9PV5JJJMhXqXxajorRSpZ5KtmRmybRqy5RZ+4n7qMSOEcI4zBKZF9MaIEiBQYSQdCZM28T+Cv9p4+mzZN0P9qtHsz+DBjxg2hSd8ZGRxTg0QSNzaLwQYkM3SzJfRVR9Hpv4PTqPHRVS9jUqDyVr9qslwqXRA7rhJIuMo2YmJiYMxMWQQQYjRPFMbnsmy5a4Q3x7IN8JNmTPUZmLyQeqz1GU1v5PgeyLKGYmOyqpySafOLNcG7aIRCIItBA7MSkwMTAxMEemYmJCMDEhEQMkWyLQJEcIIZDIvF4MboyPUZJkShQJoSgiTEdJiJEFSEyTIlDdm5JvBkzJmYqz1D1DMzQ6kyV8kIxfwQ2Y1EMhkDuiqkgxkxMdGJDsqTEgxHQYGAqYIIRgjBGCMEYDoMB0GDMSBoiyTItMm0ZSKRDdlbExGiGSSZE2xMBUlVAqR0mOx0DpYkx0mLVkJsljqY2yWSySWeoTI6hVGRkSrSSOoyMjIyZmx1MzYqzMVcirMmKsdRmZIlGh4iVI4P0kUkISRCYqaTEgdCMUYMwZiyGKTITkhDpIun7EDQ0NEEEGJiOkggVOpMSLYkEDR1x6skdMkQ1ZGzvhlokSkxJN2kl8JMmSxMyM2ZHqGVJFJgj0x+M9MwGJWVoI5RaCCCCBJkEaMR0nQ7JMxMBUmBgYGBgJDRiYmI6TEgizVmhWVOjGCBMd9CRgOkxMSOWTQq2eoeqeozv8AIggj2oIIIIIIIMTEdBgOgdAqTEgxQqDFDSY6TAwMTExHSYDoMSLJEEWWirvj2QL3XK6JbHIuDZv8mSbST7UDpMTAwMCqgwMCPcifej2J9vL2OyCB0kezPs//xAAvEQACAgEEAQQCAQMEAwEAAAAAAQIRIQMQEjFBBBMiUSBhMhRQcSMwQlIzQIGR/9oACAECAQE/AZvUUuUT5eV/etOLuzUkn0Xs2XsxvajH4xhKaU4yFFccsSr+8acOSYo8IX9llC/Fkd7/AA0pyvHQ+aFfn+7cXV7VwhS8ltKt3+FjR42vd7J8dU5oTvr+0tpdn9Tp/Y9SKVkdaM/4i/Nqh0sF1VCrkcnxpj/Nr8V+F+7PjdGnp8EZGq/s8p0ThLVyShIklFWiE4KfJo5xnC0ajnCNoetqS7Ia8nL5kp020aevKLyxa0V2S1VqUrKb287Pbzve72Yhfg9JpmnqTjJciPyz/Z21FWyOvCrRq6vHA9ZceKJ63wVkNWN46IJxuuifqFGPEeszlfZSKLckK07P6vVTNL10ZYnge3nZ/j1svzhqRl8hOUpYPT6SUbsV1n+x2rolq0S11GzU9Y28Dm5dEtSTXyI/xsUVLJ7OcDlxVDSRxKTZDT8k9P4WQTOIxxNLVcH2R1FJWvxrdiW0kLH46fbTIxnytEKlghHiv7A2lklqtGnJvA/mx/F5JSH3k04pypmrDycWacZfyiUuKvsem+xaf2Tj9E9Hk6gRjSXI1JciOmPB2SqrLVnpI1C/wvbvZ/7OhHjboi2N+5KmQXCNf+3KVGnLkS6Fbya2fjEjCTjUjWVHp0pRs03U2jVnyQ7bs9rk8jjKLon/ABoysCdZQ/VyeZE9ScnaPTa3iQ5Meo1LDPcm1TIriyVROxcWuzU4wgThnB6F/wCpuh72W9vA9l+GlrVhkNWUnZNz05cjS1+XY1W9f+rOfEnO8obclZpSq2Q4zh8iUVGFIlyksmm2yc+bqRBvSeR2nZNclSNON4NXRjWOx6DlI4JIencMGpE44Hp4s6ES5PwaM21TOV4OJJ18UfvbBp0pqQpqXW3W1lWVs2Lo72v8OLizSioqzUjLVRpwrDNCPFWxuzohLkr/APQnNQOSHKiMm20ceVkpJs0eQ4yvApNLI4ySo0G334JRNOCQ0iccChjohCSyyvo4O+TOColUVbNTXtVAecmlXZqK3gcR2huUSL5dHFoy2NvJ/wCR5FhnEo9IprPjZuihsQ3gi972reSsj/PJpO40yeu4ql2K0aafH47aut8qR6SWaZJV/sPG/POCE4sjqW6HJocG3Qm6ohciDcW7FdDzTNJYIrlI1tO8I4fZCa42PJRO/BT4pEYjVCPB4NeMm/0a8VF0jjUTg2sGnjBrp3kU/s/l0R+KJIQxOmNHveDTjzs9HabW1bSmOV9GRbP89KSeo5M55Pa5ZGvBoa0liQ9SKMTlYovo5yo0tWxajciM3yyS1PlgcmnknJpnu3Gz3W2c3aOSyipVY4kIsj/E5XNiWaISppnLNs+V2jTi54Ip8cnDyUTklgccYNPKHs8s6YnYu8D21mlA48oktBKJKHFWiE6NSfuZF0JPwR1LVnckibVlWTiQuQ+iLPTy5Rsss1H8TvtiwWxPfwL8LIT42ODbtn8T+XRFuBKbnIS5o7eCTSI4IOjVqyC5SJwXY/2aVt0R0W2auJUQnCqOKjEjU4/s1ZOLUUaWY0ySrUSJ6S7Fo8TWg1k5/ChRlzso5/Ki8CVMcSA9sslgX4ayuJqclg9xt0TdHCsnFlcXkcYpGkrVGp8Vg7P+WBqmKHt5JSbYnTs9LpyUrK2mmKJERjbosf4SIq5FusEFatkdC8k2ukQ05x+Ryg1dmVZwItdDJNeDRS5IcbIR7ZyfLkX8sjW0JfB2aXC8E43OzpGv/LkhVI428mtDDFCXLJC6E2eSfQkP8KPI/wAGzVkudHFJ8ma0byj+RfGOBJyQlXZoVVkvkcsKI2uySfYpfAlp2uROLZ6POlskSn8hTTwRZyoTHvLse3Lbg4/I96kTdRwPXbwRVo0rm+8GiotcWNUqLJR2cU8kbUrNLV5Kn2akHTo0pfLJJqJqRSJYmRxp0yEKeDWlwhg0J/A1cM0m1KjyPslFEbGyiWFtbsoQsflZqPA5ebFmPYsOxeY0c1fQqrBqKKp/ZHEG0S+PQsR5CtywLT8nxUcktSTZ6fVhN+3JEYKGIjHIpSOJhFpiHtZ5JCKKNVcka8VGC+zWa8CNNxSyaff2yMc2i8jqyRRFmYXRpyrURqU40NcKNebkS1E9LkRXPI4ckQhRqx5//CMeKPZUsijR0djK2vBytHgR2IrOyytro5YEa8pTeDjy7eSPODrab+KFHkRicbWSWpT/AEiK5vJOSl10J0zRhzNZJqzUweg0E/8AUPO0sIQpMjQkihiHgTyMsbFk09RSRqx+eSdJYKtCNFzj0aZWR/yJSxsiRDuim45JQvIo4HB1RpJt8SCxREvIyP5v6Kz+LJfQhsYkPoWk4uz+mZw4YkSTujUddlWrIP7ZKNGpb8EU+kLrJVs0NL2o0a0s0P02oz02j7So7HhElY6FESW72b25UYJIQ9F+CXPUdEtPjhlKrOkQ1ocUQ+S5FkXZLoUcFHGxQp2R6ye2qwRgjgRjkzshkd3+CKKENilke1nZL+R0t0a6wR1K7NSNuzi30h/TM8US/wDHZBXIWm8yZpS4zsnOlgjppJWeSK2ZLojQ9qLLENjKWzEieq6ryKbVl8mLsoaXI5WsDwjKVEc4Oi8Fik7zukOhd79MYhO9nuhbLZkdpYGxYP2fofY0dEsonpfEcKjggvBOJ/HTRKVaWRSUYuj0sfe0qmQ9KtOXNsird7MRZysaFst62Y9qHE/wTpozJjdUh/oXyeSHt/RFw6RfkR0zveDbETL2oTF1smN0Q6H2Mbos8HaHs3jaA54OysjEeSTonr/Q/V6iNP1X/cm7jaLXEc/olJyXL/8ATWXwVDUtTT/ZOP8ApPiegllo14SlPPRLUlo6iroc/ouyM6WTlf4ooSMjQxFbPbnykkNRj8TUpSwdRs7ySrCiaOmtNZ7Kzg4u6JnaxvGdEZtjEx7UIvIiR4FsxO0IQ3glLBQkPAkJbPZs1dS8I1HQotYPbtGk3p4fRp9cWT0SCccM1VhJGg3zPbWpcUaejHT6JC04zqTJOI9on+RD2T35F2MW3I7OIlZykim2e4oqhmiqn1Z+jjxwXSJCd5JI6ErKr8GzxYvsXd7NZKEUSRWB9bMrd/lqdChTJRuQ4rsvgaHHUdMWlU+RqyadEdZ8qaJx5fE0XUD00e5DyTnyMoedmIuhSsaGyK8mR7XtaHMcyGdtNWacaeSc1FWjU/nkjD/sjRqMLQn5LJrJRGVSpknY+hSyXaFtyobtifxPBRZ5/BoY0L/Ze0kKJwNWL40j2nOrNLQSlyJPNF/JohpVK2Sk4ytdi1mnchakYxuyM3Mao/zu87N32aS2dWWOQ5nMbORz306GiOjLnkz4KnKVIei4fJmprOZp85uoiuOBrihzZhlPyWh2IhteSRVDZHZb9/70yLo5bN0cnIpo0brJJfIZfIcLlZxTfyJJRdEJ2/0T2X4NUe5SPcs5HMssvbs6LEQmkz3bPcOSHqpGr6nnGttL1ij2iOpGT7G7wdI4UhSxQ0cntBVIkRE7IlCx/uIe97Il2XvLPQ4KjgvJBj5WOLNN/Jo012OObJRSIQjBku6LGWSQ2PZdbssra6Hk4lMoQ54wSt9kY8icYohV5FODdsio0uOynmibYl9ElaL8M8kHaySyeTwIe0X/ALE9RRR7kpHKX2ac7w91+GL2seNq+yV3RGVPI5WWacPjYnnbUTLdkpbcdsjGYL3o41+V7JHuoeo+yOpascnZKij0uo00iDtHHySzgjXR0WPPRCfhnY9q3X5vCOP2R00zhE9v8siFtIvZxfZFW2cWlQ+iCaiLvarRWSV3na9myxnRZaLLLZkpnHeyxM8E7ZyKZGSvI5Hp9P3XYmnkbG0uhyzZztDE8l2R+x7+Nl+cslUfs5JCnE91HvHvHutnus9xi1MboRgsWGcjtbSlxVjny6NJ0LGSUh7WPL/BMyKIyxIyiyyyzkc9qTwOH2ONdbRVnpdGadiyjI8EIds44JdFWK4uxbJ7ouh6p7p7jPcZzOZGRWCfxJSL3ssZYmkXYihLZtEXkl9beCSuIuUHZFpk9mY28khbYQpDYns2XtY3+HD6OBVLI3bwdEe8I0nikO4lseUR+LLJr6F0Rkf42QxF0N8mWWWWWWaUvAyfywNY2svfHkb2jkhGtq2VeDqQnbseRpUP9FYojgmvP4se/kVIssb2syyivwgPKL+xtJn9JL+SNDRcpfLoUYx6Oy/ob+xNGDDJKhQsSoVCGOdDdmmibr8tPA+slpGq8De9kVZPsvbTTvAm/rbzsiWMkVgkWchvaUvidb0SiOxYLGI7GdF7qi9qKJUicpxfyOas9iMockelgoRItI5CdiVkm+jh9FUNlik09uQ3JktWVbWafRqQbY9OQ4tFlnI9weo2KRK3Cyy0Xtor4tsnd7cWaUWsi1YobsSKOKGhPA3ZOVIh0Ms03yVE48XW9jLsTssuxYEtnvX40aUZSkx6T6aPS6UX2iOnFLBwicUPTs9tigyUXs9SMTnGQooRY2WSkqLRyge7FEtVIlrI91Epb2y9ote272r9lL/sVH/sacPj2SaTLRHUo5WQlE5Jikjkhzij3ot0hvBpvkxw5M0ouOGat2cj0+pmj1K8lnIi7JFovZSOR7hzPcR7h7iPcR7h7p7h7iPdFr5tD9XQvWoXrIi9TBnvwPcRzOdHuI9xIm4yK/Ym10zlL7OUvs5PZlljkzmLUZbYl+xpnHahQkxaf7OEfsqB8THhC15Loeo32chM5ltlsyRdGpXFURw0yRopx7I3yEeqb20sTR6n+AjLEtnuxb2WKDZwYtM9uJ7YtM9tHCZVbUXI9ySPeYtdn9Qe9Z7p7h7h7hzOZys5HKy2Wyy97ZkX0PazkWci/wBEbFGV1RJKBy/Q7kKFEkixp38T5FtR+WBTg2TdUyVt4P4MR6r+RxZFUzV+UCMShmBvGzssaQoDge2jicSq25Fosf7LgXAcoikjkjDKEcWUzJyMHxMb19CTKZTMmS9r/CyPHyVAUdNuhaEa6HUGS1ZPoblLsSREyPvajlRyHI01OT+JG+NS7IyNVNOyLwepa5FnG1ZdoSos7JL4bXskKhVR/wDS6HRZaKKK2TbwihbYOJQkzhW1GRispl/osb2UmJo/wWXtSH+cb7I+tku0P1OnqLOCXdopnKjkyy7KOJwxgo5x/wCpH1HFYRHXk3bNWah/EhquxZR6v+SM9slB8EkSm1FDdlIZ43aLFJbUvI9qdmRZOTOSItDnteyaLS3b3rfLHaEjAxijgriVGSOO1mTO9FDIzonT62ZHVcSk8kkURizjNnBp5HDicKeRy+jJ/km6wZfRoP4I9XC0maelcsk7nPs4OXkcJJDs6wONRTe1bdii9pZKKONnMljoqs/lZ2Vve172hTG7GzkdlCVlFlikvJxLaLOW6KscdkkzjtZaHQpfQtVo5qyGvGj2ueUxaOSWm0NyE7ZDVaNCdmqrg7NNcU2LrKMWeRT+jman8EZRYpllPwZOTR7jExtj6wUyvsSyV9FFFbeS8lMVDp7pisl+ziKRgohFDRyZdjR+ijKLHQ1szoUkizFnRGbRyVmGUPBx8lstkXZbFNw7FrxkNIlop9HstGgmpE1aNbU8I9xjmJ7cUay6Q68HDJwd2jspNJjR0XbJadE1WBJLopeDychv6ORzVF0ORyORzRyTGJWNmBf5JOzwNnJCFJocmz/BlmUNotHLd7N7ccDRx35LyjHjaxbdFi1Z/Z/Uz85Pd0/MRa8V0hepkuha7k+iE3eTU6PjVjXkplYEjQi5ais1Fc7YlXRKeaLY00NZMdFIUeXReKP5dj0ZLJTHFj5HYhMZHIztF4L25NCdiH2cjls8l0cyyy2i2zkNkSrHpko0VYxOhSOTLMHR2VQyzsSGKRYpHM5o5MU2mLVHr2qOaPdfQpo/05dijokIxgrHG0T0rdi0T2voejKTyOB7NK0JcWKT8HJ+dlPIpjny/keBJPoi4tlJjSSIpEo0cBQY4WcTgxQoz4JT8HgtDkmckckf4LplZGh4EOJdEZUc2jlZaY8DeBYRaYpUczkc8DkdsS+zwcX4G2KTXZa7FJPJcWUc6FJnIWomXEuI3RzFOh6zI+oklRP1DZH1HFUf1bs/q7P6pC1c9kuDFGLyLTTZPR+j+nZ7c0ODOJHBGNnIUrPj5OZJ5wJ4FLBeRT5DaRzyX4OyI0cTihRVlIVGBlJYH1RRwHDBkWmziOJwwe2PSwLTOBwwe2cRwON4Irjgfe1UU0sHF9iXxyMspkcbUUzg2cWUzySsr7LHKVnN3YpR8iemfGsMjOXhi9Q1hi9XpoXqNNlwKg/JLRjeBaI/tHL6FcmQkNros8D+y/A2hJvO0UXQ5Wy7Ofgcs0OVrblksQ2rLPBz8DaF0YrZyRaeBfssbRzxRG3tyJSpn8mKIlZJYMFjGySFJLByQqFKy4iyI/wddl2UdngQ4opeCkMdngoasqkQbSwxymkLGB5ZG1kTVn/I/Y55GYLViaY45wVITvbJRwsoksEUhujl5IzOX0Sn42jMUqVCyWNPkcjlyR2SuhF5HgchsTLFqOzJL4ili2KmJxQ+iviJeRzQmmOOSuPQtSzk/ApF1ghPA5NdHJnMUxpUWULLLycDoTFta6HRJpJDrimLGTlHwWVZKPxEvsaV4KOxp+CKZOorIopo5JYRH7MVkaQ0nSPb+x6VdHFnF9k4oUSMUcskZJdlR8DiYRxTViXyFHLJRyJHFC43RwyPTOFIp+Cvs5DlmkL7OV4YrXQ5ZoSzkTocnIlFkVZ0zKySdlj5idZG8GWsC62X0OchSORyXRyIzrJKV5Lzgq+yUei/+I8yyPTWaEhvwSZztHJknjBFjiS6wJX2T/Rxoj8TimOKPb8mo2kfJ1JHInKXgvAsOh/BnEyuzHK0J4ZI7Gznk5NrbyOJlDeBypW0RZxUisUOb6G7icV4OOCsiS2t9bckmakLH1Y5YyQaIN0S/kLkN/IV3krkS0Zxdjk0OdM9476EzwJ2ONDsj0cbY39nLiJ54scbXI45H8RdmThgbTdHWdnjAir25JPBz5dmpNil8UkcvkONZKtkUryf8qZIk02UsMcUsDRG1knpuKMFqycl5OVidkZjnkbwRlgdWPUz0c80z9C7Mt52vNDi4lWPORdDbSIpcbFG0OC05P6KMEpSXQ1aOdNJmnNHuQHlkkvJLTRFf8SK5LAousnNn//EAD0QAAEDAwIEBAQDBwQCAgMAAAEAAhESITEDQRAiUWETMnGBBEKRoSAjMxRSYrHB0fAwUHLhQPEkgkNTov/aAAgBAQAGPwInQ0GvGwolE+GWMEjGf961fF1I5cA83snag1vHn5qYXftwuunC/CIhYRQ3/BqO+Gmnt1Vf7RS52zh5VOoZec3/AN40KngfmX9IKZoUGjzS19nDZGBA7qI+vG4XbgBw3VKssTx/Oc2ok2Qd4LWzsVztAH+7DRc9ocRNzw1W6g0maulq0gTzEQhp676mt8oP98q+FMq6iBx6qV2UK8qEOLTq7kuiMXQ584hRX9kD1/2i5Vjw5YP+g/RmHNMLwjqjCc9sgMB0xZE6eqBrBojqjqPaAd49FJMu7rfhcwuvDCwrYUKFCz+BpzquEX/uvzACPXCeatMSZIFySvEooE2n/ZpKNF3IvMuPVOdEU9lzOBnsuynmCDaDdQXQULn2XlgzuUeoWq34dmqXjlsLyn/E6jdQDMum56ok5zYpxMyrFfyR67cBxuOESr8LrC7FdBxoax+hSM9Vqfnu1KRdoz/mU74jWJl253VLflt/s0FAaYZ
98+ UTdeDTci6paDy4JTHz1IHVFj4dVMdkGDlDTHqmDU1QI2UTpFs5LkaXY3BQEhUzcBVNbphrjNskozcHZQPh3afdrinanw2r4gA8scyjCi6ldOF1ZqzxiVEKwRqVxPqsLEcHabnHww20YWlpOlxLuRsbkDKjSc7QAhrj0ynVuc4udMuz/sN+Eb59l/CiYvsE6mBawQnmi9tlVVX/TsqMyLXunMzOE7xByRPW6rLSG01ZyVa1N4PRGewmnFkXS1zcWXh60kjdObQGgiagdwiw6YkYnZWG0KmGT6J4o3Ra7T/AON4+6OnqtI6LGAu6kqyuPQK6mUCrBHha3DsrkBZlaeo1jSbh1rgeyZ4h02Os1sprCQNPfrHSfVDxTVfl/8ANk8C44Cmeb0QAm1z6IF7OReNzRFkaWiBzeb7qSRHopAg7XRjzHKDQ11ZE+qqc1ocy/pZM0td93/NiP8AtPGi6dNgz9lp6Qnb3VDBfYkpzNR51JdU4Hqq/ig5zG+RvX/JTzpioF3LZAsdB690dSJ6ohojuiGiXYsmsNPdw5lekOi10xj2arIZvwlEqqVhbEngeOFJ4dlnhpg/Eu0oIa9oMx3Rh2vqt9f87ollLmG4gz6eiHiOLqR/5MqSUyry5KLjYgSmubJnaFph48o+pWrItVPq1RpkmRYlVNtt5kNKRQTLb4Wg8vIaOVzk8N3mJN/8/si256lYce4Xj+HqCTFhYpr3utYNMfzlDVgA10OtaF+aW+GcojQmggB0n/Oih2mxzQfMUH6LLHMbd1AaKqTMD/OipHha2jFTGuErS1dPTax+XgJ1RgKmnaOi5wC52G3RJ+Gc+oxZ2E/k1q2WpDYhUamk9ojJGU17b0vva6hRHDNuGLqdlni4jj24QF42gbuMFpOUGP0y0kTXt6Jnw+g5w1PmR8ZjiBaW/VeUt7FQD/4zWDd0FeG0828KjUIDZt6J1UxTBlef5II77KdO8Mqj90Jr3/vgqll7S6padi5syGm4TdTRfJN4cuTz6e5Geyc0QWxuJCrdMjztOV4gLmyZNXQo1/puEKTzEbFF8gH/AI4RGq0lp8wk3jdFrnzE7Zuq4FO5jCogBTt0RPh8vVAczQwQUC0w9xqI6qvmJ74TJuB0XjEjxPEMRtfCc1jp1Jk7yqtWT6oNruFq6elBOoIMmmU7T1Glrm5C7q6pCgqFT3UkIyowtuFvMrlSpai2pupzjem2yOnqFrRTBc01WU+K7VB2DITdXS1HBrnHPT+yr1tR7ZyMKAqttynNFo/1C5xiEHDfiCJ8yeXOFM2R8EkvcOVBz3QXRFu6DxLA93zHCaXP8Rr3ThC7iZ2OEARVe0pxbLnMbYdVW8h3LfpK/KuzU53AIQXZ32RjY9ZUZ6ShJcNSfluiPEhvllBgLxTjoVzOrrzKbpsAtgo9+qoAR8RtT9hkLw5OmP5f5ZeDXBgn1gSLJrfmOTCb5T1lZ9pTwGNg8roVD6XNnkJQbAMKwbsFpsaW8tnKwEOdZQCfZRPMLQqTdO0iyNZkfmWv2XVdkYhEzJXdY4QrK6mLcbcK2TpnxAGua4Y9uyr07sIH3/woarx+UG22koaeo1rNo2hQTyeV3/S/MInsntu0YIIz6fZMc2wd5zmeia9osR+Eua6wVuDIOSmbEqubYQb4kXyhL3Uz90XGKZ+y1GNJdeZheJmr7oCo5Bp62QwGgymcrQ0CqIQBEAkGYtZPbyQwchb0ToaGzfzIBvunl4FR8pRpDmOq807KlzxFAMxhOPzQpkpr3PpIdmJWpqAWuQFsoPVCeitwN4duvEf8u25VDtMvYWx6J3iMc0mwluU4g1APlt9lGmzm3k3TvCcA+PLCPjB0AU826y8g90IZe4uopDabnuVap3qjOLTZRMJrmFlW0rTbDQ974wtDVZT4lw8dMKTss24eaVLyFOJUYhciCgKJupqt+DQ+GY/TY4CXST0g290w+K3VbLa6nCwQnQc1hgBwsFqk87XOlrSMiyYH6jGsj/LrxGvkbwpIDm1yCTMjsjqAQH5A2XhabCBGZTAHBw8MgGqxK8RuHXTSDjmVc6lhek0pwbM99wqjt9kzQHmiE01O5THqogy3v/VN0wKKxMl9lEyfLBTNuaOqaRZodDuq1KpdeBf6LRi8u5/VN1OUdqlqNMfvae26GnoP8rPN1TWuc4ajMyPME14h7HiPZEtHLtfCLdioTXiIndCtoAjEWkhEudP9eF1PVWyoLl34i4HqifDlrhaCmu7wpe8chAEnLl+bJkfu2XhlgsYDkaPlF2kL81oM2cnNaJ03C3ZapjGoYU6lnbqabK57ppNFFWI3XKcDByjBbBHMvC5cT34irCAayypLYVp9UY+yjqgVMwuX0VyoCvwYHfDjUaG3dVFukLk0gWvk29fVMA1JIJpINN+l0zFRNp6JrH6Dh4cuLR/JPljm6T2ht8qIqcByc0ghUOFLh3VZfQxvljJTYZGoTtgpwDqIEC+ULieicWmHGyLT1zG6bSNsprth9kHN8xN4TX1c9yjqDzNaHRGeqP8AEU5jnRpvbMVYT9bX5hMNLtkNTScdvVajxYkZOD3VNc8vzYwnQQ2Meiex7cNyFUKaXaOXDJiydpGlxbZocfL1j7IIPDr7iMLzQEXE83miETGykXhWyvRQb/0XMrcOilHBkLSJpHnhEyRfPRO06ZJfLk3Te0mnEKp5Deko6ui9gcoLQ0CbdU2A4WvJRcSaKi4DurkFxgRPUpzn3gpwZaB0R0XNF30kLne8kuk3VOg4W5v7J2i506rHL1UxZT4YBUNA9lN2k9ln8E8ZJVlzXVbdSJAAJ7qrV1NSLHHX09kPh9F7Q145bJga1usZ89J6Kp2lGpIhhcb+v0+yOgHVudvWI9O/ont8HULNMRNJgBMMiIt6pw8o2ug8ahIFjnomhlXZc97S0npv/RanlplAh1+srSY2q9iPsnaR1GDm3bmyaQbVxm2AgHNpEB1Nle4bklaY0wItcj+6nU8gcWXyE5kvxA7KKR4mIIR0nM+Q+ipcCwd02h47wmGXdM7KNOagDYBTUS6N1aR6otaNuNMhGSUEB91iTw6ozwwoTXgtbFjBunaFYmndeHqNpkwSUKo8SfKDdeHqRS1s4gG6FMC8AZB9EG6XzbpjKi2TCpbNPdP+KNfh6bIH8XVMDhDyPoVD3VVGSQiQcgeyGhLSU5hLT1Ty+BXDh6IcAJ+iqMT0UyQenRTJsquFhHAwFZqwhK7FavwrSJoIq/iC1XkQKLtYcWRrLvF09Qlj8z1/l905zm1umcxBVDG11Nbzm1MLTo+H036hfahmf8/sjrMfqUzHN/nZNcbGPoq7OE9FDkAwc2Qm6fQyZ2Tg4+aJk2sqmN/KPRadceI7c9eqe7TeKtMA5k9/6fRPkw1ralEgADHsuZu04+yc5jJuMJ3iGXVIu1STAqt8yfHzXTnnzFnM6FV84PWbKpzgDu1AAYwrwQj1TqrwbIqBZEWXf0UBS4rorLMKx4dFlAU1GcL8vTgHYst1Rd4NEZ7pumZNUpnxVf5jmxHdNcdSdQCZphQ/BWq1zgXM3Wnow4Uec5jZU6hjQrhlvutP4RrCdJnO7+gT9V7Q0R0wixoM/KWqrTeHGASRsiQOctk7lN+P+H+IcQLWBaWp2prPL3RueAsiT5VN5UkrJI9VkqyuqZXRSVZvDCdcBxJaZwtd8OOkDLbzHb/OieXtoM3luO33QBH0tMJp0Ifpnzu3Tg93gaRsIPMeyjWbcW9FU10jBUmaUO2VdpQcDJBlaXiCBlzeyvIIdyhomUHU6ZDj8sQtYVGC2Baye2zjdr9rL9mN2tMkrw3OHMyKomCnRz9DhOn6uipfLGpzC+8KuebfZDTEi0EIzF8oznuUN0dlcXUKl3us2RMcI4CFAChAKUYsOHO0eX7IeG0nSfg5uhaHD/0jT1WqaQA3maPVXJIOyMAQvE0XEhwpf3TtU6lWrqEAtheI5pAZhHV1XF2s7MfyCIiqR9U3Gmx2G2EJ+lMsc4DIhSbdEfgWAUOAJtdeqjoqpbDVdDludlU0AKHGVEK/Cd11UG3DsoIU0uu3bYf4FqaWkY1Hx/O/2Wv4msSzDR72Tm+GKKOU/X/pUtJmmm59UNR+pQ7xAwibT1hTH5brD0CpAzhAEumZUjPqqQSYKveUG4AXieI2B1XIaTVlpsvDtNN5tJ9U2rzdVp6gJLmtiZz1QfUXXmDhOc20nZCZ6mVFTY+6tK7KO6uhhTP0RUwi4CFvK5iQouo6cLYVULdVbIRwB91QZEK/IM0gZK8f4c/nNyN/+00+aVqvGXOsqXWR8PTDgen9l4YHIwqjxP0xuvFP6bL4ViabKtjXQAjqPAaMADZO1aqoPJIi3X7LUqMjsMqoMLdNotPCVAuoj3K5c9SsT68cK6zbhMEKAogq8FPa9r7zbK8R0tvXTlw/yVOjpuazaR2TpOmNHNW//WydW99Gae/9Vqcj3SSQ6e6f8I7n1GdUAORyaC6HC2VUDgdUL/8ASDYB904B8MORsgwhhbvKDmlCpxtaSruqbHVDzduipOFzC6yZQJMHqrShwxdWUyiuqgk43VhZYUyvZEHKwgggFKpRj2QMGeiscp7WxSdzkIhtj6qLAtNMFfmG8IPY8tdlazhl0Sho0gT3ytWSKoikg3Wj8Np/NDDzdokdU/TDiIabtdGyhanhOIa4U+oVgu3AKzJQ2UkhSXQoGVJcjGFiFZyssrmAIVuDdV1b9LYgxB6pggGGHm62hDTbSxzQL95VT3RIEw7cA/8ASBmYJaR/JCvSOqXB1ib7wU/xdM+LJmU0co9UdTvhVtkndcsH3RnEqLI0r+JWvAULZXlRHuoaiDwARCwjSpUKPwD7ojifop22VlS1VduHdScbotc6YwQchTNuilwcQ+yqALnNIKZqNcBK1nU8rIrA+i0iLtZpy+BhaenTnVA82fZV/CPcx3zMcLL9nZo0k/qH+Sbc/mD7LcqxRBmVBV1bHC4WfwXCxwgwiiuZHSeZmLwj42q5tQqhP1W6moNHU06aa8d1qtcDqF3scc381qv+H0pc+HCrYqfGcTOakXarDp38xCp+duFa0bqAZ9kfNdRg7oSZ7qp3twcSjGymPoolABSOANgY2WTZGFuj3R7Ke67KMyo4QVO/ZSqjiFaeMqEBBnCHjazWCNroitzjNro/sY5wRyk+uE9muyk6eQVzVVVlaeiSC1O+GfNJM6B29F8TqHFWPdOaCTpltJ/hXw9f8UL4fVObtzlPGkY1PS6cXso1GNLg/wCq5wQ2MrTkHmtZN1NIZy6IUubLt42XXgV/0uizwvwucqB+CQtZ9Tqyw8zcr9o80Wk9Ux2tykDGNk/QrbVLiZtM7LSZ87nFz7c0bLW1PjQ5uk3fr6ojTB09CrkYdu6BeBU0Qg4WcRN0A2ZQ8RGaU0H3CvunGlbQunAyroSpjhdExwsrblWwhFkLXXUKrYIuVleFE8Ar7qlASVVqNHifKOiDnRGLqHlzQ2wAEEpp/hGfRDWbbXZ283ZaWsPI4iU68XTiHc4Mg9CtZzrVG/ZUinSbkVdVpa2u1z2gcg6o1vcRVIGwUiZ7L9n0XUigMdG+5VLjOmM3Xlv6qHBEcwIEwoZMcDwniFKvP4tRzmwwXJ/oiBBsHQHZ62+i8NmroghvlkQv2iJs242dKd8U/LIF/ey1QNR+jFLz/Ft9LqtplodlVyBzRBT2xyb3QkZtZFt+oMqmUGxBRlG+Twyp2XZyLcIN3CpvbhCuhdCCgeGeB47R+IphIwqtyLQgJ5j1K8LVPM3yGdui1PEwHEBuIR17sGoeS609JjqsSnueHWGdpleIypzqI1G9QvHb8xuOykzcSL5C0NGZDdO/YlQRIdlAA8zuq5uYnM7otaKm7IWinYInnP8AEoIq2VGk18yg7YZRUlUg/hvdWCvwxwYwu/KdYncH+y1PDLNP5QALvEj/AD6oseRDGl0o+BqM8QkCp2B6eya34fUa9jpr/wDS1dLW1LeUUzT6KmUYwDlGm7uh3TBYON0NRudzKufqjBv0RFBq6IzEKduEtsgPNuvXusxdFG/ArutipiUVdZ4eytAX9vwXKgZUKZQl0QVCD9QmOgMLWa3mdpOFV55evf8A9JugGBzQaw7cTePum6lPzQmvPMx/nCGhpOnxBc9AvCfLWDFI5j7oN0NSwOHHCcwMlwyooqIPVU4jdBxKLdb15Vy27kqDFOYCL7dlDOW9lAEg/RZWT/oWHCl2FhNGgfzMtFVXa5TT8TpmTe/2amO1aiXA42T/AIXSGo3TaagQ6LY6L957RNRT3azZ1NQe89VULE7wi0vE4Uh3ZR4dQDuieGfbCFiroQbI3nsrYPUoEytlCNV1ffhEKe3H1WEDwwunAKFkyuivfhPZYsrIrYH1VTvsUHaUh3UHmWm0fIIEes/1VLQbGyA1LNpn7ItdblKYwHm3lCjV832TneJyjN1DoqOEScyndsL9R1S69SgQ2RCjUZIRF4GVALm6Y/e/ooMOP+jcqytCl1gi4ils7LXLeah7DzZtKbynn2Re4g7NRbXTPvH+QqtHXOpHWOZDxNBw0+4Q1NwhDqZ+yLs04RfXZ3Uoiah0BV246KcgdV1hBWwUBNkDhQrohBZHDupU4WUJ4Z4ZVj9l24Quii+VPfhayLnwehUwHLlym9wnBruf+ia7H5dytL4kkvfg/wDFNO7sKHJobVSE3YD6qTkruncu1k4NbAOLIgggbKanEeq5YBOSrslvYImc8Mfg347rPEDW1OSMhBnw5Ba4Gk9Te8rxX2LzFPcBMr0QxpOe3/tUMaXMLgM7IaGhFG5q/wAlPd8QCNSdzKuGvBVRt2CtcfcI1gEKkeXYIODyPUozzNUNV13CCiF0X91dWhbcMrC2UIfK395R4XiT87nKP2fTjrCrYbdCtlhRK77K8EKV0UI9EbK6FN4Um/VQyGmSpcbpjqjmPohpvpiIhM5pg7rCM9VZNkTCMC6EWI7oFrjJ7pri3OYV3e6/quWZBRjHdXVltwzwgLHHZYVfLk2CiGkgmDOJXht0zcTV09051mgiwRbqMIeLGVT4ZH8Q2T9RmlU5xtQyTKa0iG9kGE3FrfMg/f8AdlAtbn6IdUL8zeinUAaN1Om+fZcwlFW+/By78cLC2WQroVY3Qa2QwfREdVU6SofzNRgyF5SrxKx9DwyeG0o3RsrlOc21Ny3sowN033Nl4hHsVYeUq/mqTScVKW36pwIibqJzugF3XRRLbbqPNdfyVsK5XM0TN5XLhXVirnhhZ/Fqabntp6JrtLSaH2EgbKpwhwGFqO//ABxAndaR0XtqDL3XiNfOxtfuvCvU8chVNVUX7oOLhG1lzefIkJrZAkQiMok/Vfv+qEQFT9iFC5hTG62hEKCFccM8Mq6wqoQzCppLipn24ZC5nqZKGy8qwFUEBmVe6CEFNdpzIVovef7qmq8ZQnBVJs20qcXRYAMzdQ4X7oFA7BSsrKh0eyNXlXKOwC6LlVrnhA/Bgq6lXVuGEQ0vaR0P9FU7Te6DgPP+QslkRDZyjvMTbsm/K+cjdVPcRpgWCZpuh5nzlAkS0N8wRDXc0bGJXZuExm0SHKBzepV8ItyodfdD8sjupaqlO6lZXKAgagHb+iu6V5VNAWAsBQrp0GEz0/0B0WEbKnKupn2UTEqimBT91PubIzYlOF8rNPdU1X2enAwUFuryoARfF+i6NHdWaSgC0G/RCGtvkAI0u3xGFvT1W3CLlYUqy3U3XThe5TQ/TpO56po1G+TrheJo6raTNcL8wF7JhrwKVLnNuOW2E6qoWipu/wBEX6hL3AwZurEj0QLSCZgyuUWcg6IItZSJUvJVQwplBhv7qgNg9VufXgLOQsUAGiSuv4i4brqVVJRj8N0KRnhZFxICmkW3ByppU5VsrmcVbAP2KoIMuORkKDPuib+YoSFIVo+it1UmeFnFOgO7ISKeDnxPplCR/dXblXN8o3K3Vzw24WV1up3W6jt907T1A39yHDHdR8jpuTsgZJIm/T/O6LH8jxgOwm/sr/zOlOB7qdRzpJ33XK4T0UunuEXNm+EbYsoLCugW97wugKnlUzErzT2yrqSsIKfxXJXKOA/CauisuvCHOiV+rb0WV2USt14bsEGIVNRFgjJRpFyqT1ys8A3ZR0UQiR9ED7qk5jKkyoY76rz7bFRG6vurSpPCarcIjhM8MLZOM6LGjzATfKc7Q1HEjcYTZNfXpHZP0eXTg4QdS6G7A8vsi0Cm8mSvM2nHohb7oGgwM91W0uDuiJdmUJtPdNqRIlZDlmBbAVzyZJVFLz1MqsGsLHAiypALvQKHNcI6tQ4Y4XPCxVO9+N1hBrfMbK3FrKbnDkTCDvDn0UGJKlWK09RpvUhqadg5sokRZWyEDuArKwTXYlOdZTKhHN15TlSPoUIYugi8qR7r0woFhPDCvx/7XRZVrKZWlqPePEa9okHDs/3QOl8Q/Tr2DoBWmGar8yHVXVT9VznRklecqQ5Xa0g5CgsIPZXbM7Iw0TsgSUCwR3Uuv6LcIrJWA1RCNirNKs37qXaLKupThTvuEJV1t+JppP04YJUjSn3X6Qn/AJIGkSLZQbawWArlc14wFVruMD5VGlpORe5qa5umejvVMOlpuALbyjqG/aE0fvXCtlQ3Eyi8WUSK+iwqxtkKTw7qVMSvMp3WEA3bhOVjjafdZXVX4WAWAh8PqMhoxTkFDwtYub6KC+rui0vEq1J91+kuZhHCwV2OV2u+ii5b0XkKk6Q+i/SZPov02fRYb9Fjhn8FwsKwWFjhdZUN0ie6/T+6wF5oV3fZQVb8WEYMDcJwaIjuntWjaDCHhtPKfMs44PeBJ6rCcIGEQFFle6xdUutCss1KBwwr24QGlXBWVt+DurhW1LdwvML9QgJE+qh4a4dSjFQ9CuUv+yu63opDr7ChbIeVecKovaFHiM91d7YRpepABW31WR9VfhgLCtZdeOVMn0hb/iheSr/7Llu6MLzPaIQq1NVysHfVSVapWJK6HurOTmsaXNImymRO4Q/eZhCryny2TwW56J26OIldVBjCqJ7LbgN90T4c3num7KOGOHmXmUyo3WVld1mPRWK5iFSx31UfsOkP/qpd8GPqob8LHuo8CnvKqplW02lX0Gwo8Mhv/JY1Pqra7vdq/VaT6Lzaf0X6eiZU+BpIf/GYpOkCOitogLmZ7r5vovK9bqQSs/VZPDH4MKygtEeqNen9EKGz1UDlai7Up9ipbC3hXbwjjKueEmyqa6C43g4TOYVlstCiKXizwchPaDiVYbr0TnSIatTs5QSsSrQizO67KbLqFUDZXKkP9ipplbhAQSB2Vmr5Sr0z2WRCJBCikBXiR3W6vKyV53KK1doV246FX0wv015EeUhbheYrzOleeF+oVZ6u7hNS8ytCyoXbhgfgyuqhchj0XKZ9Soc1eZbqSrH7KygDHCG1Hh+mxUvJscrkJq2uqtQkNbYKrxI1NnK9jKPqohPqIGm2wT9NhsVUAuyMghGAIWB9Vj7qJBKNI9VcE+uF8gV5+iu08PLK2XlEqaIRxdTXT7KSPeMrPDdZIUrBWFjj3480BZWJV1dTdQjdcsunhaVM8Lqyhcw4xHooc2/C91aWFQunCQLLnj1K81j0RNoHVSYWVCynuiznSODx1Mp7D6on5sNQqAJN3Iva0SqS22VMKWrU0zeLqbThXUrHDC8oA9VeVHVRg+i2lXCxPCIhWiFjhleYo3UrtwyvNxzwlYUSsq5Uy4ysGVvxwVhW244444cvC6vhCl0dlhXsvMQsgKltTmnN0xpZMjZTNDe6pvI6qCVIVnRKa687rTI9CmVYYZIQOHDNliPdOt7re+UYdJ9FquLRNgaViFBhWPC024b8LFyu3CsrSqYiFMK/DBKvxlTB4YQUhZwoKkKalZY44jheVIlQs8fNwHHz2XVQVZc1lylXCsrgfggK4CpLQ72V9Onuwova8PbtC5mk9bKArdcoO6FVPMueV5rqS8BTUqhCFr7wE5wvU4mFixHRQhMKS8yhNR
99+ WV5ldoRr5BNpUVIDr2WV3VwCOJXSVhWR5TEKA3G6kBEEHCmkxxxMFY4CGqwXfjFlZZUrCxwhAQOGVsVzDjZsrooZqhAFREK6wsrKwrrk1nt+6/Va71aiRrUzlSPjNWerXwi9+tqvPUuUaZJlG11STdAEmrop8sLlpgrmblQ3flCDIa2O2Vlg9Cv1Ai0CQd1D6sohoPqQptK6In5QpLgfVAtssfgwrrlCmmEMdFsoWFfKdnopU2UATPRXiygGyvkKqqFeIUjdWN1ABjqqqd1i+6EqZOeAV8KcXVMGevGysYV+PVWAUBpK8qqjhER+DC6LPDsrKQgYhVO6qAboUOx2RLbjuqXyYH3VxUT1VPfCiITZLW9yrauk6P3SgC+I//AFiEATc2BVwHKbkHZeULlaPRCOWFm3QrkwV5bq6nZeYKNlJ9kLLmyuq8uVcWUUKbjZQZVtWJC/K1cSjzNuNldRRedkQ4HCEYRcDKBpXlGE2oWROnzTgBc0B4KuZVweii0I0n3VVSILNlBtJQANuqvdYhZgqA66DlzC2V6qlSFtCiOAsCFiy8p7q0uuQv0o9UQWLorOhYBV9PdeRYsrg+yMMMlVObCljs9UMoirm2XLGo2lWDB7Ig6d9iEXcxjsqSFcx3K5nK6mVFo4Y4AOCnSpDjcoitvQTsrOUuyjO1kwUmFO5Kq2mJVUWQJCE7qkmFIKypqV3FXJhDMcBJTYJMcDLeFxwMtyrLddVzArdVTCsUI90KiVY2Vt1zGymbFHdSBeFZWApUuEKWGZUaguvMFdDCk2PD9OQppMkoGuFfUlWeIV6SEQGtEYVqT0VTm36roo09RGIKhc7DCBfpKdPlIQIwcq3MbqXB09IUUOuue4XlRzH2RDbQpAmUahVCpptshygcy99kOkKEWzcqwB7KSy6uyvZOgkL2RF6e6OfRZjdBGV2Rf3hO5ouoOysJWcq2F3z7KyhXV0W0ogG4VVWVTGVBGy5tlIVMKkrNlZTMLKiVkLzD0VjlegRjZBwd2VIcvNwusK3HzFeY/Vb8MrPDmbKpoAlRMLKOELB0JrnaYMHoubTH0VBNlqd168ewXXdVl1lMI2KwuVEwqryu+yHVEzEprT1yusfdGR9kICxhfNdWlAYKmAmgTKqE5EWUhrr3hUkYyhby/dWwrKstlOE+nAwhie4XLjNlUApPXhOyu2eMzeYWFFoTd0YiBlQJ9kIbvlRgBZwjayuCsWUMss3UyQoF0Q04UWUAifwcy5TsskLzFSoEK8fRQcDdegQugetlVKsYWFuI3VOVj8AxCwFfjJXv+EBzQnd7rvsu6wveJQNN/RWyhZRCtwcWbq7fdcq7oiF1WFO65QCjFpCdkgmVqVeUiyFbADgoRAEKwFwj/wDyvzF2IhEeJUCIupi4yu3RWsUFjlnKmtVBAhV0qobKWFB2yxhZVRKvKHAOIBCkb3vdEzsjWYTII9VSLQqXWvuoBUTjhddUVZXKyrHKh6sp3UMg8qYNMCXH6BDw4pmJRbMXjmBt7pmqMvamuAPRBFymQLq7TzZCieBE/MpR+vCxWFG/Gb2WeN27qVmIUZ4QVywphBYlHlMArsosIRaXBSDPRSTlWejeVy9UTuufTtseqiKUbLAuj4gGdliAPsiA6QU5sjsut1aDdGGqSCY+6a0HsoV+vCD1Vt1Sbq6zZdUOhyrJnNH73dAEy4ZUr0Qa3HAAG+ynMIUaLeybUwESqaQ0Ysmx/hQjAK9kQoUFSnJjqYVFzummcpzpzsp4SrqFdQhFwpypXcKTpq7VARHcwoMKC2ytZHTxKP3Ui6DpDbyR1Tmt1TRNlS72KLDBDeqd+6VdAqSvEYfZQ4Whcwvsr39ke6r6oQ6AFdyMLPZdl//EACoQAQACAgIBBAIDAQEBAQEBAAEAESExQVFhcYGRobHwwdHh8RBQQCAw/9oACAEBAAE/IasUqtA1oe1lvQ2KLDXP/wBrAVvYtsYMLmaGb2p36QgHheCG+fP8RRYAsYZaJBAcJnMMoV8qhkPxGln5KitW6nMY7vUwbTxAtRx/42LlWqFaXCuP49dzNG93Fv1/zO4zbv7Jjrr/AOxmCQBayyekd9PJxtiWuiODhMMwvJC0KhBTXNxafyQF5vtKUH5gszC0xXfuOxwwVzNLTKnDmPFkNsS9YmYOdmNYzRVb4i0Rol/iJWhLO/8A6z+1ko1X9zjEIi0FOQs1j2m9xc5Pdl7s7VUgWLvqFUrriog4Hh1KNmO5jA1qEWN8mpT0sXlW4VTZ5jC4OI4TmXSXBECnUYuJleGHgFZO83vzEE5OoXcEq4XtAN0LP/K/8r/4h+A947hYHdwov5EqnS8f/wACP/rIAVHnA391H1Ia+cf3MgZxpYjjOcv1CpiBvl+Y2Ae6gP4i3dM3kyrLVXiOBr5h4IutYdwR0/E5YSjp31FbwLYhWvcFBNBz3P7uZLaoMypStw+YtT+cTFufrHicyVnB24PbNwwEp8OBzibeRAWcf/HUehu6hYTC7WZ0RvS1mkazQK0gVlK2ZuYwydbmZ7oJlnUNKXBcS5DTy8YhC/qvUwpWppd1DX0zKlqcP7mBhwIHXi1Ysm0Scqo9lzKuZdJQfcOTLfZlFJIN2t1FbtPE0tmKPZHsKLmXCjzLFfhRAZKXu5w6dTp68xl7IXoWcEq6pmpxMrpS6Bwuvj5htoUrXYqwfPDxFq+IsL+CgMyiIGg4/wDjFMFjSzyga216SuKW0aPECrAXsLWb94Hzegp063GpqWfrjE3+GzkTgf8AYKQcvXjOf3UetsylSqq/mX4LWTZa/qZZ8V9/v3ArchmyIDnNw5Fzgeg0w+8SdQcRv1meRtqJvxORldVqDbURq38RdtEItZawNt8EvQr2yo3SLYGpwMstsLziCthPqHBn0lcB6PEFlukJVePUej5IlOYN1gmkZr9ZUyB3uAaMjRHloCtztdadfZLc44n4Y/8AggLVcQR03Ae+wg6XaoWvX99mPV7wJOwudjK23UgxQthUz/AzOs2DJyLKPEyQ4rVbiq9f6lWtotWVD8SswIPaxj37hCikIP138S0ANF3ly524hKcyGddQrHGuZjqVFyHQMV6fcsFZWT2Mq3xWDwcy4yGAKwBFZReveGsebXX4pELt+47lLeAkOgDY4iELt6GXJXjXMwmBqoVyRZvESqpmA5L4mUKmIrK4CtBeogNBt5liymCrRaUMBABiFeC2WbFf08+JXDFmDvJ+N4IKfPQyC5cgDrslisZeG6/L4x/+u/8Ay5FH/in0Fqz07l1H5lPB2isNe+JmRRtHWdscLMBqac48YmJIACmORWtspJIPw5+5XHu0P6EIVizMc5rzNxRH5/N1MWat83Rb6nMHO45gwO4/FJ8/czlwam8Q/plRRzKDi9wvBC2e2ff6gdFHY3+B9Q3e00q3VZ/fo5cmTjTfpC8UF8uJUwytmgvQfupkNmF9cf1Kr3VuYV352R58EF4PxMs8ulu68RWLAS1wGviCqHNymBFKsuvMA7wEtq8QQOniVebqYW1HhtC3ArMe8IPMWhKEs5V1/wCFHhgEFv8A48y5kjeSK1vTTcE/xo2bXPbvBxApcAPC5/yGCv8A9BOtBcG0BQIfUwU64IFccRfHcNmnp+RfiUzug8CfDKajXvwUHHH3Lc7yrbkz/U1yAJcLH5/iOxSkZVefllvpYNvvqVgNCcQymferz+EIiFUv4ZXjDwGMShqKliG78OMMFqApv1fvt66Ds8U+bqNzYIULuvjzA7ogzTY/e3pxCVmmJbzl+YRaW1bQ8ZfvE4LZYF6peSkxvVE/nfqc5qNmNvKUv9tQ6lyUnjqFA7tarVrUtW7jLf524mbHTUGN214/5kmd3Cocq59OueZbowdt+kEtqJdFPxLKOpgeBqOyXcttYZlBQkqlacph4xpWiKYTivM3lVTEGLiGd7tjvLMPWvzLrVsYbuziLyNIydMuvm/Sp30b1gt/KpTf+3K6fTRHrq0EzjKv3+YBvSHS5iwCm6YtFsBUOP8A8Nl1ef8A2+xdFr9/iIN8UlZMkuzKmVeEEBtVnLXNzVmHhN0vbzXwxHbql6bp95gtoHAZ7jMC3CF3VeMNTnqEod79oSQE8TnPP/JYVSHIqU7dv35jY21cJlv3qUFNnGXp7l2lU+XIcYzfyQdbwmKviMRr4Qz/AF6RunVSlt6xKADXNWeqEEdrDRf1FeFsCfJ9VEQmcjlPNvHHzLWpBTSm3iHphwazXtKABOI9/qD7uo4wq/x+7sXLVjxa1Ephk6muSXZjK26flEuMzSmXfvqXlTebVXoS5owAS7CmdYJsHxvEWkVUZuLWYdw3JKjjD4iWyj3UqQz2LL6hQ+0uAq0CFGgxFolpPEttXngnkk7mLdOQ2HEywXUxJDXgbYXnkPz1KqKdgfPl+pfZwvIZ05z/AMi7FmuaYvH6riCwZ5MreOOPjzKqy+vQ4LqblFz1R/8A6HAAvLFjwP8A2iwulJWn/INLPkTH6zKSGpfefknJDD8XrUUncAyK+TfXxEuUUPEvnkzfeZqiOcCPT2iyAxqsRKdaxf6QOpAs9g+aumXigkI7M4/dwi1Vt0e/H4mRzVbvpP3iZ2wOeiwrxKO7UNj/ALuVIOHqe8BMoOxN78c817QN7g6WmNwvnAe8Fr7C2kzfxC1K43yjZ9OsxW1FdVDaxqWXRa9OhDdXWGCmQ9RBMCj9GpmJb25lmRSVmKrUK4wFH2xKc5JfB93qYq816RvYQC6yzKwNG2h/NxELkVRfm3l/qYlUjXEx9x2/OGt1+1HVKc06f+zovN/s8srq5cwMGOUEWBkM8y5XowTGuMS8e1gGPETX3cB7bqMStHnmUSRTS7lVADvzMdNU8TZpNk3hLhA9gId4XQ0z/syJad+bvphf3ObV1k+b9I7VBYY2OKMl4+YjRhtujpHn0wVCcx4tTsu4BW33QhbVybel1Xk7ZSgxBbZcv/xaF6gnLEu91yeIRlnqWdwTZjp4jgDZ3X1UK7NnTOZWiy5Tq+fDqFdzazeWTzy46lYO0X3V9QeS0D4VfiEWN0VotdcvmLTyJXJw1v8AEs7JDwZWv3+5TC46yw5/L/sSRaHYOP368wTbXcBKXd+cwbuAsnOzj9xOXeK9/wB5v5lRRKGjikcVN7Ebyq4lbYn7DRY9dS5FXezZL+W3xNVuNL9xKhDABxcvoWHFnpGMfB/fSVA8PaXXGepr45gCDaK2RYdGlq9DqXkZyqsh36X7hEOl6/HNU9blpKu8d9/mCGV2zYFXJTrfRfENPdkrSzREYunvWfPtHhqocEsblasH6pWJYE6BVg/SUSpWRil7iKmglmeOpbI8j1q/dgfqjWNc50Ns6Sxbwpc6DtjUopXbhiLfJLa7CwP9lY9IJYi0oGK1d7hcWbKXmUeqKTRZhvjzLDApRnmMaxrjNQGH8wtIADj1H3AcKy6AN35+eIXcpCOS9V8ZxBROfBSADwtfrAYhocNPq7lOCqwLQw63p+5a2YOHNsPWE7gxznE8gP0mJCFoZ1o+YbnAvefQv6gAfML0XcLl1eS6P5jJABZl33AOZaM8lZ/2VURuDdqu8VGAlqbXJr5mi9+GeT/MrRIaFq3XPD/kUn5t8cfL+4y8ZEGr4uvqET2RTnfyQSsKp2cF+rLcDcyjntANqPR1vqqIeshVK4c55amw4OoPB7u3cxIFRvd0Erzx9RWIsiXyf3FOyW03gXhyVHnRuDZ98s5WhEvxOYlmNS5NcWRL4sff/kZxxZhwGD7qKxhyMJu1d8wUxhL0Gz+IFm1q6lNhZnFShuA8c2QB02QrLXeJQFe29KjNyHoesot0Y7vP8SvQKOAcV6OfUiQoyBy+0Idiht9fniZgrBnDdI9VLCEqHIl5mmZYdLus7zHWnCXV518y8uwJttv6PSZ1lFtYrS5KUfZL+QJrSvLxn8RANA0YG46RbjbEfRSzdPGZVlcEptdkwn2aZb+Qcz1QXPHOeIa9p3uVYFXCT0ihp1gJhDquJt8smb4ekUFIq2ljgO4l+BfAuAS7oczN9FCl7Ln3TiDmBT4Ne0dk4LNYN0vzxMm2W7wcs+3krEQSRrppk6vnWMS5vSG2TTiq9PxGjKEQLswnEzEpeU3XqyxMgRXoLJxItppAJvWPM9ev9i6sC3TpfxBsFlnqdV4/7cFZFmxoOcf8+oAXSKZ9WP3UtDeUH/Ijg2xur4/J8yx2g788Pa9HiWinUhQXDg0Cjpu/qvHUKj1aBOLzxAESk5cub+9cRHAFYhnpXvnvU7is07wX3KTwW3TS0fLX1AY5Hgav4+oyFgi6ALZ5qpsAVgUD+jE0BaxMyrzsD1hMfIqXT2tAVmj8E54wzV3RD0NftxG0HqmBYS7L7zDEr04rE1RafVI4PTklC9UBpllGUGsTD8zUdwDlqn+XEoW69lXDE3yzam/eoh3CYS02ezAVNNDVPlPb5IajNJe+Kv8AuVtmMvlUrUOw1+MzJiNyy1rxOM8bGn+iekQcVcXklzwj0NTeApesmbm1oKlv7X3FDBG26bwOu/aKTCNXns9v3p7D6qRajxIe3DIMVdF4URZm+v1cam055ZaVgIOC2eYCH1HZTcs2azqKxnnD9w4QsaYOPEyI2ArdN3o9fE3+AUMjpfs9bl7tqOg235U77ISXlEFXrveU3/i1dM2m7vmxy84etS42CxxRaFp4Mu8RZgV1nWHmUKzGDvp6Q12TPCb1ncpTP0Da/TUodwadVm9/5MMdmiZaYrfaLNpZu06/H3mOp38CTrHVlHOHHn+oAJvS9Ax/eYaH1lSzk9LGMdIwINymGZRLvi7+f3ZA1OyG+U9UwIoCMld9f1HFS6F7KdbE/EsC1q8rxSYiqBrp2Mns3jvXctDJlAkUg6Di3Zv1rHtcFEOdY/hFlrKLBQZ+SVYtbpXFMYKstPSAaaYrk/E2Hm7IbeqrFkEwqDjmf73i1wNToK2xQtYbV3HvYGPeY5m2TiJdHGNR9BEGsOe4FUtfTUKlQ7BuvS7YzpUL+s/8gFOJeBLr8sqwrU++mKgoBVm1+NJCn2oE/gtwXK2wMNcXBACiJWO/xMaC+8F7WWa3byMor6lhqF4Lc63lfFHuovfO3xHGSst2hWi/3UwWXImq88wVsG8i/wBx9SqUsqu6V84YiCq8y4po1K0te7Rhf6KuZ5Y5GYoBtngIiSJ72+ssbHHMqrgdmrvxwRCXoRo9nEuS5zDmGYrApfpLz2JZ0fLkzjTBtAW0vr5MK+3pGhJhaBv4AIpyJWGTv0y48e0dy4rAxU86c9yqkxTrNa03VHVZephlFk2eG/VKA2fptmviAnYIbaPc2XFUfdUp5rxHe5yt9hz379xo21RSlaymGOd2UyMbBzULxdCi1t6OPWYROOZeG+owv9a7i9Mt1MulVklfcdZcV4XvPsSXN5gVjVHxASljFZ0fyQAjWipRmse8EViha2+fPpDpSklNPZzp7xBX1kpfkN23o+5duDaFFH6swMcH+wBnkcj8ytNp1nEFC6B/MtOY76myZGJYvvxXLxKa62eQStseHiMjC3TCG2xl6mOyxfIcwuzp2rAWq9o0CL3QKX4g6I9yV4GE2KGWPG/a5bdKp6pqt6x9wKSIcYYMmpxbL/EzgoLJc2i2Kfc4MBbV5r3eZcXAupYsSC56sfge8aK4r7vZwWL7EUSF8nljJNCOg1O51IUbSvV3HM3dlmbPN/ca3Nv9AOGYpsXdMst44qeJLctBZNuxjzgJWMxdLKWgcAqoqwUPMVquPmOBh3OMKmZSlXTMyL3puDpbhhNQhi1Tnekli+G9b+u5eDWyjL8gP+pWQ+DQ6DrP0hpGZbXC+Sn6gbayQrb3wY1OMLYKGV0lKWqON75+ZQgRWOIE1jq+fEqYdtHL4hrUO1wzRTbsfcGBu7plftx3KW2DYOvqeTrxO6YmjmzOGKEeGLIjT34/iUkTyk8t5cVxwxe+umyrH3lC1ZbVkxvO/sikadNvbxlxAyLTpWlZdsYNgwWrAY9f3oCtDcBPNygjM/kdDiKKAJwlat4LsjiWBO5XRScbqKr0LCFW9uKmYazpxBxfvT4mTNXy6Gcy95qW2vyTne0KADPvctyTVpUOdW8Q4QSBbabo8QFvIjrr0JZVqM1nt7ys+iAR19fEwYcmAVeDnBiNbaHPWZbUfUGjj4mkIzaXcZs5/WLMDTyvBfsTjKqAdnqYgU8CmMvGOS6jPQ28q68EAMuxEPZBKyFtoXWnMDG6m4H1XUUHFv0f3LeLvzXGvBUsHjw8wUANRy+09N4K2w4LtdOIfTvdX9x5y3vEKRjbcRxPMsFPEBotbSYzCdRWN5zftfSAiuGiNwS/KLMNGOuhBNaYz2svQL6S6E8kxf2c/MuXxy87PWMTM4sANmXl9e06mCOdDZowinUvLBEQtdD61/Mxdh2VFz+Gqi3f54Z3BYBxZTEXljTQbmRBOfPpqOv6ujjq3HLOUAvMD1VfEIQmqmYDnpVsISbc8CcV7eeI/ESs3cLaY4g3dC7D+jB/sxuLg19ovYJZorvmCxYGMfTr0mTVDiJLOFSh3BbXVsks8HrFyTL03OmiNAqjiwZ5jlps83HZBVWc3KTVlw+8PgAqUmN3LsiuTc7Gnqcc8lmFeepln3VzEb0FkuNN9XiVufeUELgaJcTmGao0CoJt18QIDTYOfdnbx1mplKb3jbCbyMuuMy0plS1ZAZALvbjMUgQDWtu32WAATgNm5lE2PZV/bEIKyomLwcxBbCxT2z1Az3xi9fKvvFiWVDK7D0hgzFI+Rer7hGsgu88/viUomSrLmgvNsPEYVrmV3iuiFf4L8Sw/mYgtrleomeVlluxKuyStkNy7VVXDwXRriY/YbgHr7lIKPJzMGyDrxHTbW5l3j936yntA3Zjjv8JZF8ohfQOMH38lBgipWhf8F8d8UCqgwzRbxmjT6zalHDZYvHLAORPbfhfWNVwUpvvU6cwWp/WVvbFEw9r9e5UR8WbTipugylqXVvEF7NsFzfrzqNbvFswPKDQEqvHLJaVcywhAs6frGuj21a9xJU8DcLyNDUfIa2zE5JXNy1KxA+DEPg4hitWMTCkvpiXUbmDmzdBEXUQErVOYK3W8MRwDL5TlcMcZ3uB1dqFDLsiiYYq2qTHmZNMagV0u+pVVSuzLatbYYgpBCGAMt6VQdDmRNntJyLQ2bvHzmVwA6AYv+5xfBW6rEpNyoVvBf3mIo4VnAJv96lLBKqNsMR2+hKZPAY7HU099u76jF63fGIXLuYyNY+hqHirm13CGqaYzct69iJhfEqdfNOIWwDWm4ZJJ7yxSHcobfrMai94/EUWY8cymOE+5nOBxMzazcpz26lMQGBlNputYnTMcVGC0mkyrPLPH9JBloWhQoEreaH8pDVELNAhwYzq/MzQzfUArV0c6mJRbF4LmkqPD9l3mzFlXjz5YKN8mc49bmsBVdudXLYtGzT8QVBsU1X9yzYDXRmWtSthEQRze2VKt3Xq9xIZu272TcOwkdQ0JSOoymlaeZax5JQWQ6yqX2Ke5bK+rhBQN7viWyXzMJ4a9ZaKVXHa91wWzNm+IllWWUABxXvL1K1eahpV5bwajT15lUaw8oNZpeZyYLmNM7lqbuDzlgWAr4RDi17RDsUxG7lsyQN6c+CW1noN+0yvscMmR+Klik9KYrmNeTRni7PzDuUZeD0i8pFHRxmJslIHVW94m6oOTJop9RlgFCULyyY/dvOCJb6uhYKc+v1CldPJesH2iKDaoay18n4ghTgGWNOg61Cf0kZQZL3KBZ2MoBL0uEGLatWUugealyrTxMhq1mGzXcox9MB5W4ERwPJEFX8RpPoQ6VYDHrHQvO4LcOKxKbiwCoymvj6LiugyFru7ru9+Z5qDE6e3nz4lIiBgG5E9csdT16RCctPV3mvfMANTQ1vIP5nHMOE7374iCdiZrnM4gho17mJUbrdnJxWq6e4ApLrqtfuJZErk2/wCxcCYLGb+42gavmAULeMkChWERd+FanQcpJmOjymbZQzq6z4guC
100+ UaUShcmVm4u7fM3Vs34nGY4dwNAXuAJygEd9rhddaSjcYJm1zEP/ZaIXWcwumGfCFwGbutRVXVjzLvY3FO1fx+3F5MN3OZ3a1LPFeYJ2bpzPnOk/vi41rkWzOOOL8SjZI6VWs+2/wCIum2E51Uprgc2cn/JnwYqYUgOruUOfhc0iVfLpCcBO7Hs/evMb2DlVwYA/mVnt1oKNj6b+YA23KWp/UcgJVAIqnxOTRc+ufSU7ylnv6b5gNwK2g8VmevjcFcyzJC+aj6EjwSq8R6I9ytuv8SzbfmY+XmWgZOqjP5E6I8MqxeI2TXRF3yempgscbJhTJAxONebz4gpnhVTsub8vPcq4CC5Qpv137nEYY7grHDB818QODjDMLq1+OyP1krIaPDl0fUFMWu9CvLBaFRVXUu2pW7XR9dTKj5bZiFE1zTEWFlpzuq71OCL8V9QB+DPiJx5oXj8yncorO5aYRWaj4Zrl4mWLjqWlGd6gMDTqAN4L1MgZO0iyjHMXljqEqrZQSuO5uFcBT3EdAYH8RqVA4zMwlGaJ4xR9Y87a1AGEuzm4JuTxzE8+OoVUb/MbYg3BxGQMXVVHQwnIj/3Mu05KzXQd/3HwzNUH78zZKq3lahz5z9TCzMxgTl58xF+7xyY3G6iKZI7YnP7EXwufK398RnheeD4C5X+5mxlwcvzKCTQSmejiXSltcI2jg1KqPlSWACbZB4ghhblt7RiXe2jiXI6AX/zmWGw56jwtxXcpSvcQWSZFbUtG5sbmEB9Zze+qiWpbgjdD5hvC/8AiXfiWFFSvRO373+t5iUuCqgosW1/JjhY6TWOze4yAwuTkHoZ3v5nP6uBpt8ufRzLWNo8EAV5C5gZ4Do3/MRMLRkD29oFLpkIw1xMba5FZx+/UqRUYgrsQtol64HY3G5Djiu5lqqrJFeH095faycQAtmHGgsaYDMtcAELgwTMuqxYc46jC7c9R6IvRwiREqWgNcQ0ZBMe827F6lC5xUqa/SLCLvsi2i1UOzQcyg4PRlYr/sVlD8wUpr1r8yxX3uJkzcKVnYd7noTXZuO7k3/BH0C4QcFmvf8ASsytG8Tj34hsc0Zbz7YZbBFvX6wTDq8L+5YKwQGz51AuC8y1yuoAwCRb5i/xxqAJmA7WfoIeRwj3/sHqOBo3mN63clBWI+jn1zCsodr/AIlYgH1TB3kKLfmds6yvqLXJZdS7W+5xKXx3MQh6QMrleI0DS1ohvz5Z2Bm/KieC295VvEqK7TDcEbBj98wkeWBvljeszevvGbhWrHXMAagmZxnfu+19TIWz8RvpcbSFVtKb4Wb4KolXQLRpB29z5m3JfBBVlUYBQKaWgIu3FfERHI4pNoM4qHZYbld/tTSAXJm6x1mEHoP+xdLb6QsVUOcQR6YesLq87jvfRqLYcLlvmErTujEwrV1zHZeYC6C3sy8NRlxqAXgaYqpu9SgTS+otn6SnnMgXhjAV7EbDm05SwUqpeI5YbZapmIocwF3dqzKFnOSAoG69IUlyACNC8ZWEXThyGE49ZU1voyaC8Ghebg1Mbeo0dcPb4FjJKa35l7Vsnd0+s4KYHPL8/MQM6DoR22MFY8y3z50Vs+sRneB2KxHaDYZE0A8soi7vRzFs1rRqwHi7ztY6iVVC+T/ENYvCRR5V/rEKl3dYPv8AeMkMawQyQiql223yzgJTxFoTDiHqZuZYohPQaipjBLgCtS0Nt3KSPkc5ZOFe/SANMNSpqx9MfDCGeUobv6TcFbzAXK5WZuaQcdF59DNfHjHE/wDSxwzcFN1/VjsZnWHG2HKaL58/OZ/04iuSERcz6lrc7pNv9lKWPXfpFqoK5ZSAp3Ag1KzL9zAHBcDwQAkcwtZb8xK39ZhShSQ4QA5IvqPzLYBBl7LDA2NsFu/UlfNbUFebAO5yAHiWCp6ZqYsO+4LSZw8xrAy1uFgvxUZdMd+IuLO3EorTY9ooBsrzKC3mEuaK2vcxum1XDNpQ7Yl2LMNRgDdvSXwFTPJHo5ZjZFNvVXiEVRaXC1DUU9ve/EbegVfml/vUW7Pd5rEF0d0Cjeo3cDJzmRUH3Z9CW4GZLBl+JqWBq37I0FwKq5wVN/7Ql96WZruNgH3ecXuFyJrw14+9x/qI5fT2l+/ElpDKshsYlJqiKAViJ7sQGaJnUlzQjSIz55m2D15nM+3MF3oC+D6YsJyRKQK70GXEupDrxivi6PuXfqNF1xn9695Uc8F+z1uL4uMYlet/vXMPlxRaWhx/cwdlunEQjvMLWk2mcKmJQjwFGf6i0goHgP7xMbGrSnA5I8vE1IJc8RCDWPxNhYHEC4PXqY8gcQs8rq4RwGsdy8njuHWHoRVF8UFmqzyy8LR8JyNnUEzPReZVmLY9JwFvOJStc7xxFh+UAsRDuf1KWLBN8pXTimcQDT3jeo4XJXuZb/6hfeU0Py3dxDqt58xjY/WUjT4IgEH1FjSmWuIS40Bx9zk5abzA2ygDaOP7IW44g9ip4auFc5/fMtjscXupWtwEphsCxW8/L/ks56upk2WyRlmWwzBLT0IkKIOWnzGM7g0Yzu3ZG2aKvy2TJZ8v4j3GeIBGFo25DiVNVHMqAmsehOk8pWj4czk1EstszkVYg+b1jdWfmFxQ6pFlzg+oyvuTNZB4cnxLvsKMuHH0+5TLkAKdFTGcr7e8v/ZkUuDrVq575mI6NGDxjF/0xFKh5auJXl2hOJvozjNJx+IC7er/AN/MqiCrJnHmBkw5/B+ZlfQnB+JeJTZm4VnaojfgsTqd1nS8w2cluPWZY+mIX1Y80miU8w5DyVmWgTIcJH0PSHYqb1Ql4fZhWVblGCOWeRD8VqXvDGdn9ksDtvi9HqWxPulZVtt1LDQHQsyXl8owiJ/TdRoGabKqVTjW66mdBh5mrri8VcMQ0OUJVyxlgg4UgdIZ/mFjkAIVxkwrrJ/kgH0AU7IbOQaxrBqJXpGOPgRv4VHROm8XKxJ0tikewC5eM6awudHVPH91EbfeFmMKgS8DuYA5TDx3uUNtmymYatEXHKYNWi1V71KZi7cZYbKL9ZsiSlpMBkV9REuy4+qWaiBN5ha6riOdP92w9S1kNGWsPFd/MeutVDaHLbVVrPZE1oWwfatZ6lcRwFjXJ6/xMypGihPV1FehqtBil3W+OombVnmb/nTybfx9w6xfCyilk5UNr2m2GFvj4mMXHEXCh6rnHi9QJUyp3BQ6nV43AkzgpuoYcKt1G3pHczBx5xcpkF/iWGU1y4ipxaNGU9FSxzfjthcKC+Zh6Fy3RcpCBgdPEsBb75uLFE6si680uMf9lDfWGuJZQCDWVqY6Lpf5iE16hjXFrNoi8VKRrwRqp6HmaOhmBLX6ziK8gd1LqLXQ28mNzBGl4jkwpa+w37MtOV3mIr8qqeBx/Uu6QFGDmDBb6QqTXpAgFyEQ1Y4W4iClpjeYiVjCrgiv3RN4BoDVw62ci4/fMw20dvuClmHbeMyh3X55mX4otk+ZpI6sDp16z3b1MF2MHm2ze2hilDoNzcuT1iN1O1Mm3EBu66uX3PAoWav3vPXvLtMowPo8fxuWANNeWqx8ygDbAGW1zn/kDRiW0WjH6xKbls0xlEm0YMfmA3p6uVTA8ZUWjENAFscSaQ+/348RKCh5qbyHUIo1cvDn/spvvckoG2JZ/IhHszBi1oNxDmxCA7hzecxMmvjmaYToi2U1BTIPSPKxzxKrIbgQ1u/EXLDiYo3pLZawKa6lgGoFMEqMWCoD1lWqCJWizYP3CA8sqtQ17Xqf11MNMHTCCZLVygOrZNAoHGCH0ObjDWMN0yw+EFf0GUULZg5u/wDJyJg3mWtFCz4xA2luV5Y1md+sB0vNxDoOuoyvj8sSwtwBSbxcKtUeHRMYcs8fEPENLLauKUgUep5ic8r6r2ZWGFPUFxW56JdCm/WZBF1cq0NDmV5tY+ctjzVAMjMbJQx4/wDAhxj4Uy3gRpWLjvxwrjWia6llM4yXT0f8nJ2sWaur9Hy6uDZbHRP9Sqmazq9EQUZVWU1w/MqgGGShKszz/UEKxEsROSg+T+I7Crhyz1BJQFls/qA3LD6D/Ud9EX0yqLgcbgb77mV4qYVWxKM54shOdcg4lYtg8sLuD01OagxjiITBmR26hfCsfMHnBKgyhvsIt/GQx2ntDpa8QcKbMHpKXChxm2YQ3leecSjtjWkBchAjgnoUwMbz3HlFFltmBG3gJibj6wQUA/TOoJXEqlYK4hjhHBdweuvnqP8AkbPHsSqZBswvQZ5hDe8GxqOmDsLUzg6w3YxgeV/iLaAJgwpELmyLTEYFdpqBWgQ9LjZXRyNNTOcy/wBRcA12BXmXVhfoDzMpzGHzGWwPDc5SznbwEtBS65yygWa95ll3LcoHa1wou1XiC6LPWDk9TiVgIXdv3+/5N1G9KPPUrR0cCi3kqUAXUKfUs5vdf2ZUuxSnr+7jVNt6U7ZNsP8AM2fRXDpuWLjdJp9v3UKNdWsyCzezwwlLDgC4NGTaSqll3jmF3EXew4LlzG1xlL3i3KGmLY64fMNKhL/d/wCRbaOL1+IcCgmUQWrtl82LrqZc/wDgCsZmTuYOZQCw8ROjlhqXoeJnl/4DrMBxHGag9yZJQeECnZ8RtcZRKvOpcsJhAdHAxhqU4vUaxS/hE18moHqzC33vxABjcsP8/wCQ5yxmuUCSKoviDfHeKleGddTaHoMJgXz6NVLUI9tsTPRUPSSm2KZOuH2ZdLMLA0zWbCkOIAoDxThDYWCH7YcKC/uFRauXfUJK+hnccGtgNZvz1DMqkyiC8tR7rxUcG219kSqjSJ49ksEC8nAjz8w0e8rPqa675lw2GOAvfEoZVROm996i0+EbBut9Y6lgs6HQYflHucFrAc6gCZnpB6oUfc8RkT8D/IaVD1ZZkprqAnJkHnzCyWtDTLgX7w1irK1/coxR4JMyrOYPVLPDUxAQNYqBUD2lAla4JTCddxYXmezP1iHDv0jARQDRNt1rM38du6fqpUanpmyFEbXm/eCGAWa6gehtZojRM9fSbkAyZsyRnGrVZZIChlljbobziak0cUiZ+JQfAusRQLCLTMXS4Jj1vs+4lt6o3opfMEmxu+nj8RBEK4ekxKLE2I+G4qlraiGmUIobzECsVm/3eItGBeqZ8XDrxcM/4ZsTOxE6b0fMbDLyM5F8RuPMclqLrFymJdd8SxwvW5i3UNgfc9eiKOG/UraqcXKLzNQwsv5z/Nw6V1Re1B8j+5mgI5+xk/mIQFt7D33Kz1plgelY/dRGjQFmNRabk0Xl1fELAKYbTuHoMapPlEVQ1bEDciVgsXqVSw4mEJKEvR3AZ0ZKhuTKGnjPUFKqxNkAWC9T/sNM+4cyOvoFepKw+ka91EAGhKF63SLHNY7WH5hiavuK7luIT0HvE1cMzF8C/EFDQwYKvA3EOC4jn4mRu+rA0EX9isYpxf73AFGNlwaLqpY1bjxFPVDghwqtvFy7QNirmDwGYDJoMVKbtLjxK1PiDyikux79zUBoG2Y6CrPpKKVBUwg1YTkYb9IBhtTTbZD3LYmgKuYCuTeZdcGzEXF3hy2QEsT1M1uSiGfb2gKVmWkSTQ7EbMnMa7mXIL1UKiN/MsOJLAZ8Rw/uNGs93Cmh6MpFW9+0AGSqeBCFg2jbOH6zENDAsqsY1fzuO2DL48a9LvMxaQZCxQXglyN+cxp5EDDOSgFse8z2OeR3CXJbFxUNwG8JuVA1WWomwOzlFsLezEODX58y6wldR7VjvcBjd4zcPa81VQ5R9QJTXOEolkcsL/UTiDpT8woNJjWomwT+YBCe0uMULiIMy6mXuD0P+RbmJcSLmD1N1NxzhUVIiHrZf6hyAh7x4gPNmICMtcDUqsKaE6qQBz6wKzuLqqjss+I11c2er8kaGZTKnXUEh0t4Ma8cMl08ykQK6NyzA1CK7TFFfMLmoeqobwc4Bf6QKg3x3KmgCULG/CHDM1mziXt9tPiD2teaJSXklZge2XnMIae6Hhv0jcYLxLOCaBMy+7fgm1SOlDNaNVZEG7+SFTlb1ODY8Rvb3UyeDnE2JPqIUPlruAplAWiesSm4XgUJ7J+PMX7ZDpGI7GusnMdxK2QwfNTQDwhcwtTTaDofpIbN0qEXdomUR8jAuB81lFsP0EMI0vioPxMdp/EaNpOM38zeIdmR4gdEAeXqYOPiokUhqUBfrK4weCVJPyxL2QDLexT9kWmvTFwpr+1CuJyhiAYV7yv6zSqfaHh8wINhFEoMRTSvMtRcaAyXqAmh0XF70usRDcQ16y2AbNLNYma55Sve88SkQaFjUfEWdVesxNcJWkjaUHbEDAxzNa0NzBXTQ1iFobOHmI2EDoxUpQEruUbG76qc1ZgFAAG32jkT81OChxmcD48zwAQr38RFZxEMZYF0CN1xK8qMRYh4mo3ZrYnZTziko+ojXvMo/q8wINRObfzMz7y4y7nqEfArx/e5UFhd7xNTX0WfMsocMWpDMF8MXKr+jNzNkZ5mdwdkdnLlpOERhMRvidIPEpd0OaUODe4ZNexmZzKbdSjgQVijptHTH4QM6agdTY5gBdC+kG9bgCy9fMylsvVMizyC69IHU3pVzM8BrthFteH+88ccQ1sFUWyo7PvMeFSykVV8yvQ8bhO6oKpe3mBgYmV3DHHew+j1LiKB/t8wuGFXw6lW04gQxuo5iYai1bLTEcQBbl3Mzh7S4ZtNEqWsDTOZdh0iZTHppe9waQPi5mNb/iXKtscRPQ9ZfuhjV7i7bc1FGT0lFmmpY6/MMmdm4FhY25jfJfAStA+Op82m1ivANSANKj+/eYHUtcPiVNnmsvmo6jdd2SsqK2dyvtO1YHw3SkKK7EeCYi2OMaS5sh0UrQBi6jmGrW9H9zLAeP8AssiNbS/4jI9GKOJhbp9WGtejDF9NL1GXHwRdn6zKFjRKOaV5Rzn2Jwq9wvResGb3LOErqZrIPpC3gQMzBiFA4sPqbxa4/XDoucxIj2LEstcjK5Eru9wqYShupOpbgYYmp34xMgbgzuo0HxqUIIDlxxBZR5PMX9MA6THoThWqm42VTok/eY9jWEUjBsysy9AxAxGjbFRb/fMbM77gRU8N8wzMm7vMfIpuXfvAto9zEK1NGrnYsRup7EWmemIMUuKLmnFyVLYvOXUuw9YalA83GKmCWjOYAR8y4lujgruOME43GFYmbYH2DxnbSazDxh2xs1QHJDaHrE5He0qU73DAMo3dqXKWesV2+sdYhwRJRd3UaTLfiOcQXU0eYIsXu1B0Y6KYeaPWHYeu4NwfMtchObgvYjakJr8wCoX2slF1SQOop0A+sRMspy/cDb8o1YfZLcsAalRfnnS4MTBqFmWPEBYC4cvBjwR8RxkqEVsczGoeXEDlRxM1VGHiA4d+GKrp6S/7lrdtApjqoOrCPreY+S11br16qXC4NG/R7JmtzV5lBzj+MMRk5hPclnS/tzeQ3Yyi2is3mcXhxBY0uMS6oqZS2GdANXz+o/g3CJnpMyXy3AlAWoMxgM3tjkra4uMWuzs/qYih6EtVe5FWpToKlZ4JVRRw5QNktCeV+jcdwgyvq6mNhMWbdyw8owRq2fQiQprW7noBLAaUU9wsLpr0lsqaiZDwj0r4gNc/EarwIhir7xCYhiUCLcGZIE+GWlsrHFI9K3BakPpAbs+Y1WIOQhbtrHmAKsZ1mZ1iaLEeV1+IJeCbWmJchYzaEk+UOFJGwyt6S+sOaDECNnpGXMjHKwxKg9EQOaA0pO5dyiFoh4qc02R+14uYRfFSluXTMETy7NX71K9gempysUK85nI9Q/feHWlnuR/FtF5gSEG92eI3KxpmNBpzdxUTX3DxACK7lgVqyFqLOpvCTB5DhhTh0xq5kvrxqPF5+sHJksEXMZFgyUvlmVCt9RW0Ubb3KeL1jUGB8QFZQ9cQO2aqWs/UllKSscVG6481AVudQz9Y1sZeobGjp3LdGolgA+ko4pnym+4KrvE7EUYXZL6U3NGT7Sh6F6haxnL81dZjBYcxlwr/AD5k06/iCm34lqbuULl9pyPlMmXwheL+I5N+MwEGsvWcnLKs39SvNCM0s7P0EwC7NsyuVkA5D5TCYDNN+8QjTsnlDqncuGEmd4hlNN4IxZnN83oZbceHzBr8ixF8hgtG4IoPmDUMbzcxdTIpxH3yKT8kvWtv4ILw6U2QIeUpZcSBF2i4rvHi2YsnByqvaCeJs6RT0FA3UfI38XOdHJGrJK7jTBTDsHKUYvPc4Wh3AotpeGmD+BcBX8yCR9Jas7VXcuzkZMFR2Es3l4qXToNziMSZDH3nI4g2RHrUBob9JSAPaDarNcx99uO7WWwmx7Tt3pH+bIvkbbzENEdTip61OYqepmLGvSKbqDEtVr7Swu37JZ8MyuqrmGTCBysoKU9amlHtDDm5bkHmOxn0gN7yRvQtepVpTyikts5lDjrRLkFeJiTxS3q+IcrPpKrbEcSiVglRctUaxL95QpT5gEBsaMswFRSB+HD9Tp0Az6JwxBittIBK1GW9ZBsI1HeKCFNg+DgnscqdXGUiMcRvAbMFb/qFQ13GA+Y6nkKpTrzlwvpboqOGxW5mMNoVHe5vj1gZUn3l4APU5ArfmVU6FkDCPkJbTNMsaofDq5lWx7XmCcfYIUq1Oe5gTBKMNxJVmzM6rfXEVoGzxqYBoeiBF82XOIBLutPMGbAFa4qOZXKC2tc6uWZLu9BD1l4EHjE1LXHPMMUkv4mJ9vELcmAKuvVgXdbq7gLT1VKqjFN+I5a0mSKfMsPIfqYPa95mflWZSpnNy9i67UgVZXmMzWMBi0jSwnzMaYhaBI3zFTKrD4HoqaqvmZVXcYhsG3uKctEG0K5bwPUsq8PE4VOI0JZeaTJg3MljcNDWMyqAckUh55HIuZRJeXUskDTHrCwUp1KF5uMCsVnuFM3glRQWrcSjn5DMfIBH3Ix95sPSAEVoq5R2C5EoTUwuoIst4DUoWPVeYp6D5zLBmjuziHrgxlmNC8OHiDi2XGIdGHxNiFnhhkfbic4e6MSn08QUcN/MuPkOdftwEA+CNaPIjsK5jBuyahXrygVzgCxL1BcVj0pgTSL5SXCcB6pUaeB2QHwEoJbZdbMzEb1cz4OhAL7RZv8ACGWFV9IK1k2pdVAWtbtCgsG15lxV0eWqXMN1nOopYaZ1KtSmCxIy7CaTsfmcHUvaGef/ABYChVHmDgOKxEDNBxKOQRYNo1Aiw9Govlw5I57F1DQpfaL2Wc4izVZijX7ltquWqrnpDEphRXpUtKarxA54PUQOvFROfW6mACNkNR2toDUA83FMXoZPcpUPVylnbJgNQWR4HKMZI9XHiUTL4xML1USxCZYrtWozU1wD5gL3kD+Y6qC82GYKzyjFS03mLWU+EV6oRMmRW4DW5b0Je92y6mTiOZs/wSupd7c5mered4cfv6Q6bRM4jlb4tDvJ1cHGdjiZCynEZAKCi8TU1S6iDQPP2xZrjtjGZjrLIwRYmt6gTrMu4Qy5a6PmYSnVVfiGtwOSoKAeBzKNh5NR8Kbq6l+K8O5cNHbf7zKcC3+UgSEC7F4iXtQKeqMxK+VUyFbZTErVA28ENKXSTXUS5CWdb5QShFi1FhN8OyI1phe5kjPuxgmtAzAFHcABDvwxU9cDX6QxQWbl0nF4ZblCs4hQaVswazxvzMCFXd3cBzC/UPl/5wdrQ4EMU4B45ZY2mdPf+YFUgGAY7I8k1KZ3zDhfh1OVFcxqZ8NRj5GFDsPmfX7l0hFeHXEFuB4gPnq4mEGZLw3CAoHnaPo0lqq/WGqKSbbl0izOTxKTfbyfUWKGtUzXhQyQJgzxPoDxLKCty4pxDAiPEKbs1/M3eRPn+4S5bpdK+ZeUXZfJKCODb5v9YJ0ywC+F/hiBFZeuPPzGvQleP25hM2js9ShTtsi1gi3WkqFKKFjzWoHgV1fiPO6OY9N7H6iXqzH0LuOopQuAqmL4lActYmUCjwS8CAD9+JrZd7gCGsVxAVKndbYUA11LGg1Nrhc8xFYIDSJRy3GSrHrG
101+ bB5wpDxtvWMos1H4Tq5+ebiVydwdS1qpeXtq9zQGFX3DIMS3MMZfKX6Ww3uVjT0mCBcO4bUnxDoLK15jbTfUxKS8rLHWnGtzOMr3xAFxGwXNMww/AS+7MI5Yt9TUob4nOkd4Y0wC7YtTv2TxAXGUCBwCMWBhxiNeZsL1BKzrBvMwR71M1y01M06HUwHYHnZKs6lyrWqmplMcBiWoGVXpnE6R1A9FmGKjCg3eEM4e+hGgXJLVilyTRE6OoFQDbe/3EMEc4Ps/fiWZt7trGFnzG1g3Xx++JRCobc+IztoorcQMi6FavEsDHPicS26PM5ANcIgq0PbUJ8FPWo+l01xrzMQqjL464PiHLKTB8/5MoCMF1Ou5XfrLZjPJmWJn0vTAqRbXHrKEXFsn0jkUdQ5xnVy0JVL/ABKFqqKzFtgNY3ChLBCSTyxFnlJiA5OBuKQF6S2TREXDdX1DronIxbmW13BbDAzzOoy3dYqdIOo1bZgwgE97fmN6+iuWXR42zFmOxcIRx17wkMpFvmJrSzyTiC+YpyIGrjqK+ajAUHvF3ph7GzMzeIo1h66gFmPyS1t48TJjLhXqWUA8NRIZCHO4YHAY1TGWGuPiW9OfSWEvGJF4woOTP9/UTgllqjepl3Sz6zIQpUxADg3mMzjQ+J14r8oW0mO9Eoo8tfvc5NekXaitNXtiAIjdkMgqujmZASnL5nAqH+Jf0ZzrOo7IPJ4gvy0jhR0MX8i83KE0V9ZZRUKC9yo9KmICWdEZUTnNQxFTMkb0cEXWjgalFTISr4Oz/FTlL4X5zEZi2/5hvgKqUxPX21E0eHZyTKF1in8QUUXQfJAeZ5MU693fct8F4HiAVbVmRYJ33LDlFh4mFQHcAt1uaJVsOCN4Lo+4jUFELOJQsXbSruJVVdc941rqmESwH1L8vmK5XLGuKtmebisx9g8KZYYjpjSh60HJYzKhtyqCMMfqAXb3SjNaWvMBlNurjbEm/wDI0lCLE737w6qmSj0lBncKhTO5uKQMU1u/McUB8RG3SEaDlpqIGspn4giwpgOLlRl8vDPrFzIM63PJy4mgNrECzhd5+YZ1GeY6UYnKo20a81AmlKR2t6HxEJzOonBg/wCTGhp9IdsH9xzFOmIwqgr4iQumUrMUqB6RrIagbHL8plgy2r3mU4bfNjL9jL8TGHGT3RpaKtismcXSOb/MxtaQEipySzUxkXuOl4nHiUFqvGfMSHAdXEsGDEE2Y4qZAPn0jMcUqIhoMv77xhBbEe7ikZo8X+sPAHkJydH2OYujFo5SepSPrvHvFOOG6al/CF0jK4LmM5msoHSURT7hX9Sha/ulbFbx1MK3qwikKwOXH6x04rvHM2CvfERzP5m3fNPiBkJbnGuYAMwm4u0VxzEZdEeVUQgcjv8AfSVLANX3L2nNfcYUfeEhewq6l10uXfKNh/A/v8xrUlUOdf7OLTbOfT3iIfFhq6xslzaDDk+fxGtVrqIaSkM8pzHVXn0iDfiypdqFsXTGh4Oo4PrusStGK6yOovNc9xh0KvSLAsuj+4CqB2PtEEwy2F/vMr98uXEw/UL9n73LnqlJb3v0oZhBh4xW8PVnMVH+pjYLtyl/19yxEvrM84xVZs8ykEI9ElRmjR3/AJM5bAxZKEav994Fi5ZLO81AGYzpGLk40m+oAt4I1GqeZm2IVcjjmI7oZlagdoVFLO2YNVfkjQK2RKURQwbrV8Sh3cLi01VmdD6+koCVqVWgXXmJNniK9abphdzdW+25RYaiMomL/Wv7lna6cwBQnHUxCktQLiGBMaKCO3IzA9tlrXjH+y2C+We416C9CGzJGnPLmZTkrfctvIL7hKDEOVcTBczrtcr7Ib9v9llqF26mJrBftqWLAtrYsNYYtHvUqKQ6rSv4YV4DKr3/AH2lWpqj1mmG/wCFyrNnH9RH2Alg3sFe8OYeW4lYWZ1KhSMbLlVjozBnCPKZnaq3m8xy0CUxGo0F4LlFQX6RyW/7w+ZJWj0YJUYYVaA7ArHmYrkPZeWIBxgfME6viHd4lJA26jGk1PaFFC4BeIkurEzzn+5RvaUkK2YH4iFlrxFGHFzggc54mWFHZ4L18ZhPIPaAK+FcOoKVBhYCUm4I4RJDdRFBMVHoFJhCb096hVCxq9YiuGnBGTkDxKNb4CsQpqZ1EPBKjtLsuKys2PEcE0ghBaN9SxziFIoOI1V66b0yi10ul+pmbXoXfH+xjDkHPp9QdsNjdNMTEELdn9qVwe469PaJ2DYQdjeZhstY9ZSE92/E3Tr3cwvchRqq6hdT9v25cZFKqPbV6YECf3OmDWohzpFQt0rif//aAAwDAQACAAMAAAAQ23f7aS3/APm3+NCS1QBmnJJJJJJJJJJ7NPnQ1y09En+vYASJ14U6K1b15JJJJJJJJJJJk8d4lUwsyg/lQck7YE7JK02nJJJJJJJJJJJJCLgRi2eIrFj9Pm/JJJJJJJJJJJJJJJJMhHJNJq46qX3heBXITnJJJJJJJJJJJJJJJJJJwYv2w7824D4mQgi+3Gk5JJJJJJJJJJJJJJJJJL3llgVsUOH5cMit7hCUHJJJJJJJJJJJJJJJICNP7n1oQWC1SaaxvdM6Oca5JJJJJJJJJJIIBFT0WEUFWL/H24pe9zPoppcIPJJJJJJJJJJAqNqP+Ty28rpja5errope0ByZ/wCCSSSSSSSSCQcLDItSbh/M7af+0RFWsNolpp0txmSSSSSCSdJnt6hrzjj4k6NZsk/qNvbpcDK18xLsCVEMPMoNSZGUs+Ylr9slSWWjADJ4GuCU/gP1RGE8xIb4GR00oC/EfermKMHG4yNUd0uQFDWlxniJVuanBGVi45A4nsvJHebnONGiBDhQj5vQPoBJi5/+efv3dy8Dd3p5OSLm5lrr4hJG8Y+zPZ7dOvPpEJaFG+pMWY5iq0MtVisDooCJkJW+DIOWfyvG9NDi2Go2RCUqNmFS7WWAMHmGRfTv9tX8KShCuLgEDisKbjCvGBAJfbuaHg8KmnRhWMYVmVbDu2Z+iYsPxLlFh41pIXuFfJ2UwhAvD45ZFzCnWS64d73mWW/bKjH3csEYyVTMwIPmdAN5BUsUGsYclNP+eDNBD+zM9ZdijfkzePg3qlzGvpGnzo1ja1etdpC2zJ/IiJbdfhPRWSmw/tHy/GDTuRdwDaWf2gnGdchRPdrPEmCO1/XryGo05QfTu5V8UKg4MLA0nnMOfTNXYOeGofjDPkdQQUdQKtH6Io+8Jw3S9JSvjGxH9AdelN+XsBbZm5pj57zAevuiL8YWh8BnQHt/mzQxK4nBCOeIGmQYeRbV8SCHPuoQ+Tg7RfKmT42NwIRrfclEmLCJNJe8U6DPMXrOfx/CBJxmMNjybb87eymySkmk2xawY/CWQM1No9SOZy7RgB0HpjhzItk0IWPzylRRqvrJbeuWeI2QRI76+npB1abgjYWMZDInM/XrK3K1VeuvSAq7+u5tMnYryI1FhqU9ekVgA/xOMlpxt0pI+8cd5FWNuULvxSYJ27UPLGOA5NWoJermOUhBDTNBHt0+2DLKl7dh3tidvxyOK7B2Z10Jx4VNXxMecOHRR9Up37GzyUgXjtdtQTKMuIuDicC3v9kl20vvxUxXcfae7USdYLfpHhYCVJHiHNEldWj+ziFuBEYP4ltLFfyNg6gKGHeCv43UYMPwaeQ+gDF6BQ0Yh2CIMPP5obB1b8wWkapKxs6Em2cL0faAPuB1aqW99zGhvP8AO4XTOuM9EBVoNY7Nq42kVMuSVpJxEb9uKEEhzwWcmDj20DFAcWl/A1vjq2X6Qp/w3/8A8upbyDLc0dGz92brEXmdzEU9H+UvPAZv/np6pMkmwsNlOXLMlQcsKYMC097tihazB2IzbO3W3o3VZ97/ADbb2r6gebY2TNVQ8RDR9RhJlj6dcTpQOjkj2UuKkXbO9lsI8NyGnQ1HhSisH9zKgt9euTLEIkubmc8jjq/bQ1RfbZrqeCpDI2igxKJvtF78IfFprT4Sa/mV9amVFKOSp3co/tZILZfmxKgYXU7caQo5MKL8PgVkupVL6WcG7gwbZ5oCLd8ghdQQHtVpN+Ea8bgGw6duOuprQj3ryiBMc5i1rnCu2v8AttO7xfMFMUCY/VMYM1IVvaJAFw2c2t6ZcrAMHQWNa78DFBeh/XOG4VWPeTvjpziZ6nBE7Wt+y2FwgaU1M5g/AXZdjinxszXyHsXHUSjagM1JHCM//8QAJBEBAQEBAQEBAQEAAgMBAQEAAQARITFBEFFhIHFAUIGRsaH/2gAIAQMBAT8QzaZ27t3/AIZZ/wAT8yyyz8yz/gG2WfgR+b/wyyyyz/xTGtov8QdvfzWyTJbqfgS7kCn48tzo/wCrMezjHn5v/AP+OWWWP7llkQxM2Wfi/ufjP/IESY/kcIN/CdgtvZOP5Tsn0vGxrb+IGTPOwnvZssg/cj9GWWfjqxYgz/jlllllln/kisfxOqHGbz8OTp+dvJf5IpAw9v8AF1YZGDkD/vYtp8kxz81a/GWf+j1f5YPbf+Z1kgxJwu8/br1b7Ly/7uZ+ZHZo8uDb7yR9uPzLlsB3+zPBsTP/AOWOC/YP/Srl/GeO3a1rZQwuj5aOZYEOcgp0htdATpuT128Zht125Htt1tY52e9l2DSTnI6Q8tS19/EOmcRZwk6yq6x/6VdcLQ4W/tsdscFqYzmXTdjJrAfJwh7OLfxLnkk8kv8Abe8s/G8vYPw0I/sPY87+B/LGNPbZW42C5PpOAQP/AEWxPI2bYRow66Pk4bCRcnnYZi2u30XALKXdtjd6R8P4PYex7D+2H4DtxCd4XDYwOwbywcsxK2AdgXV8vfLbbf8Azdu4Ovko62kgu3+LapYXCTfJG9ewlXgJzh9sxyDQu/jeIi+lryB8IAcs3sI7FLMs7kO8leEn9sWA9mez/lq8sfJ/hCwg386dclTimPbf/K2eGyLI42+vxINTdy4cgUwJDPL4QJsrZo7KY7IM/DwhzGJW7kjMmewYSU5PraxXmDLsNlDXt9tlJsbE9Gzg30IDF5bK9RjywYWRtn9tnkP/AIm9C94Tak5xLEloJDUExYJZ7VkaQgxkHbAxfZGEq9lHSRLv9kNtv8tyH4nWymX9hDIsCOqEZto2wkEcg7L4gE1h/lpibzJcIU1ZqwIbqBHljdJPtq+txRsYRNz8Voz/AMA1Ok7MnAv2xxlA/wBnsLlA4ekC7duRe3mmMNPLs1ncJ4xvlJl5Jog9vSNMjDsHxgfJWZN7hPkn2BdvGEdA2CyS5HkuToNt5kXL38xzsHeyvlq3qAstCdBeSwBd/PdjnyLJncf/AGHf+C5GjY/PfLvyHYOdscWIbaf2E0S72Z1IQWHiQsZ4nwQHX2PhPjM6NhdtvTIs/BvIhvtj7MxjyTBJIW4sZ4T5FtxMeQO3OXXkuli/yfiOEZC8hvGRHcgiaWTmsJGWbBZJgLRu729vvt3yFGSv/wBs5lgX9uGoZx7KNLg5ATpJ4jM4DHEJ0bxgidsTkoA2ZnIKweuMQGzmuW4R5YNvo2sYLrFmfj/qdiM2E9JFwhKWxuMW8l07+FPCx8lJyTtj7K0+TL2/29csXlz0wHfZUhwtDbd0sDGx9l2EMtmPY52w+XIel/8Ag/gwU1nrvJw4wUNt3PxOHJgbE0WCsF3+SU/23/kwNKw4Y1zJvZEF5f8A+aQMiaW5IOTrGkO2hGry4eRr7eTuRZpAdP8AZppZyf2Txum/zYOSr5Y+wPs5mxuQtvMYYXrICffYJzYEgXHt0eWfYdICe8nnS1kPcLcv8W4/kE6cLDhaTsnyYbb2FuGxhiKHZOoYVQLDjb4K3mMWYAtOsIyNWaoyCe2jixRb2Fpb5fb+L5fY/BP7G32SW9ul7NF+IPdmJn2bhhgrI5228h3IGc9ZHCGcYbsh5G+SbYMs5NEckHhPAkG6tjyxfYMYYwP7GH2RHn+27ZBZ9n3lyGFoeM27D42DXJowCdt+/GHT+w6SXffJO3XX215kGN7X4Ps2U37DmyYYSR3lmcQcvDsKW3cubeIsIuJ+aW/bhM9lFPsB26A+28P8l8No79lj2z62ul4VgXL6S8uIZO9hONnBn2MSplo2PV11hA2Ndlrc8IFbW33uknVtZ38cedmjfJ4y7D3klqPSX3YcNuTB3bmoCMr8xr/YuLT/AIzekYYW6bBZzJyGQ87by1+28i6wSa9gPsZluR5XmPIpk4XG/wBlup/liyTYfsOIDr+Tp26LY5ZBsIeyeLY57Lh/Y/iV63PGP0tHZQ5HYvEu2PkdZkstOkxrIWAir2XVlwsrHIm8k3Z0iD5cOwWfkMNmDyOsuGR0WRs9TLMyOr/UkcP33n48Zf5Jr+PLpBIL2Hy8y/L1dMJY+yh2+hInLEH+2kudS7jCOJsMZck3jAWjLeRrYDJxDe7DesA+ywtsJGJ1uRAPWH268nC9N6Luwd/MJDudj6v+5X7dMsxy7Mg47aey17acMriZiPfwPx8jsjPtkkBmw5NPIWL+r1sbl7BXbc1JfbOR5aAn4l0M/BcewQoueW+paYWyL/51o5J2JO2EOTA9vWe+FnjI9nyRcCF/9h12+CT2MLD5ITsTO7I3bMT/ALaBY5YONiTuXXGBsjf5uP8As3l7OEZffzcb7ct3lmWI8n+/g8ssBLyWpB3J2zyWMLs3yHZC4QYLt05cz+xEV62N3LiwWbeYvAkmH2ezx7azn50gSDs4EhbYxOWKwPJ7MC/hzeQwyQcgxI5EHJk0H84QfZWzOlw9uZdMctdv7tyPO3sOtjETWx8t2U1S3C4kn23JATx5bPZwXXL1OInmrA8iL2xeH7ITJ6LpYB5DTkCV4wb3+MMBLaP9hHbCDYXhurlt9s326WvMsrFeS52TPkIbcLiCeKIFz8D2+2In+Tx5OrklsOnLP7aGyYjGMMsbcOWfmsHbthcy9gnztqll4l5POR3CG+zxgF2As7JB9kXXkQNgewCDtk8kYS2wNJdxbA19uFiubIvhIzsNWr7b3JPrHZwgiLNbhILUQ7GSzpMN+wXWQQfIH1v9mOJe5Yi1a+W/22VbeNuxdb/+y5sv287a3Zk7BFk7+E/F1yDslpsewgh24se5EHbLa6WQL2Uv4g6W/thrPlyiQNfJ8Xya4vkmLSVlmetvYdjzWE+WEsq7PWQMhN2TYW2iTwmdHIGan+Whyd62ucvkT7aexrjHvbB1jj+CF+dnwvvZ9hOMocCwyxlt9jz8+SfJJI8sss/sez7Z9lwjpZ9jrB3z8AnswQNhqX1S8Q49sEEMicPiaiQzy2S3D+OWXFq27P1bvkAMJzKnbS88ltp9sLbpIMnmQkj3KLCxf7Yjp1tEnqW/JNPYGdeXbR5E9J5KLZ3khm3rIN8iyLNvt62dlg2+29nLrsS9vsOez2wnLGDsnokXLa5aAju7e7D6WGkxmXAGTnPIyoWwN2PYwSfqRbW/qEs8WxkUtsvC8T5yVMtN/q+hPY3XIMdnBYDsRvOv4XS8TsuXZGJ43/U+QW/nnC3Pz7esAsMm/I/235dnUsXeocnrDS9YRswkrtzn+Jq9vNsgMR3+w+lki/iLGkeF8uYMn2X8ltkrdbh7KSn4N+Wa9t2EdYT1vVgMJjGPFgLVtN/kF6iCuF8ZDLTbj5bRzz8JZyOfg2aGX/f4c2H/AC1Ucv8AYCVEavZ6tgfZYNORoyEesv23Ls0Z1BHp/FvmTzP9kp0mx+Du7DUnT/Z1DHJxyN2WZY8t20xP6szySDnYExGZGtj7BfJhiMVyXmy97Go6ch//AG76XRkh4wd5YefZFrAvJ/Gy38WbOyfknI/AywNI9mBnLlkOT8s/tx8s7bMAg2M257dZakgYpyNgLkWbloJPmdfYRjeZ5L1sgJxeQ/kCMuPJM9uWCR8tZO7Zvtj+3PD84HC0Pb+15g7toE9LF+T5L9QJ2VgzI68n8Fg28/siZauJ/wAnkdNuMO8kt+Rot/yXXk9dG4ZHJ53YAJkH+PlwufCEvlrbWPJ7B/IQ7BW3IS5bxFmMoFmtyHGB/wBJS7D/AGVY3KCk4HLf5LBIIDwyB43ZHyRPbZeXhYcJcqXiBaffJC5M9jEOWLycNZMuS2Z3JGyeJfG2/ssPy6cixlha2JsFdvgXgltr5I9bxbzsnfxh9ufhyy+X/dh5ZtgyBW2vl9y+S5EuNX5hK5DCZQ1C8sjy18uewDpPsz+pxYfZzYAJX5Kv2w+tw5MJnZye9FpzJozef/Iq9vJaQ+pUlZk9jrIkbDxjA7ljmtyekFodbZ231+TGz8YsTzyeodqt9gJAnWD7OfLr5Z3PxH8s+QZyM8R3qwI2cyxt/ib+2gLYe/lryJ0bDcQRj7ay8hpe/PxQPJxeWrZJnn6I8sHkR5/Y8oekaZG8eyt9n/FtOSfYL17IexJkdcntjO3PJjCVgEQxIPYC/gNWnyxZARFjzkcsuTtrYNy8I65J/kHPITQwLZT8g5yA5sYOSVW1vLxvsHecInPt5PLA9tNtiQyQPLztoS/bDNbQtxsKMYFZtmfb5UB26lOfhAOstuxo7ccbPMt52863XSDdl/lweWtNZkv2FY5F5i96Svj8BfydN/ixfWAXVbYltEt7ssjmt8di5YhtZH0nsSJ0QOCZvBHFOBY4/kYH9gILoggSenLPkw+2XIcdv9YH9s7yC6Y0sHJCbk/yW/bjsNWIzf5S0mQ+2iX7APJyQHrA+Qt5P9hMgJf9IEBYGBYhmn2z7Lr92xnkzYv4AwPsDCcb+RDrD5u3WH1uIX9EIyXrKwX3be5+FlZYxu2osv8ALi3I1y4DIbRcvPLp7f4/AVr+XT5Gp/iOY8IbBu2xLgcvlAHEh4f7beMhB+yxuwOqHOSm2eMI+3f2YLbD+NrYXftsMZYWBaY13bH9smH8sdjgG0z+DVj9tnPwX2Q6eLtA0ZfXsHS9nZcGySw2xBeeyG8vDWLd8jPIkQ/qJnwg70jVvZmCUXksvo2t4w7P29KWbD4xr7Lns7cnytfZe7t7zZw+2Pjatjk5t/pklllhYTz8PZJI5cYOzpI+ZCDM2MfDL+pD2Osh8XSCSeOu2vjlhg8nNNyrbNwm5uzp2JBZIZDblnYZdhQebsmdnMr2H6/Bt0j4To2FtInn7FqWcmA3Je8I3xJNzOTlsd8YH9tv8n+BL7AkfEYdZmY+kcX/AE/L8LCwsiyBb/A3H12WQhvPZTV7bONiOsgvUm/gPxlhOpyIH0s7l4nS6DPEtNsj4WlzGdjWThs/kkWMnprALjyZ6g/J1w8sHt6wu2XNIE8gsJcPzf6WFo9vXl16Wn8lP5H0mKLN/wBpee2b4wvsRf8AZLLP2wsiz8RLtkfxhvb0R8PJJ5YzGA2Eu7+aW/y0GJY3ctfRIcC7jYuezO7CJy2d/OcD1h5WEULLFce/g/y1Lr2wfZ8QR5OuWfL07GmFtDyCJh05ClW/Vj/buWPy7Cw/v2du2J8tbsWfbT8cfIJct3s6tmdh/sPZLRDeTi8kH21tGxhz23H1cQvYH40hHyID6LMlpmQbgkrz8hHkI4zOMjuNlvsYEdie+QL7Jeljk86x/kxvkj9/Mflkk9nLc/BM/E/ljZjCZ208jjsq/bn2bl1y1/JRZbPfzjJ2OxEg/Ht9C+WcNzbQeXSynfthJYn229G49kR+Lt24W2zGm9WwOxjluM9/A8PzUGWfz8JRgMuvINgbiQjw/HI1lAnX8X8cLdvS/wCidH8y3cfizvsQl5InZf1OzYNvIbEBeMC2X8RfskxRg5CD8H/Uo9t0gz9NQTyQQmwxjA4+JTsV8LiXLW1EL3fx+7D3W13JgBC3tw4QhxhJcmc+/g3saPwSj2Zz8NBkatSnz8BfyQ8hjKH9MfJT7cbD5Oxkh5bIDeShIhwsE2wzIgLxkueW9i+SNIjc5bzsushWYhbVbVeWiWH94/pYfS8oSvSH8JDk5qytt75aXwSWMYvL8jfrD2ZSEfCN3Czl3eyaz1YbNm5HJwOEmHL+MIezo5bWFj8phdEiJ7BpYtHZK3J
102+ YDZCz8ro5c+3Lv5I9knsF7MaIUzRl/EGt15fW3JbntgnIg3ll7b9/Hr5a9gxk38a2+WPjJ3YHs6TiGotsy3rej+wHbI4z9yZEU5c8h3RtPbnyR7CX8Y/2+qf5hIz2RuDOmWEL7+eLpwIO9lpLk+U5cbh1CvZRtfSPtaYYXJ4QTNm3SEGs/SNWPUA8nTY78keWy2Fw2n2wmFybMO2MnLI/OIcoMt3KPLvL3LZJ5+UfkzmS326GShjaFrxL4k7fys0WGfbAZFnOFhwgiY4mdEDHkZDMQByzLK2f4hY3YUlwbdHLYcsVzsI7K9v9JytZDp3y0S5han5BKkJmkYtypDGX8tJxj6Rpz8aHtk+wc2Hxacyfa0Ow/IH38HTsN/pIIF8jVwjP2+OfZIkByDMljBn5yTISJKADyBdMnPIfZ/mBeWYsHy+cg+/mLywewdgLNj5adsJOwIyzUP4my5tY/wBsYs15CDZGQEtHkLxA/bcdnPlm+XRYzrI9LTB8ukdMZJ5cdtfV3bcfbxuMQ0xkCkaIxyFHWRLWThy79lTtr8hFh5Kdk+wjz8lsf0XwtPxxsT5KLAw3jD2Dn/EAFttm2N12S/xd+2Iq/l9UVxgnTC+QRLYsIlrCWHeyWbx2RZI9hfbPhPe22xIx1lZPE/5IQZ1/AO5I/JHEn4lDlrmybc9lGVQM8ayk94SvIqOyQSZ7IsQH4w8l55O3n40v+7QLcIdmwgP3f3f+G8uf8OWH2TAsLl5H/DCSyfhmIn9siQyWCEqw+30YGAMjLsBtHbFuF6kKWchDK/De8dT5y3nZZ5ESLOzluRJiGA/970sWyyepTeLIl/efm9jd/Ok95MIYJB5dms/hn24cjxtmWXn/AAGJj8yzLNks7bk9/Mksk7P41bs49sbbblu/ifyPLX8AZoHZKxkjHkYC1OW9sOf5fxch/c2PzMtlyVtCPNhy2OXtkuT/AIfm5bfLZ1CH5ssOnbmy4TDlv4N27M7EPZm52O3yLyZAkxkCdXi3BlnyDDINvJ8jsj7EJ7aZNlm+Xlpsx2//xAAqEQEBAQEBAAIBAwMEAwEBAAABABEhMUFRYRBxgZGh8LHB0eEgQPFQMP/aAAgBAgEBPxBiGnz9wF8v9f8A+m222/8Anv8A/bbf/VaScP6c7/nzO/XPPr/meQ3b2D4jXIMhnkjapsD5tGWqMDll5e5T4kYYc+MsGbv/AJ7bb/57+m2/qf8A8dt/9hV58f30uL6f2Z6f6SV3MujbxIDB9T5y9hzt4ycGT5vPbrH6ZxrOf3+YtzGf/j7+u2222/rttv8A5bbbbbb/AO0J+ghE0AnPz/Pf5tYOD7Lkc5lo6RtredZ+UiZGkB3Z+kau2Z+g0jDHhz/qR9bKvWTz/wANtt//AAjdWQs6hp+ITH2anff039N/UiO+2UT1gAPc7e5fuHDeTdlcvfZ8/TGO3wQ87Dh2F3ZH28/om/oD90b8XzXsDAy0T/8AigvkWw6kyESUbnn4tZKxbB/eUl59wxOf1u4YFtD9/i1C5+/Yirk0Py/whRO/jL5j/WOJPybZa/i0iF7eOW82TXSWx5DmktPZOWsb8/oT6fPYA/8AosZ35KrrP/4uuckaAViP2ZWD/wC3e71/0gLHXxfKi+LEvj/nk7cc2V9zPwdLZ7JRuxyuPxGuuzAH+yW+QL2XcF+IukrnLr6wHxJyeIObdW87H3ftHP02E47smD35mo6/14fz/jEg92//AISQXzAsDfuGT8QDGEQatF6iAhmLZpw9xvl7EJ75OUeyePIkUDy4OxmMgqcf2/ktN8jYXY9yOeyPi3se5J6WhjJ0tDbh2DZctPj9MiH/ANtrRjttF/P97jbr92WWf+5z5gNeWzvPqQV3IcF8YnR1/wAy2cPYBhQkOWJnwkzDxgqzz0+7ZDi7/vdKY11ctEznMvhB+bFcOdmefFk4NvpsFrBrVyZ5Aox1sx7euMO3rJHLGfmKok+8lbO9lzhEmQXxGk0PllMAssHT6IvkvO/+0uXD+b+XLN3F8CXHyfMWTyAgv9r7zOM2X30JSYYXzA6izVIuwd9f+rRe8zZEt2x4QNBqn7SutqMn5hFtZNCy7s4NPi8cj+1gGmP8sL09vA85/eDu292G2N2O+245fWcIMP0HUGQEhONuMpKM+TgvnxdowblPl82zPbt7OP8A1NMiz+ZwJAPl+LZh7DC/HJl9N2fhwth3siFmfV9KP+bY3zj/AKM/f3Hth58TD8FmT+sliPI0/oizc9/4gr1hMm6tf5lppbHZkTme3LE4Mba+GefxKsUeXDkkDgQA9kbvZccuZt40nTYBrL8Fh5aJ6sAydxP4j6Z08y+e/wCPmzuZE1rBD/5+ZOm0CvxM6P8A0BDfmMX8QDTt9BLt/wB58piHLDXL0WOQUGCyAfcRnvglV0vZ9/z2375a8AmXu6f8/e5Ju/2j5DMuxfZQfiEJdDD78kJzuf5tsZ8tJ8SDjHgSGxDVHZtgHZ2n5tPwCx2lPTy/KcA6vj/ePLBIztpzJXstCHOxu98nvk6/MAi9sFzjr3S+yNnHsZtx9kkafxOfE39zPp/vP/to9/8AF57afovlcHspmyUveWouc+2J259XiFsTdp+f/sjzdZQ9ee/4yLR3P95Hs192XA/HPLrMgF582kOEyIh9p+8nH8WQzI4QfFl82+yyaRHy7wzD/wAz5MyHxkRX55/xIz/slnXll++T9+DphZcWwHX3kDN273zMsY6l4eB+Js/OZPmTrmW5EPl45jIobBzst2QzWP2lD9DI20Qz4jecz3I067LxfH+f6R2Wh5GmvsiNZ+IBr4nVryAInx/p3+9kE5K+iTJjLErD/eBIwsB+9wJdHwuXhlrlHrn1YE+c5dDOPz/vDR+OftLqZp+zZEPr5+0AQCMUv0ds4Xbjr217KK9hHqQIFjST5jwgel6AlHieSrZ8bj+ijxOsG8XT8zrcPCRHrpLu9PY37gNmjPL5oHr7EvtyD19zHnsGKcR1OLIRvpYO+sv7Fkm3XSDMN6xt2D9HBs5W+3yQte0f6xxquwfPIMD2b1zffsnNlp/xfkbOneQIU/6urIwHycYmOk/cFn3ktAcMlj7Oft+YG34noDhuGL+LTHAx9wPH9IBr3/OQHXz8zhJ6NlnQfc+SCx6Tk48fpGhkkcY2hyxNOQfF+c4Nuz3l51pX38wBjZuz6vTV9UFActpCi9uY9Zn8EZ6Oe2jjiDpF6+G/62KzI9nzyPE4wL1zbamwp2AuPclpYJ85AT1krUIe4W3rkuWQGT9kCF5G1ObAROf2D3+tjZ8gtAX+9vg7OA+Y6ot92358PbKfMZROQ9oQAf6zjhmm2So7+ZOKfNrUAfJN/wA/NlQDfeQAJ8k+w7IfNwj/ABmb8MFnORDGB7fuW8SDl9oRzLO3uto+ZIeX1l3Z3bA7ai75H1lGNPO/xYp/MgsTdWRKMjsj8zFq+T96r38fRJ0eb/jKHEgTOEiTFc5LD7OQZtgdl1pBYZjkri7ZNGxTsHYIO2MOxgeyNZf62MR+bhD3f8/z6n/O9I4HPiHZcyKNQB9bHhv+dmQSznlk6Q4atsXGHx/va7cX1Af5/rEg+XP+LIflQ/rHbk2Tgn3Ob9LkeoUn0xcTzbYvH/W4ZI9LJRJA5BwI37L0heJKfjaZYcgC/Mhs4mWibLhZ9bFu4XRXX7zemvqD+BNFcA7/AByNR4/rJahHwQfYpY46nYDfw/5sk9b8ToJ/eDGM65+bHfnkgFr/AH/z8RYWF9C9PxOD7jPJUwIRpYI/LCBsa7bs34QV7aGFvZCPj2HCFAemSDrLdd+LIU/2Iz7sbwkeB7Yy1lmo/MG1/wAxs953/P8Am2tJn3szXzsmfBxvtPz+bbg/22c95/eZe/8AF0HzDc+GUbgBd8Sasc2B8Th2SaJHY7fAtDYiH1ddWgas+kuGx5SmcnZSL5jtyH6IdTp7OBvXj/Fo/aYzfYGZ6eXACHzXX/SND9r/AJshPYgqdhS4hD4SgvTy7HA28D8wB5MPbjiwuk7dhkdLfH6BnpHWZEDaOkl1mQ+D/SxQdga783qIw+n+dvf59/rdhZq0+JjDGpr8w7yRmr7J8N2cDrnydl2PuFyef3tJePx/vfFUoVaNz4sQ/cOWY7fE/mH4gkfLR1Khg8sx2xOkHYG9hvqaEZyyLtrI0SQS3Hv5tY8LtOZGz4B/eRkgTOl7F6wyHhgfbB7EsS5Lr7MHwfP+fzKmHv5usesaPzMwmGyboyJ3+kBh5bd2p5d5eRrkK63Tt45IScU88/E3bt812Fwzt1TmZy2B4Ns76SpTxtcJ1gFs86Rps7L2SsgKmdAxn8L3EgeM4SHch24jLUh934sw7MD0uPfbxxkWRaFPL1PVWBuQa1luLes9Oz5kTOkIV+Pj4kx6LULoyGP4FxvB6sxxXhPf+n6sZG9gL5MZDp3+Wc9MCfmDIaWOFyBMtPAgzwtes98Lnr7erXiS5GHLO8vrdYDHIb+Vp16NyAkb35JHLgZaIfLtS4xJ7+XrGVj82tNmiG/xJhJmtsWOrFdnM1tBbu4GwXNyxzbTJ7279bIbZ9wC32e5GQZHiTMucCmpVgIa/iPAzTTy3wHZHPgTbrm3RGEKur5Ih7XkpduP8TYfD5+Y3+y/7idHjyRbA9LSCXnZ+OLOx1kAum3LickNwOS2weQL2FpEOyc2DSe3mDY+Dp3Ypj/bMEeBBeYnYm/iEP0kevzKaJbzZp2eH1ZoNhJvhGA21HNgisuLd9TqyKz8S+U94nqX9ZbTJQmml9rch6JXMll4D2DfYoYXBlkArtiOdnhy56+MIro3o/EhqOxD+H7vv+bl/CNpmO/ufNp+QTB/3hKf9kcLVhn3+bOCDG58ICgCXYO5AMGV5lhOvJ8uIu9jUGHJpB8XEHN/rLflFAocUfX/AHJh/wAa2azr/SAvXyZCz5R0rh75D0joclXkz/acDZG2TY3b45OJHxKcRxm7yNMQWzfbz2TRvGsTZuC8Mchb+21yHYizuscCAOwBtr+GwYQGO7I4fEr8z+0tfwTvJ3Hj7KMb/vdT345D159x5nv38yAVig6+n+17D2I8Tl4YHLb8TobDsggMiOWa3hIC2MgFghycSzCFo9sYv7Tuo5PwPs3APns4p/wf5kOGvWEP2SxV7F3j+Y+kHsnovR8XIvjb9pdyE38S7GxZ/VTbajEHf0JmXEBAjrdNkpHXYIIdsFvnI95cuPTOEBi1hxyQi89kZH7Q0Pv+k4/Mg5Hc5F+T/Rtdzq/2IvR8W3Pi5DuZaesmGfN9p4+5Pqx8fNhl8JOs3WWUy5u/Em0WwjPP0WjRgUg2D34jDG+L3z29oeFh5cuy4fUSn352BYF9tBvklX5CH4iLgtR/lyBsSPPmwWUgbVYD9llMEeJ11HkeR5aQW+iHJs7sEdnrAS4Q85cOsddkzIR8sD21JUr6/wCFgj8Zlh1jaLa+LyX2cD1+oSuITdwhWnkDvUe6dJfuXiwHW37DXdkIvxcnP/AGtxKZV63PYM35geyPq+fiEKPz/NtD8Fg57/WWw/6szkH+ZaNeSaBYsyTF3GyBj9kcQOr7IZce2XEFeR6WphJT9Ptc8P0J8y63NSdPIP0PZyPuLY9h+JryxdvpDhk4/E8hJMX/AImswO/uzr9/5yABlVeQnjyww1+IxSZOHlwCX3D1sPd7bkvX3ZPPYdIxqN7M69gVO+7byGvf0EBYQOB1lAXmzKDJh/mHXpJZhLs6i/egexuSuPNl8fIvY09h7n3fyFo8kj2wfmGjedlrl9N8MW/p5+m4x7brEtgNvy23F72xYa/Cx3GDTsFZOR5GMwH8Ww05MZ+Dn+8u68hMLWz5nL8t3w8sEtRkbeCTes3msv1POJW38y5M1uQN8EmaOx7Ma5ccJXhbrxB26A9nwef3vYzPLog+uQuDtk7y8PDJo+wvDYHH3LpOGEGQJyyyyTJ8ibZYYz26b36n52XfdTv5JdZSErsAxu2T678z0SUXfiNDAcmZ/hCeQjYzD5i0XxlhWS6m7+YxkZ2yTHYb1vHbw5ZZVg+52xHzrOZAHty5sDMg2MJD9M9l42Zlp3d2MErHhvr/AKfmVEdYK4P+pIxJdMu3JRr9x8d2Zjfgy5H5nF9Sd5c8mP8Awy6Eguvp/TnyIGae3UNsufE7vGxYxHSHcuGMtLR5PeN+/fo4ydvRCyKJPqdTGxmRvZeSOE0zdP01TGHWwNjCM+Wvq+CfxtOWA7YLheWPIZB8wzJh7KHMxgfYSe4yUH4ZsxgyLz5hj4QDHYGvkucvR5Hy9ss4I+xk+IVnvR/S3Ln6Mnb4NkKFzrI9kCRkHhaPCGTmy9liETsH1B7JfZRux856sjOSdLmZG6t+rl2ETV01lvkA9teT8LU5AjcFE/QBXHbHt1M+SekpvGRMnNjEpgfi06kOdFkziDHCz8lB5+PuGgcd8sPU5AW/dpDjWZfRHBkAeWU4+24Y2nJEYfix9WX2IzCfxvrlfmEfNuVb6pcbJ21HbQ9l+RFv6PWhPZhnY07fAW65fAuzfm7mBw8sCbnNnwOfU6Z8wz2wO2PiWbvJ2aeP6eptodgzSMMtID2XPbTwunth+JXlt89t5yD7OJrLDjYTnLSXCNA4P1y1fcpxOROvpdAfMDcfm+IXxPsZxlHsRzdsJLSHrsj3JpvCVn4l2v1HUC6lktT59oT9Jmlv1J1rsm8s+5aANvgsfWxoxjDls8WI/mBfpdJXUHEi3brDZGkUeDODkgcjB0lknhkOpcZ/ol0keRi/DNwcl4XBAywyPqAP0g2+bK95ttPmQ46TrEcAS+HydmTPCEP3sXRtX8zLSETaJYyX4h9Rcnsy7e23gtyUkP0d22uRHTl+l0J+LSGEbix6QyOG1fZ+xZ4ebJFzsAbPp82viGY3jsetlNb3sDlfic8fN3NYNe2gbXp5HWRx2Mhl821evL6FjH8LcNlM7L6XXMjk6kbyOCGtmhz+kHoFYCRR/j+JGb1+/f8APqRF7dPjBAHX2B15fD4Q/HxMKltQYgSjaCQ3YGPLV6zPnuAgG3oFz+nn2H8XsS7klLzD+z+jhfjdTYH/AAMko7sLaCf4kskHJNl5l9hE6WcPiyFgMfWfs2h+mA9h3reNkb7df2sGrH82BsYHiT1jkNfYHeEaxt1gBszntg/Fg2s25BxlHVn4kF/sWCHLLwlzEg8Mk6MV9sRrCPPiYxbZnkZ32B9SA2z5JzbiQ3rAesAwY4RJfzP8tq8LVnT9ATy1jAu5/wAR2O/Ba8cfxG+P9kBjre+Tx+5Xv+lg5B8QPxIM28Y2h7CGs6VdT9TJMwN3ye6Fz7E2wBht9GHiH3filJjeXywWMcn52ntl+Lt5dPJC+R+F37H3Th5MHMhe5p9yXAydfOQnzC+NiyvZU9mgwvGz8TgSh47f1SvzLvy3Hdj5XLoXitBmXwpqifa8Ep5IbjP0YzS1FQWBr/ZBHrc/F94DnTUJ/Rfp+kwOsLn2Ju/cNIsZl9T5tjfbsQ/m9baQ26yE78w18hzZw8hzCFIG+SI+SPtzyR92pwYWAfMp8vAsoD3y08kblxxnb2K0sSTXYXxAefpDEZBrKJCvwJ34Rh0I09JecIYeR81sb4LLkM5K9jTrblrdLV6z5B3jJnzYH2F92929eRxsKAJGnFz8Fl/ANgky63B9xj1LoPR+rvmWfDpC5C6J4zoa32mIAtCQ1+LoD6iWBY8s+TB4nT2SZD7J8iSHxvqgnhHzSKBFjHtyu/LS6Lb5bv7fAlnLkywjPYD42nCz7kcSniRo8h/KOPYRPbzxZb1WXsm+/ol6dj7Q/Ejy/eH5snFsz88MD38yfsgjfZQHn9IzuB+bpeWm0dNh8tjYENTfdiOmOQQFS6RpcqwA/MZI2E4RwvyQbSNvbdZAB+bTeMYlCDyxEhwSH4mFDGjP52nVtaBI3sBZ+x2xoS92GfmzHUs3gSHyc3Q3TnJMc2VntxbIXL20ewS+WnxLnxO4SOpPkPxlhm26YwJDfi8MvxCfNr9WkNw68s4BP6WGGv6xFLseyQ6s5D+5UNtl9ZQjrJHr/ST7n+82RFqjkPnSwFvjZ4RRj6hcBS6wP8xcQJ+ZGnYRz82MIPWJ6SB5Y9+fqXf3hu8yMcu+RyXXJYdekE5HyeQuvxAumfxHutm3fbwIR0EJ1bbJtGB9J02GwB2RNIBiQD2+kOQy06j4GPoG3rlieww2VnJR6XvYx5PXtq4zttxtG0EuM1uE9/QhDjdwHdhftmD42L8RRy6gUj4IEfIIOY7M7ekWxMguHskLgLDnwimPt8Z2I8lLcTNs7y5uX0/QcPJHiPv2W8hLPMgfPv3JXyljuRXCNXMnjAwf0n8b1tv4szsv1HrYTcgBZvlrJWHfqQa+2CZK8YZp89nFs9yUPLp42SJDRhmS17GIT7uDAhXCAPL8DY8YPgjjYb07IM/k9ryy1J6ckOAGHsjpI63U+YREu0YwfulGfeQ1+h/ePRMJTrYfgW/WJictpdg98n7wXVKHSRGQPzd+Ns3YcQ1wj4TXF31W3lnOxrliMK4lGLrxkHscggNyXuQZstcIvIcaNgWgkPLJ+b+CA6Nv3YckNj8I0208tkjPmDOZddiG9Lh55CNEutu42+m3xZZ1/QcEMPbLrI/I1wHYHT3+bhZNBDj8l0f0jr7ZIPHyMOlv4XPpdQ3yAN3rZ+Pl0z1da+LCCJFdfqUF89i3Ty3XkANtWHlg7lMjpF3XzGfi67Nes8MZck5dOwTrK4wnZc0Yur5mZiIutn2iwJx5dfMiZI4zoYIAAnTIRtpA8JxlDhAfmHHbSAeXPHsoysg5ajYEDvIqyGXyt6foD8MX5XwE/cQnnA5ybw1jIzjkg0+TpEmdHlj5b0vsnx8WKOewoO/UCzazH4YQzNZYci07uxrqS77bONhT6yFQM2T+LY1s9eSVy6ZlzZHbmHy9n0uiOiyYMkGQ3lxMBrGzZXbatQJjB8nySzI7MhKsu6T+4Pq6bKtvkgbhLzLH8UbcY0Y2nEvaTl2RnI+0JxIvGSeyE98vshjkIdIC1Evzdb5AH4tABz6tuvD6hTObgxsI+f8ASHgw7DtqcjJvq6B5ctTtpAkTnxYtGR5jfzbuCeWHqQMyHmaHDBT9yS3fLiL5d4jtw7ANTkkMRt7IoE56LEcW4HOWR5yKMMgutt1lHkwnJPTA2tBHdH5iwCx5g6J2ML3IO8lzF1LhYMbqbbaPCE+IXha5Frur8JQ1Xm28hCdQmPif3Nn4eTjl6Jm1yGsuDL1vLATfOaZvLAGOBngYHOfMALmOwq7EhObk1yAw8tQRIxz0kEV1h/Nkcf0Ill+fJQ/hJXM5L+CwGwdPxGfytipckjpBnl/FjFtHb0Rp0iRB1Zvuy/GyuFuBEyPZOXfzZak8bAVunpfHdAlJsyGAgd34uMNhDZCwJ9yBotSGxxnZxOQxg+3oOyxibQIudsaMo5vzBdu/PZ3201nA2DrDK2Ji9LfVTnM2FgbMK1CPZHTyVwByEvWEdPLFVzZRwyReGV07D9xT6D/eM8GQ2SaiQJl3CTMRRgcxaushH3th7ObImHL6LUcXwg4Tg/tc4Y4Gy7t5E60IM2+WQ4sBkh0W4fc99uQ+o5EAMjl7MHvZBSDkGEE9P0T5GAeSvcstR1A3GKN+CAxD4uiPZJ7d3nsHGRAORhhkgp4urVD424dOwI5OnV7tHbUiZ1gho2Lt0X3GZBuw2xZAp321gs1adICd+JOY9tRhcAezmo+JPzvWykHLoEiMIPz3VyQdtfCQOWN0PboDKDD4kVYO+3wvJXygbbBWcOr5CPPuPJ3btzuWk35lr6nPZ6GFeL2CRHOQj99ro8mPDkz0Lv2x1bnMOJJuT0ZcLE2zt+SXhWwdQPfYoct0efokEv2IgJ7ZD8r6d5iW7Cfi0cZ+iABGO2dEsGLY8sV29GJ4Ep5KJiI4yERKDraL8506x/1jjA9lPfAkMZO+JYxg2NWOsZyeIHfn/S2PSWI3n/yEfJIHRj/vdLXdsGEX/gw0gJ1/jH
103+ i8st1YPbNV6/8Ad/L/ANLBg9sjHfIbF6/Uhjk+b7OIv4ErhBwln5cPptH5yTjO5IP+eXIltyaVYvzLHBBHBa1Hwkb0mdvkz5eQSvjpYtHn+975z8RrPkH8wg5dTO2THzKYy6cdkmXn3IINkgHnxMnYDrbP2sZtr1asQHVWtcCA/mMhPNEY+Fi7vkqCkXVtYf1kN7OitwXsh1eQQK9/tNoGwEixp62tB3kIN5tuz9v5h71+D+LnOPzJ8EbGmm5F7HOL3Pq3ydG6XYdPowjRM6PLCaEZrG6cLTnZ/IRnjYaYd99gbJwH1JQTVPJVi5YPmy0EHJkDcz7/ADZCzDE2978QHHnzOBkYb5cKO84/7QVa5OZW5a0Xj7+L2PSQ6kEQ5OHmbeIc+5KEnYeXSSM86WXSF6G2O7Jn4R6zyDk9tsPqft92wZ/mSZ/Ra8PsnyJx+l9XlpY9sonRp+14Z/MATGEHx/SdNC5BgKZOx3rJgt4a1n72tz8n9eQhn3/X/wCQAAcL2Hl7P0cmQfy8LFHzGXhl+RP+lg6PHz9rc79yQP7f3h0adttbdOfuTgCdawHCB78/5u3vJPly+15b9TPJc8fcFWW4fpZq4RvD4uIMtKN8Q5J3twzyFy7YnNuRarDzeTpNumuSdPbXcENdORl34ks/zcKJS5Ode28fCC9efEgn1f/EACoQAQEAAgICAgICAwEBAQEBAQERACExQVFhcYGRobHwwdHh8RBAUCAw/9oACAEBAAE/ECtnzCptsBSQFeU3bAgsUg8Cdc+TZnc/+THJmsv/AMv/ANmTJk/+/Gff/wBDJk//AM3/AOX/AOhkyZP/AMu/qChAjsNYXV51cWfQLVCEoADfBVRxaAgDUFduIQ0TT5eBJCzXJ97xQFNGoL8+MqEqsePFn94x0eLKneKIXaeD+3GZ0nLhc06Dzql4x6s9Q114nGO3lIqgHY998GI+QdL0fvKIWVHrrHaz6wQEb8azV2acqLTJV1sTyIDtwyqBB074ITwkVF1wPBIQrt/oVl/+XL/9MDJk/wDk/wDkyZMTWTJkwMDHHI4Yf/H/AOTeTJ/+iL0ZcBVUCpt1YYXT0keFzwjzq1OBzdqtHDqsOAOv9ZYUhbX968ZtwThQbd6cCLRK5P8AjHla3jwxBZeB3MCjd6Xb7yQUKBV+sJIbu+sVNAZcP6HFFLHVHvrBswhFXAYpQSHv9GBQLweT84einzi141CCEEROjePJj1SSiI7tJGURdO/GIiZjqnpK/nXWscmTAyf/ACYGTJkyZP8A4hkMhk//AMzJkyZMmT/9HcwTz+NEO+3Y8g+MVrS9XFalzvsrXG+xs1RWNSF/ejZXkdb4MUElcLUm/wAuBKktHfvfeI38mzfPfXWGEBIgbeMGm4dKGA20g273luNJnqT/ADfrAIgXlNmOg0QeHzgREE0NOIH6H+f1l0BQb9fnOigPXtxxAq7P85ryPe+fWcetbNJF5gXYdTY5J57Qe0YBedTLOrFaIz1Xk3xz4w2UJQjHjWT/AOI//Eyf/wAJQnnmMSE1jGzKwXX1i8bc7SfOEoSXyP8A6oFWGCUT/wCkLaJEv1F+RMIRCIdFwKzcTpdDcHBcgdn1DwklnCYwlu6MF0rAVq7HkRUDWKM5A7nL7feLSiSbti774V+ctvx2C++zHxIdUX+zCtahBl9Y0ja7i33ixCOJ4T5xiDpNN5zaqndSA3jQWUgpPeILRqIEfGHpWbb7dfeEUqjQZUeMLvuCpHBiXXfnGhCsCF0PFxNROgLGACGxHoOYQciFDKFrUm4opshM6kHygK2XScdZRG8VIo0hEaMpTSkUP/4qVWRQCrPBmmhEDoMu3qHzjfnuaIoByXc6jXjB8ZXqIN8e3e/o7S+ikKZZThnms+sJtiCl4/x/ecJzLANlLrz8epgyc3YRt7gQ5deFwY52tuKPVLN8795dH0SJZ2cVh+neEwlCgU51tdf9DnH8EIIkU47j940fFMLQSME/DWa1MsIAUfmABAW4uxMvAQDd1CdvOOFroHl7yRrtR38tHvvxi7pNqAeevOQyXug19vbvxlIoNDfL3foxjUMEB0af74wDuotrzkIhXg95sWgvrDQVnq8v+4xpOAaeZljX33rzPnWINRZL53jULvqr/jGCniV/TKm5b3E1dZQkBBNgX/N3hLXyQb847J6yDRVKcpej5AKvDjoLSESGlCtk5bK49bVgaNBg6KBwgEaSDwSgYQDokw//AIrKhIGAn7/XjzjdFESRXbsRPcoczBpJ4RKenLr73NZB85TGWHItaY3rGyjEVIDei5502bHKGEUConKFdHyj8h1BEVSZDWhDT9ZE0rlsUg1RTnyHpx6RCsFU4BTT0fJFSkQXEVOaHnn1w8tAWU1scaFCe+mjA8YFIDyW6TWt/ThwuF2ZU897/wDRcBeOQ6O33esq9hBGVoUItN1n05u3n1wUDR1Xm0k3gikJSXY8/GULQ9gsa/xgAKrwvG43xrAV2poDvF7dO3oDT+cXot6eeDeK7YMVb7EkyvQOoMP1iAgu5hB0q6r+MhFOhwe8cBIKG+Ru+WYECGldmvjIwJQDZU3p1/5jgjnJJ40GEoHRnI+8kT+Cb+cbTNvnGj6EydIB5Zs7u5M1R1aiqrCOARWO9KyLJxgCsAAmmDLpDdztKBuDp0F5lWh//ACBCgV7WB+cJoCyjgDNJF5RT3p8/wAYumwFE0mWXR/0JhbJWlBCpVNULw9eclSLXBPIRvD+kmDSymm1YXZdD4UdmrJSB53D4cAkpHnHmWwlZSREqicxpBxHPnVgVA66N5xxaEnymPdBZ4+HOZV6BVISs1d6fRhPQYsD1Ubw1/o7r2Eg22CFFm3lOGYF4ULCNC8Jr5bxdYA5SJNCqTXBzdVarj7WilgqrREgcjQMwzUDo6ozaDt3yy2OBgVsawCI83649YMBRGg3ep7PoMUO6e5QRf3nEje0CLtVFkab/jfEPRSsh4T2Yw07OkJr8TODAAdDfq4RCst2s2KJ0aesKJL+VtfH/uCpDVFfIfGALgoPOckbLHHpfMxnkm2bve8qySGk7pP85vCjhre/GTKsza0j16xQlqqyOCDYcrv8GHAvo0zZwFMaSDyAujDylKKAQCWe4BDUobdR0Rz4Mt0kSwsEKxOSMl4VR0gGmgaNGCTLl/8A0IEFBWHv/wCc4QF9rDKErzxhSW+AIYILTOIIrRGtcDcHN8sDZWzsmEvvjFPjjq0QDk70g37xbNHA2BM2tkEqBRYIm61mxQgW1njZeS8UtGyOC68uN8Y3uKTF4CRXwct88YgskgTOU7J2iXaBgXhLaDAVdj2LpnhtLJ5FHBCI9zkOJhDKITQWhhE2Tyb3iAGulKgTYpTXQ8YtG43AIxDt8iTwUEjZsBUitooCT946fFibw7rD8rOZi9hW0E8LsE8T0LYmPGk9i8Ng2z3gQBhZtuQ6DlN/nlo6wpW4luqB3Wd4GtbEHKKXdvHAvsD3ohXdbFOV+HtxZPxVMJQvaC+JrYqW2sMlU1oiJ5J0TcAKFHyLK0BLBHE4zTVOSd+cREKdPS9fn+cAkHbzPWACPs2bvk/jHhQFTS1+sSjsAtJ9e8UpTVT3j50NeT/XCLx0AusBE51CQyoWWwhdk/0OLSBww3iorDSNzxc0QO0GDjWngAxjQIThceHyoSBQhqbFRhl0yHMj6NRKAcrO82MJbvMLFegivUgsUpJpHXLsKuBITTQAOAh/8P8A80hhSrNGHsWD5eMiWTM34HmrvwHV3PeACkdOp8vGXIFWzQqaCm2jmdYBNNRCCIEJ5Fl4uRuoua2qWrm7dnDGpfGMbUCCCp0g9JihBjEROdaDVPDw6lBNlQ2YVVOXVsaZvwRGDqwVtPHdxHymajghHlbo2XAJEdjN/Ap3x8eWkFJjzKtTg38G9zEDeoFChVjKBta1sS20Jga9kRXRpkYY1LikqDU2BHjXsyZrLXuThqrobU44bZ1dyC6tEXhwjWaFWGqqaaStBAYYmSHu/RCiqBrhNvdNNMNMqUXQK0jJyCeOTzyUiI0VAOlTEGJ0AEugIzp5zaDFDBEOHqYv2aAHgVHOzgnBwEF7pVhuG5EAxV+UHRbQMkbBTbjU4pDItHvBKTuAnSFQThgTSV8g35/yKnAr91Uk1rsDNe/W+Qm0jrnf5ybgRvmmr9cZey0DXBO8ekql6v8A3IdA3R5ecvY1I/nKWRNF3XImgOOt4kjcoOgEuK+/3cMGVHZevBvn6ysvPQA4p+8096y13+cbtsEAfnz3mvQXZzY8flxCG5zZWmt5vYQdQQIcIU8BVY45jhNBm2iQpSPyJ4gYCPRbaXYIwBGl5msB4x2k8bTUadJMokRygs3T5HBA5QCnzhNoArisVi//AIUCwIULtD/0/wDvc0ldHvjpfMU4w4NppvAdapX4F4Mjhs26tQULALzW02KR7F1cSNROufrQe0mvykFLErAGJ1MKVYLhm4cpUa3Xxm1tq7vNK6s5uh8YBoeqCIEYKOnJOyBDBHKlBwLdN2jw7UogEGdAQCNUN75YeIxCdw+SaFCR1S6eS6pGgg7U0a6lcPvRA4VZYBYtlUltypSBOAoA7Rokmwx30ItCQJo01O47xnCC45pErW+jsdu4CCBMECxCDQ3ULd4gXxCCMsdzfF8HIVq4JtuhATQvGyKXG42gDVoTXmI2preBfECi67SdI+Udb4uAPMJsb/8Ab5wPYRdJaaoTgj5fuqDgwAAKOeY+9Y33G9gmSLdFBBY83F/RQtkbC43POIOwYaFAAAGzQaD4w8/aJpxCjo2VTzDKDkobZXYThAsqAm8vlFQCTXn35sHnjOCCQqmmvRQ8eY84UJOpSTuBiBRRmdI7MK8XicPZE04BJikLd3sHx/nJi02rI+pjfAWBgqJagIvjnCCRsgJvWI5JE22j4w0iQDgfk3hoLsNkweHBM8ec2QDjYv8AXFytpdA4xZPeEH+O8ehI2sI+cH08refWPnuSps+fOCGmVAcwQ9/cThTqw17glsjqHCmztUbrshEVXfFfAit4tHskFRFU8JF5xNarEi35FOzFPyiMHTATbXlefty0hhQAvcpdw57zUY20JsaLR3I8e9w//wCaUatAIfP1lVBEvJespZd+MpvfGHeDWEjCh74en1h5VVDQDgI96Oh+XBC6CwsklU0/KHLjqET1Bougml3zGOxyXUkQCQrpuIz4YIgKymkKqiaWPbeGA4/TFReG3QrtSOsKkGEJkVLsEbJHcYqqzPepQDpA8iCpRbNOIACWNAXc7d7SHUsEAVDW5UkSwjm7QDSLe/it4mGKraWmEHqL7fW8riN7ALs4qThrL9jXYzGVzwu5acTFfF1RdBodm5sI7QUt9wApYLoNa5pfACKDUrsrb1NHxrDhHoSeYSKrsbweDFZ1BbEOSvs+NY9wzwx87P5614wGa9Bq0JdL1Hie7hLvOjRRIg4DNs2QLI7xEjsGoA6X0ZtKSRQUgDHaNnLbscm2vpEClB5RQKmvnFAaTAuiDeic874M5txYI0VyTZz48GAS9AlNW9xDs633mrBAuz4Bx3lzrCi8lZtU4/jKhy6jIQdTVtnn4xMQPtSh2tjIOvgZLv2kqKBoQVFDmGsFwKaTWLELVJtab5yxzAArsE58E1w6t0GB15RG498RmGkOlw0INh6HGMIGyyYwW0GscbfGDV89Ff8AJ/zBSjTc7/7iapB0J31h1gix5ND3jISbrfBCriQS7zNJMWJLXk/bxnEFVH4QvPeBslgOnjLG75MDvCOPs6lyoRtRyH+MW0+JCFLWVSikeYSTbWtAAoKEEghvqtTaQwpLTq8FghpvEqgosIIgAFWrXNoXqNQSBrAB5JwBq5QJm8AIa97u9fGBtpUAUijcPkXYHLhuIT1QNuSOxBBYacoQgB6UUfpfvECCleDAKgjNPrLhsdK4ZC8QgFocxu5YCU7cwZnFpspvkw+SoAum+vLD7cn+pXoatctx/HfGONIVdkmveb6mLYNQ4cRU2b85eTtxURqOglHG0Sqy9yHNQnhFvubpioZiIi8hBg4eYStwGiKKjrQDhqXV0wcMCC0UjC6Ias9vJhkFcLZgHFqRk8shv4UAgAIsLKeIvRxhJWwQ6diGovSTIxyWghNCwFM5HTrGq29kHkaA/O+3GAwUAbUvXoDgjsPGIAbqLAmKBU1p6dGVcyZ5DuqlN7NppfKzE37Ugc7MPie5DSAVaHArzB+R+81CAmvTX331iAALAQWpby/CMvSjAQ8Naj1y3rTgOqquRAUPGte44qWEmVr5O/tjALCMEem9eD51jBFHdZ48ZboA7G4v/vvK0k0DZOep/lkxMfK2pjV0JbGoeFzyyaeKbu2KHPywI/SABVU06NmpbMhW8ph9UNoa69dmH4FW4JXfSyEOKeGOdeiMnwlVpNzzcRymR0CEHm70b6mNwRayXkfJG2fxm4fRE1kGQNvnil1jQMQDCgUWmrPtCONKIkw/kTxwsdkmHKiQGoPw5r+e8F9AcMNnyp51vrA9G1ALtG5Xa7hxwcSeLw1hoEAUVm9suBOTtS6kTbKg7NIcYAO0YBTBXyyo84JEVFTQTv8AvnEJlkzAbs8HXiYjuSogrvvWjAUYce9UJ+tGFGYqBY81n7xVFGQtGuevxhqiqqPEsUPjvEcBY+LoD/WWpHY8R6LjaUF2u/7chabaXdzqRRjbc50aKn+cEFlCYcE7G6Ks3cAT4JxpZpI0UUVSYuQR8o2HpDuh0Ku7Fu7yKBzp6tKJvswa0UHAqS04U3h0mGoQg3tFkunnLsgFtkFAfYO2oS1L6AhIvSHOhTWmre/ISoTU0DbbU1u4MShBdydboY7Y04zADwrKOhs1aF39YWMBEAlALplXj3vOK2pA/I3WhZNOFs4S3Da3zJBv3mkkEC2hDZJ4lTiZWe8CNw43w7+OSrHNzRqwt4nKbmuMJYxIhasNA1Wmu0cNXU0BqSPaCG2ETB6UIe1ABhJe3AccPI2rY2pFedBfEesJG6sWCkDHRsFGbqY4y7ErFpfEEd60XXGiI0vCiSHVKEq87hNuQ03uAUE215WJsF9K0VjmOydPfIM4UIE4XN9QOvI5XhKiCrC7EpKUNgoYoyHRKhFgBoRYyhhoAjgB0lbdT7fWApEwvDVayg+mOalwYlccX6PePXZAkAwEa6D4VmNG94kJVIHJ0NAJDFwjaUmcw6ePHXWJdPZ7J4PvvFgqoGt3s985sBAAutxvzN/ccarCASC9a2885WAdKWxw28f8zY3cKWOB8f8AcCJhX6fj+3NLg6L3Mlu2s6CQjt2ePOIuujyUIqEopO/MzQtTYQSyAC77f7wG4HSUitNMxsfA5Vb4KC6FFTYHHfmkv4u8yjpUptAS4k1QcCDYeVKBbu9ZVnABoSt3IccR+chWSyrioIiZXjNIxoGQnEGq64JMpUBEECMYcEjs97Ao6kSJDg5Sk8Y0IGdOZ/Abcs0O+CI0G7ZDhdHeNalyxMboJWnOr5yEXodGkk3aw7r1SpRDIiCS6TUGnNvrJd2xs+p+salA8Xi+MVAwIvpjPmYDUJq09mzUD4JveEACRNFHI2Nvn51iJMREQFNxAL8nzhnLYVR78uGkKFQ87MDkI0aF3v8AbiLJSh1r1iA/Aar6/GES47+HZzkEQ7SbyhhYXcuDIRFHjjx5wgrWfNaIUghDamTCLMCNwag8Ng9TLzdLDdCjorjQNPGXsGaiSmwdbbo6ohTIGkTsoqefBryIMVIgqsuxE0q4sALmBgiNNwR5csiLkNgEHYCou2eQJnIviAHc3aC8+i6mQz5ToxBvhTa+ugm7Y1TsU0qICMEld4s5N1ZBTSUFVS6dTLYbpLeBR4Wu+tdKdNCmgVKREXYR2CFc8ThFIajVtHQpuAarXRzcRlL+ErwdqFXCMBlUbtry8+XADeYCiTe6vJTglyw0wBdMQ4QHdT2LxBn6EtNLzo5vvKtBIGyF0WK6SxWIIRUUG44HwJDmXePLwLQODXbsFe03i4hn8ZQ1QcjYSIosEqg6BaIcLOrDeBDPmGweuozmsaAiVqSKNLbCEiIygEIFIWGbTYSldkJ5cvbSkuCpoYADaThcT+j0aDfjFtUq1sJfTX7wsXsVdca/GFcQSNNk0CU0c79F61hvHA3Z0PzgByxru8FH5MOqEPDib1MQUdSyW6g4s6wiiYP83v6yYoKYQ3U8cesIEjyTUm1+M+L2XQ2ks1m1BWjH8J+8ILChqg3/AMx5k4FDZtAd7+o5DO8KoYAco/CbhqbvrA1mnrnq5rcKAIKGAi3ffHWHcOIvA55Jtm7uZGbJuBJAgNEHXsDE38YUA279vDhNG8nLcAVKRrrk6tIE2GO9wgqKThXGjh3jvjEu2ug5DWebjXQoQjNuyC6jB5xUZiIFEgUPrfd4wnt6FleEDbShO0fWJHWzeNiKBR/1jbeY2AALtip36XyxkLgUiKkAJtqI6cjzJIAXaCo0m4c84OJETdFDyGJbi0l29scGp6HYACirxY78OsHikSqvX+f94I4WACe67OjNyDSUH2neR90cAF+cSqHEMcFCzrERIYDtxe2CDSA83vnDM8w3Zis7opsXk8ZzF9rh8KgxX4ej4xDasSWlIdglAfYxvKNpShb6jANiiMxmOJ4XT/IEaA0A4gg9KABAVtQeRpcKLRxHxNEUMVexwgsAAs9KHk6OaTGg9C6XTTek23dKOIy7hc6O8BGzx0+DiJwoUKsBNGR86RcvmwRcRQEEKTEmhjhtNu+PR1zoQ5C4TgkQkbgRbGcc0aVNl6yGm5pjZFJiWgVKlp33/wCYBMiGC0ODs5H1oZK/NiDy1WjOBEb4cVTiw1godQDvjYZGVAoGNhoF66t1uUao3eiIiQtKrzCjggH6pyEqCaUnB7yE3qApCaC0JtnfNWpqBYN5QOStRjk6C+gCkC62CPZDIL6QSIqUdRk4ceVAFtHmNHd0O/8AJj4S9TiSwSi/aHNy3liKeEQaF1Fdl51m9sqjZEEiALOOKJheoSG9gcjqc8cdZVlZIg4HQPe94HQSGK6V4UbvXPeIJ5ARHU88jm6NtxE8F7J96xqhZWtDsP3+cIIOqwAwZzydfnCQpAyc5JvREDodcfDzlFDKgA373vr1idwUzYDQzz/rOQ6WpF1uHOxxcVnZaNf+Yylo3p7xJg1eTXH8TCQk5eA/1hqsigXR0oGeBYpSvRQCVKCzTY3zy4s53NFhdN7i1izWnDwvKnJ2wSU3wyl1o1gVCLRoAdFGXs3MqQakkgQVA02dGKwLSi6wBERA4eZOs5jB7t1052fgZIck1gemhELfAGpsphGpRTsGiztzouAX8/jsFKCxdHvBfFQ6Nu23V3sNpgt4xdTmxZK3c7WmUW8AEKA6UhQW74wtym2GyMIbgvW2da0oSnrsT77cpiXlx94t1Qq/r1hWrt4isebyD1+sKUDy6DtbeucEJEXbpe637xhyYpqeXc/eHXI62pyniYhLjVPP3+NYjbIFbXA9oJ+xnGMG13iuaGgt/B5eMGs0hegyshKgdd/eO2s6H9THfPOEMFpKXAbJvYIjBQjSFBsAFKE1GOyPnwWknzWnXAOpxBHaUqAnQ+QK4Ekzn2XIUQCaFPBh6KIcN6WYsVJDhMGUi2mREtkqRs7XnNBY4DYB9RWoaX4EMBFsat2v0eeuMbvXgEeZqoEX7XIuhbo+B0toLxt1DHfLNCF5FiLz3XZw7T1nTmoct0zeKEIxhDUaaVrQuoJipkyUIVWEIcVzpMYVTS2iDV2C1o3vT3pFiCgbAKWO+LOx2BxY8Wb1y8bfRms09Cg3FNIbxd6OnJd/AUE0rjbOqjjxCG9Js28T8Cl3loo5KiNWoJm+805sB3kdCIjXSjJUJNQ0CkvC0CrVXow8CnyVaFIqnQeVMS50IjIAR0pQmsdXb37jqdiWlTG4edFhXpzRae8l/qW6zba78c4LgYCREOQP1v1gBEnRdt5sVuIwHqvfeLaRwq9ydO+LhKmrwNDj9ZseDWtcdfa4T
104+ RIpJHx8fi55IgaQTRPnOSonFvDznGUQCbC38c4imAdInEwGd+KTfxlHqWXaXIoOqa2n8azjOiE+36/jDLDW+hoG6COo0mVuSIr5o2UHCI6cAYWSFF3jSR2kNW0+cXLPZLBvheCibJ3tY0TAdjZ1sWpzXu4lZr3huyuHh/GBytEQFhdUG0yn5ySuYoiq7HTPCpreafOilE0IpU2vETY4ugM0rt4iTZX3OOzBBBO6iSsl1fcwADQMEgbuLe2aXVyrc0V3m7wPett4aCkK7KFxKgosdtBwgbooH0N4IW26o1jpeAxG9BeA8ZsXQYHp5MWEpS/8+8GMi2YNE3PP5yBKDY3+fjLzNEkvXGMQ8BGVdveCiPsbH66/Ll00seD8ZNk9U8o95NSKgOtc/wA4SUBRw/J/GEPDR2EeKg+HvCnk6M2Fn+XKKLQQ1/T3nAdRvkO80fRZTB5ChWr4aZTgHRilmb0MIQBwdcSmhEpsLCwABamKHuuxKKHsLHnsbg2KBnBQaSTwKTpMEtPpniovBWvVR4TFBmgS05KxeW6vOGfJAyIhfZfenWscgOtQ6EHB/uzsJRqi5bcPPN/eNOoLKuu+OPOEofSKoEIIXzvr4zv3BIuBJ/maBmLTJRAUQrUt0QWuAxLhNZVgLQMDUOERxGBqMdHQyKqDrnbFOKWR75wBqAaF3uNhZzEUcSg6Gy94nR4ovRU3o20o6w5RjFE7VgpVPwTBQRSZAgbEKXynUwjQK5g0FqVHXNRw/AIjm3YQu/HeNAA+gLrU1APO68txNYogOQ3bv+fOUGvKx+wPrFZZIWy+zi6584F2wrQaWc7/AN/ObrFiukmn1/7cvuigoFZreOOoJbQHvDKwVckHYJxEcW6zkNjvvrCwpDQ2fC3uzj1izGqELa974yJug7rYeJkNirIr/Q/1g5vUhQNrrmG8FJKIXYcfeARZu6DOtZKQQhB4cn65OucE2Axzq3W85t10HXvI8miJ2Km9DpP5xk2k6MKa2olMKh6gfo5HCoWYHb8ibqJdg6lAWcpx8PG8vSZbo28A5F8g4NmXtpLxWhbx3C44b5IiJOLLBXnp5xZEreGypXdmCDLvKesTnIloBV5pJ3i4TQImzc3ouYL1UgYF2CEwiANWW1CmX/jMI7Dq/OuMAyWCOQQ07E64scuVoEgYqWxXDovEx9iYLB2PwP7yYY2u50kDQmjgbpu0CZdwI+pP85sZAKIqvDeO+cIvRWKmrB5Xn5xQUBJGNujaHluQhI5PLm/XDmhEUTCOJ5/Qd4gUKtT9sJBKlFfjxi2ORAcfjJw4bPO5gBRIGQ53ve8bxMjvO9beOd4hFbwreo5yNqKCH1i7t1eQ+uOsAo6nCnzvDDpyLCJGRrc0wHuvfVm+YjR3Fm0bjiHLo5OwfAa5OV1otGEGCQQCCKUCjvjFrQFjGinajHSoNrMVlOXQBdDMCuyqDCwoIL5zuOF0A1hATbIJuNbyzCFFXlQ3R9CcdX1ne8F6pVgrDROfO8gP2SsBeeS3VvHdyUgcR0HUEh1PRryWGOUMislQu1dHaTGCNUKi13A7GKe9AqG2dwyAgPJAeNaiPWojWgTIoRFJp2J5As08jVODbXQ+McK6ZAVXQNobiug3hdcxnEjrQe8VWq4A4Q4BVTgQ4/Lm5k7DP2A2LS3cuuAViA3zBwpQ1GtoeDJzVYFet+PN2f7RHW0cBCeX5/7iCIUIcM656v1lLqptvXifeUT7C07fjrAAfEYDbr+84gA2k0p7m8vlF0qvFtvfGI2EGo6HRNjOPvBUlN+5H/fdxo2awoD3vX4xtgQKrs3r+/rE49PI/riJNCFhfUzrYS7C3eIDKQSrLWH4yYahKh6b8Y8kLBo7Hf8AOFXEU/kf494qFG3VEv3xlXgSDuP91grQFZq8EkN+pMUrWdw5nk6a4kTK7+PEwSkRsG3aiuDnZnZyCQhqceZjypLPRlBr1rfGWHzXNxyzjv3Mo2W4uNgWCk15vZRk8OoeD4Nr194EDi7S2VoM43xvK8BTRaNIoOk1XxxnFGiIlOGwrQA4GanLQKxmwqvYhxvWcL6AQa2gvYemspzQY9REJwScRbd48skQ7IdGkS2lLhHxjFSC7nABfLvEscBiRQ3Ma2mqodO8b6OC6idJzX5wJi61LHdCzWsLA2uip+GFEkhE6RwDxiMORBN/Aa+DDOMW/GIxqVTSe8sesvgXr++MfqFIWxOLzhVk1AR061cq+RjBEn3/AG4esIUAGrOsfVFjojnvjN/yQWuieMQts4LJVG1YwaKSVabjVp5QFhG6Ba7Ma7SWXZqQTlvaaMTzmpXXYkQaVgptjaGVKDgA4BjXesYUMGJ7hW8S+SOjcGgOtWgaQU5cSOlo5yQIMR04W7T3iyRDZKcr08teXnHZHVQaIcBVeEpzvJJyugPCrbOfXOpiLY6faTfH8NnO8bDLLsXXWz5tmucL0CLd0K6YSROH04nWNF3fJJunv5y14KRHAp2S9Vy7REkeZUzkLJ0c4sTsex46k5fbgd4z1rfBV91hlWVXKT3BLz34/N7eBKSBMIHECr5nnnn3iqruopWxerq7wbiOiQ7N34cSUsnG6xPnFlfCG33r4wUYRFGx4X3373jAiAEDX++bhuJzo8TxvATsAVcpP519GTO2tVE4U9yfeKIgBeSs0H1MI+4MDR7/ADkMEMTjwluGOgBuI6hynaYZ0JeH1+cORK0nB/d44X5Th4qet5eoKutQ6+dePOWzwC8nmuXriZ31t/lMkibVqUCvL4MdgZ0SGuP2GCsCIi0P3o/jFgoKRle33vAS2+MEuV49cZPv1sITQgrLC+8bIq2ned3hGOw86kTU15KaCKz5+6zpC7K6bdsg8zEWUEIpRPuO28a7c0KAoN7p8x5wRM3ClAUOBvvXTWqxHKm3jsRAUnJDH/G15buwpU9u7yPIBLoQKq9AbwNJhhHEeQKgc98YtIjhOtZrpMWW+RGmSKCfAZAltL2fWU6DQSvSni/xhwEjlVfgDU/eIbQSKh8zv7wzwBJTvjjL0OSpPyd9+sCCLq4vrA1rN9nu9ZtAK1VsfzigW4iLrtylIKwug50P+POLClFlcfD3iQGnb/GKlwUj+WRQSFFwPfu4hDIcmE3gLejbpwNJ1OnjRwRRThAIv63AWbTWMBikdRroDk7SGwgAY1m9tiiAbe7vmG20vvALGBBd4ImnsSYwBlUwS0aq2PNLZa5MfkgLtp2p7eMFvfod2qOUsAhCfOKKFBkbYrTsnGqcJY3aiAHQ8nBvn84ILqoEeez/AH+cCNKaSiyDz/dlwyoNUugCK61X6+lOnSOKD1NPd/q1CmkDjQ6PkwYpUFjvyvx45uNUFzWx6hz7185AZHAh13ft/OHgKHcXiTIXkAIgbtzYSYo+K63qrfvG90MHwI/vD5SgtQmyc63llSKjkjhymgRGeL8yH6ziFJSJggGy/wCxwgDIMSW5ZSbdUQbGOsIL3VxmuN4jpIB6hv8AOHh3Udt/ecktmnWk/WcJAyuDX4v97yyCBeBr89dTFEg2h1/3EQQSubJvz94NHAFSJJ8bX8ZK8xp0a51xg8qRRemLqd8wt8n7JhkCUQLCzFgcJlFEqyTrGdbNpNu61R3ycZfiGqcD+UpyWO9YibEAiRwA2+r9aMMz7/RvfEb5Ji6PATLsE7GU+esinEAsgOB9GpvTJoYo0kSrQ5Q9Xb3mhjobRCl7E4cixRlHyNgb1QzQ5JUPEkoE7GpDXBwUCVE1UijYroJqTjhhoZFn7C4boigmsezAMh04h1vBuQ0EjTs6x2IQwLNermssaBs1wU4x6MsUia1/Z5yRLUR58ZWQnbvx+dYVgfYN/dwSLDwd/eIjagdFmAgUvAc/GFqRBx39YeAQchPvHwoCjw/EydaJ48e/rNfzgOI1/dYJ9GkevRlDhpXVnmzA0vjIQXaw4lroS4CWprCmi7+BQjY1Wx9akdJBdDbpCMRUCqQhRRJaHXlOGNHYoq6mQvRHYBYdregEIb4bHr6p56KzaCTg+QtJLzhmGV5cAifKP36xgu5C0cG3VJpPveSwQCJF4B1udDLwc4OpUtGnZ4WpQn8YHlFJXyMlXHzrZijaV2hV5R29zgvRgm55O1FYjTeQ4vqlCjlU71gIiUwg67fl16wdYStXguzGaS1isb4Orfxjg0ujoEffnGmdJ1uE67ffeLqMph4NvjWAo1pZ2jT6e8AQATYHEhs+cpoJCkQX47zUjDS7B1x+3LewbTSo9pr/AJkLAo7cDvXH5zgsAl5F/v5wmChdUC6XC5C+yCeNf3WDlfOCjjn5DAogFdO/Bg4jtZXhviYZrVLcNUKfjnIbFIxgS0/P/uAMBCQQTcH3jxMI0xgpT5uFUU2jovU/veThskTVf6whuqbp188axABpYXncvz/nDcyE6juI/wDPjIcZCiXQ3jnd19ZeAr5u8cTRb4PdEqpGRmxAcFGtP1iPY5+Q7I+K3vehkgpSCVsHUGtyC4NK41Crt+WCLJOElHkN2e9a5gu6rAXq7xhTllmzI6XayOQYJup5OJwY3Umqyg735ltF5Ygj2c5FOBPb75xC28MFIhIdvE83F/8A4gpDmNrU58Wk5AjbKigM5WHLaRaq4emRdIr242XetAEimUZI61AcX09Yiy2obCLmjRDl5wKegL+KkHmRpqGMobaQnHeB3NiG5PPOAWsuntOvEyBQrQe/zgG5z4gX3zgA4BoF2+N6/usR7St0D/syYUJ3x/WALWu3H2by8siWWBP36zjEOhhx4cieEc1/n84IJLqnWakM+dX7Y982AImGBQUBnAGi26MT1oQ7qVTiAgQ7eHgPkMaCqghVw0JqqYvoBLXy7DkQIJBHKhIpKYSARoUaTVdrzCS2bp0HYF7QyvzD40OQ4L3LDjFaQXYqFbwHY/8ASjoO1dEU4BYtfRi68nxI+97E/wBFLEFhQcNlP795dWBKU0NL2Pves5cW4swRGtR3dvMmQcRq0bbFXfG/POGhTAWAERY7DXjvAKyp5B0Otmn6cFERs00CM4967/hIoS7a18bnH6xyJgTU3vsMGtCBOjz1kLYltOOOvEy8Wzx0O/Z/fWKqFNI4PP6/GBSoYF0n49fr4zvfRcIXjo+c6ONV3foyiUTNNb/zzi54kbhv+mX/AEYHyRt7cuFom+jRf7xgRkZosnbhw4kf5PGTtHQtVdH6ze2HoAvdfjCB7A8dbH94bCO5Em042bxjMnQ4O/51kwBKd6MXN1UFdfh/PJinTvs1odmNAtXiQ43g5hC2hfPs/nOEAgV1Yo/x0u+DpNBCEloRRSfthEnmW6NaBE96fOAe7UCiMcQi71xKZfPQnmKaDlENsYbE1FkQBQqsoF8R4wezWbF7I87vviYvFYsF3Hewm3hZOM233IIlQEZKD9NMMO420IbELDuN8AuJ+2gAOx8O1VmqPCiITzpG6IHb/nCq8CAKEN/afnCMaGwUn/iU7cn9U8x8/PIP1kyTgrw9uLD373k3HCWnTnYS8PjrGrQUukb07FXX3JkjJUai+31hagqBB+c7sdb/ALMTwZTRcPUEEgH6/OWEX4wBbq+FmXQelqqYyorsev8A3+MW5pFNAY3BHOmvgzZ2XKGi96wOJE2Bu+TPjh9/Wc5D6pVoHgC1dJ2MnRzuCMCBvryUHFRuEzlBYanHKeWhUUkigALvRfDSuGCne6Gk4eSdtI0jcbZaRE1UQjsHk3RgckRA7hpRV+Z0AvlCiTSxsmzX37FBmsyyR30f4+GQpSiJajPbK7avOUywC1R5mt9azlgz0M274fN/eMg4gwX3udSnnfnAxLT4gmxqcXT9YlIQFDSTnjmcbwEJo0BhpRLwM4yKWNqNh3/n9YiX3tdO8PIeXpHqzpyogWL4n941xmnGxA7SM4+Dn+EUjvBEmx48b7ww5Y4F7nvNYgXc8vP4+sBMrCpE+0MYNHTRunBfjBCo2LRZ+cqFAql56PG/3xl3FRTKcP26y9QCJYjwW/j85GoQNcb3rDJQ74Gutav+MVD7A0cDAAWnTx/3CBUaEMTk4vvOcTBSFq/3eMEKianDinnz940c1ABqfPjebMabBKxwDpALDwn8YFiJwnj39zJKUYAsIa9CFcRhBiTVTjY/g1x1lzL7gVYO3ABCQ4zj409ka6CKyaDHW8A9PbeJqbCEadSVDG9QI4IQTmaLedRNJOAOql0Fc9+esADEqRISpp5KYiOmoEViEImO5DuuA7DQTlIdwr6h5w/AH7EASnYHsukmMpMJIiihdabvT5yWXZ2RdS8BiPWbiea7ZTtviw8Y4xRRWtW9FahKHBkI6q2VWKvR3+cr6p3DV5d+nd24aJ6iCqWERewf44wdy9eDvcYU72SegxQSejQl4Bzxv51k09KpveE53rcm82E1Np+r9frAshsB4Ly+PvEHsJs6/vnCVBn4/fnJU3IdD1iTBU2GhzTdzUG4Li7nuYNsvnHmz8MHZQGUWE4hMsaDFHV83KOxx8vapHEoUcJhlNEfSAj51EigmcIWaRBnJqljEpNKN9QFgGwofTVrzgoIEkKqJQY2DgcXBFMCynBv7HY4IrINHmWePtuOPrJOWa5/u81ehbrOSvJ4+PjGvFgM70Udx49ngy+sSMLQh1eP1mvSjaI9P8evjAiXsnbV40x9+sbBICd3kOeYn0ORSBdON0fvk/8AbhhiaHCM4enFfIo8o3vfGGksqL9IbJfxiq0BKJc1E8/N1msKJENrvYPHnU56wQAkY0hTt5eep1iDXph3Ods4b94IBKtGhlK2ANR53vT/AFxkEzpVCzYN38ZsAyVHkMQjyiHstwRbdDrXOGQpFoo6H9TFSSAnh53jbNQhNvUMAA9Lb62f3xiBS0OvB/fGbhrN8F8J95bSaEWTg/zjXtEdRfG8SXXNRs8bNdGIpfavO8AAVAzUOO83GGp7bJvxcgowQO3j8f5yaIkANdRk/wCYYYI4xDnYuPZKaIU5s+RNesG2tQg8yJ2J3NJTJ65gANtahqaC3apZ55NIwaHIrfmGB5GhGLeDvhOMNQWLrbodCPV1d5ZlOOikIeV9AR04LaY2Fi2cgEhyvJEPs2SdwMO49YhraQKK5YfxjHQ7qE4kgmrs/ORdtNgre9NeZ1JrNINv5HK/x9Y2e4LSnIiaies7/pVOoOG7vxh0JPaF7eIHWsPU4tWsCJer1/3CovSbFNAvOz63o8M9S2jVB5N0wRwGploq8g5qhB1Gesrurx2Yobx9Ymmj+ccsOIPOF13RAS4cLYx1XLktfHLg05Q2rDJK2F45+MTgmpRgeF2fGTGkxBRzVW2o0UUrcNQqWgFoBW17MO9d3c6hGg6VYF9HaQaSs4walRSySCIlHvULZi5amgEdwO21vjABpyKZrVFAIm3hRgpCKNohYd8Dtu++0JFANmIh/wCm2d4G1vWsOimzRefS+s4F3MNdbop5mb1Sy5siOhPyOYbuILmR4rnocG/WFO80F3pXp/1kEJxHsQVJyEuEHjIJDhRekDWSgIVOlvBx/hzYBG9Q8cd7vvCAu1VnUOHT2nPOb0G9nuNJsOf8ZdADbnJtvXf9cGpQUNL2lP747wdDcsFX0994BaR1sv1t/eG5SgpR0T9bydkmx/1hIwMs7cSQpwMZeHmQ6HCjIdHrv/WRV3pqGNr/AIJ85GKsF5Px55/Oa0Q+QnWNimtA5P8AlcCWgIx8l1+s4EkT2R7N4IwRsRVGtl/usAgGgkhk3e6qgVyMLFY27vNL/GRZW0DVdzx8ZPgYoEfjn+mSCy2DTrZ/zrBZZyjbqL/jAf8AqAVqPAEOcApUbjYBzUOwi4mymM5FZrmA6AOsUH9tLET6Hu94nqzXDqR5BEYd94wZYtlrp6Xje/xiV0nkQA84DghoLeTp3NN1+cdB6RTEFbnnxw47udgKbl4OI/jfWEIS0Fp4+7klmFd+27Tn+7xosRbiN5D5y6a9ogRIJ1ZruesK1l0T2cKyb2dfOLOlpwGlCjazX7wn76Dmg1DwoN8c4RvokKnIF30W3nIajtUH4/3gwAXqYwhrwdZ2oyiDr8Y0T4hNYVBHC5B4tx6yT3NeG4MgZxUWzAVEWqBcW+DQ8lksOYJ48h1+6YQnqKan0f7yRWl6XaheHk7jkK+iCPbQ4G97l2viTZKpIEvAojCBN5FDoUDdRpEF57qagDORDyqQLCiM0h2YENlAojRo0Lu7QIlRVZG7CJ3sGDUm+cQoCqlbmnzN6zhYeRLzV3DWLAZCg1kOOddP4wjfIYti3hrdP5x3UBAhuOjVbwne5iU2Kse5PL5pdubl3ECQkqy2GDUCArflofRze/OP6uwvALwdc4WdiEyKNsL+X88ZqUoBSnXKnG8VQYDk3h3z7/GJUugppR2B5nesb1WYiHn9T9YraqgIR/szTi8alW+ZhK26Qv5Of4wwlPgu/eClsG9tHzgzEOSQuAKHZfthw0Va1/G/GMAqcOWvOCqvBW/yxKnc2lmaoHLpvOvx/vImSQ7+U7wCqCp34fWK5EN0X1yfWbEJCtB8wvvCTVtupPV/OJ7I4vw9Y53Lxg69esK8EgOh/jf8dZubaABQ/wDY/WIjZBjRFQEorHR39YNPCHIFkp1JzPvDtjNCaLd/fPrDMRJNyEVPRefOVLEJsEF0aCznxgSopHS8EkgSPzOMunI+oBu3VNe8VBypsQQ/Xx6Y5/HSLct+jFeT5MJLPCzl6wq12QEWBzSLdU+dSr4AHJu4B57/APMFwppIAHR+sQQU4C0Ks54/rjChbMgYmtJGIj/GOv3RCRvgtLz/ALwwg2Ui3Tuk2bLr8cq0QpGx5Vk4nWSKCEJ+Um/9es57bUEPB6d/eAFY2QP5ziBnvxlBrXjf1gzdni/ziDgOmsiBEYRlOMb4Xpvf99YgiTmBk10g2DjKUPbGPFy006TcmDGFKVv4wTwNRWRBc8cAM6XD53KiNKG6BVPDWCY2l0aQMpAQEBLcWVrQGPQCI2XohhiS01WglUgBvodASIqhmIrexyGojhXEqoXoDc6l3AiDHWHCwA4ahvqbL6ZlPy4apfLePPOAMFU8ifR5HydmLCxowt0I9i8EH0u2xlWtQ54Avp377AGxOydKGknL64cq5R8wP7S8fjjI2zVoKsutKBgF9A25DvETfaZHT0cYA4tCVcjl67/7nOSkFYDf1+94TZeUVsz5v5xoAHWh3vjEEAIhYcdPzkEEhdgD8O8DptOVNn5e/eFC+vT+cJW1Sx0fzkFA8rMeIqeF2TNoo2CGz3MftW3BhvfD8Hr5xc1MBgWaE8i737TF9JKhdvc5t2qdZwso20vCGnT61zzgMMtkcj0c9fGKCIFC5Hi3WXGY8g/puDDAdYgPCa37+MRhAbleLLhSsegLt94tEh5A/wB9f2ZFROIwp5KYGiUd7D8P1ghgZp3E4P8AGVbDyHX1duETGcNc5eoiiwQ4AeOX6cMMdj4JZdcPnGDDVRq7OzLrQLoUA8f5MgcPpZpKfIho15w6h8gAVXZrid5aRoFAmr/vCwKQitGchOJMDDKCfWUxbS0Ij3t5494UETtznoX4xAz9ah9BscVYYUQa7nBCzr3l5w6YHkFGR2Wn8YfNR3mjssOPO7rjWyijqbeC+3X/ADWAIZkt4aEaeHiaw2AhGm9OjZw4EdCyvGdENZzDCnidW/OF4pwBceO5Y4C9EPZZOWYOQ4VFMTgDJx+ccq2cL/DBEArBs9veU3ql0/GcVHtGstxKO80aAFCwGgZBxk6aynhFAgESw2Ea0dMOAQFS6gQOgCoFtY78g8kILM7wS6NwKwHK691gMFhlC12LuJH84bK6KB2HDUjenEyAstaQa5dU8MnGutJ2AdDsCcL7dcFmIBbQLQKCsL+Lm/yubV30uwOSHu5z7IOTSiT4ep+8UO+Ry1IL6359znIrxN1chfG4nOOQia6IbXfj/ZkA4leFsjDv/eJrefQJhASJsUTfV9f74w8bSSoIcPzijDByQ8SDz84dE26UT7wJqWVPZ8n7caIBlSnymIbxrkfXnvnB
105+ QDbSXevHjFAnvgfxiHZHB1GELoyHjxhjqYPArmgg3ADQLpbP243KXEAcDy/k8GKkhpHX/NuKGdBTom0Hj4XjUy9QVUbDrT/eMWZBUCWsPGj1lulNiNPk/wB3gOgTeF/mbmAHRAs292TfjeC2PkxPt4zTNUhdfQ3A3wJofYjtwK8FGop66PHvxhAZ1RzG+u8IKy+D43jx5YLwgvKUfiugcsGSANrsBNjsmub1kEP7ASnP6HnBTsEHCSbeNZSfUSH+WEtaxIGkFX66we4s8W9Dn1mnmEXrfbMA4oNU7T5576yLjRJK15PPePosNit7deXKIg/5EPOHzSKIeB73m21KUDheTvv85pCoVIQ4Xh/27w0q15IN5a63Pd96YDwpaKDvg/8AM22Am4FDLOeTjpMVSvWJ0bOi9zbecFqo0O3vs5xAI7VGcc01Zs5CRk0QdYOOg3s4zQcek2fUw3P66/bFHIb1Tr1hVexyxR8YEXvxEH/uVAtm8xygBJUFNdMdZdwcudVehCSewGqesmAid1IiQ4BU1YzFQok+bzNO+N7wKrfqAsG71qJ0cdlJcZvTsDfJA+KopKyGgEtLzd89waMS2yLuu2lTe98kcP28h5hWlvHV63gtRq6FdF3834c4gxTsklI6jN0riX6jeNJ9tVhWPVap968J+ZzmtUI2Vt+eA58/OWNKCgbcIadv1jaRhB1vW2z+/ksEkgMKABvbjSNnwwPtxsO0HNF0ho/jPaWbpvGgYYCF1HoHq/M897xB1IEUHtPWKccSTsMPagbth983HNSmuX2XGCOnYP2w+E1XKADpG/vrCGMUwvHy4iEUREF6Q6w4CI0dlan72DN3I+gRaC962+/WBiIbi8331Tv/AN0iFE2++MmwBJLnxB4CfGXPSNufwYCgE6Y3yzrAWrRD03/WK0KdG2SWWOASfrN6LDvZ5dTESjeg37n96wlIBtpfZ/esMJGdhxz795sQ8LBHpNjp7xtWhhN5oDRdKQQGFVBsyI+g65rwyGIiYSnuZ2FhQKaHKhsygpbjVDJsABJb4cQAo7SNdXrHqKVF+Nn+c3/X67js8YFEbaM3jKpUlEPvCRZQ5kvPxhSABQ3tFJF/1i6nAA8EiUT84BoJBsCmw1Hg8wzV7IUKeHRli7grDpZeuMJuJnSSrOjvEO0tZQMwlItHk4w4CI0aP+skWq03qeA8YGk28M/XeJEaggUH/mMQs8roHNCbwKS4GsFWkUXKRqTdN/pzaGeusKRPBHRlYfEoEkDaJSnQqkxl4TeUJoTYQGdMjC51oRBgsNFEBKdgPO2mURdOgrZxZK5rSUa6d2JfvYVOMMzjAS0OBAFxwHMmOIY4pWADFVW7KHsEPWxQibd6Is947twJBHRDVENt4BZ6BeHtncj1Ac6fagFhNbEfOLH0bQR2nXbjvvE2fgjKb/mHxyYwJIG8TmcUvb5wcihWQe06/vrLWiMSoXku+vZgKitrQa+MoLdTYHqr8/6xE4NZTdKwi3/zFkpdymHpSH0fOUpYKl0k1rXGG1DKrUuvzjpsnYsafLn8J6zR/ZHxmowDe3fpb/rCQZbOQfnJNN1wmKAR8MbaYao1NxwxuPl8CX+3CM4C0CEu9mv+4BkS68CE/bjuo3s6wHRHjnkyNGcqq/rLzY7c4N7A89mOAmngc/0xwgN93PmwHU/rnjThsH+cbvCd148Oz/GaCCVH7DLNgUAnWRvQ6sCafvNWD3uH4O/mZy2yLySs6WFwMtBWCp0Lvfjy48RIk4lTft/jFATERsLgDCS3ai7DqcOscQIVM8iOuV7985p2FLQOmdccO8sGopRkFf3+sQlG2PHjjGBjwWuFwbQNxJMvBcmadP8A5ijvi8nQN/jEgqGbDqanTnJDFS6nME7xeIhLLOYdySOnxhNUXQHA0YJyaLc5dUaB5zv+Mczak2N94SV053r8eN4tlbofZ95sVIZtfLxkhUbrVLvjLSkoM1gYGRupp+8uUs1W69YyAwk5BgQLZLyx5p40zHOZEuaPLXbtjXho307SgNNtwgE7bwY9bQIG8gi9ipPoImbAgolASF5I2pg0kN2dC7LBDb04sQ7Ss0IBK2N8RPCgHKI4VapSU0e82Ua2jTTVeV0f7Z0sHAQvCGmc0Sc4/UACtbWnW+/bkRIJJobW7n59BuiPMKmHPc/zhK8FI5UpvudmRkteX48PP3jxAkaE7utcfX3lC0qQ8jq6v9mAQDsllvnTOsalC0B+HY+sMy3OkJOdtH+mXAJ2OP4/r5yYACNBH4GzGeAE3Rvuk+pmzc5C6eR4cBoA883AuZ+c6IuXJ0AyWi123VcPotFQE9WmIBwiqD/54y0KUanyTVR/VyehIu2g0Ifi/eDbzXp/GAlkPlxAHDvnAFg3V3gLjYp1vNBJl2s8/jISnSByxGGJqamQVBp7uh/WTjBWh7eeMKBg0XswaFeiw/8AuaagNw/LiZadoUG89i4yKWtUA0TyNDs45uJDisYPjQV4nyMOs+OoNn7QxHwobCrz1ktn07gmuThGmu8QIMwFuJE8b5xygUmhBr85V1AOdPRfifjAABrmKdGI39Ehr4zaJnh+C3EabyMFUQ8bTUx3wSl4LvZvJdNIGlvfcxTTWqravplis34MP0/YSm0vHlr4cf7DIF9V985JQCCw8BKxi7187wxsXYcYJBjmft3xgrUNc6cMlAEibH44yAmAq33rDJ8JsY6BFglf9YYRq8hQMR7bNjS5tQ4O5e5iKEk2hA8YQB2JKAngsNmPzpeVlksbZadhdttI4cKEyxdBUccU0jlGFqEJyDwFa5gRzcFgC2tBOSGjX0YDYgdg0IABeNmtDREWFsj2dENH+M0pKylju610c6wbNEKXo8DVf1k1kklN+dSNDu9bOcPhe3WPb5rf0YrUuxU74cZlBXh2eh/OT5of5fFKPF4dYpCjYCLoGu2YOGoGG8XkdPnx9I5Ri/0X1kKgRYQey07vOVEaTRk9yc/WBo1mgMftnPeFrAQBdnvN8gVOBu761ziC2Q6h2vOvX97yYnS+n4y3l8gRy41dnWjlyIA9/tjRXT1Uwk5HicCh7DQa+A+sagIkSa2TjAd8n72wl1j8TEhVPxgmGZ3MADeeP9c3Eu3JHf4MQrIohgQhv1MGdHaVMUop/hxRzLYyXuDrOYRSJh2oJ+n85QM0oz74xyRDhdP58TNZ0KuhOD7uNlBF0329ZDsGQCKfKG/I+MErwU263l32ud4iBW7t+nX5wpEQortY8/HWPEhS3sptecJUvtp95SUXfKfWJglHmKiH/LA1CLaqeQP+YdJV/j+84ICh5aI68cZAx7Qo/u76zavE7hoj7PScZozBUOvxMGWBCiB5eHrXM3zlDpq6UTlEL6I8ZBbSjHht179cYqk7qIuz16/pnFAPcDUTzpwWuzdW3wYQKhtt4+sJTTSGH41x1jcI4sbb48/eXRU2/wDZwBCRKxA/sxSgJpNMtvxuIB/vFt85bo+t4OMUclV+P/c4EQJ3MEYoJsElyVPNIPRwBpTRWRjTHRRPA70CeyRUaXKMxI3tpILpjS8xJm2/REsiIuG6th0mckMYQRJZda/1jgHaKvmabR3xrnIprwrRtL6/gywJRJN0WL0P24YXPEI5RbVnc36wCqhoAAHTrnmU8YDDgpAtTalfO1vnrERAQagHvlDTqZq1AAGOqLx8T/WEyuF2gPtT+8YbOqUATiH99bxslXAKeCuuU15esr8Qqpzskm/D/OLHJUUHu9n74+MiIAoHCZruY3oCYfkg1fh6nxic/ssTnivHrDLiIShzwL1gEJ18XmeMZS2nBltJngwgibyxjPNRgrvDBG2cphzzHa/MOMClVTUui551y8GFSK6V5ccJHomvziU0X2YScnW9GNw6+AfmnjG0NGTceMHgC2PWX6q2aA+LmwVWyrPjfGIeBopqvl3MY65A6adzHW8AAvvORmALvj8Yuk+YPOI3Vi3kEfmuOAU2goLyMCI1FE0YSQ3qlah/KZtm5F2jmHb8YQXoNI0p9OsVULteplIdkgf5zS5ABEL5HiP6wqRTMSlWdXHJo33+cBA9K8rxzhzxUPZJffH9uKW6js4SrJxxrRS42pthH+D9YdM3eAcG3zhmwER4MK0cAveOIZYavPG33nA1RtiX678dYtBAtQXJPvACKheY7jx+85iomjTzcnBvdO7D5xJCGUqX1g1K1a2T7wYdATAfjW8mG9KBB40YrZ4nQPP3lkdzRK+cIQ7lsa+DC5NjNlULQ2RqNAYKZROiaaAx62fkqlN7KEQWwkMN7POUkqXAACrt0BvxlI4NTR+O8XX5FjT7xzXLs3y9/vGN61O/USpNc/WMjeSixcyx4/vO+v0ik8a2M8YalziLw4/JhpHoBPRK358YnR2u9Gfn+cMGWF5E6Anrk6wDK+dhf4Yoa6lfiomAiXKj05yZArR9A/nDFSNXNNP1yYV4ZYL7TTjw+3b9G87PJyA9Bp88/PGF+2RzOpGz+95ajEGoBY/iZE0pUQflHUyLq8LvAqoPnBaoXjjKBU8c4I0b5AxUsw9c43Vw1ogoLQnWCL2dy3CHhtHB+0MsD5JE53t4+PONyGgSB5scN+c10zk1qu/GLyNCNIDljPjEIz8HbxMXmHCJ84xEVq2PlP1gpzYOA9a/8w2g7IDoDj7cq8vQQB4MEwmbSKdL0cB6cQr8lQqtxzB0d47UEJcutTpm9IuvSmc2R6BoHLGf+r0P6Ug2m6deP4xKrRCPalkXqk+Ac08oHpq1O+esayrZFHvXRZk9Cbl4xXwfRzdHyL+8SWUV2Xgr7kwAndV065xAd5+HB/vIemggpLxR+ce0avMbfjy68+8VINoSPkVf8YCRToJjqXg+MNKzKSJGvx5/tHSRIbR8+f5wLKe0aYsAhvg3xiYIO91X5w3YRK7cVJTZ5D/Rm1vW6vzxgi3eU59XIdo0tF/5m6XQRn1TG7L2GlMBA2Duu/xigABoOs9eMpDIR3gFXYd8q0HKpUjcH2k0UPGiZp10KB81eOX4PwlFe0E6r1myFmOv+QwWDKv4yO8IOqtTQ4894npULvHNYu8thf3c2IFFMPrEsi5A1OU/vGK8xKQqGxe+5gwOTYt+MnHXYG0jcP06r/xhN6SCcClhwg/xifbgDX99ZyXZ5twO/UTe2MUoNv8AnFQKF8/wyPNt5FXEoRE04PFwrdvjnFkEsQGy/wDvrAh4ErY/GLwfP4+bgkROVWzzjXWvZ7+Mfem+V+sPRjSBHlesgwh6c/jA82d8/kwA7VZq1kMbqIgwlJVEIY0uI7GBjTsZ0N3NZGBkbwvtvHBQv5xcAWpN6T/eblFyif4xQGEkyDslODh+M56Oa6HaweejvLbZqN2R/k6xBC4GRQFnkvw+muMxbI8KIHirvXfOaZoCehZfld/rEXglFcaY7wgAxundC/49YhsGeEw30suVN8cdZfKWo8888k384gAdCAwvOLDXsra2b+pghVPKDlJOdcYNE0FtqPg1TnBQ/WQz97x3fSnQdECPP1hP+QlFeXTs4wsA7BhipClKjs/WNSR2sXIQ1JCphDgnQf5uaE7wbT7xToVZQ4BUSPlcGS+dTA+cDCs8buTJJwLa/nHaIzz9MTYFFLsLv+P3gYiisW226Of4cP7eLyOxWc7/AJxBdsrfkOn+AxZ8dK6bmjMVr+QhdelycZBL+S8afE04WAhNFm+fmTCnWUZFd3ejZ+8dVIASJTkbcrMUJKlMD5fh9YC2FSwO+3e/xgOWAkccieMDoiFbkPJMd+sl4nr/ANyclWCEEP6GsBuCs+/xmiNtJTxkZr2wsVnnETZ4Vg0ParUf4wYDH2YEgzia/wAYeh4hF/VMqn4g/WAZ688X6mIir0qJg5Fd06xVBpv+S5ztE/thrulb/jGbpnGLOE7KODF5Ht+cCoV5G9v1h5muvOhz98ZG6YlvLovPX6yioIX05dt4qxBIA8bOffP/AGUCwpA+guXxuKnXutYzY0GLYso9/wDMeaIaHXbJu4WQGiz9L1MU6QzSvO2+F1bM2zbNSX43P84G7ojwVDY1wqcdYO4DrAdVQiAXrInFQOG1W9p9x3xlSUISrxR2WGe8OTU0SgiH01DvD2HJtxP64YRoQ5Q2vXx7w2aLSzX2/wCMhyGFcKTnGQXiARGHh3+8q0HDNj1ZjkrZTf8AzKYz4cs4nE53jGYvRAzhvtYc/WHS+4AIvxx4PWHTNhtSdw9H7wRlulQpUJk+TwBXg3zr4+c0l8nJQ94IAYkUae8FpZNJXpmEE15U+OTEoqmwz994gJd0G8+JLiwfaPX7xcMazgRwFF7L28YbASgLYvN2d3RiOlVoTY7gN3hEobrRHZG3CUQRIG8lJOfy77EjoMkXseE3+cCJovhjfAX+94oNsvEAjoPq+8YGqOrKeiayDMb3f4HfOVCJUUSG9P8AvNjrAbYHl+sT6mtHU8vGv7vHFBItR+v7vBdcFKB/mfOFR4RwX9/xiKtNuk38PP6zkT0g5nnlgtCLE17rJPhGQ/N7wU9hVJflwhH1sYevH/mElAGxp+/OAsUppQfeEsD3pz8Y+xnISvjxiqNAolzWQm5EwTazlY3GGADmLgCg6tf8YI3VSu/eIbS9v8YQYzgrkhbG5dXGngJA/K8f8zmQHOTcvzOc5doEBtEVOE/eMe2htJJJeZ847iRKPO6s84Q2g7KPJeQ8HnBFzMqD9fWAooTuuu0ifj1jYCjeprnZlo9cCQ8+8YIHLQLfn6yH3IlwtkNqNlOTCgOuO9/GHA20g0YAHSjpBx/n+cr3QUhEDaRacdzUx2iUrF2NBTmQ2ax8wrbHm5OQINNp6co4p3FPvKRkgHdhvnBXVexBkAHE3G+vLsx23ob6HM+Q/OOTy7Uv0xKeNpRH1cIJg7kD7mUtXNC3AB5vDejWHATZJautns/jOiqpQN+tec3ByZeX1PMmHoRSk9DpS649ecMhw3nPrWCELCjxtYRyILjI0Tnnr+cagpahrfuzKpYgUkHb24oqLFBD7yINMBUIvdtnWeBKJIeS7x2kYiD9JiiBCbV9ef8AeMHsoE76vGNtWhSYnkdzt6yaG2CyePXeIQXI2Ot/4wVSrZZgQx867ddGBRk5IXj/AHg66aN76nOVpKokF5DnnDipUjvWMlwulp3098fvNxGgNSHr8fxjxr4d4KheRz74/GEU7IQR/wDcCpiAls+d+sNc03sifJ+cXNEgIfyxSVmq/t/OslcFojU1ziytrq4N/wAZHFATQTxcOhE2Qu5vDQnOwD5wS8Dv3hxCJNCh53lpkdqg+J4zTnJAMPxk5FXbGPn85uXqh/piLDerxjZjvgwrQspDlgMVgvYfpyG6wE628ThxZRRK0loxNIvNwiVg31FmifNbydYn1Yq7uucmgR+7/wCZIVWhqfjF6qcMHAdfWOCtHdAdb3jiFOQxPcxVYkMOXadGnARXB0Vk92TBXUqBH0vPnAOqGwonuYV3m6Anxpr4ykM1hoBsgXfz3M2fIvLndN7Bzc9FtR0ILtHrjEj1SLR3DinT/wBxSNI0I9jd83nAfWvZxsN/xhJWyJ4Tj85wV3BDDXny3rAFvYwZNnUxIrd5F1d97MZuuxDtPBrjAYA0tocMvsx1FxkE+f8APjAHwCK0ncQ9ZQpXz+Soc/GXuic+eqXv/mUEvYp8wesEOK2LGoaTeJCeaj9C/v17wkGI5290f84Qq3Ygk1zHP24sATiu3vLPaF20/wBZgooXSiHab63m4poHS8fu5I17AkbrgzvYh0zzs5xG5Gt2yTgX/eSUYBUii7G29B24LSG6t384puBCrZkRKK5kOvvDrQCyEuG7rIE1xBEAhEI0/OIEutkLU/nCkJJQYNHL6mDfY0LyL/fzgLY5atuDPAFKLj2hVl8sCNTO42ZXkOKbP1lh2A+RhQ1BCtwihDwSOWFDZHk6wI4puFPGCBDNeHv5+MIIlhAojf3/AExAxukGOYaPxh9RAUUX+/4wwsJqN/dyDXbYLrCAKG1gyA/IDkwIurOMgWkOh2zDthGo5x/AUkqP3kDSO+5hGBUXofPrCbe4jXv65zUDwdXBIkuwbwJuh3j5n9/nB8EKjP08eMTO6rRp9YJG/Cn5zYkdov4ed4eU2DgLpD2vrJoIrT44e82byvHXNUjol8ZF0GLoJeR064+sYVp0gD3wLvAsUSA4Yya8uAxBIuy6D+Q+8Ng+ABgn0F5onV9qYh6FO8Aov6Y8qarBepeDleesOHOCldfj+M2KHUr0MRL6yH5pucmKIJYaPex+cMFoQYm361ciZGreiCIQ15mNWDVAUeF8f6yOIimTXjXjNim/W3dn98448EhfMf2ZEtgE/wAno+cCUFNuo73P4zkDXfh89+cT0nSpLNb/AB+c9HDri3Qa1y84KpTnQzrRj7Dzwh883G1PYafjePyhKUz8m+sY+c4X4YpvciHE/Uwxp7lVPOJhgl2RytgIZ8swhICADG+f4xQanUi+BRxgWlf/ABlCRaCZRNz95AqyO3L8YgkAsbtMSeOjlVySII2zb33gtFy3tecQlI1NTzgmlXkNF4MoKm+T/X91jLtUZ5OHDUB1fLxinc8ixcUgISoW4oacFd348by64Vo4msYAUhK/4ZIHCY2NPE7zR1CW05tSUsCB8ZFaIul18YgK6WdX/POPChGro6MOFxeKk+/rCIF2R2zXL9BMYOUPw+sV9gPHTFnKSfP1ivjqBvNoFn2r36mEnUDqDzMaQiFm/wAmRZMkF+MRyuLe+NdEsSV/3gXakqRtZ/fGMRqA7ouxHXi+r5wAyZ801r6cp1ak7JIGoML/ADkPASg1yBwE/wBY7QFW4Gqzv/eUhyBRR4nxnn5dNrxzz5xutMhXrXJgvDlQU5JZ32dZt+pCx4Pwv4x3woJRH+vxlCXXnQH7694xmhx6flx4yF/U5fjvHVCWzA9g9/8AMD0YghW2BtvX84EN/qSLabMv0ypol3uOtM4yitzC6htp3x34MsigYCaK3j0mONQG0/OAqJ2G0blGgrg7+dZTtBzGvnFFQYb0el+HBkUachrx1rB61CIE7m9ZfXq0D9+rlgqzd7K5patA0Xuc4hYe0t8b36yFkbxzv+cZSAOe/fE+sIw7TSGcNA2hNzi/jHUPg9H/AHrDxnkDb/dfziEEXYqd9eJjUJV9A1/jF1AhXgW79U/ZjArY9DnX8mOOq1DxvswKQ5BOh/jrKwi6FG6esQicIBCvyO+9Zbspwxvn/GJFGg2P31xhiJZBzrin9c61XpXr7xcTDILCY0oNFXk3/WaPDuCy+PjFTGjY27/d3kJuVJI8hvzkMkADXR++sj3CSjTvhwIIQ3OT+/5xgxDndyDG6fUZ3lx83OA+MhUBoOCdGaFQIPrxiEF70wyEY7eDirnh4QNdmG6VodutY5hpQG3Rm2umgjJm5LRlq5fNEq2fjLwiOhJx/wAyPtUL05cchUo64fnEa0Gm7iUhbTx/zNIXXEaYOwKbqbuHYRYEO6/fODC+7RU/PvEg8EBqXdPzkpEgA7ayHUPtkgaeIWnqBtPVFNqNKxI5TbNa940wN02B5+JicZJpDelOHbrHVAX5UTr5wdFHdw2C9Ef6YQTgdFe/4zZ8EWs6d4L8E8g/887ypbqOc52NXGD2oA9ixvRc1kEB7UR1rj9mMwVWynEeeJ/GEJts0nhTsp6wFlsKqI87wOIDIhOxvjBzpxAK11HWn6cOqf5VSu5h4cupaeQ/GMQhtGuXjrLMhoEB79YUJQUOGl3o+cWccRinPDN984V3veCvN0fvAvZqqlv3/dYeS1VVP5T9Y4ag2cOVDBD1LhQRmyj+Xk/xmnhULd1/vnN4Joh20/5+8rMKixU4/Wv+4nNwsPkxfs+zP2LgBnt04oVZENNyfnucYiGCa0vGtJPsx7ZbkrzJO3/vjC0whhqRdd/PzgJkXYVlmn6vnEwUJW5qWHlvPreQ0EOD1r8azeFDb+vrEBQl4OHrl5xCrMgVw7+OsMCgboechB8LZYf6wCmUlfH
106+ Z/nCiBdXswKirqn9OHMIInXP9+83AC6TtxQRk4u+XV8GPNBfsPvAEICUXfjDAaDt17/nKShSX4v3/ADgwwXXa/wC8BvHte+8Ceo2z4xaCVEdhf54wZKJJOGcT8YxWtfx/XClcXbp9Yp0m7J/bgJ4isr4/X84c2wguvn3/AMwjAHbY+MMCCTbS5dEClNVyIkAmPEKdvzhoIW6uc5S20SfiayIMo2w7I3ABqKby+OE+8lAI5cUa8Ds3jeIKCPAdFXIZaQKBILzhjgKtEk/WEpgLNA4xFWBTTWtTzf1hjyc3KHN8f7wRzYc6+DA3ZH/bCztIY188Y5/zpODd6neLpDYFQHp5vPFcDF5N0GdNcc8VxcyUQuprzrFPcE5jmD/5rHMQIs63ww4eC3Xzhn3TvPuXESJwBRE0TzliRJBH/DlgCJG/L1XGkErZSghOj5clJpYPy0v+sB6kFw1ikUQ06k141iaDTe4vx3xggg1pGjBM35wR/b/OFAENjuYG12EDYWidtpjfATdsPD10ymgjUqC3jrh/eFQtoPnT9msHUYkE3E3X+MtShh1dM/bmiBErQU/7k00Vq9z5Ou+cv0ApMnQPkH5yvWPap1xe8USELwa6+o/nBTDBRgbvXM/WPASpnZQQflj4me3MoeR15TfxlnAKA34c+v4wBUydDc3qeMEithHXEm/bfr3jwz2XXH1zxgVXo0Bv/X7+8UcRP0TR4nm4p3E02YvPrNyCTqp8a6yhTg2nf/uPhUaF2Qh/57znCB5NBn93kmqNfbUP7vFOJbPM9cbuT0w0I/fGDUmJ6EvWOQNkYnJT/uCzdoUrrW/GFoQhAunjPAGa/wB5xJva07+/zcOHiKOXz6ZlW7dKmznFgkAAbb/MxNKkaoCWv2YYZDpycvOR/Il0Nk+cLIPgtwKdNoj5v7wagM0PZ/jAyqHG0PrI1EvDOMfghRP695f5fl3rFVZop37xCioqv3+s2oyyGn3jiArejeuHvEOvkWl/xm6LcXr9fOBbMTdcT08Mzjg4hE+L74xQZIkAfJfN6xCq6FOHZP8Ajif21q1M38z/AF1mnHwyc/SJxgjBchj+W3h88YLDBUkXvl+eMBeYUoRKgKeKHv3m2FqhryPY6pvnjHZzKgX8v9njHOEBRON/Lzrn1hWTRsOUnc+PHrAcmRVDTW/jJwUL3gPEYT4uBKsclmjzU/WTAABry8/eKQ5SFF5P4wei0fb0v3lALsYX4r+MaFUoCxy9/rB+DAVydgYAKYRAaT36TdqsgbOdZCcpeuJf7rJBIdxaPfPb3+sAhgRVEd1dcuLSW70O/wDWJBBilBWyv95msVYjjIuj9d/+jHJxiNYp3ChP+ZEuQo1bo+VXv7wcG7CeFD0dejFiioKS8Xz1ixrDzn5adr85YDavKsDXx65xgMgoVPTyh+XLgGrNAO08Ks8Ru8bE2GkQfr3cMsA3sccHfH94RQoQiutDOf8AXWFnn5ZL431eMhKRS3/jv8lwlEIQhERfx/h5wogONOGBeehyD1oKk2/IO/Uy4eCJFaR5MIhAPKcC8/HzgmsXYlo67djhs+8ab5Q7+fOLGVfOAwfvr/WmbAQAGE/7+MCxSeHX/uGuegkG6v2TKmTmOtAfkRwmTA9y9bwOzIbl5n9MZbggxnNb8jhtBtdB7/hmORUNmw6nzN4WVQ0AQhKb5O82DgXM2RfW64srDd2rr87y52qFTn731hIzm2uDHD4NxNz+94bBobKJs/phgAFR3CXfx/GEhEGyKit9fH5zfOLFQJeeeTCrYcNYgA6pv4zdrESDwVPjBBDYiP5vjw5eBgkTeJENihR3v9Y7JQCrgf75yyUadvlr6zeN4NPOAJVSj4a/ZggUC706xnJBo54V+N/nLFp2JCt9cf3zgYlrZQX5cfnGTTVDbqaXfIfvO0vyiJsfeCTQKzQs33/l8ZW6shN92c61PWGnz2Zhdr+MJakH0J584o3JW+dN/H8Y4GT2k5PXi4RTRayPe+XJhAVoh6w4TJLPPOs40A0d/hmkLuk5/wBZz8haC3rTziCALWtLv8c/+4JztY+ey+NJ4jreUArAYqdvld9e8ObThJzHwqRY6mITVptp6Tvd8c4d+J0mjXPSA3zcjGBPEH5Fbns4piKBEtFp0OaPxTSYDweS8t631w/HzheiLbIOBwbl9Zp2ra0GFeSlEGcHUF0HpxAIvwtejB4thVbVzvjj+qogBpF0r/fOWxtkaad/wYomba3s/wCs426AWQK16zZUW00p/OE3DF33I+Htt6wCEyAsFTn8TCnUUS7JpfvKriUDV0v0JzjRjAwhGX6xGMFMXs/VVyoBU7cNT8ZrCwKCy+PTv4znrog4+jv1i4AOjGU/eHzYtYpu9cVwVTNup1J773hNtS8tR55LiW0K2Sdq/wB8ZebHAC3e/F79ZogPig1z8VyrBdF2Fv3vz3cL2xWNzs545fzkzbrQg1Ifxm6FLW4vn1iSCWngln8Y0kJvJtx5lcClFKee/wDeKwhF4M3P3h+KGrCDNfrIliB7Of8AGElAZyY8/wBuc0EEeVgft/XziBgqGnPT9YrGUitmlPfN8LhqFUMWvHvkwTuqH++p+ciMXCVttvr/AFggE4gWuOO9YEfg2Ox44HxmvDZ2Uox9PrGYqSKzXv4XAvUhN3W1vmuPpsjNi9mTOrklPeWXYh7l/wBJnQXRpfGULOfXR3+cd0cEyC8pOtusrYR0K8I/2YY4gTgLP987wOYkZboiT768YGPJDh4ZTgIqjTi9fEx0zCG68/jnEudReO1v4XeM+E3Uo6u/Tm99kmjqS/1zREQREfS6f+ZWApBfsX7n5y1HVHSHOz9mIiFwCt8b7wUjgKDrTzkElp0lgi9ov1X3jXBCCWAeV8h+LhOqQnW9zni3CsRAXBkdSPes4airndCUTUgPi5t2fFCh5NeIvzvFuDQiSf4IM4Y61hU1mINItIdng3+A9tIBUrz/ADH6wDMT+T8PB9MjtNVk3fBLWb8h5yXO0TGiHPA+PG/Vt0iOWEa/l5t8YslBpNHx4WWw+siFCL2dV9bOc14aQqABtfZ+/eAvdToT/OKOcCjDQN+w/HvAFGpAPA5fn8zDNJSKNqeeP1hADpgSCP04JEDoRgLnwET3m8KYNoO9c1ZPjN66C3zUEnr+cEgEVNBJCT3higCgSws409z3jBETTol/Ca94AVvUx4KjqSkNVvUEe+HIO7fx/GOSxxE5VH/H+sIgQQjE2572fkwyU0Mb6/8APvEHpJaF488n5yY/CV1pUPn63i5TZ+SzSdX+cKE0FBtBTXzcT+pdg1p8cwfvjC2LFwuko9nGO5iJQ4fNxEIjoaTzfzkxIrUITjzjOeRDYnd/xg3fiHFqIN3T/TDd+cb8bTEiC2JYX/bghtBApruj08OSIEBKPaXv4zXukT4GesactoJTTfqpiUiAkE56evcx9OiiqVd+MR8CweT/AI1zgJSqAu/GvPH7xMAd0tLx9OEH7wnDiFWmANSYvoyArSsyqW/Bsd4lYeq0XjNsUQkj6/X6yoL91zj5Is3vz/jBwNGvZnsCjyTx85FKThaeaYnMVCwT1rBCNnaGw/pTFA8ugc5d+5lRkVDBf8ExKqbKNKuzIUdq0BeePCIamEA/lkQnD42/rBBPUOdIcc+Lw68ZrMGwoG3jxZPGEnxrgADfaOr66Vw+NODU7X8ScBIAGKWACNbH/A/sxa6qfZh/n+cOtu7m5Ruh0+n7mvvArEWFqLQnjafGWoCDjtrL5uJToHCvc+fD3knYJXejr8+veAgCjTssf95cIjwc1Gf1yEHRC11fx77cfkjZFU411vFyEaC6QgZ2w+O8La4WvN+XrGFQV+4Q/DPxjaLAAlmjPZydcZzg9ROCGj8fnHZSChVhd92/xgtCjBhIXz4/nHBDyPYD8d/j7FDSVV5Nexv3vD3yquZhb6in9M3TIWJdf+4m3idL1/g/WFFcUKavHGnXHrBqo2E0ts7NHXjN+yctCzfnfWtC94Z1XXSPLxxP5+cXToEew2U6j6TOKsR2Goj3v+9Y3SCnsEfnU54TH0NrwUaOfOuf15EgKjOiQc+L/BlOBJNKg0b1uephvOJoiP8AU9mI7eqCC6fl/GBiUVOZxpfa4WMqAL5F/Z9e8QMHkb5Qfsc0BAB5k/v5wEuFlkNuuv8ApiQ0JRFRS5QV9g1oYifeV51Qjcjb8YYK8Ra9Xyb+pimSjQYac/xvzMVhewgU3rl4fvBkaagFWKa6P95OmorxwW6jHf8AzHWwBvi8tfHH4wu7UFRdqKIkTRI4CHHKDHQc71+fOSbEp8n/AJg6WPs9t/WWkldHJs094bCsNmgh7/u8FgRF42bv4y2C2vJMfTUA29pgkdoQ2s4nmnFwhFVBEhT1u/3eds9ACj8YwkAZvQu2WaCUd9YFhU4IHKmpqCHfnK1i8zfex9d5Uc2S36+zC9aDZr1+nErYGbePZiYNMCUrf+f4xCo0ZQvxiexDSH+85LI25BIvzqdZpDA1NnQfafcxaIGvd8/P+HFEDSt7pr1J34wYVE3PG2p17w/QhtpZxv5c3sRM4CL3/GCTYASbCR80XDRihWyqD43PrGU4h0CfH3gQoctev64W1IduusBQiCG1m/HrAt8wouuJ/GFlCKcKsocIy3L02c18XEF0SiQTX7O83BtQfLvISoI99OvrItVYIqXv443gnCV+R8/OBIY5PO7v1/rBEWAE3sj/AOZs2uINrP8AGCC7Zmnnj8rm7POYobEl17yiUJNBd/ttNZVZULPHIH3vGPciISr++sW7KdAXgvyTOaiCTjXzHLHdAw5/us3vFoOkrj9/OLU1TacJv8ZIut0Tbzr7yuvDbwaJh4DFEsIUr8H4MfyKA7njGUXQFFS/gzalojh9YUpI7TzPnFwhQ4e7mjqoUDeH8T8GRI1KvO7f4wXUqPC6R6Z0n+TIK9Y6aRl6EJ4xAtrItlZJQo/twWHAWOTZfE4dx7zgECticR6s777yQYlN5NjthqenvImf4GVG1SRN6Zj7SgVAEITyDP3vHDQjXSALvrscUhpc363H7vuZMTn35hxzTTw4d0soWsHD+R7wR2XYA20h9n8YxRbh1pdGBAhzeY1TvAAqCU2Nen08PjAMWkEbqb6cEqLYmxTafCv18ZGgCtgyjuc+M0OysJVQX53frHTVmVt2eTc+HNlSAdq8np1lyF00CGxuvZjxKrkbruY4hWsSEvP985D4uAbqL/OIYkwDwOeuz9YE+4VZY1ir2IeRx/vCO4nIT0ox71nkPSJAm5s458Y+JmpsC62fE57eTB0qS7bBs1zT419zIWyxKS/IQeGY1RuQadfIij7352sCXgoFvsKwdBhj8AKkm0u5YH1bbiPqL102+N/Rg0hBvs0CfxnDjCbEWT1OfxkwTI3ITmvwYhNqlG3zPfOXMu0dmn/n6zVhoMtX9Y5oilFckg9dfvK9KdWzpiXvAFGxCcX7Hn6Plg4EBQeHp3HF3LjER44OV2vrAF95Awai6sb+uMaAnY1Iredf+HKHO+KoWEka72mhinO0adSLQko10ccYoqULEsUjrUNdrgFpyjpFfWv1gSaNt0Setd4hLlSewf6XOICq+BL1UXzMDtGN0So+xH4xD8gD0VBP/fWfy9wCr8/5ZwY4Dhfo39ZKl1Nw6Hf5cfg8Beel/es2tBSxOHv55xjZRofXH6fzgnQmgXeneQGUW05DX54wFWv2GNIgI3n+7yxXIPCwfn3icDTZ3ghSJR3eD/X7wipAgvN84txS1yP8c5eCdL4cf37zSOaDzfLPj9ZqoOc7KWfvJIwQqk/lhlIUM7UvHrGDyAHfo/jEABsXZnM+f4mXsBwe1m/HHziGatCpVy8SddZawspobwP98Y4swF1tpv0IxRqRDmu32VlxZoIh8JvxvXrEIJ4OZKXgwtsC66Lx8YERVQQ52feKBk1Rocm/C395wuAoVrhrcnL1kBLZNQK2et284jjezaU83p9/WOoEEOrh62GKBAtGa8P55zkGiOq7XU444eMEKICNnJnD1O+fWQNQQbgdE+v1lKFmmiNfG0+cQoVvak/XcT14wCwEpkNHT6TEpA2ztBGfXn9Y9yuVDo5+cpKNEDZkfKGvHxlymAUL6HOv4YmwLUt0FrfX9MZUDUPng/hxJacvEMSBKJDvdO2NFxnGjKRW63j4oOe0p5ex+MQLEKaUfn1gvdEFKm0b0748H09Ild0o8L5k/eJYggnQePU/jAIvnEAIOJPL7yaTQNpZKfBuecrA0BBgPxA/jKI4dzTkJO+ssKnYTW3B64M3PQKvG7/JjBEAOldpfvAT7uSghTu9ee8FsKFcHQnjjEHQC1ohOPM+zGpAeyAXd3qmLgVChCAhAiPWPAIoEciv4MLWJKIvBPW8EBdA2R4Jx1joKx+n+ip9YgCHc3Qhfx+94gQ5B57P+MRlBL5Nl49ZObd43Uu3jXUxjOJbd8ien8ZqREoIg/I+DgwCjfbZoKD8pzjnBFDSf9OQkDr5P6ZBZe3OhL+gw1LUeOkuUaEqF23AVCSK9n/NYUllThpPXGUCuooE8b+MkMlJoTL9R1jqheGbWkwZIO+xeH95qZ2iaem/7zjnqSqjYn/MKDVddGoYwsow7f33ig0rwCT+ckrKhb3z/GIZpYvGuf75wre/Ajxp7dnnBBUWQHTv06x6ELRyQgr20f14zfWACW7fwezNsWwQiXvw762CIxxvQR7HFXS779/lQGlsJmteKfeEEgj6ywZQAWsgqhFN7kfCw/J9ZrlBuNfXjHnSJRaDvBUv1Xy4T4cREgqMWH0Nhz4ON0xQYQnYkPD6y+NqgbBUP84AqQ7vd9/BiFWS8aGiTrhjWO9B1CQ18YCIGtWyOzrQ8de8S6jX2lj+Ofj3g47TbajJ8c57KIawn/HIMCRlEeP8Z//Z"/>
107+
108+ Example content:<br>
109+ The names "<b>John Doe</b>" for males, "<b>Jane Doe</b>" or "<b>Jane Roe</b>" for females, or "<b>Jonnie Doe</b>" and "<b>Janie Doe</b>" for children, or just "<b>Doe</b>" non-gender-specifically are used as placeholder names for a party whose true identity is unknown or must be withheld in a legal action, case, or discussion. The names are also used to refer to acorpse or hospital patient whose identity is unknown. This practice is widely used in the United States and Canada, but is rarely used in other English-speaking countries including the United Kingdom itself, from where the use of "John Doe" in a legal context originates. The names Joe Bloggs or John Smith are used in the UK instead, as well as in Australia and New Zealand.</p>
110+
111+ <p>John Doe is sometimes used to refer to a typical male in other contexts as well, in a similar manner to John Q. Public, known in Great Britain as Joe Public, John Smith or Joe Bloggs. For example, the first name listed on a form is often John Doe, along with a fictional address or other fictional information to provide an example of how to fill in the form. The name is also used frequently in popular culture, for example in the Frank Capra film <i>Meet John Doe</i>. John Doe was also the name of a 2002 American television series.</p>
112+
113+ <p>Similarly, a child or baby whose identity is unknown may be referred to as <b>Baby Doe</b>. A notorious murder case in Kansas City, Missouri, referred to the baby victim as <b>Precious Doe</b>. Other unidentified female murder victims are Cali Doe and Princess Doe. Additional persons may be called James Doe, Judy Doe, etc. However, to avoid possible confusion, if two anonymous or unknown parties are cited in a specific case or action, the surnames Doe and Roe may be used simultaneously; for example, "John Doe v. Jane Roe". If several anonymous parties are referenced, they may simply be labelled John Doe #1, John Doe #2, etc. (the U.S. Operation Delego cited 21 (numbered) "John Doe"s) or labelled with other variants of Doe / Roe / Poe / etc. Other early alternatives such as <b>John Stiles</b> and <b>Richard Miles</b> are now rarely used, and <b>Mary Major</b> has been used in some American federal cases.</p>
114+
115+ <p><img style="height:1.6881cm;width:1.6881cm;" align="left" src="data:image/*;base64,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"/>
117+
118+ File created by <a href="https://www.online-convert.com" target="_blank">https://www.online-convert.com</a><br>
119+ More example files: <a href="https://www.online-convert.com/file-type" target="_blank">https://www.online-convert.com/file-type</a><br>
120+ Text of "Example content": <a href="https://en.wikipedia.org/wiki/John_Doe" target="_blank">Wikipedia</a><br>
121+ License: <a href="https://creativecommons.org/licenses/by-sa/3.0/" target="_blank">Attribution-ShareAlike 3.0 Unported</a>
122+
123+ <img style="height:0.6949cm;width:1.9741cm;" align="right" src="data:image/*;base64,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"/></p>
124+
125+ <p>Feel free to use and share the file according to license above.</p>
126+
127+ </body>
128+ </html>
129+ headers:
130+ Content-Type:
131+ - text/html; charset=UTF-8
132+ status: 200 OK
133+ code: 200
134+ duration: 386.8575ms
135+- id: 2
5136 request:
6137 proto: HTTP/1.1
7138 proto_major: 1
@@ -25,519 +156,486 @@ interactions:
25156 content_length: -1
26157 uncompressed: true
27158 body: |+
28− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
159+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
29160
30− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
161+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
31162
32− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
163+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
33164
34− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
165+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
35166
36− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
167+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" produce"},"finish_reason":null}]}
37168
38− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
169+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
39170
40− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
171+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
41172
42− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
173+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
43174
44− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
175+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
45176
46− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
177+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
47178
48− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
179+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
49180
50− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
181+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
51182
52− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" should"},"finish_reason":null}]}
183+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
53184
54− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
185+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
55186
56− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
187+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Should"},"finish_reason":null}]}
57188
58− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
189+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summarize"},"finish_reason":null}]}
59190
60− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
191+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
61192
62− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
193+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user's"},"finish_reason":null}]}
63194
64− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
195+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" request"},"finish_reason":null}]}
65196
66− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
197+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
67198
68− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Not"},"finish_reason":null}]}
199+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fetch"},"finish_reason":null}]}
69200
70− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" more"},"finish_reason":null}]}
201+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
71202
72− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" than"},"finish_reason":null}]}
203+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
73204
74− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
205+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
75206
76− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
207+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
77208
78− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
209+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" check"},"finish_reason":null}]}
79210
80− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
211+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
81212
82− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
213+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" word"},"finish_reason":null}]}
83214
84− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
215+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
85216
86− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
217+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"John"},"finish_reason":null}]}
87218
88− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
219+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
89220
90− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
221+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'."},"finish_reason":null}]}
91222
92− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Check"},"finish_reason":null}]}
223+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
93224
94− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" if"},"finish_reason":null}]}
225+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
95226
96− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
227+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
97228
98− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
229+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
99230
100− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" contains"},"finish_reason":null}]}
231+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
101232
102− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
233+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Something"},"finish_reason":null}]}
103234
104− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"John"},"finish_reason":null}]}
235+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
105236
106− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
237+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
107238
108− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
239+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Check"},"finish_reason":null}]}
109240
110− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
241+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" if"},"finish_reason":null}]}
111242
112− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That"},"finish_reason":null}]}
243+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
113244
114− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fits"},"finish_reason":null}]}
245+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
115246
116− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
247+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" contains"},"finish_reason":null}]}
117248
118− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Ensure"},"finish_reason":null}]}
249+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
119250
120− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
251+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"John"},"finish_reason":null}]}
121252
122− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
253+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
123254
124− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
255+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
125256
126− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
257+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
127258
128− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
259+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
129260
130− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
261+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
131262
132− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
263+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
133264
134− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
265+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Check"},"finish_reason":null}]}
135266
136− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Check"},"finish_reason":null}]}
267+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" if"},"finish_reason":null}]}
137268
138− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" if"},"finish_reason":null}]}
269+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
139270
140− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
271+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
141272
142− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
273+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" contains"},"finish_reason":null}]}
143274
144− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" contains"},"finish_reason":null}]}
275+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" John"},"finish_reason":null}]}
145276
146− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
277+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
147278
148− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"John"},"finish_reason":null}]}
279+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
149280
150− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
281+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
151282
152− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'\""},"finish_reason":null}]}
283+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
153284
154− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
285+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
155286
156− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
287+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
157288
158− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
289+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Check"},"finish_reason":null}]}
159290
160− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
291+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
161292
162− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
293+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
163294
164− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
295+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
165296
166− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Check"},"finish_reason":null}]}
297+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
167298
168− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
299+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
169300
170− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
301+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
171302
172− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
303+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
173304
174− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
305+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
175306
176− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
307+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
177308
178− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
309+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
179310
180− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
311+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" if"},"finish_reason":null}]}
181312
182− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
313+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
183314
184− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
315+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
185316
186− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"if"},"finish_reason":null}]}
317+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
187318
188− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
319+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
189320
190− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
321+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
191322
192− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
323+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
193324
194− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
325+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
195326
196− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
327+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
197328
198− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
329+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
199330
200− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
331+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
201332
202− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
333+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
203334
204− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
335+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
205336
206− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
337+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
207338
208− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"example"},"finish_reason":null}]}
339+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"?)"},"finish_reason":null}]}
209340
210− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
341+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Actually"},"finish_reason":null}]}
211342
212− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
343+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
213344
214− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
345+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"example"},"finish_reason":null}]}
215346
216− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
347+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
217348
218− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
349+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
219350
220− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
351+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" is"},"finish_reason":null}]}
221352
222− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
353+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
223354
224− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
355+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
225356
226− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
357+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" inc"},"finish_reason":null}]}
227358
228− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
359+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" dot"},"finish_reason":null}]}
229360
230− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
361+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
231362
232− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"contains"},"finish_reason":null}]}
363+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
233364
234− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
365+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
235366
236− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
367+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
237368
238− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
369+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
239370
240− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
371+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
241372
242− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
373+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
243374
244− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
375+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")-"},"finish_reason":null}]}
245376
246− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
377+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"x"},"finish_reason":null}]}
247378
248− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
379+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
249380
250− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
381+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
251382
252− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \"'"},"finish_reason":null}]}
383+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")-"},"finish_reason":null}]}
253384
254− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"John"},"finish_reason":null}]}
385+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
255386
256− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
387+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
257388
258− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
389+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
259390
260− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
391+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")-"},"finish_reason":null}]}
261392
262− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
393+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"m"},"finish_reason":null}]}
263394
264− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
395+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
265396
266− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
397+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
267398
268− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
399+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")-"},"finish_reason":null}]}
269400
270− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
401+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"p"},"finish_reason":null}]}
271402
272− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
403+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
273404
274− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
405+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
275406
276− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
407+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")-"},"finish_reason":null}]}
277408
278− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
409+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
279410
280− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Doe"},"finish_reason":null}]}
411+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
281412
282− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'\""},"finish_reason":null}]}
413+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
283414
284− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
415+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")-"},"finish_reason":null}]}
285416
286− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
417+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
287418
288− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
419+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
289420
290− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
421+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
291422
292− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Total"},"finish_reason":null}]}
423+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")-("},"finish_reason":null}]}
293424
294− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
425+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
295426
296− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
427+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
297428
298− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
429+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
299430
300− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
431+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
301432
302− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
433+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
303434
304− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
435+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
305436
306− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Return"},"finish_reason":null}]}
437+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
307438
308− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" just"},"finish_reason":null}]}
439+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
309440
310− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
441+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
311442
312− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
443+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
313444
314− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
445+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
315446
316− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Check"},"finish_reason":null}]}
447+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
317448
318− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" if"},"finish_reason":null}]}
449+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
319450
320− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" example"},"finish_reason":null}]}
451+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
321452
322− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".html"},"finish_reason":null}]}
453+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" m"},"finish_reason":null}]}
323454
324− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" contains"},"finish_reason":null}]}
455+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
325456
326− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" John"},"finish_reason":null}]}
457+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
327458
328− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Doe"},"finish_reason":null}]}
459+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
329460
330− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
461+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
331462
332− data: {"id":"chatcmpl-3b28ebbfe079f5813ad4baba","object":"chat.completion.chunk","created":1780069685,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":232,"completion_tokens":160,"total_tokens":392,"completion_tokens_details":{"reasoning_tokens":144},"cost":{"usd":0.0002272,"hypercredits":0.004543999999999999},"remaining":{"hypercredits":0}}}
463+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
333464
334− data: [DONE]
465+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
335466
336− headers:
337− Content-Type:
338− - text/event-stream
339− status: 200 OK
340− code: 200
341− duration: 564.254458ms
342−- id: 1
343− request:
344− proto: HTTP/1.1
345− proto_major: 1
346− proto_minor: 1
347− content_length: 34028
348− host: ""
349− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/fetch_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"fetch the content from https://example-files.online-convert.com/website/html/example.html and tell me if it contains the word 'John Doe'\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
350− headers:
351− Accept:
352− - application/json
353− Content-Type:
354− - application/json
355− User-Agent:
356− - Charm-Crush/devel (https://charm.land/crush)
357− url: https://hyper.charm.land/v1/chat/completions
358− method: POST
359− response:
360− proto: HTTP/2.0
361− proto_major: 2
362− proto_minor: 0
363− content_length: -1
364− uncompressed: true
365− body: |+
366− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
467+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
367468
368− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
469+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
369470
370− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
471+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
371472
372− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
473+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
373474
374− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" me"},"finish_reason":null}]}
475+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
375476
376− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
477+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
377478
378− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" fetch"},"finish_reason":null}]}
479+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" total"},"finish_reason":null}]}
379480
380− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
481+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
381482
382− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
483+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
383484
384− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
485+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"+"},"finish_reason":null}]}
385486
386− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
487+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
387488
388− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
489+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
389490
390− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" check"},"finish_reason":null}]}
491+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
391492
392− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" if"},"finish_reason":null}]}
493+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
393494
394− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" it"},"finish_reason":null}]}
495+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
395496
396− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" contains"},"finish_reason":null}]}
497+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
397498
398− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
499+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
399500
400− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" word"},"finish_reason":null}]}
501+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
401502
402− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
503+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" contains"},"finish_reason":null}]}
403504
404− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"John"},"finish_reason":null}]}
505+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
405506
406− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
507+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
407508
408− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"'."},"finish_reason":null}]}
509+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
409510
410− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_2TxDxIRLeDX97ZGITAVav57g","type":"function","index":0,"function":{"name":"fetch","arguments":""}}]},"finish_reason":null}]}
511+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
411512
412− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
513+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
413514
414− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
515+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
415516
416− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"format\": "}}]},"finish_reason":null}]}
517+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
417518
418− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"text"}}]},"finish_reason":null}]}
519+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
419520
420− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\", \"url\": "}}]},"finish_reason":null}]}
521+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
421522
422− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"https"}}]},"finish_reason":null}]}
523+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" John"},"finish_reason":null}]}
423524
424− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"://"}}]},"finish_reason":null}]}
525+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
425526
426− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"example"}}]},"finish_reason":null}]}
527+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
427528
428− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-files"}}]},"finish_reason":null}]}
529+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
429530
430− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".online"}}]},"finish_reason":null}]}
531+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
431532
432− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-"}}]},"finish_reason":null}]}
533+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
433534
434− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"convert"}}]},"finish_reason":null}]}
535+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
435536
436− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".com"}}]},"finish_reason":null}]}
537+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
437538
438− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/"}}]},"finish_reason":null}]}
539+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
439540
440− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"website"}}]},"finish_reason":null}]}
541+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
441542
442− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/html"}}]},"finish_reason":null}]}
543+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
443544
444− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/example"}}]},"finish_reason":null}]}
545+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
445546
446− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".html"}}]},"finish_reason":null}]}
547+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
447548
448− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
549+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
449550
450− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
551+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
451552
452− data: {"id":"chatcmpl-571ae68110255a47c63f8340","object":"chat.completion.chunk","created":1780069685,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":725,"completion_tokens":50,"total_tokens":7879,"prompt_tokens_details":{"cached_tokens":7104},"completion_tokens_details":{"reasoning_tokens":23},"cost":{"usd":0.00125635,"hypercredits":0.025127},"remaining":{"hypercredits":0}}}
553+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
453554
454− data: [DONE]
555+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
455556
456− headers:
457− Content-Type:
458− - text/event-stream
459− status: 200 OK
460− code: 200
461− duration: 550.064ms
462−- id: 2
463− request:
464− proto: HTTP/1.1
465− proto_major: 1
466− proto_minor: 1
467− content_length: 0
468− host: example-files.online-convert.com
469− headers:
470− User-Agent:
471− - crush/1.0
472− url: https://example-files.online-convert.com/website/html/example.html
473− method: GET
474− response:
475− proto: HTTP/2.0
476− proto_major: 2
477− proto_minor: 0
478− content_length: -1
479− uncompressed: true
480− body: |-
481− <!DOCTYPE html>
557+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
482558
483− <html>
484− <body>
559+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
485560
486− <h1>HTML test file</h1>
561+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
487562
488− <p>Purpose: Provide example of this file type<br>
489− Document file type: HTML<br>
490− Version: 1.0<br>
491− Remark:</p>
563+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
492564
493− <p><img align="right" style="height:5.0551cm;width:7.62cm;" src="data:image/*;base64,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
494− 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
495− +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
496− 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
497− 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
498− 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
499− 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
500− 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
501− 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
502− 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
503− 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
504− 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"/>
565+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
505566
506− Example content:<br>
507− The names "<b>John Doe</b>" for males, "<b>Jane Doe</b>" or "<b>Jane Roe</b>" for females, or "<b>Jonnie Doe</b>" and "<b>Janie Doe</b>" for children, or just "<b>Doe</b>" non-gender-specifically are used as placeholder names for a party whose true identity is unknown or must be withheld in a legal action, case, or discussion. The names are also used to refer to acorpse or hospital patient whose identity is unknown. This practice is widely used in the United States and Canada, but is rarely used in other English-speaking countries including the United Kingdom itself, from where the use of "John Doe" in a legal context originates. The names Joe Bloggs or John Smith are used in the UK instead, as well as in Australia and New Zealand.</p>
567+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
508568
509− <p>John Doe is sometimes used to refer to a typical male in other contexts as well, in a similar manner to John Q. Public, known in Great Britain as Joe Public, John Smith or Joe Bloggs. For example, the first name listed on a form is often John Doe, along with a fictional address or other fictional information to provide an example of how to fill in the form. The name is also used frequently in popular culture, for example in the Frank Capra film <i>Meet John Doe</i>. John Doe was also the name of a 2002 American television series.</p>
569+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
510570
511− <p>Similarly, a child or baby whose identity is unknown may be referred to as <b>Baby Doe</b>. A notorious murder case in Kansas City, Missouri, referred to the baby victim as <b>Precious Doe</b>. Other unidentified female murder victims are Cali Doe and Princess Doe. Additional persons may be called James Doe, Judy Doe, etc. However, to avoid possible confusion, if two anonymous or unknown parties are cited in a specific case or action, the surnames Doe and Roe may be used simultaneously; for example, "John Doe v. Jane Roe". If several anonymous parties are referenced, they may simply be labelled John Doe #1, John Doe #2, etc. (the U.S. Operation Delego cited 21 (numbered) "John Doe"s) or labelled with other variants of Doe / Roe / Poe / etc. Other early alternatives such as <b>John Stiles</b> and <b>Richard Miles</b> are now rarely used, and <b>Mary Major</b> has been used in some American federal cases.</p>
571+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
512572
513− <p><img style="height:1.6881cm;width:1.6881cm;" align="left" src="data:image/*;base64,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
514− B1/bMVO7nYqfTdlIhfMUvxUd51lhy67Tyq1UqJI9Jew1tnpUt0B6+/rwB89+fbtcyp1Q+gRk7z/Gy9tfzMHyrrfpKG8eqVDetsaC8o5Juz6zqvKuz6GyvKtkeXn3fbDzOauVdwpGynvzd+wv64P1QRgMBZhAGAwFmEAYDAWYQBgMBZhAGAwFmEAYDAWYQBgMBZhAGAwFmEAYDAWYQBgMBZhAGAwFmEAYDAWYQBgMBf4/fQGdtWECNsgAAAAASUVORK5CYII="/>
573+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
515574
516− File created by <a href="https://www.online-convert.com" target="_blank">https://www.online-convert.com</a><br>
517− More example files: <a href="https://www.online-convert.com/file-type" target="_blank">https://www.online-convert.com/file-type</a><br>
518− Text of "Example content": <a href="https://en.wikipedia.org/wiki/John_Doe" target="_blank">Wikipedia</a><br>
519− License: <a href="https://creativecommons.org/licenses/by-sa/3.0/" target="_blank">Attribution-ShareAlike 3.0 Unported</a>
575+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
520576
521− <img style="height:0.6949cm;width:1.9741cm;" align="right" src="data:image/*;base64,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"/></p>
577+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
522578
523− <p>Feel free to use and share the file according to license above.</p>
579+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
580+
581+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
582+
583+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Thus"},"finish_reason":null}]}
584+
585+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" output"},"finish_reason":null}]}
586+
587+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" exactly"},"finish_reason":null}]}
588+
589+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
590+
591+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Check"},"finish_reason":null}]}
592+
593+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" if"},"finish_reason":null}]}
594+
595+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
596+
597+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
598+
599+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" contains"},"finish_reason":null}]}
600+
601+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" John"},"finish_reason":null}]}
602+
603+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
604+
605+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Check"},"finish_reason":null}]}
606+
607+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" if"},"finish_reason":null}]}
608+
609+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" example"},"finish_reason":null}]}
610+
611+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".html"},"finish_reason":null}]}
612+
613+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" contains"},"finish_reason":null}]}
614+
615+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" John"},"finish_reason":null}]}
616+
617+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Doe"},"finish_reason":null}]}
618+
619+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
620+
621+ data: {"id":"chatcmpl-54c8ba0000aa6fccf7e10e84","object":"chat.completion.chunk","created":1781202017,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":219,"completion_tokens":239,"total_tokens":458,"completion_tokens_details":{"reasoning_tokens":175},"cost":{"usd":0.000308472,"hypercredits":0.00616944},"remaining":{"hypercredits":0}}}
622+
623+ data: [DONE]
524624
525− </body>
526− </html>
527625 headers:
528626 Content-Type:
529− - text/html; charset=UTF-8
627+ - text/event-stream
530628 status: 200 OK
531629 code: 200
532− duration: 146.217209ms
630+ duration: 793.777083ms
533631- id: 3
534632 request:
535633 proto: HTTP/1.1
536634 proto_major: 1
537635 proto_minor: 1
538− content_length: 34560
636+ content_length: 34424
539637 host: ""
540− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/fetch_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"fetch the content from https://example-files.online-convert.com/website/html/example.html and tell me if it contains the word 'John Doe'\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_2TxDxIRLeDX97ZGITAVav57g\",\"function\":{\"arguments\":\"{\\\"format\\\": \\\"text\\\", \\\"url\\\": \\\"https://example-files.online-convert.com/website/html/example.html\\\"}\",\"name\":\"fetch\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"The user wants me to fetch content from a URL and check if it contains the word 'John Doe'.\"},{\"content\":\"HTML test file Purpose: Provide example of this file type Document file type: HTML Version: 1.0 Remark:\",\"tool_call_id\":\"call_2TxDxIRLeDX97ZGITAVav57g\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
638+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/fetch_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"fetch the content from https://example-files.online-convert.com/website/html/example.html and tell me if it contains the word 'John Doe'\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_99f940f1ba82d698\",\"function\":{\"arguments\":\"{\\\"format\\\": \\\"text\\\", \\\"url\\\": \\\"https://example-files.online-convert.com/website/html/example.html\\\"}\",\"name\":\"fetch\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"HTML test file Purpose: Provide example of this file type Document file type: HTML Version: 1.0 Remark:\",\"tool_call_id\":\"call_99f940f1ba82d698\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
541639 headers:
542640 Accept:
543641 - application/json
@@ -554,39 +652,21 @@ interactions:
554652 content_length: -1
555653 uncompressed: true
556654 body: |+
557− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
558−
559− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"No"},"finish_reason":null}]}
560−
561− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":","},"finish_reason":null}]}
562−
563− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" the"},"finish_reason":null}]}
564−
565− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" fetched"},"finish_reason":null}]}
566−
567− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" content"},"finish_reason":null}]}
568−
569− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" does"},"finish_reason":null}]}
570−
571− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" not"},"finish_reason":null}]}
572−
573− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" contain"},"finish_reason":null}]}
574−
575− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" the"},"finish_reason":null}]}
655+ data: {"id":"chatcmpl-0227ba8b6960c11340a0d638","object":"chat.completion.chunk","created":1781202019,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
576656
577− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" word"},"finish_reason":null}]}
657+ data: {"id":"chatcmpl-0227ba8b6960c11340a0d638","object":"chat.completion.chunk","created":1781202019,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"No"},"finish_reason":null}]}
578658
579− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" \""},"finish_reason":null}]}
659+ data: {"id":"chatcmpl-0227ba8b6960c11340a0d638","object":"chat.completion.chunk","created":1781202019,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":", the fetched"},"finish_reason":null}]}
580660
581− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"John"},"finish_reason":null}]}
661+ data: {"id":"chatcmpl-0227ba8b6960c11340a0d638","object":"chat.completion.chunk","created":1781202019,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" content does not contain"},"finish_reason":null}]}
582662
583− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" Doe"},"finish_reason":null}]}
663+ data: {"id":"chatcmpl-0227ba8b6960c11340a0d638","object":"chat.completion.chunk","created":1781202019,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" the word '"},"finish_reason":null}]}
584664
585− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"\"."},"finish_reason":null}]}
665+ data: {"id":"chatcmpl-0227ba8b6960c11340a0d638","object":"chat.completion.chunk","created":1781202019,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"John Doe'."},"finish_reason":null}]}
586666
587− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
667+ data: {"id":"chatcmpl-0227ba8b6960c11340a0d638","object":"chat.completion.chunk","created":1781202019,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
588668
589− data: {"id":"chatcmpl-6818662871afdceed8cba80a","object":"chat.completion.chunk","created":1780069689,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":78,"completion_tokens":16,"total_tokens":7902,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.00016938,"hypercredits":0.0033876},"remaining":{"hypercredits":0}}}
669+ data: {"id":"chatcmpl-0227ba8b6960c11340a0d638","object":"chat.completion.chunk","created":1781202019,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":753,"completion_tokens":14,"total_tokens":7898,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0011158000000000001,"hypercredits":0.022316000000000003},"remaining":{"hypercredits":0}}}
590670
591671 data: [DONE]
592672
@@ -595,4 +675,4 @@ interactions:
595675 - text/event-stream
596676 status: 200 OK
597677 code: 200
598− duration: 2.6751105s
678+ duration: 724.732167ms
internal/agent/testdata/TestCoderAgent/glm-5.1/glob_tool.yaml+269−509
@@ -6,9 +6,9 @@ interactions:
66 proto: HTTP/1.1
77 proto_major: 1
88 proto_minor: 1
9− content_length: 33946
9+ content_length: 33940
1010 host: ""
11− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/glob_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use glob to find all .go files in the current directory\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/glob_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use glob to find all .go files in the current directory\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1212 headers:
1313 Accept:
1414 - application/json
@@ -25,65 +25,75 @@ interactions:
2525 content_length: -1
2626 uncompressed: true
2727 body: |+
28− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
28+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
2929
30− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
30+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_301ed6932a567c63","type":"function","index":0,"function":{"name":"glob","arguments":""}}]},"finish_reason":null}]}
3131
32− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
32+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\"path\": "}}]},"finish_reason":null}]}
3333
34− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
34+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/tmp/crush"}}]},"finish_reason":null}]}
3535
36− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" me"},"finish_reason":null}]}
36+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test/TestCoderAgent"}}]},"finish_reason":null}]}
3737
38− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
38+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/glm-5"}}]},"finish_reason":null}]}
3939
40− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" find"},"finish_reason":null}]}
40+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".1/g"}}]},"finish_reason":null}]}
4141
42− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
42+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lob_tool\", "}}]},"finish_reason":null}]}
4343
44− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
44+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"pattern\": \"*."}}]},"finish_reason":null}]}
4545
46− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
46+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"go\"}"}}]},"finish_reason":null}]}
4747
48− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
48+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
4949
50− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
50+ data: {"id":"chatcmpl-cddb336b63cabe5f4451e0f2","object":"chat.completion.chunk","created":1781202020,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":680,"completion_tokens":31,"total_tokens":7842,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0010884,"hypercredits":0.021768},"remaining":{"hypercredits":0}}}
5151
52− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
53−
54− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
55−
56− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
57−
58− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" using"},"finish_reason":null}]}
59−
60− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
61−
62− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
63−
64− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" tool"},"finish_reason":null}]}
65−
66− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
67−
68− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_fl8kSELeCV44nzdl56WTZKve","type":"function","index":0,"function":{"name":"glob","arguments":""}}]},"finish_reason":null}]}
69−
70− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
71−
72− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
52+ data: [DONE]
7353
74− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"pattern\": "}}]},"finish_reason":null}]}
54+ headers:
55+ Content-Type:
56+ - text/event-stream
57+ status: 200 OK
58+ code: 200
59+ duration: 636.133458ms
60+- id: 1
61+ request:
62+ proto: HTTP/1.1
63+ proto_major: 1
64+ proto_minor: 1
65+ content_length: 34278
66+ host: ""
67+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/glob_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use glob to find all .go files in the current directory\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_301ed6932a567c63\",\"function\":{\"arguments\":\"{\\\"path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/glob_tool\\\", \\\"pattern\\\": \\\"*.go\\\"}\",\"name\":\"glob\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"/tmp/crush-test/TestCoderAgent/glm-5.1/glob_tool/main.go\",\"tool_call_id\":\"call_301ed6932a567c63\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
68+ headers:
69+ Accept:
70+ - application/json
71+ Content-Type:
72+ - application/json
73+ User-Agent:
74+ - Charm-Crush/devel (https://charm.land/crush)
75+ url: https://hyper.charm.land/v1/chat/completions
76+ method: POST
77+ response:
78+ proto: HTTP/2.0
79+ proto_major: 2
80+ proto_minor: 0
81+ content_length: -1
82+ uncompressed: true
83+ body: |+
84+ data: {"id":"chatcmpl-ec101bf0b5ce324069e475ce","object":"chat.completion.chunk","created":1781202021,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
7585
76− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"**"}}]},"finish_reason":null}]}
86+ data: {"id":"chatcmpl-ec101bf0b5ce324069e475ce","object":"chat.completion.chunk","created":1781202021,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Found"},"finish_reason":null}]}
7787
78− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/*."}}]},"finish_reason":null}]}
88+ data: {"id":"chatcmpl-ec101bf0b5ce324069e475ce","object":"chat.completion.chunk","created":1781202021,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" 1 `."},"finish_reason":null}]}
7989
80− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"go"}}]},"finish_reason":null}]}
90+ data: {"id":"chatcmpl-ec101bf0b5ce324069e475ce","object":"chat.completion.chunk","created":1781202021,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"go` file:"},"finish_reason":null}]}
8191
82− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
92+ data: {"id":"chatcmpl-ec101bf0b5ce324069e475ce","object":"chat.completion.chunk","created":1781202021,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `main.go`"},"finish_reason":null}]}
8393
84− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
94+ data: {"id":"chatcmpl-ec101bf0b5ce324069e475ce","object":"chat.completion.chunk","created":1781202021,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
8595
86− data: {"id":"chatcmpl-a80e274f5ef31a4f7f4a0757","object":"chat.completion.chunk","created":1780069690,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":708,"completion_tokens":32,"total_tokens":7844,"prompt_tokens_details":{"cached_tokens":7104},"completion_tokens_details":{"reasoning_tokens":22},"cost":{"usd":0.0011542800000000001,"hypercredits":0.0230856},"remaining":{"hypercredits":0}}}
96+ data: {"id":"chatcmpl-ec101bf0b5ce324069e475ce","object":"chat.completion.chunk","created":1781202021,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":7815,"completion_tokens":12,"total_tokens":7877,"prompt_tokens_details":{"cached_tokens":50},"cost":{"usd":0.0109938,"hypercredits":0.219876},"remaining":{"hypercredits":0}}}
8797
8898 data: [DONE]
8999
@@ -92,8 +102,8 @@ interactions:
92102 - text/event-stream
93103 status: 200 OK
94104 code: 200
95− duration: 625.636708ms
96−- id: 1
105+ duration: 1.057463834s
106+- id: 2
97107 request:
98108 proto: HTTP/1.1
99109 proto_major: 1
@@ -117,683 +127,433 @@ interactions:
117127 content_length: -1
118128 uncompressed: true
119129 body: |+
120− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
121−
122− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
123−
124− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
125−
126− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" says"},"finish_reason":null}]}
127−
128− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
129−
130− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
131−
132− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
133−
134− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
135−
136− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
137−
138− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
139−
140− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
141−
142− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
143−
144− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
145−
146− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
147−
148− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":\n\n"},"finish_reason":null}]}
149−
150− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
151−
152− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
153−
154− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
155−
156− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" find"},"finish_reason":null}]}
157−
158− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
159−
160− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
161−
162− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
163−
164− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
165−
166− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
167−
168− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
169−
170− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
171−
172− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
173−
174− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
175−
176− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
177−
178− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
179−
180− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
181−
182− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
183−
184− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
185−
186− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
187−
188− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
189−
190− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
191−
192− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
193−
194− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Under"},"finish_reason":null}]}
195−
196− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
197−
198− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
199−
200− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
201−
202− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
203−
204− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
205−
206− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
207−
208− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
209−
210− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
211−
212− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Something"},"finish_reason":null}]}
213−
214− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
215−
216− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
217−
218− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Using"},"finish_reason":null}]}
130+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
219131
220− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
132+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
221133
222− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
134+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" asks"},"finish_reason":null}]}
223135
224− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" locate"},"finish_reason":null}]}
136+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
225137
226− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
138+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
227139
228− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
140+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
229141
230− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
142+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
231143
232− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
144+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
233145
234− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
146+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
235147
236− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
148+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
237149
238− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
150+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
239151
240− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
152+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
241153
242− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
154+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
243155
244− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
156+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
245157
246− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
158+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
247159
248− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
160+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
249161
250− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"?"},"finish_reason":null}]}
162+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
251163
252− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
164+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" find"},"finish_reason":null}]}
253165
254− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
166+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
255167
256− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
168+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
257169
258− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Using"},"finish_reason":null}]}
170+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
259171
260− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
172+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
261173
262− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
174+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
263175
264− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" locate"},"finish_reason":null}]}
176+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
265177
266− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
178+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
267179
268− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
180+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
269181
270− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
182+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
271183
272− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
184+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
273185
274− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
186+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" we"},"finish_reason":null}]}
275187
276− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
188+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
277189
278− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
190+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
279191
280− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
192+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
281193
282− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
194+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
283195
284− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
196+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
285197
286− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
198+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
287199
288− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
200+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
289201
290− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
202+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
291203
292− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Using"},"finish_reason":null}]}
204+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
293205
294− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
206+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
295207
296− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
208+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
297209
298− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
210+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
299211
300− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
212+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
301213
302− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
214+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
303215
304− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
216+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
305217
306− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
218+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
307219
308− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
220+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Should"},"finish_reason":null}]}
309221
310− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
222+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
311223
312− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
224+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" something"},"finish_reason":null}]}
313225
314− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
226+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
315227
316− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
228+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
317229
318− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
230+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Find"},"finish_reason":null}]}
319231
320− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
232+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
321233
322− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
234+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
323235
324− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
236+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
325237
326− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
238+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" using"},"finish_reason":null}]}
327239
328− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
240+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
329241
330− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
242+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
331243
332− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
244+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
333245
334− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
246+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
335247
336− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
248+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
337249
338− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
250+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
339251
340− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
252+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
341253
342− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
254+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
343255
344− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
256+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
345257
346− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
258+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Find"},"finish_reason":null}]}
347259
348− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
260+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
349261
350− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
262+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
351263
352− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
264+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
353265
354− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" locate"},"finish_reason":null}]}
266+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" using"},"finish_reason":null}]}
355267
356− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
268+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
357269
358− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
270+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
359271
360− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
272+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
361273
362− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
274+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
363275
364− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
276+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
365277
366− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
278+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
367279
368− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
280+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"?"},"finish_reason":null}]}
369281
370− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
282+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
371283
372− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
284+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
373285
374− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
286+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
375287
376− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
288+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
377289
378− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
290+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Find"},"finish_reason":null}]}
379291
380− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
292+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
381293
382− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
294+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
383295
384− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
296+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
385297
386− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
298+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
387299
388− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
300+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
389301
390− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
302+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
391303
392− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
304+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
393305
394− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
306+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
395307
396− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
308+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
397309
398− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
310+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
399311
400− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
312+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
401313
402− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
314+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
403315
404− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
316+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"all"},"finish_reason":null}]}
405317
406− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
318+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
407319
408− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
320+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
409321
410− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
322+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
411323
412− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
324+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
413325
414− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
326+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
415327
416− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
328+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
417329
418− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
330+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
419331
420− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
332+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
421333
422− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
334+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
423335
424− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
336+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
425337
426− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
338+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
427339
428− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
340+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Go"},"finish_reason":null}]}
429341
430− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
342+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
431343
432− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
344+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
433345
434− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
346+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
435347
436− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
348+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
437349
438− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
350+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
439351
440− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
352+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
441353
442− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
354+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
443355
444− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
356+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
445357
446− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
358+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
447359
448− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
360+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
449361
450− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
362+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
451363
452− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
364+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"files"},"finish_reason":null}]}
453365
454− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
366+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
455367
456− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
368+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
457369
458− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
370+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
459371
460− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
372+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
461373
462− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
374+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
463375
464− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"51"},"finish_reason":null}]}
376+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
465377
466− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
378+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
467379
468− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
380+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
469381
470− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
382+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
471383
472− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"51"},"finish_reason":null}]}
384+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
473385
474− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
386+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
475387
476− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
388+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"using"},"finish_reason":null}]}
477389
478− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" too"},"finish_reason":null}]}
390+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
479391
480− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" many"},"finish_reason":null}]}
392+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
481393
482− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
394+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
483395
484− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Need"},"finish_reason":null}]}
396+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
485397
486− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
398+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
487399
488− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
400+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
489401
490− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
402+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
491403
492− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Could"},"finish_reason":null}]}
404+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
493405
494− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" shorten"},"finish_reason":null}]}
406+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
495407
496− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
408+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
497409
498− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
410+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
499411
500− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Glob"},"finish_reason":null}]}
412+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"glob"},"finish_reason":null}]}
501413
502− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
414+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
503415
504− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" find"},"finish_reason":null}]}
416+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
505417
506− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
418+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
507419
508− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
420+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
509421
510− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
422+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
511423
512− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
424+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
513425
514− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
426+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
515427
516− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
428+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
517429
518− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
430+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
519431
520− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
432+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
521433
522− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
434+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
523435
524− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
436+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"in"},"finish_reason":null}]}
525437
526− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Glob"},"finish_reason":null}]}
438+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
527439
528− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
440+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
529441
530− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
442+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
531443
532− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
444+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
533445
534− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
446+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
535447
536− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
448+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
537449
538− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
450+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
539451
540− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
452+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
541453
542− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
454+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
543455
544− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
456+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
545457
546− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"to"},"finish_reason":null}]}
458+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
547459
548− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
460+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"current"},"finish_reason":null}]}
549461
550− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
462+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
551463
552− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
464+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
553465
554− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
466+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
555467
556− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
468+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
557469
558− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
470+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
559471
560− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
472+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
561473
562− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
474+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
563475
564− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
476+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
565477
566− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
478+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
567479
568− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"find"},"finish_reason":null}]}
480+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
569481
570− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
482+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
571483
572− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
484+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"directory"},"finish_reason":null}]}
573485
574− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
486+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
575487
576− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
488+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
577489
578− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
490+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
579491
580− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
492+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
581493
582− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
494+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"49"},"finish_reason":null}]}
583495
584− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
496+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
585497
586− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
498+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
587499
588− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \"."},"finish_reason":null}]}
500+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" total"},"finish_reason":null}]}
589501
590− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
502+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
591503
592− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
504+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"49"},"finish_reason":null}]}
593505
594− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
506+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
595507
596− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
508+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
597509
598− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
510+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" okay"},"finish_reason":null}]}
599511
600− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
512+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
601513
602− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
514+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Make"},"finish_reason":null}]}
603515
604− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
516+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" sure"},"finish_reason":null}]}
605517
606− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
518+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
607519
608− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
520+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" is"},"finish_reason":null}]}
609521
610− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
522+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" English"},"finish_reason":null}]}
611523
612− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"files"},"finish_reason":null}]}
524+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
613525
614− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
526+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Provide"},"finish_reason":null}]}
615527
616− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
617−
618− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
619−
620− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
621−
622− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
623−
624− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
625−
626− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
627−
628− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
629−
630− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
631−
632− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
633−
634− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"in"},"finish_reason":null}]}
635−
636− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
637−
638− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
639−
640− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
641−
642− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
643−
644− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
645−
646− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
647−
648− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
649−
650− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
651−
652− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
653−
654− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
655−
656− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"current"},"finish_reason":null}]}
657−
658− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
659−
660− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
661−
662− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
663−
664− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
665−
666− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
667−
668− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
669−
670− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
671−
672− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
673−
674− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
675−
676− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
677−
678− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"directory"},"finish_reason":null}]}
679−
680− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
681−
682− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
683−
684− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
685−
686− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"43"},"finish_reason":null}]}
687−
688− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
689−
690− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
691−
692− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
693−
694− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"43"},"finish_reason":null}]}
695−
696− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
697−
698− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
699−
700− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
701−
702− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
703−
704− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Return"},"finish_reason":null}]}
705−
706− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" just"},"finish_reason":null}]}
707−
708− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
709−
710− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
711−
712− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
713−
714− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Glob"},"finish_reason":null}]}
715−
716− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}]}
717−
718− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" find"},"finish_reason":null}]}
719−
720− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ."},"finish_reason":null}]}
721−
722− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"go"},"finish_reason":null}]}
723−
724− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" files"},"finish_reason":null}]}
725−
726− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" in"},"finish_reason":null}]}
727−
728− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" current"},"finish_reason":null}]}
729−
730− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" directory"},"finish_reason":null}]}
731−
732− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
733−
734− data: {"id":"chatcmpl-72988fc242d434382e1cef89","object":"chat.completion.chunk","created":1780069690,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":216,"completion_tokens":315,"total_tokens":531,"completion_tokens_details":{"reasoning_tokens":297},"cost":{"usd":0.0004122,"hypercredits":0.008244},"remaining":{"hypercredits":0}}}
735−
736− data: [DONE]
737−
738− headers:
739− Content-Type:
740− - text/event-stream
741− status: 200 OK
742− code: 200
743− duration: 428.407833ms
744−- id: 2
745− request:
746− proto: HTTP/1.1
747− proto_major: 1
748− proto_minor: 1
749− content_length: 34347
750− host: ""
751− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/glob_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use glob to find all .go files in the current directory\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_fl8kSELeCV44nzdl56WTZKve\",\"function\":{\"arguments\":\"{\\\"pattern\\\": \\\"**/*.go\\\"}\",\"name\":\"glob\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"The user wants me to find all .go files in the current directory using the glob tool.\"},{\"content\":\"/tmp/crush-test/TestCoderAgent/glm-5.1/glob_tool/main.go\",\"tool_call_id\":\"call_fl8kSELeCV44nzdl56WTZKve\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
752− headers:
753− Accept:
754− - application/json
755− Content-Type:
756− - application/json
757− User-Agent:
758− - Charm-Crush/devel (https://charm.land/crush)
759− url: https://hyper.charm.land/v1/chat/completions
760− method: POST
761− response:
762− proto: HTTP/2.0
763− proto_major: 2
764− proto_minor: 0
765− content_length: -1
766− uncompressed: true
767− body: |+
768− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
528+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" only"},"finish_reason":null}]}
769529
770− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Found"},"finish_reason":null}]}
530+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
771531
772− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}]}
532+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
773533
774− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"1"},"finish_reason":null}]}
534+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
775535
776− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `."},"finish_reason":null}]}
536+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Find"},"finish_reason":null}]}
777537
778− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"go"},"finish_reason":null}]}
538+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" all"},"finish_reason":null}]}
779539
780− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
540+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Go"},"finish_reason":null}]}
781541
782− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" file"},"finish_reason":null}]}
542+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" files"},"finish_reason":null}]}
783543
784− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":"},"finish_reason":null}]}
544+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" using"},"finish_reason":null}]}
785545
786− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
546+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" glob"},"finish_reason":null}]}
787547
788− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"main"},"finish_reason":null}]}
548+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" in"},"finish_reason":null}]}
789549
790− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".go"},"finish_reason":null}]}
550+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" current"},"finish_reason":null}]}
791551
792− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
552+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" directory"},"finish_reason":null}]}
793553
794− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
554+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
795555
796− data: {"id":"chatcmpl-6fcea68a19fb7f5d4edd2860","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":39,"completion_tokens":14,"total_tokens":7861,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.00010989,"hypercredits":0.0021978},"remaining":{"hypercredits":0}}}
556+ data: {"id":"chatcmpl-d43f69c03d06fe092f2530ae","object":"chat.completion.chunk","created":1781202021,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":157,"completion_tokens":218,"total_tokens":439,"prompt_tokens_details":{"cached_tokens":64},"cost":{"usd":0.000169768,"hypercredits":0.0033953599999999996},"remaining":{"hypercredits":0}}}
797557
798558 data: [DONE]
799559
@@ -802,4 +562,4 @@ interactions:
802562 - text/event-stream
803563 status: 200 OK
804564 code: 200
805− duration: 619.939042ms
565+ duration: 1.048456792s
internal/agent/testdata/TestCoderAgent/glm-5.1/grep_tool.yaml+310−172
@@ -6,9 +6,9 @@ interactions:
66 proto: HTTP/1.1
77 proto_major: 1
88 proto_minor: 1
9− content_length: 33944
9+ content_length: 33938
1010 host: ""
11− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/grep_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use grep to search for the word 'package' in go files\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/grep_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use grep to search for the word 'package' in go files\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1212 headers:
1313 Accept:
1414 - application/json
@@ -25,67 +25,71 @@ interactions:
2525 content_length: -1
2626 uncompressed: true
2727 body: |+
28− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
28+ data: {"id":"chatcmpl-abce565571f0460a9cd3aa68","object":"chat.completion.chunk","created":1781202023,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
2929
30− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
30+ data: {"id":"chatcmpl-abce565571f0460a9cd3aa68","object":"chat.completion.chunk","created":1781202023,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_315be92e91d4add6","type":"function","index":0,"function":{"name":"grep","arguments":""}}]},"finish_reason":null}]}
3131
32− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
32+ data: {"id":"chatcmpl-abce565571f0460a9cd3aa68","object":"chat.completion.chunk","created":1781202023,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
3333
34− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
34+ data: {"id":"chatcmpl-abce565571f0460a9cd3aa68","object":"chat.completion.chunk","created":1781202023,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"include\": \"*.go"}}]},"finish_reason":null}]}
3535
36− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
36+ data: {"id":"chatcmpl-abce565571f0460a9cd3aa68","object":"chat.completion.chunk","created":1781202023,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\", "}}]},"finish_reason":null}]}
3737
38− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" search"},"finish_reason":null}]}
38+ data: {"id":"chatcmpl-abce565571f0460a9cd3aa68","object":"chat.completion.chunk","created":1781202023,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"pattern\": \"package\""}}]},"finish_reason":null}]}
3939
40− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
40+ data: {"id":"chatcmpl-abce565571f0460a9cd3aa68","object":"chat.completion.chunk","created":1781202023,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"}"}}]},"finish_reason":null}]}
4141
42− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
42+ data: {"id":"chatcmpl-abce565571f0460a9cd3aa68","object":"chat.completion.chunk","created":1781202023,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
4343
44− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" word"},"finish_reason":null}]}
44+ data: {"id":"chatcmpl-abce565571f0460a9cd3aa68","object":"chat.completion.chunk","created":1781202023,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":681,"completion_tokens":16,"total_tokens":7828,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0010238,"hypercredits":0.020476},"remaining":{"hypercredits":0}}}
4545
46− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
47−
48− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"package"},"finish_reason":null}]}
49−
50− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
51−
52− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
53−
54− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
55−
56− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
57−
58− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" using"},"finish_reason":null}]}
59−
60− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
61−
62− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" grep"},"finish_reason":null}]}
63−
64− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" tool"},"finish_reason":null}]}
65−
66− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
67−
68− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_21rwHdFtgIHBF2shcwEBHHd0","type":"function","index":0,"function":{"name":"grep","arguments":""}}]},"finish_reason":null}]}
69−
70− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
71−
72− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
46+ data: [DONE]
7347
74− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"pattern\": "}}]},"finish_reason":null}]}
48+ headers:
49+ Content-Type:
50+ - text/event-stream
51+ status: 200 OK
52+ code: 200
53+ duration: 610.825334ms
54+- id: 1
55+ request:
56+ proto: HTTP/1.1
57+ proto_major: 1
58+ proto_minor: 1
59+ content_length: 34290
60+ host: ""
61+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/grep_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use grep to search for the word 'package' in go files\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_315be92e91d4add6\",\"function\":{\"arguments\":\"{\\\"include\\\": \\\"*.go\\\", \\\"pattern\\\": \\\"package\\\"}\",\"name\":\"grep\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"Found 1 matches\\n/tmp/crush-test/TestCoderAgent/glm-5.1/grep_tool/main.go:\\n Line 1, Char 1: package main\\n\",\"tool_call_id\":\"call_315be92e91d4add6\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
62+ headers:
63+ Accept:
64+ - application/json
65+ Content-Type:
66+ - application/json
67+ User-Agent:
68+ - Charm-Crush/devel (https://charm.land/crush)
69+ url: https://hyper.charm.land/v1/chat/completions
70+ method: POST
71+ response:
72+ proto: HTTP/2.0
73+ proto_major: 2
74+ proto_minor: 0
75+ content_length: -1
76+ uncompressed: true
77+ body: |+
78+ data: {"id":"chatcmpl-7c74ae3aed29316bed7a3b6c","object":"chat.completion.chunk","created":1781202024,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
7579
76− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"package"}}]},"finish_reason":null}]}
80+ data: {"id":"chatcmpl-7c74ae3aed29316bed7a3b6c","object":"chat.completion.chunk","created":1781202024,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Found"},"finish_reason":null}]}
7781
78− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\", \"include\": "}}]},"finish_reason":null}]}
82+ data: {"id":"chatcmpl-7c74ae3aed29316bed7a3b6c","object":"chat.completion.chunk","created":1781202024,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" 1 match:"},"finish_reason":null}]}
7983
80− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"*."}}]},"finish_reason":null}]}
84+ data: {"id":"chatcmpl-7c74ae3aed29316bed7a3b6c","object":"chat.completion.chunk","created":1781202024,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `main.go:"},"finish_reason":null}]}
8185
82− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"go"}}]},"finish_reason":null}]}
86+ data: {"id":"chatcmpl-7c74ae3aed29316bed7a3b6c","object":"chat.completion.chunk","created":1781202024,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"1` —"},"finish_reason":null}]}
8387
84− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
88+ data: {"id":"chatcmpl-7c74ae3aed29316bed7a3b6c","object":"chat.completion.chunk","created":1781202024,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `package main`"},"finish_reason":null}]}
8589
86− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
90+ data: {"id":"chatcmpl-7c74ae3aed29316bed7a3b6c","object":"chat.completion.chunk","created":1781202024,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
8791
88− data: {"id":"chatcmpl-0798a581811662a07d1abc32","object":"chat.completion.chunk","created":1780069691,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":709,"completion_tokens":37,"total_tokens":7850,"prompt_tokens_details":{"cached_tokens":7104},"completion_tokens_details":{"reasoning_tokens":20},"cost":{"usd":0.0011681900000000002,"hypercredits":0.0233638},"remaining":{"hypercredits":0}}}
92+ data: {"id":"chatcmpl-7c74ae3aed29316bed7a3b6c","object":"chat.completion.chunk","created":1781202024,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":737,"completion_tokens":16,"total_tokens":7885,"prompt_tokens_details":{"cached_tokens":7132},"cost":{"usd":0.0011022,"hypercredits":0.022043999999999998},"remaining":{"hypercredits":0}}}
8993
9094 data: [DONE]
9195
@@ -94,8 +98,8 @@ interactions:
9498 - text/event-stream
9599 status: 200 OK
96100 code: 200
97− duration: 530.110208ms
98−- id: 1
101+ duration: 760.288166ms
102+- id: 2
99103 request:
100104 proto: HTTP/1.1
101105 proto_major: 1
@@ -119,221 +123,355 @@ interactions:
119123 content_length: -1
120124 uncompressed: true
121125 body: |+
122− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
126+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
123127
124− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"User"},"finish_reason":null}]}
128+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
125129
126− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
130+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
127131
128− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
132+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" asks"},"finish_reason":null}]}
129133
130− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
134+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
131135
132− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
136+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
133137
134− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
138+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
135139
136− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
140+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
137141
138− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
142+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
139143
140− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
144+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
141145
142− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
146+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
143147
144− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
148+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
145149
146− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" grep"},"finish_reason":null}]}
150+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
147151
148− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
152+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
149153
150− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" search"},"finish_reason":null}]}
154+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
151155
152− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
156+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
153157
154− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
158+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" grep"},"finish_reason":null}]}
155159
156− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" word"},"finish_reason":null}]}
160+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
157161
158− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
162+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" search"},"finish_reason":null}]}
159163
160− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"package"},"finish_reason":null}]}
164+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
161165
162− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
166+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
163167
164− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
168+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" word"},"finish_reason":null}]}
165169
166− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
170+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
167171
168− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
172+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"package"},"finish_reason":null}]}
169173
170− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
174+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
171175
172− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Must"},"finish_reason":null}]}
176+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
173177
174− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
178+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
175179
176− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
180+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
177181
178− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
182+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
179183
180− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
184+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Need"},"finish_reason":null}]}
181185
182− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
186+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
183187
184− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
188+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
185189
186− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
190+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
187191
188− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
192+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
189193
190− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
194+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ≤"},"finish_reason":null}]}
191195
192− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
196+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
193197
194− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
198+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
195199
196− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
200+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
197201
198− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
202+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
199203
200− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
204+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
201205
202− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
206+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
203207
204− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
208+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
205209
206− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
210+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
207211
208− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
212+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Should"},"finish_reason":null}]}
209213
210− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
214+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
211215
212− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
216+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
213217
214− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"G"},"finish_reason":null}]}
218+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
215219
216− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"rep"},"finish_reason":null}]}
220+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
217221
218− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
222+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
219223
220− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
224+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
221225
222− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"package"},"finish_reason":null}]}
226+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
223227
224− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
228+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
225229
226− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
230+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
227231
228− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
232+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
229233
230− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
234+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Something"},"finish_reason":null}]}
231235
232− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
236+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
233237
234− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
238+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
235239
236− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
240+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"G"},"finish_reason":null}]}
237241
238− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
242+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"rep"},"finish_reason":null}]}
239243
240− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
244+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
241245
242− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
246+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
243247
244− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Return"},"finish_reason":null}]}
248+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"package"},"finish_reason":null}]}
245249
246− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
250+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
247251
248− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
252+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
249253
250− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"G"},"finish_reason":null}]}
254+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
251255
252− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"rep"},"finish_reason":null}]}
256+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
253257
254− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" for"},"finish_reason":null}]}
258+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
255259
256− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" package"},"finish_reason":null}]}
260+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
257261
258− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" in"},"finish_reason":null}]}
262+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" within"},"finish_reason":null}]}
259263
260− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Go"},"finish_reason":null}]}
264+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
261265
262− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" files"},"finish_reason":null}]}
266+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
263267
264− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
268+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
265269
266− data: {"id":"chatcmpl-d9dfa682ad16493bb43839d1","object":"chat.completion.chunk","created":1780069692,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":217,"completion_tokens":80,"total_tokens":297,"completion_tokens_details":{"reasoning_tokens":64},"cost":{"usd":0.0001269,"hypercredits":0.002538},"remaining":{"hypercredits":0}}}
270+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
267271
268− data: [DONE]
272+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
269273
270− headers:
271− Content-Type:
272− - text/event-stream
273− status: 200 OK
274− code: 200
275− duration: 910.652042ms
276−- id: 2
277− request:
278− proto: HTTP/1.1
279− proto_major: 1
280− proto_minor: 1
281− content_length: 34415
282− host: ""
283− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/grep_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use grep to search for the word 'package' in go files\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_21rwHdFtgIHBF2shcwEBHHd0\",\"function\":{\"arguments\":\"{\\\"pattern\\\": \\\"package\\\", \\\"include\\\": \\\"*.go\\\"}\",\"name\":\"grep\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"The user wants to search for the word 'package' in Go files using the grep tool.\"},{\"content\":\"Found 1 matches\\n/tmp/crush-test/TestCoderAgent/glm-5.1/grep_tool/main.go:\\n Line 1, Char 1: package main\\n\",\"tool_call_id\":\"call_21rwHdFtgIHBF2shcwEBHHd0\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
284− headers:
285− Accept:
286− - application/json
287− Content-Type:
288− - application/json
289− User-Agent:
290− - Charm-Crush/devel (https://charm.land/crush)
291− url: https://hyper.charm.land/v1/chat/completions
292− method: POST
293− response:
294− proto: HTTP/2.0
295− proto_major: 2
296− proto_minor: 0
297− content_length: -1
298− uncompressed: true
299− body: |+
300− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
274+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
275+
276+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
277+
278+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Gre"},"finish_reason":null}]}
279+
280+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"p"},"finish_reason":null}]}
281+
282+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
283+
284+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
285+
286+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"package"},"finish_reason":null}]}
287+
288+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
289+
290+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
291+
292+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
293+
294+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
295+
296+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" -\u003e"},"finish_reason":null}]}
297+
298+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
299+
300+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
301+
302+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
303+
304+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
305+
306+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
307+
308+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" G"},"finish_reason":null}]}
309+
310+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
311+
312+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
313+
314+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
315+
316+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"r"},"finish_reason":null}]}
317+
318+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
319+
320+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
321+
322+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
323+
324+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"p"},"finish_reason":null}]}
325+
326+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
327+
328+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
329+
330+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
331+
332+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" f"},"finish_reason":null}]}
333+
334+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
335+
336+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"o"},"finish_reason":null}]}
337+
338+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
339+
340+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"r"},"finish_reason":null}]}
341+
342+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
343+
344+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
345+
346+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
347+
348+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
349+
350+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
351+
352+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"p"},"finish_reason":null}]}
353+
354+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
355+
356+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
357+
358+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
359+
360+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"c"},"finish_reason":null}]}
361+
362+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
363+
364+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"k"},"finish_reason":null}]}
365+
366+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
367+
368+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
369+
370+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"15"},"finish_reason":null}]}
371+
372+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"g"},"finish_reason":null}]}
373+
374+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
375+
376+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
377+
378+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
379+
380+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
381+
382+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
383+
384+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
385+
386+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
387+
388+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"i"},"finish_reason":null}]}
389+
390+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
391+
392+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"n"},"finish_reason":null}]}
393+
394+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
395+
396+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
397+
398+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
399+
400+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"G"},"finish_reason":null}]}
401+
402+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
403+
404+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"o"},"finish_reason":null}]}
405+
406+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
407+
408+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
409+
410+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
411+
412+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"f"},"finish_reason":null}]}
413+
414+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
415+
416+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"i"},"finish_reason":null}]}
417+
418+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
419+
420+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
421+
422+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
423+
424+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
425+
426+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
427+
428+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
429+
430+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
431+
432+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
433+
434+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
435+
436+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
437+
438+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
301439
302− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Found"},"finish_reason":null}]}
440+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
303441
304− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}]}
442+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
305443
306− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"1"},"finish_reason":null}]}
444+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
307445
308− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" match"},"finish_reason":null}]}
446+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
309447
310− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":"},"finish_reason":null}]}
448+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Return"},"finish_reason":null}]}
311449
312− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
450+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
313451
314− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"main"},"finish_reason":null}]}
452+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
315453
316− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".go"},"finish_reason":null}]}
454+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"G"},"finish_reason":null}]}
317455
318− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":"},"finish_reason":null}]}
456+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"rep"},"finish_reason":null}]}
319457
320− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"1"},"finish_reason":null}]}
458+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" for"},"finish_reason":null}]}
321459
322− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
460+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" '"},"finish_reason":null}]}
323461
324− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" —"},"finish_reason":null}]}
462+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"package"},"finish_reason":null}]}
325463
326− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
464+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"'"},"finish_reason":null}]}
327465
328− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"package"},"finish_reason":null}]}
466+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" in"},"finish_reason":null}]}
329467
330− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" main"},"finish_reason":null}]}
468+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Go"},"finish_reason":null}]}
331469
332− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
470+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" files"},"finish_reason":null}]}
333471
334− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
472+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
335473
336− data: {"id":"chatcmpl-14835ce4b37a296037351a3c","object":"chat.completion.chunk","created":1780069692,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":63,"completion_tokens":18,"total_tokens":7889,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.00015813,"hypercredits":0.0031626},"remaining":{"hypercredits":0}}}
474+ data: {"id":"chatcmpl-5fb295280df14902e1952bd7","object":"chat.completion.chunk","created":1781202024,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":204,"completion_tokens":182,"total_tokens":386,"completion_tokens_details":{"reasoning_tokens":132},"cost":{"usd":0.000240632,"hypercredits":0.00481264},"remaining":{"hypercredits":0}}}
337475
338476 data: [DONE]
339477
@@ -342,4 +480,4 @@ interactions:
342480 - text/event-stream
343481 status: 200 OK
344482 code: 200
345− duration: 525.813667ms
483+ duration: 1.215179833s
internal/agent/testdata/TestCoderAgent/glm-5.1/ls_tool.yaml+255−213
@@ -6,9 +6,9 @@ interactions:
66 proto: HTTP/1.1
77 proto_major: 1
88 proto_minor: 1
9− content_length: 33938
9+ content_length: 33932
1010 host: ""
11− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/ls_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use ls to list the files in the current directory\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/ls_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use ls to list the files in the current directory\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1212 headers:
1313 Accept:
1414 - application/json
@@ -25,89 +25,15 @@ interactions:
2525 content_length: -1
2626 uncompressed: true
2727 body: |+
28− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
28+ data: {"id":"chatcmpl-746073fc17fcf61e9d0dd57b","object":"chat.completion.chunk","created":1781202026,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
2929
30− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
30+ data: {"id":"chatcmpl-746073fc17fcf61e9d0dd57b","object":"chat.completion.chunk","created":1781202026,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_1e80f94999d424ac","type":"function","index":0,"function":{"name":"ls","arguments":""}}]},"finish_reason":null}]}
3131
32− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
32+ data: {"id":"chatcmpl-746073fc17fcf61e9d0dd57b","object":"chat.completion.chunk","created":1781202026,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{}"}}]},"finish_reason":null}]}
3333
34− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
34+ data: {"id":"chatcmpl-746073fc17fcf61e9d0dd57b","object":"chat.completion.chunk","created":1781202026,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
3535
36− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" me"},"finish_reason":null}]}
37−
38− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
39−
40− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" list"},"finish_reason":null}]}
41−
42− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
43−
44− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
45−
46− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
47−
48− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
49−
50− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
51−
52− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" using"},"finish_reason":null}]}
53−
54− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
55−
56− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
57−
58− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" tool"},"finish_reason":null}]}
59−
60− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
61−
62− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_DolI6GDGB8olX8skQ056EtPD","type":"function","index":0,"function":{"name":"ls","arguments":""}}]},"finish_reason":null}]}
63−
64− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
65−
66− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
67−
68− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"depth\": "}}]},"finish_reason":null}]}
69−
70− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1"}}]},"finish_reason":null}]}
71−
72− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":", \"path\": "}}]},"finish_reason":null}]}
73−
74− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/tmp"}}]},"finish_reason":null}]}
75−
76− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/c"}}]},"finish_reason":null}]}
77−
78− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush"}}]},"finish_reason":null}]}
79−
80− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test"}}]},"finish_reason":null}]}
81−
82− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/Test"}}]},"finish_reason":null}]}
83−
84− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Coder"}}]},"finish_reason":null}]}
85−
86− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent"}}]},"finish_reason":null}]}
87−
88− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/g"}}]},"finish_reason":null}]}
89−
90− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lm"}}]},"finish_reason":null}]}
91−
92− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-"}}]},"finish_reason":null}]}
93−
94− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5"}}]},"finish_reason":null}]}
95−
96− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"."}}]},"finish_reason":null}]}
97−
98− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1"}}]},"finish_reason":null}]}
99−
100− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/"}}]},"finish_reason":null}]}
101−
102− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"ls"}}]},"finish_reason":null}]}
103−
104− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_tool"}}]},"finish_reason":null}]}
105−
106− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
107−
108− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
109−
110− data: {"id":"chatcmpl-164a30f9461a73f5ee098b9c","object":"chat.completion.chunk","created":1780069693,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":706,"completion_tokens":48,"total_tokens":7858,"prompt_tokens_details":{"cached_tokens":7104},"completion_tokens_details":{"reasoning_tokens":19},"cost":{"usd":0.0012062600000000002,"hypercredits":0.024125200000000003},"remaining":{"hypercredits":0}}}
36+ data: {"id":"chatcmpl-746073fc17fcf61e9d0dd57b","object":"chat.completion.chunk","created":1781202026,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":678,"completion_tokens":3,"total_tokens":7812,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0009624,"hypercredits":0.019247999999999998},"remaining":{"hypercredits":0}}}
11137
11238 data: [DONE]
11339
@@ -116,15 +42,15 @@ interactions:
11642 - text/event-stream
11743 status: 200 OK
11844 code: 200
119− duration: 809.482333ms
45+ duration: 795.805875ms
12046- id: 1
12147 request:
12248 proto: HTTP/1.1
12349 proto_major: 1
12450 proto_minor: 1
125− content_length: 34399
51+ content_length: 34205
12652 host: ""
127− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/ls_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use ls to list the files in the current directory\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_DolI6GDGB8olX8skQ056EtPD\",\"function\":{\"arguments\":\"{\\\"depth\\\": 1, \\\"path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/ls_tool\\\"}\",\"name\":\"ls\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"The user wants me to list files in the current directory using the ls tool.\"},{\"content\":\"\\n- /tmp/crush-test/TestCoderAgent/glm-5.1/ls_tool/\\n - go.mod\\n - main.go\\n\",\"tool_call_id\":\"call_DolI6GDGB8olX8skQ056EtPD\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
53+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/ls_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use ls to list the files in the current directory\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_1e80f94999d424ac\",\"function\":{\"arguments\":\"{}\",\"name\":\"ls\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"\\n- /tmp/crush-test/TestCoderAgent/glm-5.1/ls_tool/\\n - go.mod\\n - main.go\\n\",\"tool_call_id\":\"call_1e80f94999d424ac\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
12854 headers:
12955 Accept:
13056 - application/json
@@ -141,31 +67,19 @@ interactions:
14167 content_length: -1
14268 uncompressed: true
14369 body: |+
144− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
145−
146− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}]}
147−
148− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
149−
150− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"go"},"finish_reason":null}]}
151−
152− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".mod"},"finish_reason":null}]}
70+ data: {"id":"chatcmpl-0e31b398032f426309bdddda","object":"chat.completion.chunk","created":1781202027,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
15371
154− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`\n"},"finish_reason":null}]}
72+ data: {"id":"chatcmpl-0e31b398032f426309bdddda","object":"chat.completion.chunk","created":1781202027,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}]}
15573
156− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}]}
74+ data: {"id":"chatcmpl-0e31b398032f426309bdddda","object":"chat.completion.chunk","created":1781202027,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `go.mod`\n"},"finish_reason":null}]}
15775
158− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
76+ data: {"id":"chatcmpl-0e31b398032f426309bdddda","object":"chat.completion.chunk","created":1781202027,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"- `main"},"finish_reason":null}]}
15977
160− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"main"},"finish_reason":null}]}
78+ data: {"id":"chatcmpl-0e31b398032f426309bdddda","object":"chat.completion.chunk","created":1781202027,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".go`"},"finish_reason":null}]}
16179
162− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".go"},"finish_reason":null}]}
80+ data: {"id":"chatcmpl-0e31b398032f426309bdddda","object":"chat.completion.chunk","created":1781202027,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
16381
164− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
165−
166− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
167−
168− data: {"id":"chatcmpl-2c111a808431f0ffbafc2556","object":"chat.completion.chunk","created":1780069694,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":68,"completion_tokens":12,"total_tokens":7888,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.00013947999999999999,"hypercredits":0.0027895999999999997},"remaining":{"hypercredits":0}}}
82+ data: {"id":"chatcmpl-0e31b398032f426309bdddda","object":"chat.completion.chunk","created":1781202027,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":36,"completion_tokens":10,"total_tokens":7857,"prompt_tokens_details":{"cached_tokens":7811},"cost":{"usd":0.0001,"hypercredits":0.002},"remaining":{"hypercredits":0}}}
16983
17084 data: [DONE]
17185
@@ -174,7 +88,7 @@ interactions:
17488 - text/event-stream
17589 status: 200 OK
17690 code: 200
177− duration: 536.859958ms
91+ duration: 585.567458ms
17892- id: 2
17993 request:
18094 proto: HTTP/1.1
@@ -199,221 +113,349 @@ interactions:
199113 content_length: -1
200114 uncompressed: true
201115 body: |+
202− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
116+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
117+
118+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
119+
120+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
121+
122+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
123+
124+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
125+
126+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
127+
128+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
129+
130+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
131+
132+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
133+
134+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
135+
136+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
137+
138+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
139+
140+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
141+
142+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":\n\n"},"finish_reason":null}]}
143+
144+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
145+
146+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
147+
148+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
149+
150+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" list"},"finish_reason":null}]}
151+
152+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
153+
154+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
155+
156+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
157+
158+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
159+
160+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
161+
162+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
163+
164+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c"},"finish_reason":null}]}
165+
166+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"think"},"finish_reason":null}]}
167+
168+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\u003e\""},"finish_reason":null}]}
169+
170+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" They"},"finish_reason":null}]}
171+
172+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" want"},"finish_reason":null}]}
173+
174+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
175+
176+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
177+
178+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
179+
180+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Must"},"finish_reason":null}]}
181+
182+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
183+
184+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
185+
186+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
187+
188+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
189+
190+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
191+
192+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
193+
194+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
195+
196+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
197+
198+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
199+
200+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
201+
202+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
203+
204+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
205+
206+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
207+
208+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
209+
210+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
211+
212+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
213+
214+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
215+
216+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
217+
218+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
219+
220+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Using"},"finish_reason":null}]}
221+
222+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
223+
224+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
225+
226+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" list"},"finish_reason":null}]}
227+
228+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
229+
230+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
231+
232+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
233+
234+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
235+
236+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
237+
238+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
239+
240+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
241+
242+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
243+
244+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"List"},"finish_reason":null}]}
203245
204− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
246+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
205247
206− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" system"},"finish_reason":null}]}
248+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
207249
208− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
250+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
209251
210− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" The"},"finish_reason":null}]}
252+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
211253
212− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" developer"},"finish_reason":null}]}
254+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
213255
214− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" says"},"finish_reason":null}]}
256+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
215257
216− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
258+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
217259
218− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" generate"},"finish_reason":null}]}
260+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
219261
220− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
262+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" good"},"finish_reason":null}]}
221263
222− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
264+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
223265
224− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" based"},"finish_reason":null}]}
266+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
225267
226− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" on"},"finish_reason":null}]}
268+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
227269
228− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" first"},"finish_reason":null}]}
270+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
229271
230− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" message"},"finish_reason":null}]}
272+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
231273
232− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
274+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"List"},"finish_reason":null}]}
233275
234− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
276+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
235277
236− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" begins"},"finish_reason":null}]}
278+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
237279
238− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
280+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
239281
240− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" conversation"},"finish_reason":null}]}
282+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
241283
242− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
284+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
243285
244− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
286+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
245287
246− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" The"},"finish_reason":null}]}
288+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
247289
248− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
290+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
249291
250− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" says"},"finish_reason":null}]}
292+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
251293
252− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
294+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
253295
254− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
296+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
255297
256− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
298+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" List"},"finish_reason":null}]}
257299
258− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
300+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
259301
260− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
302+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
261303
262− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
304+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
263305
264− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
306+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
265307
266− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
308+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
267309
268− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
310+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
269311
270− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
312+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
271313
272− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
314+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
273315
274− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
316+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
275317
276− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
318+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
277319
278− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
320+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
279321
280− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" list"},"finish_reason":null}]}
322+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
281323
282− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
324+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
283325
284− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
326+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
285327
286− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
328+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
287329
288− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
330+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
289331
290− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
332+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
291333
292− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
334+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
293335
294− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c"},"finish_reason":null}]}
336+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
295337
296− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"think"},"finish_reason":null}]}
338+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
297339
298− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\u003e\""},"finish_reason":null}]}
340+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
299341
300− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" They"},"finish_reason":null}]}
342+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
301343
302− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" want"},"finish_reason":null}]}
344+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
303345
304− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
346+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
305347
306− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
348+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
307349
308− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
350+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
309351
310− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Should"},"finish_reason":null}]}
352+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
311353
312− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
354+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
313355
314− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
356+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
315357
316− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
358+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
317359
318− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
360+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
319361
320− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
362+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
321363
322− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
364+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
323365
324− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
366+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
325367
326− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Not"},"finish_reason":null}]}
368+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
327369
328− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" more"},"finish_reason":null}]}
370+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
329371
330− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" than"},"finish_reason":null}]}
372+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
331373
332− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
374+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
333375
334− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
376+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
335377
336− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
378+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
337379
338− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
380+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
339381
340− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Should"},"finish_reason":null}]}
382+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
341383
342− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summarize"},"finish_reason":null}]}
384+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
343385
344− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
386+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
345387
346− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" message"},"finish_reason":null}]}
388+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
347389
348− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
390+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
349391
350− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
392+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
351393
352− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
394+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
353395
354− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
396+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
355397
356− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Using"},"finish_reason":null}]}
398+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
357399
358− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
400+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
359401
360− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
402+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
361403
362− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" List"},"finish_reason":null}]}
404+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
363405
364− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Current"},"finish_reason":null}]}
406+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
365407
366− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Directory"},"finish_reason":null}]}
408+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
367409
368− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Files"},"finish_reason":null}]}
410+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
369411
370− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
412+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
371413
372− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
414+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
373415
374− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
416+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
375417
376− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
418+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
377419
378− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
420+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
379421
380− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
422+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
381423
382− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
424+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
383425
384− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
426+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
385427
386− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
428+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
387429
388− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
430+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Under"},"finish_reason":null}]}
389431
390− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
432+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
391433
392− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
434+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
393435
394− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" One"},"finish_reason":null}]}
436+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
395437
396− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
438+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
397439
398− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
440+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
399441
400− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Using"},"finish_reason":null}]}
442+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"List"},"finish_reason":null}]}
401443
402− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ls"},"finish_reason":null}]}
444+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" files"},"finish_reason":null}]}
403445
404− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}]}
446+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" in"},"finish_reason":null}]}
405447
406− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" list"},"finish_reason":null}]}
448+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" current"},"finish_reason":null}]}
407449
408− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" current"},"finish_reason":null}]}
450+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" directory"},"finish_reason":null}]}
409451
410− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" directory"},"finish_reason":null}]}
452+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" with"},"finish_reason":null}]}
411453
412− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" files"},"finish_reason":null}]}
454+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ls"},"finish_reason":null}]}
413455
414− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
456+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
415457
416− data: {"id":"chatcmpl-b40bae129980d771e7d96e2c","object":"chat.completion.chunk","created":1780069695,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":214,"completion_tokens":115,"total_tokens":329,"completion_tokens_details":{"reasoning_tokens":99},"cost":{"usd":0.00016906,"hypercredits":0.0033812},"remaining":{"hypercredits":0}}}
458+ data: {"id":"chatcmpl-de6dd2cdfd03e5c637ac2ab8","object":"chat.completion.chunk","created":1781202026,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":201,"completion_tokens":179,"total_tokens":380,"completion_tokens_details":{"reasoning_tokens":140},"cost":{"usd":0.00024336399999999998,"hypercredits":0.004867279999999999},"remaining":{"hypercredits":0}}}
417459
418460 data: [DONE]
419461
@@ -422,4 +464,4 @@ interactions:
422464 - text/event-stream
423465 status: 200 OK
424466 code: 200
425− duration: 2.958506667s
467+ duration: 585.722666ms
internal/agent/testdata/TestCoderAgent/glm-5.1/multiedit_tool.yaml+254−728
@@ -6,9 +6,9 @@ interactions:
66 proto: HTTP/1.1
77 proto_major: 1
88 proto_minor: 1
9− content_length: 34024
9+ content_length: 34018
1010 host: ""
11− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use multiedit to change 'Hello, World!' to 'Hello, Crush!' and add a comment '// Greeting' above the fmt.Println line in main.go\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use multiedit to change 'Hello, World!' to 'Hello, Crush!' and add a comment '// Greeting' above the fmt.Println line in main.go\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1212 headers:
1313 Accept:
1414 - application/json
@@ -25,89 +25,33 @@ interactions:
2525 content_length: -1
2626 uncompressed: true
2727 body: |+
28− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
28+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
2929
30− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"Let"},"finish_reason":null}]}
30+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_311d1fd1bb9ba356","type":"function","index":0,"function":{"name":"view","arguments":""}}]},"finish_reason":null}]}
3131
32− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" me"},"finish_reason":null}]}
32+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
3333
34− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" first"},"finish_reason":null}]}
34+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": \"/tmp"}}]},"finish_reason":null}]}
3535
36− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" read"},"finish_reason":null}]}
36+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/crush"}}]},"finish_reason":null}]}
3737
38− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
38+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test/Test"}}]},"finish_reason":null}]}
3939
40− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
40+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"CoderAgent"}}]},"finish_reason":null}]}
4141
42− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":".go"},"finish_reason":null}]}
42+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/glm-"}}]},"finish_reason":null}]}
4343
44− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
44+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5.1/m"}}]},"finish_reason":null}]}
4545
46− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
46+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"ultiedit_tool"}}]},"finish_reason":null}]}
4747
48− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" understand"},"finish_reason":null}]}
48+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/main.go\""}}]},"finish_reason":null}]}
4949
50− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" its"},"finish_reason":null}]}
50+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"}"}}]},"finish_reason":null}]}
5151
52− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
52+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
5353
54− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
55−
56− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
57−
58− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_4BvAOulZ4vPbT3o9XRDa7mrF","type":"function","index":0,"function":{"name":"view","arguments":""}}]},"finish_reason":null}]}
59−
60− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
61−
62− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
63−
64− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": "}}]},"finish_reason":null}]}
65−
66− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/tmp"}}]},"finish_reason":null}]}
67−
68− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/c"}}]},"finish_reason":null}]}
69−
70− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush"}}]},"finish_reason":null}]}
71−
72− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test"}}]},"finish_reason":null}]}
73−
74− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/Test"}}]},"finish_reason":null}]}
75−
76− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Coder"}}]},"finish_reason":null}]}
77−
78− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent"}}]},"finish_reason":null}]}
79−
80− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/g"}}]},"finish_reason":null}]}
81−
82− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lm"}}]},"finish_reason":null}]}
83−
84− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-"}}]},"finish_reason":null}]}
85−
86− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5"}}]},"finish_reason":null}]}
87−
88− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"."}}]},"finish_reason":null}]}
89−
90− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1"}}]},"finish_reason":null}]}
91−
92− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/m"}}]},"finish_reason":null}]}
93−
94− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"ult"}}]},"finish_reason":null}]}
95−
96− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"ied"}}]},"finish_reason":null}]}
97−
98− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"it"}}]},"finish_reason":null}]}
99−
100− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_tool"}}]},"finish_reason":null}]}
101−
102− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/main"}}]},"finish_reason":null}]}
103−
104− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".go"}}]},"finish_reason":null}]}
105−
106− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
107−
108− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
109−
110− data: {"id":"chatcmpl-e99200919451060d099e458c","object":"chat.completion.chunk","created":1780069697,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":731,"completion_tokens":45,"total_tokens":7880,"prompt_tokens_details":{"cached_tokens":7104},"completion_tokens_details":{"reasoning_tokens":18},"cost":{"usd":0.00122221,"hypercredits":0.0244442},"remaining":{"hypercredits":0}}}
54+ data: {"id":"chatcmpl-a27c044ec7168facd8b52355","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":703,"completion_tokens":29,"total_tokens":7863,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0011118,"hypercredits":0.022236},"remaining":{"hypercredits":0}}}
11155
11256 data: [DONE]
11357
@@ -116,7 +60,7 @@ interactions:
11660 - text/event-stream
11761 status: 200 OK
11862 code: 200
119− duration: 620.445917ms
63+ duration: 716.028791ms
12064- id: 1
12165 request:
12266 proto: HTTP/1.1
@@ -141,593 +85,345 @@ interactions:
14185 content_length: -1
14286 uncompressed: true
14387 body: |+
144− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
145−
146− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
147−
148− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
149−
150− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
151−
152− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" produce"},"finish_reason":null}]}
153−
154− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
155−
156− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
157−
158− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
159−
160− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
161−
162− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
163−
164− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
165−
166− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
167−
168− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
169−
170− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Under"},"finish_reason":null}]}
171−
172− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
173−
174− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
175−
176− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
177−
178− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
179−
180− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
181−
182− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
183−
184− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
185−
186− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
187−
188− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" using"},"finish_reason":null}]}
189−
190− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" mult"},"finish_reason":null}]}
191−
192− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ied"},"finish_reason":null}]}
193−
194− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"it"},"finish_reason":null}]}
195−
196− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
197−
198− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" change"},"finish_reason":null}]}
199−
200− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
201−
202− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" World"},"finish_reason":null}]}
203−
204− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
205−
206− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
207−
208− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Crush"},"finish_reason":null}]}
209−
210− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
211−
212− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" add"},"finish_reason":null}]}
213−
214− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" comment"},"finish_reason":null}]}
215−
216− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
217−
218− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
219−
220− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" could"},"finish_reason":null}]}
221−
222− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
223−
224− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
225−
226− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
227−
228− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Mult"},"finish_reason":null}]}
229−
230− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ied"},"finish_reason":null}]}
231−
232− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"it"},"finish_reason":null}]}
233−
234− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
235−
236− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" change"},"finish_reason":null}]}
237−
238− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" greeting"},"finish_reason":null}]}
239−
240− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
241−
242− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" add"},"finish_reason":null}]}
243−
244− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" comment"},"finish_reason":null}]}
245−
246− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
247−
248− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
249−
250− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
251−
252− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
253−
254− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
255−
256− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Mult"},"finish_reason":null}]}
257−
258− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ied"},"finish_reason":null}]}
259−
260− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"it"},"finish_reason":null}]}
261−
262− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
263−
264− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" change"},"finish_reason":null}]}
265−
266− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" greeting"},"finish_reason":null}]}
267−
268− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
269−
270− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" add"},"finish_reason":null}]}
271−
272− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" comment"},"finish_reason":null}]}
273−
274− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
275−
276− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
277−
278− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"?"},"finish_reason":null}]}
279−
280− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
281−
282− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
283−
284− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
285−
286− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Mult"},"finish_reason":null}]}
287−
288− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ied"},"finish_reason":null}]}
289−
290− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"it"},"finish_reason":null}]}
291−
292− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
293−
294− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
295−
296− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
297−
298− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
299−
300− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
301−
302− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
303−
304− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
305−
306− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
307−
308− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
309−
310− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
311−
312− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
313−
314− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
315−
316− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
317−
318− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
319−
320− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
321−
322− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
323−
324− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
325−
326− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"change"},"finish_reason":null}]}
88+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
32789
328− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
90+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
32991
330− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
92+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
33193
332− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
94+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
33395
334− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
96+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
33597
336− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
98+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
33799
338− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
100+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
339101
340− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
102+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
341103
342− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
104+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
343105
344− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
106+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
345107
346− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
108+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
347109
348− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
110+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Must"},"finish_reason":null}]}
349111
350− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
112+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
351113
352− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
114+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c"},"finish_reason":null}]}
353115
354− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
116+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
355117
356− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
118+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
357119
358− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"g"},"finish_reason":null}]}
120+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
359121
360− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"reeting"},"finish_reason":null}]}
122+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
361123
362− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
124+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
363125
364− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
126+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
365127
366− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
128+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
367129
368− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
130+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
369131
370− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
132+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
371133
372− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
134+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
373135
374− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
136+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
375137
376− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
138+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
377139
378− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
140+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
379141
380− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
142+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
381143
382− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
144+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
383145
384− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
146+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
385147
386− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
148+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
387149
388− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
150+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
389151
390− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"and"},"finish_reason":null}]}
152+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Edit"},"finish_reason":null}]}
391153
392− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
154+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
393155
394− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
156+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" World"},"finish_reason":null}]}
395157
396− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
158+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
397159
398− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
160+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
399161
400− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
162+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Crush"},"finish_reason":null}]}
401163
402− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
164+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
403165
404− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
166+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" add"},"finish_reason":null}]}
405167
406− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
168+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" comment"},"finish_reason":null}]}
407169
408− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
170+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
409171
410− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
172+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
411173
412− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
174+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" craft"},"finish_reason":null}]}
413175
414− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
176+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
415177
416− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"add"},"finish_reason":null}]}
178+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
417179
418− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
180+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Replace"},"finish_reason":null}]}
419181
420− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
182+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
421183
422− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
184+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" World"},"finish_reason":null}]}
423185
424− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
186+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
425187
426− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
188+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
427189
428− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
190+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Crush"},"finish_reason":null}]}
429191
430− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
192+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
431193
432− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
194+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" comment"},"finish_reason":null}]}
433195
434− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
196+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
435197
436− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
198+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
437199
438− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
200+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
439201
440− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"comment"},"finish_reason":null}]}
202+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
441203
442− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
204+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
443205
444− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
206+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Replace"},"finish_reason":null}]}
445207
446− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
208+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
447209
448− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
210+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" World"},"finish_reason":null}]}
449211
450− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
212+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
451213
452− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
214+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
453215
454− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
216+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Crush"},"finish_reason":null}]}
455217
456− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
218+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
457219
458− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
220+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" comment"},"finish_reason":null}]}
459221
460− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
222+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
461223
462− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" okay"},"finish_reason":null}]}
224+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
463225
464− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
226+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
465227
466− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
228+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
467229
468− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
230+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
469231
470− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"?"},"finish_reason":null}]}
232+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Replace"},"finish_reason":null}]}
471233
472− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" It"},"finish_reason":null}]}
234+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
473235
474− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" says"},"finish_reason":null}]}
236+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
475237
476− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
238+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
477239
478− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
240+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
479241
480− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
242+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
481243
482− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
244+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
483245
484− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Actually"},"finish_reason":null}]}
246+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
485247
486− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" rule"},"finish_reason":null}]}
248+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
487249
488− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
250+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
489251
490− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Do"},"finish_reason":null}]}
252+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
491253
492− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" not"},"finish_reason":null}]}
254+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
493255
494− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
256+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" →"},"finish_reason":null}]}
495257
496− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
258+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
497259
498− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
260+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
499261
500− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
262+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
501263
502− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
264+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
503265
504− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
266+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
505267
506− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
268+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
507269
508− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" cannot"},"finish_reason":null}]}
270+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" World"},"finish_reason":null}]}
509271
510− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
272+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
511273
512− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
274+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
513275
514− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
276+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" →"},"finish_reason":null}]}
515277
516− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Remove"},"finish_reason":null}]}
278+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
517279
518− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
280+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
519281
520− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
282+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
521283
522− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
284+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
523285
524− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
286+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
525287
526− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
288+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
527289
528− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Mult"},"finish_reason":null}]}
290+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
529291
530− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ied"},"finish_reason":null}]}
292+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
531293
532− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"it"},"finish_reason":null}]}
294+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
533295
534− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" change"},"finish_reason":null}]}
296+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" →"},"finish_reason":null}]}
535297
536− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" greeting"},"finish_reason":null}]}
298+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
537299
538− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
300+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
539301
540− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" add"},"finish_reason":null}]}
302+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
541303
542− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" comment"},"finish_reason":null}]}
304+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
543305
544− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
306+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
545307
546− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
308+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
547309
548− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
310+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
549311
550− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Mult"},"finish_reason":null}]}
312+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
551313
552− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ied"},"finish_reason":null}]}
314+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
553315
554− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"it"},"finish_reason":null}]}
316+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" →"},"finish_reason":null}]}
555317
556− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
318+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
557319
558− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
320+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
559321
560− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
322+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
561323
562− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
324+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
563325
564− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
326+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
565327
566− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
328+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
567329
568− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
330+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Crush"},"finish_reason":null}]}
569331
570− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
332+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
571333
572− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
334+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
573335
574− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
336+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" →"},"finish_reason":null}]}
575337
576− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" change"},"finish_reason":null}]}
338+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
577339
578− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
340+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
579341
580− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
342+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
581343
582− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
344+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
583345
584− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
346+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
585347
586− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
348+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
587349
588− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
350+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
589351
590− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
352+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
591353
592− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
354+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
593355
594− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
356+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" →"},"finish_reason":null}]}
595357
596− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
358+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
597359
598− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
360+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
599361
600− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
362+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
601363
602− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" greeting"},"finish_reason":null}]}
364+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
603365
604− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
366+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
605367
606− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
368+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
607369
608− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
370+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" comment"},"finish_reason":null}]}
609371
610− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
372+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
611373
612− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
374+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
613375
614− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
376+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" →"},"finish_reason":null}]}
615377
616− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
378+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"48"},"finish_reason":null}]}
617379
618− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
380+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
619381
620− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
382+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
621383
622− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
384+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
623385
624− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
386+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
625387
626− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
388+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
627389
628− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
390+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
629391
630− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
392+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
631393
632− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
394+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
633395
634− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
396+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
635397
636− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
398+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
637399
638− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
400+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
639401
640− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
402+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Return"},"finish_reason":null}]}
641403
642− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
404+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
643405
644− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
406+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
645407
646− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
408+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Replace"},"finish_reason":null}]}
647409
648− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
410+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Hello"},"finish_reason":null}]}
649411
650− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" add"},"finish_reason":null}]}
412+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" World"},"finish_reason":null}]}
651413
652− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
414+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" with"},"finish_reason":null}]}
653415
654− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
416+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Hello"},"finish_reason":null}]}
655417
656− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
418+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Crush"},"finish_reason":null}]}
657419
658− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
420+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
659421
660− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
422+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" comment"},"finish_reason":null}]}
661423
662− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
424+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
663425
664− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
665−
666− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
667−
668− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
669−
670− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
671−
672− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
673−
674− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" comment"},"finish_reason":null}]}
675−
676− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
677−
678− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
679−
680− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
681−
682− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
683−
684− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
685−
686− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
687−
688− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
689−
690− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
691−
692− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
693−
694− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" okay"},"finish_reason":null}]}
695−
696− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
697−
698− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
699−
700− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
701−
702− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
703−
704− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Return"},"finish_reason":null}]}
705−
706− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
707−
708− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
709−
710− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
711−
712− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Mult"},"finish_reason":null}]}
713−
714− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"ied"},"finish_reason":null}]}
715−
716− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"it"},"finish_reason":null}]}
717−
718− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" change"},"finish_reason":null}]}
719−
720− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" greeting"},"finish_reason":null}]}
721−
722− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
723−
724− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" add"},"finish_reason":null}]}
725−
726− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" comment"},"finish_reason":null}]}
727−
728− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
729−
730− data: {"id":"chatcmpl-f0ea2851314350c1bab8d6ee","object":"chat.completion.chunk","created":1780069697,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":236,"completion_tokens":301,"total_tokens":537,"completion_tokens_details":{"reasoning_tokens":284},"cost":{"usd":0.00039933,"hypercredits":0.0079866},"remaining":{"hypercredits":0}}}
426+ data: {"id":"chatcmpl-3a2bdd3be4a0bf06586e6874","object":"chat.completion.chunk","created":1781202031,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":223,"completion_tokens":177,"total_tokens":400,"completion_tokens_details":{"reasoning_tokens":139},"cost":{"usd":0.00024528,"hypercredits":0.0049055999999999995},"remaining":{"hypercredits":0}}}
731427
732428 data: [DONE]
733429
@@ -736,15 +432,15 @@ interactions:
736432 - text/event-stream
737433 status: 200 OK
738434 code: 200
739− duration: 394.4095ms
435+ duration: 1.269806291s
740436- id: 2
741437 request:
742438 proto: HTTP/1.1
743439 proto_major: 1
744440 proto_minor: 1
745− content_length: 34570
441+ content_length: 34456
746442 host: ""
747− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use multiedit to change 'Hello, World!' to 'Hello, Crush!' and add a comment '// Greeting' above the fmt.Println line in main.go\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_4BvAOulZ4vPbT3o9XRDa7mrF\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"Let me first read the main.go file to understand its current content.\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\tfmt.Println(\\\"Hello, World!\\\")\\n 7|}\\n 8|\\n</file>\\n\",\"tool_call_id\":\"call_4BvAOulZ4vPbT3o9XRDa7mrF\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
443+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use multiedit to change 'Hello, World!' to 'Hello, Crush!' and add a comment '// Greeting' above the fmt.Println line in main.go\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_311d1fd1bb9ba356\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\tfmt.Println(\\\"Hello, World!\\\")\\n 7|}\\n 8|\\n</file>\\n\",\"tool_call_id\":\"call_311d1fd1bb9ba356\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
748444 headers:
749445 Accept:
750446 - application/json
@@ -761,175 +457,65 @@ interactions:
761457 content_length: -1
762458 uncompressed: true
763459 body: |+
764− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
765−
766− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_aHnPYHta9B2b9HfMoNV5jxjf","type":"function","index":0,"function":{"name":"multiedit","arguments":""}}]},"finish_reason":null}]}
767−
768− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
769−
770− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
771−
772− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"edits\": "}}]},"finish_reason":null}]}
773−
774− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"["}}]},"finish_reason":null}]}
775−
776− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\""}}]},"finish_reason":null}]}
777−
778− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"new"}}]},"finish_reason":null}]}
779−
780− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_string"}}]},"finish_reason":null}]}
781−
782− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":"}}]},"finish_reason":null}]}
783−
784− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \""}}]},"finish_reason":null}]}
785−
786− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Hello"}}]},"finish_reason":null}]}
787−
788− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":","}}]},"finish_reason":null}]}
789−
790− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" Crush"}}]},"finish_reason":null}]}
791−
792− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"!\","}}]},"finish_reason":null}]}
793−
794− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \""}}]},"finish_reason":null}]}
795−
796− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"old"}}]},"finish_reason":null}]}
797−
798− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_string"}}]},"finish_reason":null}]}
799−
800− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":"}}]},"finish_reason":null}]}
801−
802− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \""}}]},"finish_reason":null}]}
803−
804− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Hello"}}]},"finish_reason":null}]}
805−
806− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":","}}]},"finish_reason":null}]}
807−
808− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" World"}}]},"finish_reason":null}]}
809−
810− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"!\""}}]},"finish_reason":null}]}
811−
812− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"},"}}]},"finish_reason":null}]}
813−
814− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" {\""}}]},"finish_reason":null}]}
815−
816− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"new"}}]},"finish_reason":null}]}
460+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
817461
818− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_string"}}]},"finish_reason":null}]}
462+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_3ef0a3d06c76c5cd","type":"function","index":0,"function":{"name":"multiedit","arguments":""}}]},"finish_reason":null}]}
819463
820− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":"}}]},"finish_reason":null}]}
464+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
821465
822− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \"\\"}}]},"finish_reason":null}]}
466+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"edits\": "}}]},"finish_reason":null}]}
823467
824− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"t"}}]},"finish_reason":null}]}
468+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"[{\"new_string"}}]},"finish_reason":null}]}
825469
826− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"//"}}]},"finish_reason":null}]}
470+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\": \"Hello"}}]},"finish_reason":null}]}
827471
828− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" G"}}]},"finish_reason":null}]}
472+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":", Crush"}}]},"finish_reason":null}]}
829473
830− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"reeting"}}]},"finish_reason":null}]}
474+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"!\", \"old"}}]},"finish_reason":null}]}
831475
832− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\n"}}]},"finish_reason":null}]}
476+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_string\": \"Hello"}}]},"finish_reason":null}]}
833477
834− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\t"}}]},"finish_reason":null}]}
478+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":", World!\"},"}}]},"finish_reason":null}]}
835479
836− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"fmt"}}]},"finish_reason":null}]}
480+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" {\"new_string\":"}}]},"finish_reason":null}]}
837481
838− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".Println"}}]},"finish_reason":null}]}
482+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \"\\t// G"}}]},"finish_reason":null}]}
839483
840− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"(\\\""}}]},"finish_reason":null}]}
484+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"reeting\\n\\t"}}]},"finish_reason":null}]}
841485
842− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Hello"}}]},"finish_reason":null}]}
486+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"fmt.Println(\\\""}}]},"finish_reason":null}]}
843487
844− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":","}}]},"finish_reason":null}]}
488+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Hello, Crush!\\"}}]},"finish_reason":null}]}
845489
846− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" Crush"}}]},"finish_reason":null}]}
490+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\")\", \"old"}}]},"finish_reason":null}]}
847491
848− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"!\\"}}]},"finish_reason":null}]}
492+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_string\": \"\\t"}}]},"finish_reason":null}]}
849493
850− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\")"}}]},"finish_reason":null}]}
494+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"fmt.Println(\\\"Hello"}}]},"finish_reason":null}]}
851495
852− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\","}}]},"finish_reason":null}]}
496+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":", Crush"}}]},"finish_reason":null}]}
853497
854− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \""}}]},"finish_reason":null}]}
498+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"!\\\")\"}"}}]},"finish_reason":null}]}
855499
856− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"old"}}]},"finish_reason":null}]}
500+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"], "}}]},"finish_reason":null}]}
857501
858− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_string"}}]},"finish_reason":null}]}
502+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": "}}]},"finish_reason":null}]}
859503
860− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":"}}]},"finish_reason":null}]}
504+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/tmp/crush-test"}}]},"finish_reason":null}]}
861505
862− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \"\\"}}]},"finish_reason":null}]}
506+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/TestCoderAgent/g"}}]},"finish_reason":null}]}
863507
864− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"tf"}}]},"finish_reason":null}]}
508+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lm-5."}}]},"finish_reason":null}]}
865509
866− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"mt"}}]},"finish_reason":null}]}
510+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1/multied"}}]},"finish_reason":null}]}
867511
868− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".Println"}}]},"finish_reason":null}]}
512+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"it_tool/main.go"}}]},"finish_reason":null}]}
869513
870− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"(\\\""}}]},"finish_reason":null}]}
514+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
871515
872− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Hello"}}]},"finish_reason":null}]}
516+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
873517
874− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":","}}]},"finish_reason":null}]}
875−
876− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" Crush"}}]},"finish_reason":null}]}
877−
878− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"!\\"}}]},"finish_reason":null}]}
879−
880− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\")"}}]},"finish_reason":null}]}
881−
882− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
883−
884− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"]"}}]},"finish_reason":null}]}
885−
886− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":", \"file_path\": "}}]},"finish_reason":null}]}
887−
888− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/tmp"}}]},"finish_reason":null}]}
889−
890− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/c"}}]},"finish_reason":null}]}
891−
892− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush"}}]},"finish_reason":null}]}
893−
894− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test"}}]},"finish_reason":null}]}
895−
896− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/Test"}}]},"finish_reason":null}]}
897−
898− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Coder"}}]},"finish_reason":null}]}
899−
900− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent"}}]},"finish_reason":null}]}
901−
902− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/g"}}]},"finish_reason":null}]}
903−
904− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lm"}}]},"finish_reason":null}]}
905−
906− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-"}}]},"finish_reason":null}]}
907−
908− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5"}}]},"finish_reason":null}]}
909−
910− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"."}}]},"finish_reason":null}]}
911−
912− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1"}}]},"finish_reason":null}]}
913−
914− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/m"}}]},"finish_reason":null}]}
915−
916− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"ult"}}]},"finish_reason":null}]}
917−
918− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"ied"}}]},"finish_reason":null}]}
919−
920− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"it"}}]},"finish_reason":null}]}
921−
922− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_tool"}}]},"finish_reason":null}]}
923−
924− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/main"}}]},"finish_reason":null}]}
925−
926− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".go"}}]},"finish_reason":null}]}
927−
928− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
929−
930− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
931−
932− data: {"id":"chatcmpl-4c94d5eb32ed6ae8c840e50c","object":"chat.completion.chunk","created":1780069698,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":118,"completion_tokens":95,"total_tokens":8021,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.00055358,"hypercredits":0.0110716},"remaining":{"hypercredits":0}}}
518+ data: {"id":"chatcmpl-43367ceee1445fdd4cadb96a","object":"chat.completion.chunk","created":1781202031,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":793,"completion_tokens":93,"total_tokens":8017,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0015193999999999997,"hypercredits":0.030387999999999995},"remaining":{"hypercredits":0}}}
933519
934520 data: [DONE]
935521
@@ -938,15 +524,15 @@ interactions:
938524 - text/event-stream
939525 status: 200 OK
940526 code: 200
941− duration: 521.977833ms
527+ duration: 606.55525ms
942528- id: 3
943529 request:
944530 proto: HTTP/1.1
945531 proto_major: 1
946532 proto_minor: 1
947− content_length: 35222
533+ content_length: 35069
948534 host: ""
949− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use multiedit to change 'Hello, World!' to 'Hello, Crush!' and add a comment '// Greeting' above the fmt.Println line in main.go\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_4BvAOulZ4vPbT3o9XRDa7mrF\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"Let me first read the main.go file to understand its current content.\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\tfmt.Println(\\\"Hello, World!\\\")\\n 7|}\\n 8|\\n</file>\\n\",\"tool_call_id\":\"call_4BvAOulZ4vPbT3o9XRDa7mrF\",\"role\":\"tool\"},{\"tool_calls\":[{\"id\":\"call_aHnPYHta9B2b9HfMoNV5jxjf\",\"function\":{\"arguments\":\"{\\\"edits\\\": [{\\\"new_string\\\": \\\"Hello, Crush!\\\", \\\"old_string\\\": \\\"Hello, World!\\\"}, {\\\"new_string\\\": \\\"\\\\t// Greeting\\\\n\\\\tfmt.Println(\\\\\\\"Hello, Crush!\\\\\\\")\\\", \\\"old_string\\\": \\\"\\\\tfmt.Println(\\\\\\\"Hello, Crush!\\\\\\\")\\\"}], \\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"multiedit\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"\"},{\"content\":\"<result>\\nApplied 2 edits to file: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\n</result>\\n\",\"tool_call_id\":\"call_aHnPYHta9B2b9HfMoNV5jxjf\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
535+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use multiedit to change 'Hello, World!' to 'Hello, Crush!' and add a comment '// Greeting' above the fmt.Println line in main.go\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_311d1fd1bb9ba356\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\tfmt.Println(\\\"Hello, World!\\\")\\n 7|}\\n 8|\\n</file>\\n\",\"tool_call_id\":\"call_311d1fd1bb9ba356\",\"role\":\"tool\"},{\"tool_calls\":[{\"id\":\"call_3ef0a3d06c76c5cd\",\"function\":{\"arguments\":\"{\\\"edits\\\": [{\\\"new_string\\\": \\\"Hello, Crush!\\\", \\\"old_string\\\": \\\"Hello, World!\\\"}, {\\\"new_string\\\": \\\"\\\\t// Greeting\\\\n\\\\tfmt.Println(\\\\\\\"Hello, Crush!\\\\\\\")\\\", \\\"old_string\\\": \\\"\\\\tfmt.Println(\\\\\\\"Hello, Crush!\\\\\\\")\\\"}], \\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"multiedit\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"<result>\\nApplied 2 edits to file: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\n</result>\\n\",\"tool_call_id\":\"call_3ef0a3d06c76c5cd\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
950536 headers:
951537 Accept:
952538 - application/json
@@ -963,61 +549,27 @@ interactions:
963549 content_length: -1
964550 uncompressed: true
965551 body: |+
966− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
967−
968− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_Qp5BlRVFac2IqxDa86BHkiPX","type":"function","index":0,"function":{"name":"view","arguments":""}}]},"finish_reason":null}]}
552+ data: {"id":"chatcmpl-326961238bd16a4c23d3bd32","object":"chat.completion.chunk","created":1781202033,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
969553
970− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
554+ data: {"id":"chatcmpl-326961238bd16a4c23d3bd32","object":"chat.completion.chunk","created":1781202033,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_f6b6c818ab50c69a","type":"function","index":0,"function":{"name":"view","arguments":""}}]},"finish_reason":null}]}
971555
972− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
556+ data: {"id":"chatcmpl-326961238bd16a4c23d3bd32","object":"chat.completion.chunk","created":1781202033,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
973557
974− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": "}}]},"finish_reason":null}]}
558+ data: {"id":"chatcmpl-326961238bd16a4c23d3bd32","object":"chat.completion.chunk","created":1781202033,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": \"/tmp/c"}}]},"finish_reason":null}]}
975559
976− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/tmp"}}]},"finish_reason":null}]}
560+ data: {"id":"chatcmpl-326961238bd16a4c23d3bd32","object":"chat.completion.chunk","created":1781202033,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush-test/TestCoder"}}]},"finish_reason":null}]}
977561
978− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/c"}}]},"finish_reason":null}]}
562+ data: {"id":"chatcmpl-326961238bd16a4c23d3bd32","object":"chat.completion.chunk","created":1781202033,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent/glm-"}}]},"finish_reason":null}]}
979563
980− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush"}}]},"finish_reason":null}]}
564+ data: {"id":"chatcmpl-326961238bd16a4c23d3bd32","object":"chat.completion.chunk","created":1781202033,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5.1/m"}}]},"finish_reason":null}]}
981565
982− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test"}}]},"finish_reason":null}]}
566+ data: {"id":"chatcmpl-326961238bd16a4c23d3bd32","object":"chat.completion.chunk","created":1781202033,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"ultiedit_tool"}}]},"finish_reason":null}]}
983567
984− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/Test"}}]},"finish_reason":null}]}
568+ data: {"id":"chatcmpl-326961238bd16a4c23d3bd32","object":"chat.completion.chunk","created":1781202033,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/main.go\"}"}}]},"finish_reason":null}]}
985569
986− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Coder"}}]},"finish_reason":null}]}
570+ data: {"id":"chatcmpl-326961238bd16a4c23d3bd32","object":"chat.completion.chunk","created":1781202033,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
987571
988− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent"}}]},"finish_reason":null}]}
989−
990− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/g"}}]},"finish_reason":null}]}
991−
992− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lm"}}]},"finish_reason":null}]}
993−
994− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-"}}]},"finish_reason":null}]}
995−
996− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5"}}]},"finish_reason":null}]}
997−
998− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"."}}]},"finish_reason":null}]}
999−
1000− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1"}}]},"finish_reason":null}]}
1001−
1002− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/m"}}]},"finish_reason":null}]}
1003−
1004− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"ult"}}]},"finish_reason":null}]}
1005−
1006− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"ied"}}]},"finish_reason":null}]}
1007−
1008− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"it"}}]},"finish_reason":null}]}
1009−
1010− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_tool"}}]},"finish_reason":null}]}
1011−
1012− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/main"}}]},"finish_reason":null}]}
1013−
1014− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".go"}}]},"finish_reason":null}]}
1015−
1016− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
1017−
1018− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
1019−
1020− data: {"id":"chatcmpl-731f796a13fe54cfbf8196d7","object":"chat.completion.chunk","created":1780069699,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":60,"completion_tokens":31,"total_tokens":8091,"prompt_tokens_details":{"cached_tokens":8000},"cost":{"usd":0.00020880000000000003,"hypercredits":0.004176},"remaining":{"hypercredits":0}}}
572+ data: {"id":"chatcmpl-326961238bd16a4c23d3bd32","object":"chat.completion.chunk","created":1781202033,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":926,"completion_tokens":29,"total_tokens":8086,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.001424,"hypercredits":0.02848},"remaining":{"hypercredits":0}}}
1021573
1022574 data: [DONE]
1023575
@@ -1026,15 +578,15 @@ interactions:
1026578 - text/event-stream
1027579 status: 200 OK
1028580 code: 200
1029− duration: 895.18625ms
581+ duration: 656.35875ms
1030582- id: 4
1031583 request:
1032584 proto: HTTP/1.1
1033585 proto_major: 1
1034586 proto_minor: 1
1035− content_length: 35721
587+ content_length: 35529
1036588 host: ""
1037− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use multiedit to change 'Hello, World!' to 'Hello, Crush!' and add a comment '// Greeting' above the fmt.Println line in main.go\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_4BvAOulZ4vPbT3o9XRDa7mrF\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"Let me first read the main.go file to understand its current content.\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\tfmt.Println(\\\"Hello, World!\\\")\\n 7|}\\n 8|\\n</file>\\n\",\"tool_call_id\":\"call_4BvAOulZ4vPbT3o9XRDa7mrF\",\"role\":\"tool\"},{\"tool_calls\":[{\"id\":\"call_aHnPYHta9B2b9HfMoNV5jxjf\",\"function\":{\"arguments\":\"{\\\"edits\\\": [{\\\"new_string\\\": \\\"Hello, Crush!\\\", \\\"old_string\\\": \\\"Hello, World!\\\"}, {\\\"new_string\\\": \\\"\\\\t// Greeting\\\\n\\\\tfmt.Println(\\\\\\\"Hello, Crush!\\\\\\\")\\\", \\\"old_string\\\": \\\"\\\\tfmt.Println(\\\\\\\"Hello, Crush!\\\\\\\")\\\"}], \\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"multiedit\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"\"},{\"content\":\"<result>\\nApplied 2 edits to file: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\n</result>\\n\",\"tool_call_id\":\"call_aHnPYHta9B2b9HfMoNV5jxjf\",\"role\":\"tool\"},{\"tool_calls\":[{\"id\":\"call_Qp5BlRVFac2IqxDa86BHkiPX\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\t// Greeting\\n 7|\\tfmt.Println(\\\"Hello, Crush!\\\")\\n 8|}\\n 9|\\n</file>\\n\",\"tool_call_id\":\"call_Qp5BlRVFac2IqxDa86BHkiPX\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
589+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use multiedit to change 'Hello, World!' to 'Hello, Crush!' and add a comment '// Greeting' above the fmt.Println line in main.go\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_311d1fd1bb9ba356\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\tfmt.Println(\\\"Hello, World!\\\")\\n 7|}\\n 8|\\n</file>\\n\",\"tool_call_id\":\"call_311d1fd1bb9ba356\",\"role\":\"tool\"},{\"tool_calls\":[{\"id\":\"call_3ef0a3d06c76c5cd\",\"function\":{\"arguments\":\"{\\\"edits\\\": [{\\\"new_string\\\": \\\"Hello, Crush!\\\", \\\"old_string\\\": \\\"Hello, World!\\\"}, {\\\"new_string\\\": \\\"\\\\t// Greeting\\\\n\\\\tfmt.Println(\\\\\\\"Hello, Crush!\\\\\\\")\\\", \\\"old_string\\\": \\\"\\\\tfmt.Println(\\\\\\\"Hello, Crush!\\\\\\\")\\\"}], \\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"multiedit\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"<result>\\nApplied 2 edits to file: /tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\n</result>\\n\",\"tool_call_id\":\"call_3ef0a3d06c76c5cd\",\"role\":\"tool\"},{\"tool_calls\":[{\"id\":\"call_f6b6c818ab50c69a\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/multiedit_tool/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\t// Greeting\\n 7|\\tfmt.Println(\\\"Hello, Crush!\\\")\\n 8|}\\n 9|\\n</file>\\n\",\"tool_call_id\":\"call_f6b6c818ab50c69a\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1038590 headers:
1039591 Accept:
1040592 - application/json
@@ -1051,63 +603,37 @@ interactions:
1051603 content_length: -1
1052604 uncompressed: true
1053605 body: |+
1054− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
1055−
1056− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Done"},"finish_reason":null}]}
1057−
1058− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}]}
1059−
1060− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" Updated"},"finish_reason":null}]}
1061−
1062− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" greeting"},"finish_reason":null}]}
1063−
1064− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}]}
1065−
1066− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" \""},"finish_reason":null}]}
1067−
1068− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}
1069−
1070− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":","},"finish_reason":null}]}
1071−
1072− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" Crush"},"finish_reason":null}]}
1073−
1074− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"!\""},"finish_reason":null}]}
1075−
1076− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
1077−
1078− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" added"},"finish_reason":null}]}
1079−
1080− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
606+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
1081607
1082− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"//"},"finish_reason":null}]}
608+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Done"},"finish_reason":null}]}
1083609
1084− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" G"},"finish_reason":null}]}
610+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":". Both changes applied"},"finish_reason":null}]}
1085611
1086− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"reeting"},"finish_reason":null}]}
612+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":": string"},"finish_reason":null}]}
1087613
1088− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
614+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" updated"},"finish_reason":null}]}
1089615
1090− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" comment"},"finish_reason":null}]}
616+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" to `\""},"finish_reason":null}]}
1091617
1092− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" above"},"finish_reason":null}]}
618+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Hello, Crush"},"finish_reason":null}]}
1093619
1094− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" the"},"finish_reason":null}]}
620+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"!\"` and"},"finish_reason":null}]}
1095621
1096− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
622+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
1097623
1098− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"fmt"},"finish_reason":null}]}
624+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"// G"},"finish_reason":null}]}
1099625
1100− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".Println"},"finish_reason":null}]}
626+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"reeting` comment"},"finish_reason":null}]}
1101627
1102− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
628+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" added above the `"},"finish_reason":null}]}
1103629
1104− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" line"},"finish_reason":null}]}
630+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"fmt.Println` line"},"finish_reason":null}]}
1105631
1106− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}]}
632+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}]}
1107633
1108− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
634+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
1109635
1110− data: {"id":"chatcmpl-7ec589f575c15e2f5709ca1c","object":"chat.completion.chunk","created":1780069700,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":96,"completion_tokens":28,"total_tokens":8188,"prompt_tokens_details":{"cached_tokens":8064},"cost":{"usd":0.00024336000000000003,"hypercredits":0.0048672},"remaining":{"hypercredits":0}}}
636+ data: {"id":"chatcmpl-20b957dca4dce889a0e11187","object":"chat.completion.chunk","created":1781202034,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":294,"completion_tokens":31,"total_tokens":8187,"prompt_tokens_details":{"cached_tokens":7862},"cost":{"usd":0.000548,"hypercredits":0.01096},"remaining":{"hypercredits":0}}}
1111637
1112638 data: [DONE]
1113639
@@ -1116,4 +642,4 @@ interactions:
1116642 - text/event-stream
1117643 status: 200 OK
1118644 code: 200
1119− duration: 958.960958ms
645+ duration: 719.791ms
internal/agent/testdata/TestCoderAgent/glm-5.1/parallel_tool_calls.yaml+349−249
@@ -2,6 +2,110 @@
22version: 2
33interactions:
44- id: 0
5+ request:
6+ proto: HTTP/1.1
7+ proto_major: 1
8+ proto_minor: 1
9+ content_length: 34029
10+ host: ""
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/parallel_tool_calls\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use glob to find all .go files and use ls to list the current directory, it is very important that you run both tool calls in parallel\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
12+ headers:
13+ Accept:
14+ - application/json
15+ Content-Type:
16+ - application/json
17+ User-Agent:
18+ - Charm-Crush/devel (https://charm.land/crush)
19+ url: https://hyper.charm.land/v1/chat/completions
20+ method: POST
21+ response:
22+ proto: HTTP/2.0
23+ proto_major: 2
24+ proto_minor: 0
25+ content_length: -1
26+ uncompressed: true
27+ body: |+
28+ data: {"id":"chatcmpl-a3771d94dc7913fa31853e18","object":"chat.completion.chunk","created":1781202042,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
29+
30+ data: {"id":"chatcmpl-a3771d94dc7913fa31853e18","object":"chat.completion.chunk","created":1781202042,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_9a7738cf120a17c3","type":"function","index":0,"function":{"name":"glob","arguments":""}}]},"finish_reason":null}]}
31+
32+ data: {"id":"chatcmpl-a3771d94dc7913fa31853e18","object":"chat.completion.chunk","created":1781202042,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
33+
34+ data: {"id":"chatcmpl-a3771d94dc7913fa31853e18","object":"chat.completion.chunk","created":1781202042,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"pattern\": \"**"}}]},"finish_reason":null}]}
35+
36+ data: {"id":"chatcmpl-a3771d94dc7913fa31853e18","object":"chat.completion.chunk","created":1781202042,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/*.go\"}"}}]},"finish_reason":null}]}
37+
38+ data: {"id":"chatcmpl-a3771d94dc7913fa31853e18","object":"chat.completion.chunk","created":1781202042,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_184ae8e2d0172741","type":"function","index":1,"function":{"name":"ls","arguments":""}}]},"finish_reason":null}]}
39+
40+ data: {"id":"chatcmpl-a3771d94dc7913fa31853e18","object":"chat.completion.chunk","created":1781202042,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"{}"}}]},"finish_reason":null}]}
41+
42+ data: {"id":"chatcmpl-a3771d94dc7913fa31853e18","object":"chat.completion.chunk","created":1781202042,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
43+
44+ data: {"id":"chatcmpl-a3771d94dc7913fa31853e18","object":"chat.completion.chunk","created":1781202042,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":698,"completion_tokens":14,"total_tokens":7843,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0010387999999999999,"hypercredits":0.020775999999999996},"remaining":{"hypercredits":0}}}
45+
46+ data: [DONE]
47+
48+ headers:
49+ Content-Type:
50+ - text/event-stream
51+ status: 200 OK
52+ code: 200
53+ duration: 752.637833ms
54+- id: 1
55+ request:
56+ proto: HTTP/1.1
57+ proto_major: 1
58+ proto_minor: 1
59+ content_length: 34565
60+ host: ""
61+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/parallel_tool_calls\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use glob to find all .go files and use ls to list the current directory, it is very important that you run both tool calls in parallel\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_9a7738cf120a17c3\",\"function\":{\"arguments\":\"{\\\"pattern\\\": \\\"**/*.go\\\"}\",\"name\":\"glob\"},\"type\":\"function\"},{\"id\":\"call_184ae8e2d0172741\",\"function\":{\"arguments\":\"{}\",\"name\":\"ls\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"/tmp/crush-test/TestCoderAgent/glm-5.1/parallel_tool_calls/main.go\",\"tool_call_id\":\"call_9a7738cf120a17c3\",\"role\":\"tool\"},{\"content\":\"\\n- /tmp/crush-test/TestCoderAgent/glm-5.1/parallel_tool_calls/\\n - go.mod\\n - main.go\\n\",\"tool_call_id\":\"call_184ae8e2d0172741\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
62+ headers:
63+ Accept:
64+ - application/json
65+ Content-Type:
66+ - application/json
67+ User-Agent:
68+ - Charm-Crush/devel (https://charm.land/crush)
69+ url: https://hyper.charm.land/v1/chat/completions
70+ method: POST
71+ response:
72+ proto: HTTP/2.0
73+ proto_major: 2
74+ proto_minor: 0
75+ content_length: -1
76+ uncompressed: true
77+ body: |+
78+ data: {"id":"chatcmpl-20db1d6ddd5d25b88e25806a","object":"chat.completion.chunk","created":1781202043,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
79+
80+ data: {"id":"chatcmpl-20db1d6ddd5d25b88e25806a","object":"chat.completion.chunk","created":1781202043,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Found"},"finish_reason":null}]}
81+
82+ data: {"id":"chatcmpl-20db1d6ddd5d25b88e25806a","object":"chat.completion.chunk","created":1781202043,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}]}
83+
84+ data: {"id":"chatcmpl-20db1d6ddd5d25b88e25806a","object":"chat.completion.chunk","created":1781202043,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"1 `.go`"},"finish_reason":null}]}
85+
86+ data: {"id":"chatcmpl-20db1d6ddd5d25b88e25806a","object":"chat.completion.chunk","created":1781202043,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" file: `main"},"finish_reason":null}]}
87+
88+ data: {"id":"chatcmpl-20db1d6ddd5d25b88e25806a","object":"chat.completion.chunk","created":1781202043,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".go`. The directory"},"finish_reason":null}]}
89+
90+ data: {"id":"chatcmpl-20db1d6ddd5d25b88e25806a","object":"chat.completion.chunk","created":1781202043,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" contains `go"},"finish_reason":null}]}
91+
92+ data: {"id":"chatcmpl-20db1d6ddd5d25b88e25806a","object":"chat.completion.chunk","created":1781202043,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".mod` and `"},"finish_reason":null}]}
93+
94+ data: {"id":"chatcmpl-20db1d6ddd5d25b88e25806a","object":"chat.completion.chunk","created":1781202043,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"main.go`."},"finish_reason":null}]}
95+
96+ data: {"id":"chatcmpl-20db1d6ddd5d25b88e25806a","object":"chat.completion.chunk","created":1781202043,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
97+
98+ data: {"id":"chatcmpl-20db1d6ddd5d25b88e25806a","object":"chat.completion.chunk","created":1781202043,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":58,"completion_tokens":24,"total_tokens":7924,"prompt_tokens_details":{"cached_tokens":7842},"cost":{"usd":0.0001868,"hypercredits":0.0037359999999999997},"remaining":{"hypercredits":0}}}
99+
100+ data: [DONE]
101+
102+ headers:
103+ Content-Type:
104+ - text/event-stream
105+ status: 200 OK
106+ code: 200
107+ duration: 573.520375ms
108+- id: 2
5109 request:
6110 proto: HTTP/1.1
7111 proto_major: 1
@@ -25,441 +129,437 @@ interactions:
25129 content_length: -1
26130 uncompressed: true
27131 body: |+
28− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
132+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
29133
30− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
134+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
31135
32− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
136+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
33137
34− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" asks"},"finish_reason":null}]}
138+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
35139
36− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
140+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" generate"},"finish_reason":null}]}
37141
38− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
142+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
39143
40− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
144+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
41145
42− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
146+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
43147
44− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
148+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
45149
46− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
150+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\u003c="},"finish_reason":null}]}
47151
48− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
152+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
49153
50− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
154+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
51155
52− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
156+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
53157
54− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
158+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
55159
56− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
160+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
57161
58− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
162+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user's"},"finish_reason":null}]}
59163
60− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
164+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" request"},"finish_reason":null}]}
61165
62− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
166+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
63167
64− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" find"},"finish_reason":null}]}
168+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" The"},"finish_reason":null}]}
65169
66− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
170+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" request"},"finish_reason":null}]}
67171
68− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
172+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
69173
70− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
174+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
71175
72− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
176+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
73177
74− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
178+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
75179
76− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
180+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
77181
78− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
182+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
79183
80− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
184+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
81185
82− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" list"},"finish_reason":null}]}
186+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
83187
84− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
188+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
85189
86− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
190+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
87191
88− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
192+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
89193
90− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
194+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
91195
92− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" it"},"finish_reason":null}]}
196+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
93197
94− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" is"},"finish_reason":null}]}
198+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
95199
96− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" very"},"finish_reason":null}]}
200+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" find"},"finish_reason":null}]}
97201
98− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" important"},"finish_reason":null}]}
202+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
99203
100− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
204+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
101205
102− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" you"},"finish_reason":null}]}
206+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
103207
104− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" run"},"finish_reason":null}]}
208+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
105209
106− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" both"},"finish_reason":null}]}
210+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
107211
108− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" tool"},"finish_reason":null}]}
212+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
109213
110− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" calls"},"finish_reason":null}]}
214+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
111215
112− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
216+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ..."},"finish_reason":null}]}
113217
114− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" parallel"},"finish_reason":null}]}
218+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" run"},"finish_reason":null}]}
115219
116− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
220+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" both"},"finish_reason":null}]}
117221
118− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Need"},"finish_reason":null}]}
222+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" tool"},"finish_reason":null}]}
119223
120− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
224+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" calls"},"finish_reason":null}]}
121225
122− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
226+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
123227
124− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
228+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" parallel"},"finish_reason":null}]}
125229
126− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
230+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
127231
128− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
232+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
129233
130− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
234+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
131235
132− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"),"},"finish_reason":null}]}
236+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
133237
134− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ≤"},"finish_reason":null}]}
238+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
135239
136− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
240+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Parallel"},"finish_reason":null}]}
137241
138− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
242+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Glob"},"finish_reason":null}]}
139243
140− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
244+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
141245
142− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
246+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
143247
144− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
248+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Files"},"finish_reason":null}]}
145249
146− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
250+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
147251
148− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
252+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
149253
150− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
254+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Directory"},"finish_reason":null}]}
151255
152− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
256+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
153257
154− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
258+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
155259
156− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
260+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
157261
158− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
262+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
159263
160− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
264+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
161265
162− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
266+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
163267
164− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
268+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
165269
166− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
270+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
167271
168− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
272+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Parallel"},"finish_reason":null}]}
169273
170− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Parallel"},"finish_reason":null}]}
274+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Glob"},"finish_reason":null}]}
171275
172− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
276+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
173277
174− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
278+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
175279
176− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
280+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Files"},"finish_reason":null}]}
177281
178− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
282+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
179283
180− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
284+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
181285
182− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
286+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Directory"},"finish_reason":null}]}
183287
184− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
288+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
185289
186− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
290+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
187291
188− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
292+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
189293
190− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
294+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
191295
192− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
296+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
193297
194− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
298+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
195299
196− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
300+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" P"},"finish_reason":null}]}
197301
198− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
302+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
199303
200− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
304+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
201305
202− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Parallel"},"finish_reason":null}]}
306+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")a"},"finish_reason":null}]}
203307
204− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
308+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
205309
206− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
310+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"r"},"finish_reason":null}]}
207311
208− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
312+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
209313
210− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
314+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"a"},"finish_reason":null}]}
211315
212− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
316+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
213317
214− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
318+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
215319
216− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
320+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
217321
218− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
322+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
219323
220− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
324+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
221325
222− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
326+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
223327
224− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
328+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
225329
226− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
330+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
227331
228− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" including"},"finish_reason":null}]}
332+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
229333
230− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" spaces"},"finish_reason":null}]}
334+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
231335
232− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
336+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
233337
234− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
338+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
235339
236− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" good"},"finish_reason":null}]}
340+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
237341
238− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
342+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" G"},"finish_reason":null}]}
239343
240− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Or"},"finish_reason":null}]}
344+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
241345
242− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
346+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
243347
244− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Run"},"finish_reason":null}]}
348+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
245349
246− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
350+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"o"},"finish_reason":null}]}
247351
248− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
352+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
249353
250− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
354+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"b"},"finish_reason":null}]}
251355
252− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
356+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
253357
254− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
358+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
255359
256− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
360+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
257361
258− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
362+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
259363
260− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
364+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
261365
262− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" parallel"},"finish_reason":null}]}
366+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
263367
264− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
368+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"15"},"finish_reason":null}]}
265369
266− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
370+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"g"},"finish_reason":null}]}
267371
268− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
372+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
269373
270− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
374+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"o"},"finish_reason":null}]}
271375
272− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
376+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
273377
274− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
378+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
275379
276− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
380+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
277381
278− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
382+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
279383
280− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
384+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
281385
282− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
386+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" F"},"finish_reason":null}]}
283387
284− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" output"},"finish_reason":null}]}
388+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
285389
286− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
390+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"i"},"finish_reason":null}]}
287391
288− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
392+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
289393
290− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
394+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"l"},"finish_reason":null}]}
291395
292− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Parallel"},"finish_reason":null}]}
396+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
293397
294− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" glob"},"finish_reason":null}]}
398+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
295399
296− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ."},"finish_reason":null}]}
400+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
297401
298− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"go"},"finish_reason":null}]}
402+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
299403
300− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" files"},"finish_reason":null}]}
404+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
301405
302− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
406+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
303407
304− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ls"},"finish_reason":null}]}
408+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
305409
306− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" directory"},"finish_reason":null}]}
410+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
307411
308− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
412+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
309413
310− data: {"id":"chatcmpl-fba321fc554468b912a037cf","object":"chat.completion.chunk","created":1780069707,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":233,"completion_tokens":149,"total_tokens":382,"completion_tokens_details":{"reasoning_tokens":132},"cost":{"usd":0.00021335,"hypercredits":0.004267},"remaining":{"hypercredits":0}}}
414+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
311415
312− data: [DONE]
416+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
313417
314− headers:
315− Content-Type:
316− - text/event-stream
317− status: 200 OK
318− code: 200
319− duration: 388.11675ms
320−- id: 1
321− request:
322− proto: HTTP/1.1
323− proto_major: 1
324− proto_minor: 1
325− content_length: 34035
326− host: ""
327− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/parallel_tool_calls\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use glob to find all .go files and use ls to list the current directory, it is very important that you run both tool calls in parallel\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
328− headers:
329− Accept:
330− - application/json
331− Content-Type:
332− - application/json
333− User-Agent:
334− - Charm-Crush/devel (https://charm.land/crush)
335− url: https://hyper.charm.land/v1/chat/completions
336− method: POST
337− response:
338− proto: HTTP/2.0
339− proto_major: 2
340− proto_minor: 0
341− content_length: -1
342− uncompressed: true
343− body: |+
344− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
418+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"n"},"finish_reason":null}]}
345419
346− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_ahYKOjB3foFkbILWEFYd57Y2","type":"function","index":0,"function":{"name":"glob","arguments":""}}]},"finish_reason":null}]}
420+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
347421
348− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
422+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"d"},"finish_reason":null}]}
349423
350− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
424+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
351425
352− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"pattern\": "}}]},"finish_reason":null}]}
426+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
353427
354− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"**"}}]},"finish_reason":null}]}
428+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
355429
356− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/*."}}]},"finish_reason":null}]}
430+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
357431
358− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"go"}}]},"finish_reason":null}]}
432+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
359433
360− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
434+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
361435
362− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_9FOIBVsp5OvFXp01VgCefCPx","type":"function","index":1,"function":{"name":"ls","arguments":""}}]},"finish_reason":null}]}
436+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
363437
364− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":""}}]},"finish_reason":null}]}
438+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"s"},"finish_reason":null}]}
365439
366− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"{"}}]},"finish_reason":null}]}
440+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
367441
368− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"\"depth\": "}}]},"finish_reason":null}]}
442+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
369443
370− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"3"}}]},"finish_reason":null}]}
444+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
371445
372− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"}"}}]},"finish_reason":null}]}
446+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
373447
374− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
448+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
375449
376− data: {"id":"chatcmpl-9a13601d7adcbd5076cd2ee2","object":"chat.completion.chunk","created":1780069707,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":726,"completion_tokens":22,"total_tokens":7852,"prompt_tokens_details":{"cached_tokens":7104},"cost":{"usd":0.0010434600000000002,"hypercredits":0.0208692},"remaining":{"hypercredits":0}}}
450+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
377451
378− data: [DONE]
452+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
379453
380− headers:
381− Content-Type:
382− - text/event-stream
383− status: 200 OK
384− code: 200
385− duration: 972.3925ms
386−- id: 2
387− request:
388− proto: HTTP/1.1
389− proto_major: 1
390− proto_minor: 1
391− content_length: 34615
392− host: ""
393− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/parallel_tool_calls\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use glob to find all .go files and use ls to list the current directory, it is very important that you run both tool calls in parallel\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_ahYKOjB3foFkbILWEFYd57Y2\",\"function\":{\"arguments\":\"{\\\"pattern\\\": \\\"**/*.go\\\"}\",\"name\":\"glob\"},\"type\":\"function\"},{\"id\":\"call_9FOIBVsp5OvFXp01VgCefCPx\",\"function\":{\"arguments\":\"{\\\"depth\\\": 3}\",\"name\":\"ls\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"/tmp/crush-test/TestCoderAgent/glm-5.1/parallel_tool_calls/main.go\",\"tool_call_id\":\"call_ahYKOjB3foFkbILWEFYd57Y2\",\"role\":\"tool\"},{\"content\":\"\\n- /tmp/crush-test/TestCoderAgent/glm-5.1/parallel_tool_calls/\\n - go.mod\\n - main.go\\n\",\"tool_call_id\":\"call_9FOIBVsp5OvFXp01VgCefCPx\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
394− headers:
395− Accept:
396− - application/json
397− Content-Type:
398− - application/json
399− User-Agent:
400− - Charm-Crush/devel (https://charm.land/crush)
401− url: https://hyper.charm.land/v1/chat/completions
402− method: POST
403− response:
404− proto: HTTP/2.0
405− proto_major: 2
406− proto_minor: 0
407− content_length: -1
408− uncompressed: true
409− body: |+
410− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
454+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
455+
456+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" D"},"finish_reason":null}]}
457+
458+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
459+
460+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"i"},"finish_reason":null}]}
461+
462+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
463+
464+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"r"},"finish_reason":null}]}
465+
466+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
467+
468+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"e"},"finish_reason":null}]}
469+
470+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
471+
472+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"c"},"finish_reason":null}]}
473+
474+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
475+
476+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"t"},"finish_reason":null}]}
477+
478+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
479+
480+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"o"},"finish_reason":null}]}
481+
482+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
483+
484+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"r"},"finish_reason":null}]}
485+
486+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
487+
488+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"y"},"finish_reason":null}]}
489+
490+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
491+
492+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
493+
494+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
495+
496+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
497+
498+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
499+
500+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
501+
502+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
503+
504+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Under"},"finish_reason":null}]}
505+
506+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
507+
508+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
509+
510+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
411511
412− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Found"},"finish_reason":null}]}
512+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
413513
414− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}]}
514+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
415515
416− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"1"},"finish_reason":null}]}
516+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Make"},"finish_reason":null}]}
417517
418− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `."},"finish_reason":null}]}
518+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" sure"},"finish_reason":null}]}
419519
420− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"go"},"finish_reason":null}]}
520+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
421521
422− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
522+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
423523
424− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" file"},"finish_reason":null}]}
524+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
425525
426− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":"},"finish_reason":null}]}
526+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
427527
428− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
528+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
429529
430− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"main"},"finish_reason":null}]}
530+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" One"},"finish_reason":null}]}
431531
432− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".go"},"finish_reason":null}]}
532+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
433533
434− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`."},"finish_reason":null}]}
534+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
435535
436− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" Current"},"finish_reason":null}]}
536+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Thus"},"finish_reason":null}]}
437537
438− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" directory"},"finish_reason":null}]}
538+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" output"},"finish_reason":null}]}
439539
440− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" contains"},"finish_reason":null}]}
540+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
441541
442− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
542+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
443543
444− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"go"},"finish_reason":null}]}
544+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Parallel"},"finish_reason":null}]}
445545
446− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".mod"},"finish_reason":null}]}
546+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Glob"},"finish_reason":null}]}
447547
448− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
548+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ."},"finish_reason":null}]}
449549
450− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
550+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"go"},"finish_reason":null}]}
451551
452− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
552+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Files"},"finish_reason":null}]}
453553
454− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"main"},"finish_reason":null}]}
554+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
455555
456− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".go"},"finish_reason":null}]}
556+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ls"},"finish_reason":null}]}
457557
458− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`."},"finish_reason":null}]}
558+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Directory"},"finish_reason":null}]}
459559
460− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
560+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
461561
462− data: {"id":"chatcmpl-0cb64d48ec795818094457c9","object":"chat.completion.chunk","created":1780069708,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":100,"completion_tokens":26,"total_tokens":7934,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.0002402,"hypercredits":0.004804},"remaining":{"hypercredits":0}}}
562+ data: {"id":"chatcmpl-65370c1cc9f9883b8d556e16","object":"chat.completion.chunk","created":1781202042,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":220,"completion_tokens":223,"total_tokens":443,"completion_tokens_details":{"reasoning_tokens":163},"cost":{"usd":0.000290392,"hypercredits":0.00580784},"remaining":{"hypercredits":0}}}
463563
464564 data: [DONE]
465565
@@ -468,4 +568,4 @@ interactions:
468568 - text/event-stream
469569 status: 200 OK
470570 code: 200
471− duration: 507.071084ms
571+ duration: 869.61775ms
internal/agent/testdata/TestCoderAgent/glm-5.1/read_a_file.yaml+144−262
@@ -6,9 +6,9 @@ interactions:
66 proto: HTTP/1.1
77 proto_major: 1
88 proto_minor: 1
9− content_length: 774
9+ content_length: 33902
1010 host: ""
11− body: '{"messages":[{"content":"You will generate a short title based on the first message a user begins a conversation with.\n\n<rules>\n- Keep the title in the same language that the user wrote their message in.\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\nRead the go mod\n <think>\n\n</think>","role":"user"}],"model":"gpt-oss-120b","max_completion_tokens":40,"stream_options":{"include_usage":true},"stream":true}'
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"Read the go mod\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1212 headers:
1313 Accept:
1414 - application/json
@@ -25,273 +25,191 @@ interactions:
2525 content_length: -1
2626 uncompressed: true
2727 body: |+
28− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
29−
30− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
31−
32− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
33−
34− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
35−
36− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" produce"},"finish_reason":null}]}
37−
38− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
39−
40− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
41−
42− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" based"},"finish_reason":null}]}
43−
44− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" on"},"finish_reason":null}]}
45−
46− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user's"},"finish_reason":null}]}
47−
48− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" first"},"finish_reason":null}]}
49−
50− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" message"},"finish_reason":null}]}
51−
52− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
53−
54− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" User"},"finish_reason":null}]}
55−
56− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wrote"},"finish_reason":null}]}
57−
58− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
59−
60− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
61−
62− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
63−
64− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
65−
66− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
67−
68− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
69−
70− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
71−
72− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
73−
74− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
75−
76− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
77−
78− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":\n\n"},"finish_reason":null}]}
79−
80− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Read"},"finish_reason":null}]}
81−
82− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
83−
84− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
28+ data: {"id":"chatcmpl-b4fa8286019d2041d56c67d9","object":"chat.completion.chunk","created":1781202000,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
8529
86− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" mod"},"finish_reason":null}]}
30+ data: {"id":"chatcmpl-b4fa8286019d2041d56c67d9","object":"chat.completion.chunk","created":1781202000,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_e1df83ee25c29c03","type":"function","index":0,"function":{"name":"glob","arguments":""}}]},"finish_reason":null}]}
8731
88− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\n"},"finish_reason":null}]}
32+ data: {"id":"chatcmpl-b4fa8286019d2041d56c67d9","object":"chat.completion.chunk","created":1781202000,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
8933
90− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c"},"finish_reason":null}]}
34+ data: {"id":"chatcmpl-b4fa8286019d2041d56c67d9","object":"chat.completion.chunk","created":1781202000,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"pattern\": \"go"}}]},"finish_reason":null}]}
9135
92− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"think"},"finish_reason":null}]}
36+ data: {"id":"chatcmpl-b4fa8286019d2041d56c67d9","object":"chat.completion.chunk","created":1781202000,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".mod\"}"}}]},"finish_reason":null}]}
9337
94− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\u003e\n\n"},"finish_reason":null}]}
38+ data: {"id":"chatcmpl-b4fa8286019d2041d56c67d9","object":"chat.completion.chunk","created":1781202000,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
9539
96− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\u003c/"},"finish_reason":null}]}
40+ data: {"id":"chatcmpl-b4fa8286019d2041d56c67d9","object":"chat.completion.chunk","created":1781202000,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":672,"completion_tokens":10,"total_tokens":7813,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0009848,"hypercredits":0.019696},"remaining":{"hypercredits":0}}}
9741
98− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"think"},"finish_reason":null}]}
99−
100− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\u003e\""},"finish_reason":null}]}
101−
102− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" This"},"finish_reason":null}]}
103−
104− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" is"},"finish_reason":null}]}
105−
106− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" English"},"finish_reason":null}]}
107−
108− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
109−
110− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
111−
112− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
113−
114− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
115−
116− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
117−
118− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" maybe"},"finish_reason":null}]}
119−
120− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
121−
122− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Reading"},"finish_reason":null}]}
123−
124− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
42+ data: [DONE]
12543
126− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
44+ headers:
45+ Content-Type:
46+ - text/event-stream
47+ status: 200 OK
48+ code: 200
49+ duration: 678.159833ms
50+- id: 1
51+ request:
52+ proto: HTTP/1.1
53+ proto_major: 1
54+ proto_minor: 1
55+ content_length: 774
56+ host: ""
57+ body: '{"messages":[{"content":"You will generate a short title based on the first message a user begins a conversation with.\n\n<rules>\n- Keep the title in the same language that the user wrote their message in.\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\nRead the go mod\n <think>\n\n</think>","role":"user"}],"model":"gpt-oss-120b","max_completion_tokens":40,"stream_options":{"include_usage":true},"stream":true}'
58+ headers:
59+ Accept:
60+ - application/json
61+ Content-Type:
62+ - application/json
63+ User-Agent:
64+ - Charm-Crush/devel (https://charm.land/crush)
65+ url: https://hyper.charm.land/v1/chat/completions
66+ method: POST
67+ response:
68+ proto: HTTP/2.0
69+ proto_major: 2
70+ proto_minor: 0
71+ content_length: -1
72+ uncompressed: true
73+ body: |+
74+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
12775
128− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".mod"},"finish_reason":null}]}
76+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
12977
130− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" File"},"finish_reason":null}]}
78+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
13179
132− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
80+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
13381
134− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Must"},"finish_reason":null}]}
82+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
13583
136− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
84+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
13785
138− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
86+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
13987
140− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
88+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
14189
142− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
90+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
14391
144− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
92+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
14593
146− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
94+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
14795
148− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
96+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
14997
150− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
98+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
15199
152− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
100+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":\n\n"},"finish_reason":null}]}
153101
154− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
102+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Read"},"finish_reason":null}]}
155103
156− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/"},"finish_reason":null}]}
104+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
157105
158− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"col"},"finish_reason":null}]}
106+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
159107
160− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
108+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" mod"},"finish_reason":null}]}
161109
162− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
110+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\n"},"finish_reason":null}]}
163111
164− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
112+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c"},"finish_reason":null}]}
165113
166− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" output"},"finish_reason":null}]}
114+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"think"},"finish_reason":null}]}
167115
168− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
116+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\u003e\n\n"},"finish_reason":null}]}
169117
170− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
118+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\u003c/"},"finish_reason":null}]}
171119
172− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Reading"},"finish_reason":null}]}
120+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"think"},"finish_reason":null}]}
173121
174− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
122+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\u003e\""},"finish_reason":null}]}
175123
176− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
124+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" They"},"finish_reason":null}]}
177125
178− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".mod"},"finish_reason":null}]}
126+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" want"},"finish_reason":null}]}
179127
180− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
128+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
181129
182− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
130+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
183131
184− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
132+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
185133
186− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fine"},"finish_reason":null}]}
134+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
187135
188− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
136+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
189137
190− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Reading"},"finish_reason":null}]}
138+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
191139
192− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" the"},"finish_reason":null}]}
140+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
193141
194− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" go"},"finish_reason":null}]}
142+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
195143
196− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".mod"},"finish_reason":null}]}
144+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
197145
198− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" file"},"finish_reason":null}]}
146+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
199147
200− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
148+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
201149
202− data: {"id":"chatcmpl-b7a3d84dcc5dde860a80f343","object":"chat.completion.chunk","created":1780069669,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":208,"completion_tokens":95,"total_tokens":303,"completion_tokens_details":{"reasoning_tokens":81},"cost":{"usd":0.0001448,"hypercredits":0.0028959999999999997},"remaining":{"hypercredits":0}}}
150+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
203151
204− data: [DONE]
152+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
205153
206− headers:
207− Content-Type:
208− - text/event-stream
209− status: 200 OK
210− code: 200
211− duration: 394.481292ms
212−- id: 1
213− request:
214− proto: HTTP/1.1
215− proto_major: 1
216− proto_minor: 1
217− content_length: 33908
218− host: ""
219− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"Read the go mod\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
220− headers:
221− Accept:
222− - application/json
223− Content-Type:
224− - application/json
225− User-Agent:
226− - Charm-Crush/devel (https://charm.land/crush)
227− url: https://hyper.charm.land/v1/chat/completions
228− method: POST
229− response:
230− proto: HTTP/2.0
231− proto_major: 2
232− proto_minor: 0
233− content_length: -1
234− uncompressed: true
235− body: |+
236− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
154+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
237155
238− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
156+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Read"},"finish_reason":null}]}
239157
240− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
158+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
241159
242− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
160+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
243161
244− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" me"},"finish_reason":null}]}
162+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".mod"},"finish_reason":null}]}
245163
246− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
164+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
247165
248− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" read"},"finish_reason":null}]}
166+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
249167
250− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
168+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
251169
252− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
170+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
253171
254− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":".mod"},"finish_reason":null}]}
172+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Read"},"finish_reason":null}]}
255173
256− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
174+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
257175
258− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
176+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
259177
260− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" Let"},"finish_reason":null}]}
178+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".mod"},"finish_reason":null}]}
261179
262− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" me"},"finish_reason":null}]}
180+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
263181
264− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" find"},"finish_reason":null}]}
182+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
265183
266− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
184+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Under"},"finish_reason":null}]}
267185
268− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" read"},"finish_reason":null}]}
186+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
269187
270− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" it"},"finish_reason":null}]}
188+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
271189
272− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
190+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
273191
274− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_7Nc5SiqEXN8EoyKZOuMcS6tr","type":"function","index":0,"function":{"name":"glob","arguments":""}}]},"finish_reason":null}]}
192+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
275193
276− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
194+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
277195
278− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
196+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fine"},"finish_reason":null}]}
279197
280− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"pattern\": "}}]},"finish_reason":null}]}
198+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
281199
282− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"**"}}]},"finish_reason":null}]}
200+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Read"},"finish_reason":null}]}
283201
284− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/"}}]},"finish_reason":null}]}
202+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" the"},"finish_reason":null}]}
285203
286− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"go"}}]},"finish_reason":null}]}
204+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" go"},"finish_reason":null}]}
287205
288− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".mod"}}]},"finish_reason":null}]}
206+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".mod"},"finish_reason":null}]}
289207
290− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
208+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" file"},"finish_reason":null}]}
291209
292− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
210+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
293211
294− data: {"id":"chatcmpl-6c1a627e1aeebb81fed69cbf","object":"chat.completion.chunk","created":1780069671,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":700,"completion_tokens":32,"total_tokens":7836,"prompt_tokens_details":{"cached_tokens":7104},"completion_tokens_details":{"reasoning_tokens":17},"cost":{"usd":0.0011228000000000002,"hypercredits":0.022456000000000004},"remaining":{"hypercredits":0}}}
212+ data: {"id":"chatcmpl-4a6b8a4859ce6e0aec4bbc09","object":"chat.completion.chunk","created":1781202001,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":195,"completion_tokens":77,"total_tokens":272,"completion_tokens_details":{"reasoning_tokens":65},"cost":{"usd":0.000126904,"hypercredits":0.00253808},"remaining":{"hypercredits":0}}}
295213
296214 data: [DONE]
297215
@@ -300,15 +218,15 @@ interactions:
300218 - text/event-stream
301219 status: 200 OK
302220 code: 200
303− duration: 1.828266958s
221+ duration: 1.190831667s
304222- id: 2
305223 request:
306224 proto: HTTP/1.1
307225 proto_major: 1
308226 proto_minor: 1
309− content_length: 34294
227+ content_length: 34179
310228 host: ""
311− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"Read the go mod\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_7Nc5SiqEXN8EoyKZOuMcS6tr\",\"function\":{\"arguments\":\"{\\\"pattern\\\": \\\"**/go.mod\\\"}\",\"name\":\"glob\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"The user wants me to read the go.mod file. Let me find and read it.\"},{\"content\":\"/tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file/go.mod\",\"tool_call_id\":\"call_7Nc5SiqEXN8EoyKZOuMcS6tr\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
229+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"Read the go mod\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_e1df83ee25c29c03\",\"function\":{\"arguments\":\"{\\\"pattern\\\": \\\"go.mod\\\"}\",\"name\":\"glob\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"/tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file/go.mod\",\"tool_call_id\":\"call_e1df83ee25c29c03\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
312230 headers:
313231 Accept:
314232 - application/json
@@ -325,57 +243,27 @@ interactions:
325243 content_length: -1
326244 uncompressed: true
327245 body: |+
328− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
329−
330− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_eiYecsjzoLpukgMCT8EogCZD","type":"function","index":0,"function":{"name":"view","arguments":""}}]},"finish_reason":null}]}
331−
332− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
333−
334− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
335−
336− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": "}}]},"finish_reason":null}]}
246+ data: {"id":"chatcmpl-eaebb4ce395021ed207d3b3b","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
337247
338− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/tmp"}}]},"finish_reason":null}]}
248+ data: {"id":"chatcmpl-eaebb4ce395021ed207d3b3b","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_bace556fff108262","type":"function","index":0,"function":{"name":"view","arguments":""}}]},"finish_reason":null}]}
339249
340− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/c"}}]},"finish_reason":null}]}
250+ data: {"id":"chatcmpl-eaebb4ce395021ed207d3b3b","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
341251
342− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush"}}]},"finish_reason":null}]}
252+ data: {"id":"chatcmpl-eaebb4ce395021ed207d3b3b","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": \"/tmp/c"}}]},"finish_reason":null}]}
343253
344− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test"}}]},"finish_reason":null}]}
254+ data: {"id":"chatcmpl-eaebb4ce395021ed207d3b3b","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush-test/TestCoder"}}]},"finish_reason":null}]}
345255
346− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/Test"}}]},"finish_reason":null}]}
256+ data: {"id":"chatcmpl-eaebb4ce395021ed207d3b3b","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent/glm-"}}]},"finish_reason":null}]}
347257
348− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Coder"}}]},"finish_reason":null}]}
258+ data: {"id":"chatcmpl-eaebb4ce395021ed207d3b3b","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5.1/read"}}]},"finish_reason":null}]}
349259
350− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent"}}]},"finish_reason":null}]}
260+ data: {"id":"chatcmpl-eaebb4ce395021ed207d3b3b","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_a_file/go.mod"}}]},"finish_reason":null}]}
351261
352− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/g"}}]},"finish_reason":null}]}
262+ data: {"id":"chatcmpl-eaebb4ce395021ed207d3b3b","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
353263
354− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lm"}}]},"finish_reason":null}]}
264+ data: {"id":"chatcmpl-eaebb4ce395021ed207d3b3b","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
355265
356− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-"}}]},"finish_reason":null}]}
357−
358− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5"}}]},"finish_reason":null}]}
359−
360− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"."}}]},"finish_reason":null}]}
361−
362− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1"}}]},"finish_reason":null}]}
363−
364− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/read"}}]},"finish_reason":null}]}
365−
366− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_a"}}]},"finish_reason":null}]}
367−
368− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_file"}}]},"finish_reason":null}]}
369−
370− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/go"}}]},"finish_reason":null}]}
371−
372− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".mod"}}]},"finish_reason":null}]}
373−
374− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
375−
376− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
377−
378− data: {"id":"chatcmpl-cdcb80e89d80fae8a62f3656","object":"chat.completion.chunk","created":1780069672,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":96,"completion_tokens":29,"total_tokens":7869,"prompt_tokens_details":{"cached_tokens":7744},"cost":{"usd":0.00024756,"hypercredits":0.0049512},"remaining":{"hypercredits":0}}}
266+ data: {"id":"chatcmpl-eaebb4ce395021ed207d3b3b","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":7786,"completion_tokens":27,"total_tokens":7863,"prompt_tokens_details":{"cached_tokens":50},"cost":{"usd":0.0110192,"hypercredits":0.220384},"remaining":{"hypercredits":0}}}
379267
380268 data: [DONE]
381269
@@ -384,15 +272,15 @@ interactions:
384272 - text/event-stream
385273 status: 200 OK
386274 code: 200
387− duration: 1.298647583s
275+ duration: 957.96ms
388276- id: 3
389277 request:
390278 proto: HTTP/1.1
391279 proto_major: 1
392280 proto_minor: 1
393− content_length: 34696
281+ content_length: 34542
394282 host: ""
395− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"Read the go mod\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_7Nc5SiqEXN8EoyKZOuMcS6tr\",\"function\":{\"arguments\":\"{\\\"pattern\\\": \\\"**/go.mod\\\"}\",\"name\":\"glob\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"The user wants me to read the go.mod file. Let me find and read it.\"},{\"content\":\"/tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file/go.mod\",\"tool_call_id\":\"call_7Nc5SiqEXN8EoyKZOuMcS6tr\",\"role\":\"tool\"},{\"tool_calls\":[{\"id\":\"call_eiYecsjzoLpukgMCT8EogCZD\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file/go.mod\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"\"},{\"content\":\"<file>\\n 1|module example.com/testproject\\n 2|\\n 3|go 1.23\\n 4|\\n</file>\\n\",\"tool_call_id\":\"call_eiYecsjzoLpukgMCT8EogCZD\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
283+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"Read the go mod\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_e1df83ee25c29c03\",\"function\":{\"arguments\":\"{\\\"pattern\\\": \\\"go.mod\\\"}\",\"name\":\"glob\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"/tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file/go.mod\",\"tool_call_id\":\"call_e1df83ee25c29c03\",\"role\":\"tool\"},{\"tool_calls\":[{\"id\":\"call_bace556fff108262\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/read_a_file/go.mod\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"<file>\\n 1|module example.com/testproject\\n 2|\\n 3|go 1.23\\n 4|\\n</file>\\n\",\"tool_call_id\":\"call_bace556fff108262\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
396284 headers:
397285 Accept:
398286 - application/json
@@ -409,43 +297,37 @@ interactions:
409297 content_length: -1
410298 uncompressed: true
411299 body: |+
412− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
413−
414− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Module"},"finish_reason":null}]}
415−
416− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
417−
418− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"example"},"finish_reason":null}]}
300+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
419301
420− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".com"},"finish_reason":null}]}
302+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"``"},"finish_reason":null}]}
421303
422− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/test"},"finish_reason":null}]}
304+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`\nmodule"},"finish_reason":null}]}
423305
424− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"project"},"finish_reason":null}]}
306+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" example.com/testproject"},"finish_reason":null}]}
425307
426− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`,"},"finish_reason":null}]}
308+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"\n\n"},"finish_reason":null}]}
427309
428− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" Go"},"finish_reason":null}]}
310+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"go 1."},"finish_reason":null}]}
429311
430− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}]}
312+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"23\n```\n\n"},"finish_reason":null}]}
431313
432− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"1"},"finish_reason":null}]}
314+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"No dependencies —"},"finish_reason":null}]}
433315
434− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}]}
316+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" just"},"finish_reason":null}]}
435317
436− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"23"},"finish_reason":null}]}
318+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" a bare"},"finish_reason":null}]}
437319
438− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":","},"finish_reason":null}]}
320+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" module declaration"},"finish_reason":null}]}
439321
440− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" no"},"finish_reason":null}]}
322+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" targeting"},"finish_reason":null}]}
441323
442− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" dependencies"},"finish_reason":null}]}
324+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" Go 1."},"finish_reason":null}]}
443325
444− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}]}
326+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"23."},"finish_reason":null}]}
445327
446− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
328+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
447329
448− data: {"id":"chatcmpl-0d1735ba3b3dc4655ba61003","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":99,"completion_tokens":18,"total_tokens":7925,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.00020529,"hypercredits":0.0041058},"remaining":{"hypercredits":0}}}
330+ data: {"id":"chatcmpl-34a25c37915ffc3a5f8e30e8","object":"chat.completion.chunk","created":1781202002,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":90,"completion_tokens":31,"total_tokens":7933,"prompt_tokens_details":{"cached_tokens":7812},"cost":{"usd":0.0002624,"hypercredits":0.005247999999999999},"remaining":{"hypercredits":0}}}
449331
450332 data: [DONE]
451333
@@ -454,4 +336,4 @@ interactions:
454336 - text/event-stream
455337 status: 200 OK
456338 code: 200
457− duration: 998.653042ms
339+ duration: 534.428125ms
internal/agent/testdata/TestCoderAgent/glm-5.1/simple_test.yaml+94−194
@@ -6,9 +6,9 @@ interactions:
66 proto: HTTP/1.1
77 proto_major: 1
88 proto_minor: 1
9− content_length: 764
9+ content_length: 33892
1010 host: ""
11− body: '{"messages":[{"content":"You will generate a short title based on the first message a user begins a conversation with.\n\n<rules>\n- Keep the title in the same language that the user wrote their message in.\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\nHello\n <think>\n\n</think>","role":"user"}],"model":"gpt-oss-120b","max_completion_tokens":40,"stream_options":{"include_usage":true},"stream":true}'
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/simple_test\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"Hello\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1212 headers:
1313 Accept:
1414 - application/json
@@ -25,257 +25,157 @@ interactions:
2525 content_length: -1
2626 uncompressed: true
2727 body: |+
28− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
29−
30− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
31−
32− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
33−
34− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" asks"},"finish_reason":null}]}
35−
36− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
37−
38− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
39−
40− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
41−
42− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
43−
44− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
45−
46− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
47−
48− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
49−
50− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
51−
52− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
53−
54− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
55−
56− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
57−
58− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
59−
60− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
61−
62− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" They"},"finish_reason":null}]}
63−
64− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" want"},"finish_reason":null}]}
65−
66− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
67−
68− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
69−
70− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
71−
72− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
73−
74− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
75−
76− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
77−
78− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
79−
80− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
28+ data: {"id":"chatcmpl-552ee4eefffd9c12638a18bb","object":"chat.completion.chunk","created":1781201999,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
8129
82− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
30+ data: {"id":"chatcmpl-552ee4eefffd9c12638a18bb","object":"chat.completion.chunk","created":1781201999,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}
8331
84− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
32+ data: {"id":"chatcmpl-552ee4eefffd9c12638a18bb","object":"chat.completion.chunk","created":1781201999,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"! How"},"finish_reason":null}]}
8533
86− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Should"},"finish_reason":null}]}
34+ data: {"id":"chatcmpl-552ee4eefffd9c12638a18bb","object":"chat.completion.chunk","created":1781201999,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" can I help you"},"finish_reason":null}]}
8735
88− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
36+ data: {"id":"chatcmpl-552ee4eefffd9c12638a18bb","object":"chat.completion.chunk","created":1781201999,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" today?"},"finish_reason":null}]}
8937
90− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
38+ data: {"id":"chatcmpl-552ee4eefffd9c12638a18bb","object":"chat.completion.chunk","created":1781201999,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
9139
92− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
40+ data: {"id":"chatcmpl-552ee4eefffd9c12638a18bb","object":"chat.completion.chunk","created":1781201999,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":7749,"completion_tokens":9,"total_tokens":7808,"prompt_tokens_details":{"cached_tokens":50},"cost":{"usd":0.010888199999999999,"hypercredits":0.21776399999999996},"remaining":{"hypercredits":0}}}
9341
94− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
95−
96− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
97−
98− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
99−
100− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" maybe"},"finish_reason":null}]}
101−
102− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
103−
104− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Greeting"},"finish_reason":null}]}
105−
106− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
107−
108− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Or"},"finish_reason":null}]}
109−
110− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
111−
112− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Hello"},"finish_reason":null}]}
113−
114− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
115−
116− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
117−
118− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" should"},"finish_reason":null}]}
119−
120− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
121−
122− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summary"},"finish_reason":null}]}
123−
124− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" of"},"finish_reason":null}]}
125−
126− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user's"},"finish_reason":null}]}
127−
128− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" message"},"finish_reason":null}]}
129−
130− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
131−
132− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" The"},"finish_reason":null}]}
133−
134− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
135−
136− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" is"},"finish_reason":null}]}
137−
138− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" just"},"finish_reason":null}]}
139−
140− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
141−
142− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Hello"},"finish_reason":null}]}
42+ data: [DONE]
14343
144− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
44+ headers:
45+ Content-Type:
46+ - text/event-stream
47+ status: 200 OK
48+ code: 200
49+ duration: 1.012048792s
50+- id: 1
51+ request:
52+ proto: HTTP/1.1
53+ proto_major: 1
54+ proto_minor: 1
55+ content_length: 764
56+ host: ""
57+ body: '{"messages":[{"content":"You will generate a short title based on the first message a user begins a conversation with.\n\n<rules>\n- Keep the title in the same language that the user wrote their message in.\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\nHello\n <think>\n\n</think>","role":"user"}],"model":"gpt-oss-120b","max_completion_tokens":40,"stream_options":{"include_usage":true},"stream":true}'
58+ headers:
59+ Accept:
60+ - application/json
61+ Content-Type:
62+ - application/json
63+ User-Agent:
64+ - Charm-Crush/devel (https://charm.land/crush)
65+ url: https://hyper.charm.land/v1/chat/completions
66+ method: POST
67+ response:
68+ proto: HTTP/2.0
69+ proto_major: 2
70+ proto_minor: 0
71+ content_length: -1
72+ uncompressed: true
73+ body: |+
74+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
14575
146− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
76+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"User"},"finish_reason":null}]}
14777
148− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
78+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" asks"},"finish_reason":null}]}
14979
150− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" could"},"finish_reason":null}]}
80+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
15181
152− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
82+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
15383
154− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
84+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
15585
156− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Hello"},"finish_reason":null}]}
86+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
15787
158− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
88+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
15989
160− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
90+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
16191
162− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
92+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
16393
164− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
94+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
16595
166− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
96+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
16797
168− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
98+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
16999
170− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
100+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
171101
172− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" One"},"finish_reason":null}]}
102+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
173103
174− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
104+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
175105
176− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
106+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" They"},"finish_reason":null}]}
177107
178− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Return"},"finish_reason":null}]}
108+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" want"},"finish_reason":null}]}
179109
180− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" just"},"finish_reason":null}]}
110+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
181111
182− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
112+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
183113
184− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
114+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
185115
186− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Thus"},"finish_reason":null}]}
116+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
187117
188− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" answer"},"finish_reason":null}]}
118+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
189119
190− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
120+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
191121
192− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
122+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Hello"},"finish_reason":null}]}
193123
194− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
124+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
195125
196− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}
126+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Probably"},"finish_reason":null}]}
197127
198− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
128+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
199129
200− data: {"id":"chatcmpl-0fd24293c5139ce426ac87d2","object":"chat.completion.chunk","created":1780069667,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":205,"completion_tokens":94,"total_tokens":299,"completion_tokens_details":{"reasoning_tokens":84},"cost":{"usd":0.00014548,"hypercredits":0.0029095999999999996},"remaining":{"hypercredits":0}}}
130+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Greeting"},"finish_reason":null}]}
201131
202− data: [DONE]
132+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
203133
204− headers:
205− Content-Type:
206− - text/event-stream
207− status: 200 OK
208− code: 200
209− duration: 965.865833ms
210−- id: 1
211− request:
212− proto: HTTP/1.1
213− proto_major: 1
214− proto_minor: 1
215− content_length: 33898
216− host: ""
217− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/simple_test\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"Hello\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
218− headers:
219− Accept:
220− - application/json
221− Content-Type:
222− - application/json
223− User-Agent:
224− - Charm-Crush/devel (https://charm.land/crush)
225− url: https://hyper.charm.land/v1/chat/completions
226− method: POST
227− response:
228− proto: HTTP/2.0
229− proto_major: 2
230− proto_minor: 0
231− content_length: -1
232− uncompressed: true
233− body: |+
234− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
134+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Must"},"finish_reason":null}]}
235135
236− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
136+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
237137
238− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
138+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
239139
240− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" said"},"finish_reason":null}]}
140+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
241141
242− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
142+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
243143
244− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"Hello"},"finish_reason":null}]}
144+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
245145
246− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
146+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
247147
248− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" I"},"finish_reason":null}]}
148+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
249149
250− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" should"},"finish_reason":null}]}
150+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
251151
252− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" respond"},"finish_reason":null}]}
152+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
253153
254− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" conc"},"finish_reason":null}]}
154+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
255155
256− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"is"},"finish_reason":null}]}
156+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
257157
258− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"ely"},"finish_reason":null}]}
158+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" One"},"finish_reason":null}]}
259159
260− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
160+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
261161
262− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Hi"},"finish_reason":null}]}
162+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
263163
264− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"!"},"finish_reason":null}]}
164+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
265165
266− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" How"},"finish_reason":null}]}
166+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" answer"},"finish_reason":null}]}
267167
268− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" can"},"finish_reason":null}]}
168+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
269169
270− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" I"},"finish_reason":null}]}
170+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Greeting"},"finish_reason":null}]}
271171
272− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" help"},"finish_reason":null}]}
172+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
273173
274− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"?"},"finish_reason":null}]}
174+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Greeting"},"finish_reason":null}]}
275175
276− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
176+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
277177
278− data: {"id":"chatcmpl-879afd4304b57ccc206c58da","object":"chat.completion.chunk","created":1780069669,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":7799,"completion_tokens":22,"total_tokens":7821,"completion_tokens_details":{"reasoning_tokens":13},"cost":{"usd":0.01036369,"hypercredits":0.20727379999999998},"remaining":{"hypercredits":0}}}
178+ data: {"id":"chatcmpl-3efbc435c7fed9d07db079fa","object":"chat.completion.chunk","created":1781201999,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":192,"completion_tokens":60,"total_tokens":252,"completion_tokens_details":{"reasoning_tokens":53},"cost":{"usd":0.00010746800000000002,"hypercredits":0.0021493600000000003},"remaining":{"hypercredits":0}}}
279179
280180 data: [DONE]
281181
@@ -284,4 +184,4 @@ interactions:
284184 - text/event-stream
285185 status: 200 OK
286186 code: 200
287− duration: 2.265527042s
187+ duration: 1.003649708s
internal/agent/testdata/TestCoderAgent/glm-5.1/sourcegraph_tool.yaml+353−435
@@ -6,9 +6,9 @@ interactions:
66 proto: HTTP/1.1
77 proto_major: 1
88 proto_minor: 1
9− content_length: 819
9+ content_length: 33952
1010 host: ""
11− body: '{"messages":[{"content":"You will generate a short title based on the first message a user begins a conversation with.\n\n<rules>\n- Keep the title in the same language that the user wrote their message in.\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\nuse sourcegraph to search for ''func main'' in Go repositories\n <think>\n\n</think>","role":"user"}],"model":"gpt-oss-120b","max_completion_tokens":40,"stream_options":{"include_usage":true},"stream":true}'
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/sourcegraph_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use sourcegraph to search for 'func main' in Go repositories\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1212 headers:
1313 Accept:
1414 - application/json
@@ -25,549 +25,485 @@ interactions:
2525 content_length: -1
2626 uncompressed: true
2727 body: |+
28− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
29−
30− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
31−
32− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
33−
34− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
35−
36− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" produce"},"finish_reason":null}]}
37−
38− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
39−
40− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
41−
42− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
43−
44− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
45−
46− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" max"},"finish_reason":null}]}
47−
48− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
49−
50− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
51−
52− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
53−
54− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
55−
56− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
57−
58− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
59−
60− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
61−
62− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
63−
64− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
65−
66− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
67−
68− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
69−
70− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
71−
72− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
73−
74− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" message"},"finish_reason":null}]}
75−
76− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
28+ data: {"id":"chatcmpl-953b042f9dc4dd3256578b8c","object":"chat.completion.chunk","created":1781202035,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
7729
78− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
30+ data: {"id":"chatcmpl-953b042f9dc4dd3256578b8c","object":"chat.completion.chunk","created":1781202035,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_0c9616efd289ae9a","type":"function","index":0,"function":{"name":"sourcegraph","arguments":""}}]},"finish_reason":null}]}
7931
80− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
32+ data: {"id":"chatcmpl-953b042f9dc4dd3256578b8c","object":"chat.completion.chunk","created":1781202035,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
8133
82− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" source"},"finish_reason":null}]}
34+ data: {"id":"chatcmpl-953b042f9dc4dd3256578b8c","object":"chat.completion.chunk","created":1781202035,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"count\": 20"}}]},"finish_reason":null}]}
8335
84− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"graph"},"finish_reason":null}]}
36+ data: {"id":"chatcmpl-953b042f9dc4dd3256578b8c","object":"chat.completion.chunk","created":1781202035,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":", "}}]},"finish_reason":null}]}
8537
86− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
38+ data: {"id":"chatcmpl-953b042f9dc4dd3256578b8c","object":"chat.completion.chunk","created":1781202035,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"query\": "}}]},"finish_reason":null}]}
8739
88− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" search"},"finish_reason":null}]}
40+ data: {"id":"chatcmpl-953b042f9dc4dd3256578b8c","object":"chat.completion.chunk","created":1781202035,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"func main"}}]},"finish_reason":null}]}
8941
90− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
42+ data: {"id":"chatcmpl-953b042f9dc4dd3256578b8c","object":"chat.completion.chunk","created":1781202035,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" lang:go"}}]},"finish_reason":null}]}
9143
92− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
44+ data: {"id":"chatcmpl-953b042f9dc4dd3256578b8c","object":"chat.completion.chunk","created":1781202035,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
9345
94− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"func"},"finish_reason":null}]}
46+ data: {"id":"chatcmpl-953b042f9dc4dd3256578b8c","object":"chat.completion.chunk","created":1781202035,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
9547
96− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
48+ data: {"id":"chatcmpl-953b042f9dc4dd3256578b8c","object":"chat.completion.chunk","created":1781202035,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":681,"completion_tokens":20,"total_tokens":7832,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0010414,"hypercredits":0.020828},"remaining":{"hypercredits":0}}}
9749
98− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
99−
100− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
101−
102− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
103−
104− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" repositories"},"finish_reason":null}]}
105−
106− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
107−
108− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
109−
110− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" could"},"finish_reason":null}]}
111−
112− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
113−
114− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
50+ data: [DONE]
11551
116− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Search"},"finish_reason":null}]}
52+ headers:
53+ Content-Type:
54+ - text/event-stream
55+ status: 200 OK
56+ code: 200
57+ duration: 656.994958ms
58+- id: 1
59+ request:
60+ proto: HTTP/1.1
61+ proto_major: 1
62+ proto_minor: 1
63+ content_length: 819
64+ host: ""
65+ body: '{"messages":[{"content":"You will generate a short title based on the first message a user begins a conversation with.\n\n<rules>\n- Keep the title in the same language that the user wrote their message in.\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\nuse sourcegraph to search for ''func main'' in Go repositories\n <think>\n\n</think>","role":"user"}],"model":"gpt-oss-120b","max_completion_tokens":40,"stream_options":{"include_usage":true},"stream":true}'
66+ headers:
67+ Accept:
68+ - application/json
69+ Content-Type:
70+ - application/json
71+ User-Agent:
72+ - Charm-Crush/devel (https://charm.land/crush)
73+ url: https://hyper.charm.land/v1/chat/completions
74+ method: POST
75+ response:
76+ proto: HTTP/2.0
77+ proto_major: 2
78+ proto_minor: 0
79+ content_length: -1
80+ uncompressed: true
81+ body: |+
82+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
11783
118− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
84+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
11985
120− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" func"},"finish_reason":null}]}
86+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
12187
122− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
88+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" says"},"finish_reason":null}]}
12389
124− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
90+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
12591
126− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
92+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
12793
128− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" repos"},"finish_reason":null}]}
94+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
12995
130− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" using"},"finish_reason":null}]}
96+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
13197
132− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Source"},"finish_reason":null}]}
98+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
13399
134− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"graph"},"finish_reason":null}]}
100+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
135101
136− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
102+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
137103
138− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
104+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
139105
140− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
106+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
141107
142− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
108+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
143109
144− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
110+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
145111
146− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
112+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
147113
148− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
114+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" source"},"finish_reason":null}]}
149115
150− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
116+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"graph"},"finish_reason":null}]}
151117
152− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Search"},"finish_reason":null}]}
118+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
153119
154− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
120+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" search"},"finish_reason":null}]}
155121
156− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" func"},"finish_reason":null}]}
122+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
157123
158− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
124+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
159125
160− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
126+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"func"},"finish_reason":null}]}
161127
162− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
128+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
163129
164− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" repos"},"finish_reason":null}]}
130+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
165131
166− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" using"},"finish_reason":null}]}
132+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
167133
168− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Source"},"finish_reason":null}]}
134+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
169135
170− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"graph"},"finish_reason":null}]}
136+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" repositories"},"finish_reason":null}]}
171137
172− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
138+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
173139
174− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
140+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" We"},"finish_reason":null}]}
175141
176− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
142+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
177143
178− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" S"},"finish_reason":null}]}
144+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
179145
180− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
146+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
181147
182− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
148+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
183149
184− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
150+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
185151
186− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
152+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
187153
188− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
154+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
189155
190− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
156+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
191157
192− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
158+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
193159
194− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
160+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" less"},"finish_reason":null}]}
195161
196− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
162+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" than"},"finish_reason":null}]}
197163
198− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" c"},"finish_reason":null}]}
164+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
199165
200− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
166+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
201167
202− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
168+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
203169
204− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
170+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
205171
206− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
172+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
207173
208− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
174+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
209175
210− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
176+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
211177
212− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
178+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
213179
214− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" f"},"finish_reason":null}]}
180+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
215181
216− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
182+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/"},"finish_reason":null}]}
217183
218− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
184+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"col"},"finish_reason":null}]}
219185
220− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
186+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
221187
222− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
188+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
223189
224− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
190+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
225191
226− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
192+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
227193
228− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
194+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
229195
230− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
196+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
231197
232− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
198+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
233199
234− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" f"},"finish_reason":null}]}
200+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Using"},"finish_reason":null}]}
235201
236− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
202+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Source"},"finish_reason":null}]}
237203
238− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" u"},"finish_reason":null}]}
204+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"graph"},"finish_reason":null}]}
239205
240− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
206+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
241207
242− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" n"},"finish_reason":null}]}
208+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Find"},"finish_reason":null}]}
243209
244− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
210+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" func"},"finish_reason":null}]}
245211
246− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" c"},"finish_reason":null}]}
212+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
247213
248− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"15"},"finish_reason":null}]}
214+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
249215
250− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
216+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
251217
252− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
218+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Re"},"finish_reason":null}]}
253219
254− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
220+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"pos"},"finish_reason":null}]}
255221
256− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
222+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
257223
258− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" m"},"finish_reason":null}]}
224+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
259225
260− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
226+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
261227
262− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
228+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
263229
264− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
230+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
265231
266− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" i"},"finish_reason":null}]}
232+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Using"},"finish_reason":null}]}
267233
268− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
234+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Source"},"finish_reason":null}]}
269235
270− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" n"},"finish_reason":null}]}
236+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"graph"},"finish_reason":null}]}
271237
272− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
238+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
273239
274− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
240+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Find"},"finish_reason":null}]}
275241
276− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
242+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" func"},"finish_reason":null}]}
277243
278− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
244+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
279245
280− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
246+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
281247
282− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" i"},"finish_reason":null}]}
248+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
283249
284− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
250+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Re"},"finish_reason":null}]}
285251
286− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" n"},"finish_reason":null}]}
252+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"pos"},"finish_reason":null}]}
287253
288− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
254+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
289255
290− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
256+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
291257
292− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
258+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"?"},"finish_reason":null}]}
293259
294− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
260+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
295261
296− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
262+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
297263
298− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" G"},"finish_reason":null}]}
264+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
299265
300− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
266+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Using"},"finish_reason":null}]}
301267
302− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
268+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
303269
304− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
270+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
305271
306− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
272+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
307273
308− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
274+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
309275
310− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
276+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
311277
312− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
278+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
313279
314− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
280+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
315281
316− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
282+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
317283
318− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
284+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
319285
320− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
286+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
321287
322− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" p"},"finish_reason":null}]}
288+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
323289
324− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
290+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Source"},"finish_reason":null}]}
325291
326− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
292+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"graph"},"finish_reason":null}]}
327293
328− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
294+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
329295
330− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
296+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
331297
332− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
298+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
333299
334− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
300+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" total"},"finish_reason":null}]}
335301
336− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
302+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
337303
338− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
304+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
339305
340− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
306+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
341307
342− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" u"},"finish_reason":null}]}
308+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
343309
344− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
310+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
345311
346− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
312+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
347313
348− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
314+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
349315
350− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" i"},"finish_reason":null}]}
316+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
351317
352− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
318+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
353319
354− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" n"},"finish_reason":null}]}
320+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
355321
356− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
322+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
357323
358− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" g"},"finish_reason":null}]}
324+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
359325
360− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
326+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
361327
362− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
328+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
363329
364− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
330+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
365331
366− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
332+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
367333
368− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
334+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
369335
370− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" S"},"finish_reason":null}]}
336+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
371337
372− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
338+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Find"},"finish_reason":null}]}
373339
374− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
340+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
375341
376− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
342+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
377343
378− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" u"},"finish_reason":null}]}
344+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
379345
380− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
346+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
381347
382− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
348+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
383349
384− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"43"},"finish_reason":null}]}
350+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
385351
386− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" c"},"finish_reason":null}]}
352+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
387353
388− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"44"},"finish_reason":null}]}
354+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
389355
390− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
356+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
391357
392− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"45"},"finish_reason":null}]}
358+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
393359
394− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" g"},"finish_reason":null}]}
360+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" func"},"finish_reason":null}]}
395361
396− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"46"},"finish_reason":null}]}
362+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
397363
398− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
364+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
399365
400− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"47"},"finish_reason":null}]}
366+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
401367
402− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
368+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
403369
404− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"48"},"finish_reason":null}]}
370+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
405371
406− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" p"},"finish_reason":null}]}
372+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
407373
408− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"49"},"finish_reason":null}]}
374+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
409375
410− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" h"},"finish_reason":null}]}
376+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
411377
412− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
378+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
413379
414− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
380+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
415381
416− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Exactly"},"finish_reason":null}]}
382+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
417383
418− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
384+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
419385
420− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
386+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
421387
422− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
388+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
423389
424− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
390+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
425391
426− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
392+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
427393
428− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
394+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
429395
430− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
396+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
431397
432− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
398+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
433399
434− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
400+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
435401
436− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
402+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
437403
438− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
404+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
439405
440− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
406+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
441407
442− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" One"},"finish_reason":null}]}
408+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
443409
444− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
410+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
445411
446− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
412+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
447413
448− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Search"},"finish_reason":null}]}
414+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
449415
450− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" for"},"finish_reason":null}]}
416+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
451417
452− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" func"},"finish_reason":null}]}
418+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
453419
454− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" main"},"finish_reason":null}]}
420+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
455421
456− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" in"},"finish_reason":null}]}
422+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
457423
458− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Go"},"finish_reason":null}]}
424+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
459425
460− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" repos"},"finish_reason":null}]}
426+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
461427
462− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" using"},"finish_reason":null}]}
428+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
463429
464− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Source"},"finish_reason":null}]}
430+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
465431
466− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"graph"},"finish_reason":null}]}
432+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
467433
468− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
434+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
469435
470− data: {"id":"chatcmpl-f049264783b8d33719650cf9","object":"chat.completion.chunk","created":1780069701,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":217,"completion_tokens":229,"total_tokens":446,"completion_tokens_details":{"reasoning_tokens":210},"cost":{"usd":0.00030685,"hypercredits":0.006137},"remaining":{"hypercredits":0}}}
436+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
471437
472− data: [DONE]
438+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
473439
474− headers:
475− Content-Type:
476− - text/event-stream
477− status: 200 OK
478− code: 200
479− duration: 408.3265ms
480−- id: 1
481− request:
482− proto: HTTP/1.1
483− proto_major: 1
484− proto_minor: 1
485− content_length: 33958
486− host: ""
487− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/sourcegraph_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use sourcegraph to search for 'func main' in Go repositories\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
488− headers:
489− Accept:
490− - application/json
491− Content-Type:
492− - application/json
493− User-Agent:
494− - Charm-Crush/devel (https://charm.land/crush)
495− url: https://hyper.charm.land/v1/chat/completions
496− method: POST
497− response:
498− proto: HTTP/2.0
499− proto_major: 2
500− proto_minor: 0
501− content_length: -1
502− uncompressed: true
503− body: |+
504− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
440+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
505441
506− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
442+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
507443
508− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
444+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
509445
510− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
446+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
511447
512− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" me"},"finish_reason":null}]}
448+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Re"},"finish_reason":null}]}
513449
514− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
450+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"pos"},"finish_reason":null}]}
515451
516− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
452+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
517453
518− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
454+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
519455
520− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" Source"},"finish_reason":null}]}
456+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
521457
522− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"graph"},"finish_reason":null}]}
458+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
523459
524− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" tool"},"finish_reason":null}]}
460+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"47"},"finish_reason":null}]}
525461
526− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
462+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
527463
528− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" search"},"finish_reason":null}]}
464+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Under"},"finish_reason":null}]}
529465
530− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
466+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
531467
532− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
468+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
533469
534− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"func"},"finish_reason":null}]}
470+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
535471
536− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
472+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
537473
538− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
474+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
539475
540− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
476+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Return"},"finish_reason":null}]}
541477
542− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
478+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
543479
544− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" repositories"},"finish_reason":null}]}
480+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
545481
546− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
482+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Using"},"finish_reason":null}]}
547483
548− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_3lLD5JLl0NhdIrtC52F03cgZ","type":"function","index":0,"function":{"name":"sourcegraph","arguments":""}}]},"finish_reason":null}]}
484+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Source"},"finish_reason":null}]}
549485
550− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
486+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"graph"},"finish_reason":null}]}
551487
552− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
488+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}]}
553489
554− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"query\": "}}]},"finish_reason":null}]}
490+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Find"},"finish_reason":null}]}
555491
556− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"func"}}]},"finish_reason":null}]}
492+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" func"},"finish_reason":null}]}
557493
558− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" main"}}]},"finish_reason":null}]}
494+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" main"},"finish_reason":null}]}
559495
560− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" lang"}}]},"finish_reason":null}]}
496+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" in"},"finish_reason":null}]}
561497
562− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":":"}}]},"finish_reason":null}]}
498+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Go"},"finish_reason":null}]}
563499
564− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Go"}}]},"finish_reason":null}]}
500+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Re"},"finish_reason":null}]}
565501
566− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
502+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"pos"},"finish_reason":null}]}
567503
568− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
504+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
569505
570− data: {"id":"chatcmpl-025d8eed69615ae46de3076f","object":"chat.completion.chunk","created":1780069702,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":709,"completion_tokens":37,"total_tokens":7850,"prompt_tokens_details":{"cached_tokens":7104},"completion_tokens_details":{"reasoning_tokens":23},"cost":{"usd":0.0011807900000000001,"hypercredits":0.023615800000000003},"remaining":{"hypercredits":0}}}
506+ data: {"id":"chatcmpl-db7e813480a455d1d0c75295","object":"chat.completion.chunk","created":1781202035,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":204,"completion_tokens":220,"total_tokens":424,"completion_tokens_details":{"reasoning_tokens":160},"cost":{"usd":0.000283664,"hypercredits":0.005673279999999999},"remaining":{"hypercredits":0}}}
571507
572508 data: [DONE]
573509
@@ -576,7 +512,7 @@ interactions:
576512 - text/event-stream
577513 status: 200 OK
578514 code: 200
579− duration: 1.04303925s
515+ duration: 677.694708ms
580516- id: 2
581517 request:
582518 proto: HTTP/1.1
@@ -584,7 +520,7 @@ interactions:
584520 proto_minor: 1
585521 content_length: 424
586522 host: sourcegraph.com
587− body: '{"query":"query Search($query: String!) { search(query: $query, version: V2, patternType: keyword ) { results { matchCount, limitHit, resultCount, approximateResultCount, missing { name }, timedout { name }, indexUnavailable, results { __typename, ... on FileMatch { repository { name }, file { path, url, content }, lineMatches { preview, lineNumber, offsetAndLengths } } } } } }","variables":{"query":"func main lang:Go"}}'
523+ body: '{"query":"query Search($query: String!) { search(query: $query, version: V2, patternType: keyword ) { results { matchCount, limitHit, resultCount, approximateResultCount, missing { name }, timedout { name }, indexUnavailable, results { __typename, ... on FileMatch { repository { name }, file { path, url, content }, lineMatches { preview, lineNumber, offsetAndLengths } } } } } }","variables":{"query":"func main lang:go"}}'
588524 headers:
589525 Content-Type:
590526 - application/json
@@ -604,15 +540,15 @@ interactions:
604540 - application/json
605541 status: 200 OK
606542 code: 200
607− duration: 1.390620583s
543+ duration: 1.750628292s
608544- id: 3
609545 request:
610546 proto: HTTP/1.1
611547 proto_major: 1
612548 proto_minor: 1
613− content_length: 44423
549+ content_length: 44302
614550 host: ""
615− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/sourcegraph_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use sourcegraph to search for 'func main' in Go repositories\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_3lLD5JLl0NhdIrtC52F03cgZ\",\"function\":{\"arguments\":\"{\\\"query\\\": \\\"func main lang:Go\\\"}\",\"name\":\"sourcegraph\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"The user wants me to use the Sourcegraph tool to search for 'func main' in Go repositories.\"},{\"content\":\"# Sourcegraph Search Results\\n\\nFound 30 matches across 30 results\\n(Result limit reached, try a more specific query)\\n\\n## Result 1: github.com/jmbharathram/executeoncommand/go/channel/main.go\\n\\nURL: /r/github.com/jmbharathram/executeoncommand/-/blob/go/channel/main.go\\n\\n```\\n96| \\n97| func routine2(ch chan int, min int, max int) {\\n98| \\n99| rand.Seed(time.Now().UnixNano())\\n100| t := rand.Intn(max - min) + min\\n101| fmt.Println(\\\"routine 2 is waiting: \\\", t, \\\"secs\\\")\\n102| time.Sleep(time.Duration(t)*time.Second)\\n103| \\n104| ch <- t\\n105| }\\n106| func main(){\\n107| func main(){\\n108| \\n109| min := 1\\n110| max := 10\\n111| \\n112| ch1:= make(chan int)\\n113| ch2:= make(chan int)\\n114| \\n115| go routine1(ch1, min, max)\\n116| go routine2(ch2, min, max)\\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| func dummy_func() {\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| func main() {\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| // Example 0\\n6| \\tfmt.Println(\\\"dummy_func\\\")\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| func main() {\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| \\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| // Example 0\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| func main() {\\n9| func main() {\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| \\n17| package main\\n18| \\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| // Example 0\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| \\tgo dummy_func()\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| \\n17| package main\\n18| \\n19| import \\\"fmt\\\"\\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| // Example 0\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| func main() {\\n10| fmt.Println(\\\"end of main\\\")\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| \\n17| package main\\n18| \\n19| import \\\"fmt\\\"\\n20| \\n```\\n\\n```\\n15| // Example 1\\n16| \\n17| package main\\n18| \\n19| import \\\"fmt\\\"\\n20| \\n21| func dummy_func(ch chan int) {\\n22| // receive a value from channel\\n23| val := <-ch\\n24| \\tfmt.Println(val)\\n25| func main() {\\n26| func main() {\\n27| // create a channel\\n28| \\tch := make(chan int)\\n29| // trigger a parallel go routine\\n30| \\tgo dummy_func(ch)\\n31| // send a value into the channel\\n32| \\tch <- 10\\n33| }\\n34| \\n35| // Example 2\\n```\\n\\n```\\n41| //\\\"flag\\\"\\n42| )\\n43| \\n44| func dummy_func(ch chan int) {\\n45| // receive a value from channel\\n46| val := <-ch\\n47| \\tfmt.Println(val)\\n48| \\n49| //send a value again\\n50| ch <- val*2\\n51| func main() {\\n52| func main() {\\n53| fmt.Println(\\\"Welcome to main function\\\")\\n54| \\n55| //flag statements for user input\\n56| var input_value int\\n57| input_value = 10\\n58| //flag.IntVar(&input_value, \\\"v\\\", 10, \\\"Input value to send/receive via channel.\\\" )\\n59| //flag.Parse()\\n60| \\n61| // create a channel\\n```\\n\\n```\\n42| )\\n43| \\n44| func dummy_func(ch chan int) {\\n45| // receive a value from channel\\n46| val := <-ch\\n47| \\tfmt.Println(val)\\n48| \\n49| //send a value again\\n50| ch <- val*2\\n51| }\\n52| fmt.Println(\\\"Welcome to main function\\\")\\n53| fmt.Println(\\\"Welcome to main function\\\")\\n54| \\n55| //flag statements for user input\\n56| var input_value int\\n57| input_value = 10\\n58| //flag.IntVar(&input_value, \\\"v\\\", 10, \\\"Input value to send/receive via channel.\\\" )\\n59| //flag.Parse()\\n60| \\n61| // create a channel\\n62| \\tch := make(chan int)\\n```\\n\\n```\\n116| go routine2(ch2, min, max)\\n117| \\n118| select{\\n119| \\n120| case <- ch1:\\n121| fmt.Println(\\\"routine 1 finished\\\")\\n122| \\n123| case <- ch2:\\n124| fmt.Println(\\\"routine 2 finished\\\")\\n125| }\\n126| fmt.Println(\\\"end of main function\\\")\\n127| fmt.Println(\\\"end of main function\\\")\\n128| \\n129| }\\n130| \\n```\\n\\n```\\n68| \\tch <- input_value\\n69| \\n70| // receive a value from channel\\n71| response := <- ch\\n72| fmt.Println(response)\\n73| \\n74| }\\n75| \\n76| // example 3\\n77| \\n78| package main\\n79| package main\\n80| \\n81| import(\\n82| \\\"fmt\\\"\\n83| \\\"time\\\"\\n84| \\\"math/rand\\\"\\n85| )\\n86| \\n87| func routine1(ch chan int, min int, max int) {\\n88| \\n```\\n\\n```\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| func main() {\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| package main\\n17| package main\\n18| \\n19| import \\\"fmt\\\"\\n20| \\n21| func dummy_func(ch chan int) {\\n22| // receive a value from channel\\n23| val := <-ch\\n24| \\tfmt.Println(val)\\n25| }\\n26| func main() {\\n```\\n\\n```\\n0| package main\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| // Example 0\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| func main() {\\n10| \\tgo dummy_func()\\n```\\n\\n```\\n26| func main() {\\n27| // create a channel\\n28| \\tch := make(chan int)\\n29| // trigger a parallel go routine\\n30| \\tgo dummy_func(ch)\\n31| // send a value into the channel\\n32| \\tch <- 10\\n33| }\\n34| \\n35| // Example 2\\n36| package main\\n37| package main\\n38| \\n39| import (\\n40| \\\"fmt\\\"\\n41| //\\\"flag\\\"\\n42| )\\n43| \\n44| func dummy_func(ch chan int) {\\n45| // receive a value from channel\\n46| val := <-ch\\n```\\n\\n```\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| \\n17| package main\\n18| \\n19| import \\\"fmt\\\"\\n20| func dummy_func(ch chan int) {\\n21| func dummy_func(ch chan int) {\\n22| // receive a value from channel\\n23| val := <-ch\\n24| \\tfmt.Println(val)\\n25| }\\n26| func main() {\\n27| // create a channel\\n28| \\tch := make(chan int)\\n29| // trigger a parallel go routine\\n30| \\tgo dummy_func(ch)\\n```\\n\\n```\\n33| }\\n34| \\n35| // Example 2\\n36| \\n37| package main\\n38| \\n39| import (\\n40| \\\"fmt\\\"\\n41| //\\\"flag\\\"\\n42| )\\n43| func dummy_func(ch chan int) {\\n44| func dummy_func(ch chan int) {\\n45| // receive a value from channel\\n46| val := <-ch\\n47| \\tfmt.Println(val)\\n48| \\n49| //send a value again\\n50| ch <- val*2\\n51| }\\n52| func main() {\\n53| fmt.Println(\\\"Welcome to main function\\\")\\n```\\n\\n```\\n54| \\n55| //flag statements for user input\\n56| var input_value int\\n57| input_value = 10\\n58| //flag.IntVar(&input_value, \\\"v\\\", 10, \\\"Input value to send/receive via channel.\\\" )\\n59| //flag.Parse()\\n60| \\n61| // create a channel\\n62| \\tch := make(chan int)\\n63| \\n64| \\tgo dummy_func(ch)\\n65| \\tgo dummy_func(ch)\\n66| \\n67| // send a value into the channel\\n68| \\tch <- input_value\\n69| \\n70| // receive a value from channel\\n71| response := <- ch\\n72| fmt.Println(response)\\n73| \\n74| }\\n```\\n\\n```\\n19| import \\\"fmt\\\"\\n20| \\n21| func dummy_func(ch chan int) {\\n22| // receive a value from channel\\n23| val := <-ch\\n24| \\tfmt.Println(val)\\n25| }\\n26| func main() {\\n27| // create a channel\\n28| \\tch := make(chan int)\\n29| \\tgo dummy_func(ch)\\n30| \\tgo dummy_func(ch)\\n31| // send a value into the channel\\n32| \\tch <- 10\\n33| }\\n34| \\n35| // Example 2\\n36| \\n37| package main\\n38| \\n39| import (\\n```\\n\\n```\\n76| // example 3\\n77| \\n78| \\n79| package main\\n80| \\n81| import(\\n82| \\\"fmt\\\"\\n83| \\\"time\\\"\\n84| \\\"math/rand\\\"\\n85| )\\n86| func routine1(ch chan int, min int, max int) {\\n87| func routine1(ch chan int, min int, max int) {\\n88| \\n89| rand.Seed(time.Now().UnixNano())\\n90| t := rand.Intn(max - min) + min\\n91| fmt.Println(\\\"routine 1 is waiting: \\\", t, \\\"secs\\\")\\n92| time.Sleep(time.Duration(t)*time.Second)\\n93| \\n94| ch <- t\\n95| }\\n96| \\n```\\n\\n```\\n86| \\n87| func routine1(ch chan int, min int, max int) {\\n88| \\n89| rand.Seed(time.Now().UnixNano())\\n90| t := rand.Intn(max - min) + min\\n91| fmt.Println(\\\"routine 1 is waiting: \\\", t, \\\"secs\\\")\\n92| time.Sleep(time.Duration(t)*time.Second)\\n93| \\n94| ch <- t\\n95| }\\n96| func routine2(ch chan int, min int, max int) {\\n97| func routine2(ch chan int, min int, max int) {\\n98| \\n99| rand.Seed(time.Now().UnixNano())\\n100| t := rand.Intn(max - min) + min\\n101| fmt.Println(\\\"routine 2 is waiting: \\\", t, \\\"secs\\\")\\n102| time.Sleep(time.Duration(t)*time.Second)\\n103| \\n104| ch <- t\\n105| }\\n106| \\n```\\n\\n## Result 2: github.com/GoesToEleven/GolangTraining/14_functions/10_func-expression/01_before-func-expression/main.go\\n\\nURL: /r/github.com/GoesToEleven/GolangTraining/-/blob/14_functions/10_func-expression/01_before-func-expression/main.go\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| func greeting() {\\n6| \\tfmt.Println(\\\"Hello world!\\\")\\n7| }\\n8| func main() {\\n9| func main() {\\n10| \\tgreeting()\\n11| }\\n12| \\n```\\n\\n```\\n0| package main\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| func greeting() {\\n6| \\tfmt.Println(\\\"Hello world!\\\")\\n7| }\\n8| \\n9| func main() {\\n10| \\tgreeting()\\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| func greeting() {\\n5| func greeting() {\\n6| \\tfmt.Println(\\\"Hello world!\\\")\\n7| }\\n8| \\n9| func main() {\\n10| \\tgreeting()\\n11| }\\n12| \\n```\\n\\n## Result 3: github.com/GoesToEleven/GolangTraining/14_functions/10_func-expression/02_func-expression/main.go\\n\\nURL: /r/github.com/GoesToEleven/GolangTraining/-/blob/14_functions/10_func-expression/02_func-expression/main.go\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| func main() {\\n5| func main() {\\n6| \\n7| \\tgreeting := func() {\\n8| \\t\\tfmt.Println(\\\"Hello world!\\\")\\n9| \\t}\\n10| \\n11| \\tgreeting()\\n12| }\\n13| \\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| func main() {\\n6| \\tgreeting := func() {\\n7| \\tgreeting := func() {\\n8| \\t\\tfmt.Println(\\\"Hello world!\\\")\\n9| \\t}\\n10| \\n11| \\tgreeting()\\n12| }\\n13| \\n```\\n\\n\",\"tool_call_id\":\"call_3lLD5JLl0NhdIrtC52F03cgZ\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
551+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/sourcegraph_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use sourcegraph to search for 'func main' in Go repositories\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_0c9616efd289ae9a\",\"function\":{\"arguments\":\"{\\\"count\\\": 20, \\\"query\\\": \\\"func main lang:go\\\"}\",\"name\":\"sourcegraph\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"# Sourcegraph Search Results\\n\\nFound 30 matches across 30 results\\n(Result limit reached, try a more specific query)\\n\\n## Result 1: github.com/jmbharathram/executeoncommand/go/channel/main.go\\n\\nURL: /r/github.com/jmbharathram/executeoncommand/-/blob/go/channel/main.go\\n\\n```\\n96| \\n97| func routine2(ch chan int, min int, max int) {\\n98| \\n99| rand.Seed(time.Now().UnixNano())\\n100| t := rand.Intn(max - min) + min\\n101| fmt.Println(\\\"routine 2 is waiting: \\\", t, \\\"secs\\\")\\n102| time.Sleep(time.Duration(t)*time.Second)\\n103| \\n104| ch <- t\\n105| }\\n106| func main(){\\n107| func main(){\\n108| \\n109| min := 1\\n110| max := 10\\n111| \\n112| ch1:= make(chan int)\\n113| ch2:= make(chan int)\\n114| \\n115| go routine1(ch1, min, max)\\n116| go routine2(ch2, min, max)\\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| func dummy_func() {\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| func main() {\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| // Example 0\\n6| \\tfmt.Println(\\\"dummy_func\\\")\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| func main() {\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| \\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| // Example 0\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| func main() {\\n9| func main() {\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| \\n17| package main\\n18| \\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| // Example 0\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| \\tgo dummy_func()\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| \\n17| package main\\n18| \\n19| import \\\"fmt\\\"\\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| // Example 0\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| func main() {\\n10| fmt.Println(\\\"end of main\\\")\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| \\n17| package main\\n18| \\n19| import \\\"fmt\\\"\\n20| \\n```\\n\\n```\\n15| // Example 1\\n16| \\n17| package main\\n18| \\n19| import \\\"fmt\\\"\\n20| \\n21| func dummy_func(ch chan int) {\\n22| // receive a value from channel\\n23| val := <-ch\\n24| \\tfmt.Println(val)\\n25| func main() {\\n26| func main() {\\n27| // create a channel\\n28| \\tch := make(chan int)\\n29| // trigger a parallel go routine\\n30| \\tgo dummy_func(ch)\\n31| // send a value into the channel\\n32| \\tch <- 10\\n33| }\\n34| \\n35| // Example 2\\n```\\n\\n```\\n41| //\\\"flag\\\"\\n42| )\\n43| \\n44| func dummy_func(ch chan int) {\\n45| // receive a value from channel\\n46| val := <-ch\\n47| \\tfmt.Println(val)\\n48| \\n49| //send a value again\\n50| ch <- val*2\\n51| func main() {\\n52| func main() {\\n53| fmt.Println(\\\"Welcome to main function\\\")\\n54| \\n55| //flag statements for user input\\n56| var input_value int\\n57| input_value = 10\\n58| //flag.IntVar(&input_value, \\\"v\\\", 10, \\\"Input value to send/receive via channel.\\\" )\\n59| //flag.Parse()\\n60| \\n61| // create a channel\\n```\\n\\n```\\n42| )\\n43| \\n44| func dummy_func(ch chan int) {\\n45| // receive a value from channel\\n46| val := <-ch\\n47| \\tfmt.Println(val)\\n48| \\n49| //send a value again\\n50| ch <- val*2\\n51| }\\n52| fmt.Println(\\\"Welcome to main function\\\")\\n53| fmt.Println(\\\"Welcome to main function\\\")\\n54| \\n55| //flag statements for user input\\n56| var input_value int\\n57| input_value = 10\\n58| //flag.IntVar(&input_value, \\\"v\\\", 10, \\\"Input value to send/receive via channel.\\\" )\\n59| //flag.Parse()\\n60| \\n61| // create a channel\\n62| \\tch := make(chan int)\\n```\\n\\n```\\n116| go routine2(ch2, min, max)\\n117| \\n118| select{\\n119| \\n120| case <- ch1:\\n121| fmt.Println(\\\"routine 1 finished\\\")\\n122| \\n123| case <- ch2:\\n124| fmt.Println(\\\"routine 2 finished\\\")\\n125| }\\n126| fmt.Println(\\\"end of main function\\\")\\n127| fmt.Println(\\\"end of main function\\\")\\n128| \\n129| }\\n130| \\n```\\n\\n```\\n68| \\tch <- input_value\\n69| \\n70| // receive a value from channel\\n71| response := <- ch\\n72| fmt.Println(response)\\n73| \\n74| }\\n75| \\n76| // example 3\\n77| \\n78| package main\\n79| package main\\n80| \\n81| import(\\n82| \\\"fmt\\\"\\n83| \\\"time\\\"\\n84| \\\"math/rand\\\"\\n85| )\\n86| \\n87| func routine1(ch chan int, min int, max int) {\\n88| \\n```\\n\\n```\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| func main() {\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| package main\\n17| package main\\n18| \\n19| import \\\"fmt\\\"\\n20| \\n21| func dummy_func(ch chan int) {\\n22| // receive a value from channel\\n23| val := <-ch\\n24| \\tfmt.Println(val)\\n25| }\\n26| func main() {\\n```\\n\\n```\\n0| package main\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| // Example 0\\n6| func dummy_func() {\\n7| \\tfmt.Println(\\\"dummy_func\\\")\\n8| }\\n9| func main() {\\n10| \\tgo dummy_func()\\n```\\n\\n```\\n26| func main() {\\n27| // create a channel\\n28| \\tch := make(chan int)\\n29| // trigger a parallel go routine\\n30| \\tgo dummy_func(ch)\\n31| // send a value into the channel\\n32| \\tch <- 10\\n33| }\\n34| \\n35| // Example 2\\n36| package main\\n37| package main\\n38| \\n39| import (\\n40| \\\"fmt\\\"\\n41| //\\\"flag\\\"\\n42| )\\n43| \\n44| func dummy_func(ch chan int) {\\n45| // receive a value from channel\\n46| val := <-ch\\n```\\n\\n```\\n10| \\tgo dummy_func()\\n11| fmt.Println(\\\"end of main\\\")\\n12| }\\n13| \\n14| \\n15| // Example 1\\n16| \\n17| package main\\n18| \\n19| import \\\"fmt\\\"\\n20| func dummy_func(ch chan int) {\\n21| func dummy_func(ch chan int) {\\n22| // receive a value from channel\\n23| val := <-ch\\n24| \\tfmt.Println(val)\\n25| }\\n26| func main() {\\n27| // create a channel\\n28| \\tch := make(chan int)\\n29| // trigger a parallel go routine\\n30| \\tgo dummy_func(ch)\\n```\\n\\n```\\n33| }\\n34| \\n35| // Example 2\\n36| \\n37| package main\\n38| \\n39| import (\\n40| \\\"fmt\\\"\\n41| //\\\"flag\\\"\\n42| )\\n43| func dummy_func(ch chan int) {\\n44| func dummy_func(ch chan int) {\\n45| // receive a value from channel\\n46| val := <-ch\\n47| \\tfmt.Println(val)\\n48| \\n49| //send a value again\\n50| ch <- val*2\\n51| }\\n52| func main() {\\n53| fmt.Println(\\\"Welcome to main function\\\")\\n```\\n\\n```\\n54| \\n55| //flag statements for user input\\n56| var input_value int\\n57| input_value = 10\\n58| //flag.IntVar(&input_value, \\\"v\\\", 10, \\\"Input value to send/receive via channel.\\\" )\\n59| //flag.Parse()\\n60| \\n61| // create a channel\\n62| \\tch := make(chan int)\\n63| \\n64| \\tgo dummy_func(ch)\\n65| \\tgo dummy_func(ch)\\n66| \\n67| // send a value into the channel\\n68| \\tch <- input_value\\n69| \\n70| // receive a value from channel\\n71| response := <- ch\\n72| fmt.Println(response)\\n73| \\n74| }\\n```\\n\\n```\\n19| import \\\"fmt\\\"\\n20| \\n21| func dummy_func(ch chan int) {\\n22| // receive a value from channel\\n23| val := <-ch\\n24| \\tfmt.Println(val)\\n25| }\\n26| func main() {\\n27| // create a channel\\n28| \\tch := make(chan int)\\n29| \\tgo dummy_func(ch)\\n30| \\tgo dummy_func(ch)\\n31| // send a value into the channel\\n32| \\tch <- 10\\n33| }\\n34| \\n35| // Example 2\\n36| \\n37| package main\\n38| \\n39| import (\\n```\\n\\n```\\n76| // example 3\\n77| \\n78| \\n79| package main\\n80| \\n81| import(\\n82| \\\"fmt\\\"\\n83| \\\"time\\\"\\n84| \\\"math/rand\\\"\\n85| )\\n86| func routine1(ch chan int, min int, max int) {\\n87| func routine1(ch chan int, min int, max int) {\\n88| \\n89| rand.Seed(time.Now().UnixNano())\\n90| t := rand.Intn(max - min) + min\\n91| fmt.Println(\\\"routine 1 is waiting: \\\", t, \\\"secs\\\")\\n92| time.Sleep(time.Duration(t)*time.Second)\\n93| \\n94| ch <- t\\n95| }\\n96| \\n```\\n\\n```\\n86| \\n87| func routine1(ch chan int, min int, max int) {\\n88| \\n89| rand.Seed(time.Now().UnixNano())\\n90| t := rand.Intn(max - min) + min\\n91| fmt.Println(\\\"routine 1 is waiting: \\\", t, \\\"secs\\\")\\n92| time.Sleep(time.Duration(t)*time.Second)\\n93| \\n94| ch <- t\\n95| }\\n96| func routine2(ch chan int, min int, max int) {\\n97| func routine2(ch chan int, min int, max int) {\\n98| \\n99| rand.Seed(time.Now().UnixNano())\\n100| t := rand.Intn(max - min) + min\\n101| fmt.Println(\\\"routine 2 is waiting: \\\", t, \\\"secs\\\")\\n102| time.Sleep(time.Duration(t)*time.Second)\\n103| \\n104| ch <- t\\n105| }\\n106| \\n```\\n\\n## Result 2: github.com/GoesToEleven/GolangTraining/14_functions/10_func-expression/01_before-func-expression/main.go\\n\\nURL: /r/github.com/GoesToEleven/GolangTraining/-/blob/14_functions/10_func-expression/01_before-func-expression/main.go\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| func greeting() {\\n6| \\tfmt.Println(\\\"Hello world!\\\")\\n7| }\\n8| func main() {\\n9| func main() {\\n10| \\tgreeting()\\n11| }\\n12| \\n```\\n\\n```\\n0| package main\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| func greeting() {\\n6| \\tfmt.Println(\\\"Hello world!\\\")\\n7| }\\n8| \\n9| func main() {\\n10| \\tgreeting()\\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| func greeting() {\\n5| func greeting() {\\n6| \\tfmt.Println(\\\"Hello world!\\\")\\n7| }\\n8| \\n9| func main() {\\n10| \\tgreeting()\\n11| }\\n12| \\n```\\n\\n## Result 3: github.com/GoesToEleven/GolangTraining/14_functions/10_func-expression/02_func-expression/main.go\\n\\nURL: /r/github.com/GoesToEleven/GolangTraining/-/blob/14_functions/10_func-expression/02_func-expression/main.go\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| func main() {\\n5| func main() {\\n6| \\n7| \\tgreeting := func() {\\n8| \\t\\tfmt.Println(\\\"Hello world!\\\")\\n9| \\t}\\n10| \\n11| \\tgreeting()\\n12| }\\n13| \\n```\\n\\n```\\n1| package main\\n2| \\n3| import \\\"fmt\\\"\\n4| \\n5| func main() {\\n6| \\tgreeting := func() {\\n7| \\tgreeting := func() {\\n8| \\t\\tfmt.Println(\\\"Hello world!\\\")\\n9| \\t}\\n10| \\n11| \\tgreeting()\\n12| }\\n13| \\n```\\n\\n\",\"tool_call_id\":\"call_0c9616efd289ae9a\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
616552 headers:
617553 Accept:
618554 - application/json
@@ -629,203 +565,185 @@ interactions:
629565 content_length: -1
630566 uncompressed: true
631567 body: |+
632− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
633−
634− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Found"},"finish_reason":null}]}
635−
636− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}]}
637−
638− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"30"},"finish_reason":null}]}
639−
640− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" matches"},"finish_reason":null}]}
641−
642− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" across"},"finish_reason":null}]}
643−
644− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}]}
645−
646− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"30"},"finish_reason":null}]}
647−
648− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" results"},"finish_reason":null}]}
649−
650− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}]}
568+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
651569
652− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" Key"},"finish_reason":null}]}
570+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Found"},"finish_reason":null}]}
653571
654− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" examples"},"finish_reason":null}]}
572+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}]}
655573
656− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" include"},"finish_reason":null}]}
574+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"30 matches"},"finish_reason":null}]}
657575
658− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":\n\n"},"finish_reason":null}]}
576+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" across Go"},"finish_reason":null}]}
659577
660− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}]}
578+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" repositories. Here"},"finish_reason":null}]}
661579
662− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" **"},"finish_reason":null}]}
580+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" are some highlights"},"finish_reason":null}]}
663581
664− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"github"},"finish_reason":null}]}
582+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":\n\n| Repository"},"finish_reason":null}]}
665583
666− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".com"},"finish_reason":null}]}
584+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" | File | Line"},"finish_reason":null}]}
667585
668− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/j"},"finish_reason":null}]}
586+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" |\n|---"},"finish_reason":null}]}
669587
670− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"mb"},"finish_reason":null}]}
588+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"|---|---"},"finish_reason":null}]}
671589
672− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"har"},"finish_reason":null}]}
590+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"|\n| `j"},"finish_reason":null}]}
673591
674− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"ath"},"finish_reason":null}]}
592+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"mbhar"},"finish_reason":null}]}
675593
676− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"ram"},"finish_reason":null}]}
594+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"athram/"},"finish_reason":null}]}
677595
678− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/"},"finish_reason":null}]}
596+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"executeon"},"finish_reason":null}]}
679597
680− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"execute"},"finish_reason":null}]}
598+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"command` | `"},"finish_reason":null}]}
681599
682− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"on"},"finish_reason":null}]}
600+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"go/channel"},"finish_reason":null}]}
683601
684− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"command"},"finish_reason":null}]}
602+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/main.go` |"},"finish_reason":null}]}
685603
686− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"**"},"finish_reason":null}]}
604+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}]}
687605
688− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" —"},"finish_reason":null}]}
606+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"9, "},"finish_reason":null}]}
689607
690− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
608+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"26, 52"},"finish_reason":null}]}
691609
692− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"main"},"finish_reason":null}]}
610+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":", 107"},"finish_reason":null}]}
693611
694− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".go"},"finish_reason":null}]}
612+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" |\n|"},"finish_reason":null}]}
695613
696− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
614+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `GoesTo"},"finish_reason":null}]}
697615
698− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" with"},"finish_reason":null}]}
616+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Eleven/G"},"finish_reason":null}]}
699617
700− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" gor"},"finish_reason":null}]}
618+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"olangTraining"},"finish_reason":null}]}
701619
702− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"outines"},"finish_reason":null}]}
620+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"` | `"},"finish_reason":null}]}
703621
704− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
622+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"14"},"finish_reason":null}]}
705623
706− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" channels"},"finish_reason":null}]}
624+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"_functions/10"},"finish_reason":null}]}
707625
708− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"\n"},"finish_reason":null}]}
626+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"_func-expression"},"finish_reason":null}]}
709627
710− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}]}
628+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/01"},"finish_reason":null}]}
711629
712− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" **"},"finish_reason":null}]}
630+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"_before-f"},"finish_reason":null}]}
713631
714− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"github"},"finish_reason":null}]}
632+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"unc-expression"},"finish_reason":null}]}
715633
716− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".com"},"finish_reason":null}]}
634+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/main.go` |"},"finish_reason":null}]}
717635
718− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/G"},"finish_reason":null}]}
636+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" 9 |\n|"},"finish_reason":null}]}
719637
720− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"oes"},"finish_reason":null}]}
638+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `GoesTo"},"finish_reason":null}]}
721639
722− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"To"},"finish_reason":null}]}
640+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Eleven/G"},"finish_reason":null}]}
723641
724− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Ele"},"finish_reason":null}]}
642+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"olangTraining"},"finish_reason":null}]}
725643
726− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"ven"},"finish_reason":null}]}
644+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"` | `14"},"finish_reason":null}]}
727645
728− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/G"},"finish_reason":null}]}
646+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"_functions/10"},"finish_reason":null}]}
729647
730− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"olang"},"finish_reason":null}]}
648+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"_func-expression"},"finish_reason":null}]}
731649
732− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Training"},"finish_reason":null}]}
650+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/02"},"finish_reason":null}]}
733651
734− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"**"},"finish_reason":null}]}
652+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"_func-expression"},"finish_reason":null}]}
735653
736− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" —"},"finish_reason":null}]}
654+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/main.go"},"finish_reason":null}]}
737655
738− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" Multiple"},"finish_reason":null}]}
656+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"` | "},"finish_reason":null}]}
739657
740− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
658+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"5 |\n\nThe"},"finish_reason":null}]}
741659
742− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"func"},"finish_reason":null}]}
660+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" results are heavily"},"finish_reason":null}]}
743661
744− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" main"},"finish_reason":null}]}
662+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" skewed"},"finish_reason":null}]}
745663
746− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
664+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" toward tutorial"},"finish_reason":null}]}
747665
748− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" examples"},"finish_reason":null}]}
666+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/tr"},"finish_reason":null}]}
749667
750− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" demonstrating"},"finish_reason":null}]}
668+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"aining repos"},"finish_reason":null}]}
751669
752− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" function"},"finish_reason":null}]}
670+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":". To"},"finish_reason":null}]}
753671
754− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" expressions"},"finish_reason":null}]}
672+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" get"},"finish_reason":null}]}
755673
756− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"\n\n"},"finish_reason":null}]}
674+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" more diverse"},"finish_reason":null}]}
757675
758− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"The"},"finish_reason":null}]}
676+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":","},"finish_reason":null}]}
759677
760− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" results"},"finish_reason":null}]}
678+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" production-oriented"},"finish_reason":null}]}
761679
762− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" are"},"finish_reason":null}]}
680+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" results, you"},"finish_reason":null}]}
763681
764− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" mostly"},"finish_reason":null}]}
682+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" could narrow the query"},"finish_reason":null}]}
765683
766− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" from"},"finish_reason":null}]}
684+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":","},"finish_reason":null}]}
767685
768− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" tutorial"},"finish_reason":null}]}
686+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" e.g.:\n\n"},"finish_reason":null}]}
769687
770− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/tr"},"finish_reason":null}]}
688+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"- `func"},"finish_reason":null}]}
771689
772− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"aining"},"finish_reason":null}]}
690+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" main() lang"},"finish_reason":null}]}
773691
774− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" repos"},"finish_reason":null}]}
692+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":go"},"finish_reason":null}]}
775693
776− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}]}
694+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" -repo"},"finish_reason":null}]}
777695
778− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" To"},"finish_reason":null}]}
696+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":G"},"finish_reason":null}]}
779697
780− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" narrow"},"finish_reason":null}]}
698+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"olang"},"finish_reason":null}]}
781699
782− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" results"},"finish_reason":null}]}
700+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Training -"},"finish_reason":null}]}
783701
784− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":","},"finish_reason":null}]}
702+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"repo:"},"finish_reason":null}]}
785703
786− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" try"},"finish_reason":null}]}
704+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"executeon"},"finish_reason":null}]}
787705
788− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" a"},"finish_reason":null}]}
706+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"command`\n-"},"finish_reason":null}]}
789707
790− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" more"},"finish_reason":null}]}
708+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `func"},"finish_reason":null}]}
791709
792− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" specific"},"finish_reason":null}]}
710+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" main() lang"},"finish_reason":null}]}
793711
794− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" query"},"finish_reason":null}]}
712+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":go count"},"finish_reason":null}]}
795713
796− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" like"},"finish_reason":null}]}
714+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":500"},"finish_reason":null}]}
797715
798− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
716+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"0` ("},"finish_reason":null}]}
799717
800− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"func"},"finish_reason":null}]}
718+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"to see"},"finish_reason":null}]}
801719
802− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" main"},"finish_reason":null}]}
720+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" more repos"},"finish_reason":null}]}
803721
804− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"()"},"finish_reason":null}]}
722+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":")\n-"},"finish_reason":null}]}
805723
806− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" lang"},"finish_reason":null}]}
724+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `func"},"finish_reason":null}]}
807725
808− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":"},"finish_reason":null}]}
726+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" main lang"},"finish_reason":null}]}
809727
810− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Go"},"finish_reason":null}]}
728+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":go file"},"finish_reason":null}]}
811729
812− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" -"},"finish_reason":null}]}
730+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":cmd"},"finish_reason":null}]}
813731
814− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"repo"},"finish_reason":null}]}
732+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"/` ("},"finish_reason":null}]}
815733
816− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":"},"finish_reason":null}]}
734+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"target"},"finish_reason":null}]}
817735
818− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"G"},"finish_reason":null}]}
736+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"ing `"},"finish_reason":null}]}
819737
820− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"olang"},"finish_reason":null}]}
738+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"cmd/` entry"},"finish_reason":null}]}
821739
822− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Training"},"finish_reason":null}]}
740+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"points"},"finish_reason":null}]}
823741
824− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`."},"finish_reason":null}]}
742+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":")"},"finish_reason":null}]}
825743
826− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
744+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
827745
828− data: {"id":"chatcmpl-438e2c6bfceb138401c90578","object":"chat.completion.chunk","created":1780069704,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":3203,"completion_tokens":98,"total_tokens":11109,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.00460753,"hypercredits":0.0921506},"remaining":{"hypercredits":0}}}
746+ data: {"id":"chatcmpl-c421e6127f217051d2c5b76c","object":"chat.completion.chunk","created":1781202038,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":3884,"completion_tokens":213,"total_tokens":11228,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.006374799999999999,"hypercredits":0.12749599999999997},"remaining":{"hypercredits":0}}}
829747
830748 data: [DONE]
831749
@@ -834,4 +752,4 @@ interactions:
834752 - text/event-stream
835753 status: 200 OK
836754 code: 200
837− duration: 769.076542ms
755+ duration: 1.386253459s
internal/agent/testdata/TestCoderAgent/glm-5.1/update_a_file.yaml+293−277
@@ -6,9 +6,9 @@ interactions:
66 proto: HTTP/1.1
77 proto_major: 1
88 proto_minor: 1
9− content_length: 828
9+ content_length: 33958
1010 host: ""
11− body: '{"messages":[{"content":"You will generate a short title based on the first message a user begins a conversation with.\n\n<rules>\n- Keep the title in the same language that the user wrote their message in.\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\nupdate the main.go file by changing the print to say hello from crush\n <think>\n\n</think>","role":"user"}],"model":"gpt-oss-120b","max_completion_tokens":40,"stream_options":{"include_usage":true},"stream":true}'
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"update the main.go file by changing the print to say hello from crush\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1212 headers:
1313 Accept:
1414 - application/json
@@ -25,445 +25,417 @@ interactions:
2525 content_length: -1
2626 uncompressed: true
2727 body: |+
28− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
28+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
2929
30− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
30+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_79ddceb2cb914783","type":"function","index":0,"function":{"name":"view","arguments":""}}]},"finish_reason":null}]}
3131
32− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
32+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
3333
34− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
34+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": \"/tmp"}}]},"finish_reason":null}]}
3535
36− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
36+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/crush"}}]},"finish_reason":null}]}
3737
38− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
38+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test/Test"}}]},"finish_reason":null}]}
3939
40− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
40+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"CoderAgent"}}]},"finish_reason":null}]}
4141
42− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
42+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/glm-"}}]},"finish_reason":null}]}
4343
44− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
44+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5.1/update"}}]},"finish_reason":null}]}
4545
46− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
46+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_a_file/main.go"}}]},"finish_reason":null}]}
4747
48− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
48+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
4949
50− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
50+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
5151
52− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"update"},"finish_reason":null}]}
52+ data: {"id":"chatcmpl-3b84a35ef44766441d8183e7","object":"chat.completion.chunk","created":1781202003,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":682,"completion_tokens":27,"total_tokens":7840,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0010736,"hypercredits":0.021472},"remaining":{"hypercredits":0}}}
5353
54− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
54+ data: [DONE]
5555
56− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
56+ headers:
57+ Content-Type:
58+ - text/event-stream
59+ status: 200 OK
60+ code: 200
61+ duration: 834.1355ms
62+- id: 1
63+ request:
64+ proto: HTTP/1.1
65+ proto_major: 1
66+ proto_minor: 1
67+ content_length: 828
68+ host: ""
69+ body: '{"messages":[{"content":"You will generate a short title based on the first message a user begins a conversation with.\n\n<rules>\n- Keep the title in the same language that the user wrote their message in.\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\nupdate the main.go file by changing the print to say hello from crush\n <think>\n\n</think>","role":"user"}],"model":"gpt-oss-120b","max_completion_tokens":40,"stream_options":{"include_usage":true},"stream":true}'
70+ headers:
71+ Accept:
72+ - application/json
73+ Content-Type:
74+ - application/json
75+ User-Agent:
76+ - Charm-Crush/devel (https://charm.land/crush)
77+ url: https://hyper.charm.land/v1/chat/completions
78+ method: POST
79+ response:
80+ proto: HTTP/2.0
81+ proto_major: 2
82+ proto_minor: 0
83+ content_length: -1
84+ uncompressed: true
85+ body: |+
86+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
5787
58− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".go"},"finish_reason":null}]}
88+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
5989
60− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
90+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
6191
62− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" by"},"finish_reason":null}]}
92+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" said"},"finish_reason":null}]}
6393
64− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" changing"},"finish_reason":null}]}
94+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
6595
66− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
96+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
6797
68− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" print"},"finish_reason":null}]}
98+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
6999
70− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
100+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
71101
72− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" say"},"finish_reason":null}]}
102+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
73103
74− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
104+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
75105
76− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
106+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
77107
78− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" crush"},"finish_reason":null}]}
108+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
79109
80− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
110+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
81111
82− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Must"},"finish_reason":null}]}
112+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
83113
84− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
114+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
85115
86− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
116+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" update"},"finish_reason":null}]}
87117
88− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
118+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
89119
90− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
120+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
91121
92− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
122+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".go"},"finish_reason":null}]}
93123
94− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
124+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
95125
96− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
126+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" by"},"finish_reason":null}]}
97127
98− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
128+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" changing"},"finish_reason":null}]}
99129
100− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
130+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
101131
102− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
132+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" print"},"finish_reason":null}]}
103133
104− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
134+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ..."},"finish_reason":null}]}
105135
106− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
136+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
107137
108− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
138+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Need"},"finish_reason":null}]}
109139
110− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
140+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
111141
112− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
142+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
113143
114− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
144+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
115145
116− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
146+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
117147
118− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
148+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
119149
120− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Something"},"finish_reason":null}]}
150+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
121151
122− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
152+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Must"},"finish_reason":null}]}
123153
124− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
154+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
125155
126− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Update"},"finish_reason":null}]}
156+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
127157
128− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
158+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
129159
130− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".go"},"finish_reason":null}]}
160+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
131161
132− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
162+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
133163
134− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" print"},"finish_reason":null}]}
164+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
135165
136− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
166+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
137167
138− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
168+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
139169
140− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" crush"},"finish_reason":null}]}
170+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
141171
142− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
172+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
143173
144− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
174+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
145175
146− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
176+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
147177
148− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
178+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
149179
150− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
180+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
151181
152− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
182+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
153183
154− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
184+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Possible"},"finish_reason":null}]}
155185
156− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
186+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
157187
158− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
188+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
159189
160− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Update"},"finish_reason":null}]}
190+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Update"},"finish_reason":null}]}
161191
162− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
192+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
163193
164− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".go"},"finish_reason":null}]}
194+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".go"},"finish_reason":null}]}
165195
166− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
196+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
167197
168− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" print"},"finish_reason":null}]}
198+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" print"},"finish_reason":null}]}
169199
170− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
200+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
171201
172− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
202+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
173203
174− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" crush"},"finish_reason":null}]}
204+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" crush"},"finish_reason":null}]}
175205
176− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
206+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
177207
178− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
208+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
179209
180− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
210+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
181211
182− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
212+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
183213
184− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
214+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
185215
186− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
216+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Update"},"finish_reason":null}]}
187217
188− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" U"},"finish_reason":null}]}
218+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
189219
190− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
220+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".go"},"finish_reason":null}]}
191221
192− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
222+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
193223
194− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
224+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" print"},"finish_reason":null}]}
195225
196− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" p"},"finish_reason":null}]}
226+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
197227
198− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"..."},"finish_reason":null}]}
228+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
199229
200− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" total"},"finish_reason":null}]}
230+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" crush"},"finish_reason":null}]}
201231
202− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" maybe"},"finish_reason":null}]}
232+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
203233
204− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
234+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
205235
206− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
236+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
207237
208− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
238+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
209239
210− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
240+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
211241
212− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
242+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Update"},"finish_reason":null}]}
213243
214− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
244+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
215245
216− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
246+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
217247
218− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
248+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
219249
220− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Update"},"finish_reason":null}]}
250+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
221251
222− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" main"},"finish_reason":null}]}
252+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
223253
224− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".go"},"finish_reason":null}]}
254+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
225255
226− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}]}
256+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
227257
228− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" print"},"finish_reason":null}]}
258+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
229259
230− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" hello"},"finish_reason":null}]}
260+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
231261
232− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" from"},"finish_reason":null}]}
262+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
233263
234− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" crush"},"finish_reason":null}]}
264+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
235265
236− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
266+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".go"},"finish_reason":null}]}
237267
238− data: {"id":"chatcmpl-bac0545ec822d29b0d5a7124","object":"chat.completion.chunk","created":1780069674,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":218,"completion_tokens":113,"total_tokens":331,"completion_tokens_details":{"reasoning_tokens":96},"cost":{"usd":0.00016673,"hypercredits":0.0033345999999999996},"remaining":{"hypercredits":0}}}
268+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
239269
240− data: [DONE]
270+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
241271
242− headers:
243− Content-Type:
244− - text/event-stream
245− status: 200 OK
246− code: 200
247− duration: 484.749333ms
248−- id: 1
249− request:
250− proto: HTTP/1.1
251− proto_major: 1
252− proto_minor: 1
253− content_length: 33964
254− host: ""
255− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"update the main.go file by changing the print to say hello from crush\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
256− headers:
257− Accept:
258− - application/json
259− Content-Type:
260− - application/json
261− User-Agent:
262− - Charm-Crush/devel (https://charm.land/crush)
263− url: https://hyper.charm.land/v1/chat/completions
264− method: POST
265− response:
266− proto: HTTP/2.0
267− proto_major: 2
268− proto_minor: 0
269− content_length: -1
270− uncompressed: true
271− body: |+
272− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
272+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
273273
274− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"Let"},"finish_reason":null}]}
274+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
275275
276− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" me"},"finish_reason":null}]}
276+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
277277
278− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" first"},"finish_reason":null}]}
278+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
279279
280− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" read"},"finish_reason":null}]}
280+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
281281
282− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
282+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
283283
284− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" main"},"finish_reason":null}]}
284+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
285285
286− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":".go"},"finish_reason":null}]}
286+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
287287
288− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
288+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"15"},"finish_reason":null}]}
289289
290− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
290+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
291291
292− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" see"},"finish_reason":null}]}
292+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
293293
294− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" its"},"finish_reason":null}]}
294+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
295295
296− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
296+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
297297
298− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
298+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
299299
300− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
300+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
301301
302− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_F9YjcYzHwrHN1Ic3572Oz4Xr","type":"function","index":0,"function":{"name":"view","arguments":""}}]},"finish_reason":null}]}
302+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
303303
304− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
304+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
305305
306− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
306+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
307307
308− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": "}}]},"finish_reason":null}]}
308+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
309309
310− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/tmp"}}]},"finish_reason":null}]}
310+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
311311
312− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/c"}}]},"finish_reason":null}]}
312+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
313313
314− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush"}}]},"finish_reason":null}]}
314+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
315315
316− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test"}}]},"finish_reason":null}]}
316+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" print"},"finish_reason":null}]}
317317
318− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/Test"}}]},"finish_reason":null}]}
318+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
319319
320− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Coder"}}]},"finish_reason":null}]}
320+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
321321
322− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent"}}]},"finish_reason":null}]}
322+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
323323
324− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/g"}}]},"finish_reason":null}]}
324+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
325325
326− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lm"}}]},"finish_reason":null}]}
326+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
327327
328− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-"}}]},"finish_reason":null}]}
328+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
329329
330− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5"}}]},"finish_reason":null}]}
330+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
331331
332− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"."}}]},"finish_reason":null}]}
332+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
333333
334− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1"}}]},"finish_reason":null}]}
334+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
335335
336− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/update"}}]},"finish_reason":null}]}
336+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
337337
338− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_a"}}]},"finish_reason":null}]}
338+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
339339
340− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_file"}}]},"finish_reason":null}]}
340+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" hello"},"finish_reason":null}]}
341341
342− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/main"}}]},"finish_reason":null}]}
342+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
343343
344− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".go"}}]},"finish_reason":null}]}
344+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
345345
346− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
346+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
347347
348− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
348+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
349349
350− data: {"id":"chatcmpl-4a778ce8db55e98cf59d1936","object":"chat.completion.chunk","created":1780069674,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":710,"completion_tokens":43,"total_tokens":7857,"prompt_tokens_details":{"cached_tokens":7104},"completion_tokens_details":{"reasoning_tokens":16},"cost":{"usd":0.0011779,"hypercredits":0.023558},"remaining":{"hypercredits":0}}}
350+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
351351
352− data: [DONE]
352+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
353353
354− headers:
355− Content-Type:
356− - text/event-stream
357− status: 200 OK
358− code: 200
359− duration: 749.955292ms
360−- id: 2
361− request:
362− proto: HTTP/1.1
363− proto_major: 1
364− proto_minor: 1
365− content_length: 34502
366− host: ""
367− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"update the main.go file by changing the print to say hello from crush\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_F9YjcYzHwrHN1Ic3572Oz4Xr\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"Let me first read the main.go file to see its current content.\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\tfmt.Println(\\\"Hello, World!\\\")\\n 7|}\\n 8|\\n</file>\\n\",\"tool_call_id\":\"call_F9YjcYzHwrHN1Ic3572Oz4Xr\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
368− headers:
369− Accept:
370− - application/json
371− Content-Type:
372− - application/json
373− User-Agent:
374− - Charm-Crush/devel (https://charm.land/crush)
375− url: https://hyper.charm.land/v1/chat/completions
376− method: POST
377− response:
378− proto: HTTP/2.0
379− proto_major: 2
380− proto_minor: 0
381− content_length: -1
382− uncompressed: true
383− body: |+
384− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
354+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
355+
356+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
385357
386− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_QUQ7vKujNwzMMi6LCjGzqGk4","type":"function","index":0,"function":{"name":"edit","arguments":""}}]},"finish_reason":null}]}
358+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
387359
388− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
360+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
389361
390− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
362+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
391363
392− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": "}}]},"finish_reason":null}]}
364+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
393365
394− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/tmp"}}]},"finish_reason":null}]}
366+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
395367
396− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/c"}}]},"finish_reason":null}]}
368+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
397369
398− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush"}}]},"finish_reason":null}]}
370+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
399371
400− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test"}}]},"finish_reason":null}]}
372+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
401373
402− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/Test"}}]},"finish_reason":null}]}
374+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
403375
404− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Coder"}}]},"finish_reason":null}]}
376+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
405377
406− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent"}}]},"finish_reason":null}]}
378+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
407379
408− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/g"}}]},"finish_reason":null}]}
380+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
409381
410− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lm"}}]},"finish_reason":null}]}
382+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
411383
412− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-"}}]},"finish_reason":null}]}
384+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
413385
414− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5"}}]},"finish_reason":null}]}
386+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
415387
416− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"."}}]},"finish_reason":null}]}
388+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" crush"},"finish_reason":null}]}
417389
418− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1"}}]},"finish_reason":null}]}
390+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
419391
420− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/update"}}]},"finish_reason":null}]}
392+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
421393
422− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_a"}}]},"finish_reason":null}]}
394+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")=\u003e"},"finish_reason":null}]}
423395
424− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_file"}}]},"finish_reason":null}]}
396+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
425397
426− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/main"}}]},"finish_reason":null}]}
398+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
427399
428− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".go"}}]},"finish_reason":null}]}
400+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
429401
430− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\", \"new_string\": "}}]},"finish_reason":null}]}
402+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
431403
432− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"\\tfmt"}}]},"finish_reason":null}]}
404+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
433405
434− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".Println"}}]},"finish_reason":null}]}
406+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
435407
436− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"(\\\""}}]},"finish_reason":null}]}
408+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
437409
438− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"hello"}}]},"finish_reason":null}]}
410+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" okay"},"finish_reason":null}]}
439411
440− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" from"}}]},"finish_reason":null}]}
412+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
441413
442− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" crush"}}]},"finish_reason":null}]}
414+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Return"},"finish_reason":null}]}
443415
444− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\\")"}}]},"finish_reason":null}]}
416+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
445417
446− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\", \"old_string\": "}}]},"finish_reason":null}]}
418+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
447419
448− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"\\tfmt"}}]},"finish_reason":null}]}
420+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Update"},"finish_reason":null}]}
449421
450− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".Println"}}]},"finish_reason":null}]}
422+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" main"},"finish_reason":null}]}
451423
452− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"(\\\""}}]},"finish_reason":null}]}
424+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".go"},"finish_reason":null}]}
453425
454− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Hello"}}]},"finish_reason":null}]}
426+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}]}
455427
456− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":","}}]},"finish_reason":null}]}
428+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" print"},"finish_reason":null}]}
457429
458− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" World"}}]},"finish_reason":null}]}
430+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" hello"},"finish_reason":null}]}
459431
460− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"!\\\")"}}]},"finish_reason":null}]}
432+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" from"},"finish_reason":null}]}
461433
462− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
434+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" crush"},"finish_reason":null}]}
463435
464− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
436+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
465437
466− data: {"id":"chatcmpl-bc1c0706c28fbf93cc7f727d","object":"chat.completion.chunk","created":1780069675,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":95,"completion_tokens":55,"total_tokens":7958,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.00035545,"hypercredits":0.007109},"remaining":{"hypercredits":0}}}
438+ data: {"id":"chatcmpl-090676417d2d624ad52e3715","object":"chat.completion.chunk","created":1781202004,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":205,"completion_tokens":184,"total_tokens":389,"completion_tokens_details":{"reasoning_tokens":140},"cost":{"usd":0.000247328,"hypercredits":0.00494656},"remaining":{"hypercredits":0}}}
467439
468440 data: [DONE]
469441
@@ -472,15 +444,15 @@ interactions:
472444 - text/event-stream
473445 status: 200 OK
474446 code: 200
475− duration: 721.554959ms
476−- id: 3
447+ duration: 1.068514167s
448+- id: 2
477449 request:
478450 proto: HTTP/1.1
479451 proto_major: 1
480452 proto_minor: 1
481− content_length: 35047
453+ content_length: 34395
482454 host: ""
483− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"update the main.go file by changing the print to say hello from crush\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_F9YjcYzHwrHN1Ic3572Oz4Xr\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"Let me first read the main.go file to see its current content.\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\tfmt.Println(\\\"Hello, World!\\\")\\n 7|}\\n 8|\\n</file>\\n\",\"tool_call_id\":\"call_F9YjcYzHwrHN1Ic3572Oz4Xr\",\"role\":\"tool\"},{\"tool_calls\":[{\"id\":\"call_QUQ7vKujNwzMMi6LCjGzqGk4\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file/main.go\\\", \\\"new_string\\\": \\\"\\\\tfmt.Println(\\\\\\\"hello from crush\\\\\\\")\\\", \\\"old_string\\\": \\\"\\\\tfmt.Println(\\\\\\\"Hello, World!\\\\\\\")\\\"}\",\"name\":\"edit\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"\"},{\"content\":\"<result>\\nContent replaced in file: /tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file/main.go\\n</result>\\n\",\"tool_call_id\":\"call_QUQ7vKujNwzMMi6LCjGzqGk4\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
455+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"update the main.go file by changing the print to say hello from crush\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_79ddceb2cb914783\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\tfmt.Println(\\\"Hello, World!\\\")\\n 7|}\\n 8|\\n</file>\\n\",\"tool_call_id\":\"call_79ddceb2cb914783\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
484456 headers:
485457 Accept:
486458 - application/json
@@ -497,45 +469,89 @@ interactions:
497469 content_length: -1
498470 uncompressed: true
499471 body: |+
500− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
472+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
473+
474+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_8418985d0643971b","type":"function","index":0,"function":{"name":"edit","arguments":""}}]},"finish_reason":null}]}
475+
476+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
477+
478+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": \"/tmp/c"}}]},"finish_reason":null}]}
479+
480+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush-test/TestCoder"}}]},"finish_reason":null}]}
501481
502− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Done"},"finish_reason":null}]}
482+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent/glm-"}}]},"finish_reason":null}]}
503483
504− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}]}
484+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5.1/update"}}]},"finish_reason":null}]}
505485
506− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" Updated"},"finish_reason":null}]}
486+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_a_file/main.go"}}]},"finish_reason":null}]}
507487
508− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
488+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\", "}}]},"finish_reason":null}]}
509489
510− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"main"},"finish_reason":null}]}
490+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"new_string\": \"\\tfmt"}}]},"finish_reason":null}]}
511491
512− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".go"},"finish_reason":null}]}
492+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".Println(\\\"Hello from"}}]},"finish_reason":null}]}
513493
514− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":":"},"finish_reason":null}]}
494+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" crush"}}]},"finish_reason":null}]}
515495
516− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"6"},"finish_reason":null}]}
496+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"!\\\")\", "}}]},"finish_reason":null}]}
517497
518− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`"},"finish_reason":null}]}
498+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"old_string\": \"\\tfmt"}}]},"finish_reason":null}]}
519499
520− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}]}
500+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".Println(\\\"Hello,"}}]},"finish_reason":null}]}
521501
522− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" print"},"finish_reason":null}]}
502+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" World!\\\")\"}"}}]},"finish_reason":null}]}
523503
524− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `\""},"finish_reason":null}]}
504+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
505+
506+ data: {"id":"chatcmpl-2d0f2e822ba35cd2aa9a507d","object":"chat.completion.chunk","created":1781202005,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":7858,"completion_tokens":53,"total_tokens":7954,"prompt_tokens_details":{"cached_tokens":43},"cost":{"usd":0.011234399999999999,"hypercredits":0.22468799999999997},"remaining":{"hypercredits":0}}}
507+
508+ data: [DONE]
509+
510+ headers:
511+ Content-Type:
512+ - text/event-stream
513+ status: 200 OK
514+ code: 200
515+ duration: 966.825042ms
516+- id: 3
517+ request:
518+ proto: HTTP/1.1
519+ proto_major: 1
520+ proto_minor: 1
521+ content_length: 34902
522+ host: ""
523+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"update the main.go file by changing the print to say hello from crush\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_79ddceb2cb914783\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file/main.go\\\"}\",\"name\":\"view\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"<file>\\n 1|package main\\n 2|\\n 3|import \\\"fmt\\\"\\n 4|\\n 5|func main() {\\n 6|\\tfmt.Println(\\\"Hello, World!\\\")\\n 7|}\\n 8|\\n</file>\\n\",\"tool_call_id\":\"call_79ddceb2cb914783\",\"role\":\"tool\"},{\"tool_calls\":[{\"id\":\"call_8418985d0643971b\",\"function\":{\"arguments\":\"{\\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file/main.go\\\", \\\"new_string\\\": \\\"\\\\tfmt.Println(\\\\\\\"Hello from crush!\\\\\\\")\\\", \\\"old_string\\\": \\\"\\\\tfmt.Println(\\\\\\\"Hello, World!\\\\\\\")\\\"}\",\"name\":\"edit\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"<result>\\nContent replaced in file: /tmp/crush-test/TestCoderAgent/glm-5.1/update_a_file/main.go\\n</result>\\n\",\"tool_call_id\":\"call_8418985d0643971b\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
524+ headers:
525+ Accept:
526+ - application/json
527+ Content-Type:
528+ - application/json
529+ User-Agent:
530+ - Charm-Crush/devel (https://charm.land/crush)
531+ url: https://hyper.charm.land/v1/chat/completions
532+ method: POST
533+ response:
534+ proto: HTTP/2.0
535+ proto_major: 2
536+ proto_minor: 0
537+ content_length: -1
538+ uncompressed: true
539+ body: |+
540+ data: {"id":"chatcmpl-8db89d792291be454da46700","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
525541
526− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"hello"},"finish_reason":null}]}
542+ data: {"id":"chatcmpl-8db89d792291be454da46700","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Updated"},"finish_reason":null}]}
527543
528− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" from"},"finish_reason":null}]}
544+ data: {"id":"chatcmpl-8db89d792291be454da46700","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `main.go:"},"finish_reason":null}]}
529545
530− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" crush"},"finish_reason":null}]}
546+ data: {"id":"chatcmpl-8db89d792291be454da46700","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"6` —"},"finish_reason":null}]}
531547
532− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"\""},"finish_reason":null}]}
548+ data: {"id":"chatcmpl-8db89d792291be454da46700","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" now prints \""},"finish_reason":null}]}
533549
534− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`."},"finish_reason":null}]}
550+ data: {"id":"chatcmpl-8db89d792291be454da46700","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Hello from crush!\""},"finish_reason":null}]}
535551
536− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
552+ data: {"id":"chatcmpl-8db89d792291be454da46700","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
537553
538− data: {"id":"chatcmpl-f6de8499eb3c914cefe756a9","object":"chat.completion.chunk","created":1780069678,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":57,"completion_tokens":19,"total_tokens":8012,"prompt_tokens_details":{"cached_tokens":7936},"cost":{"usd":0.00015447,"hypercredits":0.0030894},"remaining":{"hypercredits":0}}}
554+ data: {"id":"chatcmpl-8db89d792291be454da46700","object":"chat.completion.chunk","created":1781202006,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":37,"completion_tokens":15,"total_tokens":8005,"prompt_tokens_details":{"cached_tokens":7953},"cost":{"usd":0.0001178,"hypercredits":0.002356},"remaining":{"hypercredits":0}}}
539555
540556 data: [DONE]
541557
@@ -544,4 +560,4 @@ interactions:
544560 - text/event-stream
545561 status: 200 OK
546562 code: 200
547− duration: 2.1932855s
563+ duration: 698.204708ms
internal/agent/testdata/TestCoderAgent/glm-5.1/write_tool.yaml+167−241
@@ -6,9 +6,9 @@ interactions:
66 proto: HTTP/1.1
77 proto_major: 1
88 proto_minor: 1
9− content_length: 868
9+ content_length: 33995
1010 host: ""
11− body: '{"messages":[{"content":"You will generate a short title based on the first message a user begins a conversation with.\n\n<rules>\n- Keep the title in the same language that the user wrote their message in.\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\nuse write to create a new file called config.json with content ''{\"name\": \"test\", \"version\": \"1.0.0\"}''\n <think>\n\n</think>","role":"user"}],"model":"gpt-oss-120b","max_completion_tokens":40,"stream_options":{"include_usage":true},"stream":true}'
11+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/write_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use write to create a new file called config.json with content '{\\\"name\\\": \\\"test\\\", \\\"version\\\": \\\"1.0.0\\\"}'\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
1212 headers:
1313 Accept:
1414 - application/json
@@ -25,355 +25,287 @@ interactions:
2525 content_length: -1
2626 uncompressed: true
2727 body: |+
28− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
29−
30− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
31−
32− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
33−
34− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" asks"},"finish_reason":null}]}
35−
36− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
37−
38− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
39−
40− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
41−
42− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
43−
44− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
45−
46− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
47−
48− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
49−
50− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
51−
52− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
53−
54− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
55−
56− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":\n\n"},"finish_reason":null}]}
57−
58− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
59−
60− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" write"},"finish_reason":null}]}
61−
62− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
63−
64− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" create"},"finish_reason":null}]}
65−
66− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
67−
68− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" new"},"finish_reason":null}]}
69−
70− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
71−
72− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" called"},"finish_reason":null}]}
73−
74− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
28+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
7529
76− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
30+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_5e728d25014c27b9","type":"function","index":0,"function":{"name":"write","arguments":""}}]},"finish_reason":null}]}
7731
78− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
32+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\"content\": "}}]},"finish_reason":null}]}
7933
80− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
34+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"{\\\"name\\\":"}}]},"finish_reason":null}]}
8135
82− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '{\""},"finish_reason":null}]}
36+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \\\"test\\\", \\\""}}]},"finish_reason":null}]}
8337
84− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"name"},"finish_reason":null}]}
38+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"version\\\": \\\"1"}}]},"finish_reason":null}]}
8539
86− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\":"},"finish_reason":null}]}
40+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".0.0"}}]},"finish_reason":null}]}
8741
88− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
42+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\\"}\", "}}]},"finish_reason":null}]}
8943
90− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"test"},"finish_reason":null}]}
44+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"file_path\": \"/tmp"}}]},"finish_reason":null}]}
9145
92− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\","},"finish_reason":null}]}
46+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/crush-test/Test"}}]},"finish_reason":null}]}
9347
94− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
48+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"CoderAgent/glm"}}]},"finish_reason":null}]}
9549
96− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"version"},"finish_reason":null}]}
50+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-5.1"}}]},"finish_reason":null}]}
9751
98− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\":"},"finish_reason":null}]}
52+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/write_tool/config.json"}}]},"finish_reason":null}]}
9953
100− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
54+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
10155
102− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
56+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
10357
104− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
58+ data: {"id":"chatcmpl-9029b324d38f12972cdaf55d","object":"chat.completion.chunk","created":1781202040,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":696,"completion_tokens":47,"total_tokens":7874,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0011811999999999999,"hypercredits":0.023623999999999996},"remaining":{"hypercredits":0}}}
10559
106− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"0"},"finish_reason":null}]}
107−
108− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
109−
110− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"0"},"finish_reason":null}]}
111−
112− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"}"},"finish_reason":null}]}
113−
114− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
115−
116− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"\n\n"},"finish_reason":null}]}
117−
118− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
119−
120− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
121−
122− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
123−
124− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
125−
126− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
127−
128− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
60+ data: [DONE]
12961
130− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
62+ headers:
63+ Content-Type:
64+ - text/event-stream
65+ status: 200 OK
66+ code: 200
67+ duration: 662.114708ms
68+- id: 1
69+ request:
70+ proto: HTTP/1.1
71+ proto_major: 1
72+ proto_minor: 1
73+ content_length: 868
74+ host: ""
75+ body: '{"messages":[{"content":"You will generate a short title based on the first message a user begins a conversation with.\n\n<rules>\n- Keep the title in the same language that the user wrote their message in.\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\nuse write to create a new file called config.json with content ''{\"name\": \"test\", \"version\": \"1.0.0\"}''\n <think>\n\n</think>","role":"user"}],"model":"gpt-oss-120b","max_completion_tokens":40,"stream_options":{"include_usage":true},"stream":true}'
76+ headers:
77+ Accept:
78+ - application/json
79+ Content-Type:
80+ - application/json
81+ User-Agent:
82+ - Charm-Crush/devel (https://charm.land/crush)
83+ url: https://hyper.charm.land/v1/chat/completions
84+ method: POST
85+ response:
86+ proto: HTTP/2.0
87+ proto_major: 2
88+ proto_minor: 0
89+ content_length: -1
90+ uncompressed: true
91+ body: |+
92+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
13193
132− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
94+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"User"},"finish_reason":null}]}
13395
134− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
96+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
13597
136− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
98+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
13799
138− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
100+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
139101
140− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
102+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
141103
142− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
104+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
143105
144− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
106+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
145107
146− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"),"},"finish_reason":null}]}
108+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
147109
148− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summary"},"finish_reason":null}]}
110+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
149111
150− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
112+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
151113
152− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Something"},"finish_reason":null}]}
114+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
153115
154− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
116+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" write"},"finish_reason":null}]}
155117
156− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
118+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
157119
158− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Create"},"finish_reason":null}]}
120+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" create"},"finish_reason":null}]}
159121
160− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
122+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
161123
162− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
124+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" new"},"finish_reason":null}]}
163125
164− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
126+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
165127
166− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" name"},"finish_reason":null}]}
128+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" called"},"finish_reason":null}]}
167129
168− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
130+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
169131
170− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" version"},"finish_reason":null}]}
132+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
171133
172− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
134+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
173135
174− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
136+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
175137
176− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
138+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '{\""},"finish_reason":null}]}
177139
178− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
140+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"name"},"finish_reason":null}]}
179141
180− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
142+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\":"},"finish_reason":null}]}
181143
182− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Create"},"finish_reason":null}]}
144+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
183145
184− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
146+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"test"},"finish_reason":null}]}
185147
186− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
148+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\","},"finish_reason":null}]}
187149
188− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
150+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
189151
190− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" name"},"finish_reason":null}]}
152+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"version"},"finish_reason":null}]}
191153
192− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
154+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\":"},"finish_reason":null}]}
193155
194− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" version"},"finish_reason":null}]}
156+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
195157
196− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
158+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
197159
198− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" is"},"finish_reason":null}]}
160+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
199161
200− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
162+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"0"},"finish_reason":null}]}
201163
202− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
164+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
203165
204− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
166+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"0"},"finish_reason":null}]}
205167
206− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
168+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"}"},"finish_reason":null}]}
207169
208− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
170+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
209171
210− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fine"},"finish_reason":null}]}
172+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
211173
212− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
174+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
213175
214− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Return"},"finish_reason":null}]}
176+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" should"},"finish_reason":null}]}
215177
216− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" just"},"finish_reason":null}]}
178+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
217179
218− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
180+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
219181
220− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
182+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
221183
222− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
184+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ≤"},"finish_reason":null}]}
223185
224− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Create"},"finish_reason":null}]}
186+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
225187
226− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" config"},"finish_reason":null}]}
188+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
227189
228− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".json"},"finish_reason":null}]}
190+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
229191
230− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" with"},"finish_reason":null}]}
192+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
231193
232− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" name"},"finish_reason":null}]}
194+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
233195
234− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
196+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
235197
236− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" version"},"finish_reason":null}]}
198+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
237199
238− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
200+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
239201
240− data: {"id":"chatcmpl-8ffea572a2477bb64ba0a191","object":"chat.completion.chunk","created":1780069705,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":232,"completion_tokens":115,"total_tokens":347,"completion_tokens_details":{"reasoning_tokens":98},"cost":{"usd":0.00017169,"hypercredits":0.0034338},"remaining":{"hypercredits":0}}}
202+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
241203
242− data: [DONE]
204+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
243205
244− headers:
245− Content-Type:
246− - text/event-stream
247− status: 200 OK
248− code: 200
249− duration: 396.384ms
250−- id: 1
251− request:
252− proto: HTTP/1.1
253− proto_major: 1
254− proto_minor: 1
255− content_length: 34001
256− host: ""
257− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/write_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use write to create a new file called config.json with content '{\\\"name\\\": \\\"test\\\", \\\"version\\\": \\\"1.0.0\\\"}'\",\"role\":\"user\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
258− headers:
259− Accept:
260− - application/json
261− Content-Type:
262− - application/json
263− User-Agent:
264− - Charm-Crush/devel (https://charm.land/crush)
265− url: https://hyper.charm.land/v1/chat/completions
266− method: POST
267− response:
268− proto: HTTP/2.0
269− proto_major: 2
270− proto_minor: 0
271− content_length: -1
272− uncompressed: true
273− body: |+
274− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
206+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
275207
276− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"Simple"},"finish_reason":null}]}
208+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
277209
278− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" request"},"finish_reason":null}]}
210+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Could"},"finish_reason":null}]}
279211
280− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
212+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
281213
282− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" create"},"finish_reason":null}]}
214+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
283215
284− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
216+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Create"},"finish_reason":null}]}
285217
286− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
218+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
287219
288− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
220+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
289221
290− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" write"},"finish_reason":null}]}
222+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
291223
292− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":" tool"},"finish_reason":null}]}
224+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
293225
294− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
226+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" details"},"finish_reason":null}]}
295227
296− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"id":"call_kLqkWWD0dwlybPAAd0yUiCAx","type":"function","index":0,"function":{"name":"write","arguments":""}}]},"finish_reason":null}]}
228+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
297229
298− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":""}}]},"finish_reason":null}]}
230+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
299231
300− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{"}}]},"finish_reason":null}]}
232+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
301233
302− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"content\": "}}]},"finish_reason":null}]}
234+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
303235
304− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"{\\\""}}]},"finish_reason":null}]}
236+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Create"},"finish_reason":null}]}
305237
306− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"name"}}]},"finish_reason":null}]}
238+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
307239
308− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\\":"}}]},"finish_reason":null}]}
240+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
309241
310− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \\\""}}]},"finish_reason":null}]}
242+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
311243
312− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"test"}}]},"finish_reason":null}]}
244+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
313245
314− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\\","}}]},"finish_reason":null}]}
246+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" details"},"finish_reason":null}]}
315247
316− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \\\""}}]},"finish_reason":null}]}
248+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
317249
318− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"version"}}]},"finish_reason":null}]}
250+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
319251
320− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\\":"}}]},"finish_reason":null}]}
252+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
321253
322− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \\\""}}]},"finish_reason":null}]}
254+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
323255
324− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1"}}]},"finish_reason":null}]}
256+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
325257
326− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"."}}]},"finish_reason":null}]}
258+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
327259
328− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"0"}}]},"finish_reason":null}]}
260+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
329261
330− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"."}}]},"finish_reason":null}]}
262+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fine"},"finish_reason":null}]}
331263
332− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"0"}}]},"finish_reason":null}]}
264+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
333265
334− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\\"}"}}]},"finish_reason":null}]}
266+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Make"},"finish_reason":null}]}
335267
336− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\", \"file_path\": "}}]},"finish_reason":null}]}
268+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" sure"},"finish_reason":null}]}
337269
338− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/tmp"}}]},"finish_reason":null}]}
270+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
339271
340− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/c"}}]},"finish_reason":null}]}
272+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
341273
342− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"rush"}}]},"finish_reason":null}]}
274+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
343275
344− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-test"}}]},"finish_reason":null}]}
276+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Yes"},"finish_reason":null}]}
345277
346− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/Test"}}]},"finish_reason":null}]}
278+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
347279
348− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Coder"}}]},"finish_reason":null}]}
280+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Return"},"finish_reason":null}]}
349281
350− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Agent"}}]},"finish_reason":null}]}
282+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" only"},"finish_reason":null}]}
351283
352− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/g"}}]},"finish_reason":null}]}
284+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
353285
354− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lm"}}]},"finish_reason":null}]}
286+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
355287
356− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"-"}}]},"finish_reason":null}]}
288+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Create"},"finish_reason":null}]}
357289
358− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"5"}}]},"finish_reason":null}]}
290+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" config"},"finish_reason":null}]}
359291
360− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"."}}]},"finish_reason":null}]}
292+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".json"},"finish_reason":null}]}
361293
362− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"1"}}]},"finish_reason":null}]}
294+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" with"},"finish_reason":null}]}
363295
364− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/write"}}]},"finish_reason":null}]}
296+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" test"},"finish_reason":null}]}
365297
366− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_tool"}}]},"finish_reason":null}]}
298+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" name"},"finish_reason":null}]}
367299
368− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/config"}}]},"finish_reason":null}]}
300+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
369301
370− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".json"}}]},"finish_reason":null}]}
302+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" version"},"finish_reason":null}]}
371303
372− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"finish_reason":null}]}
304+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" details"},"finish_reason":null}]}
373305
374− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
306+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
375307
376− data: {"id":"chatcmpl-b2fc9d4641c9729689320104","object":"chat.completion.chunk","created":1780069705,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":724,"completion_tokens":59,"total_tokens":7887,"prompt_tokens_details":{"cached_tokens":7104},"completion_tokens_details":{"reasoning_tokens":12},"cost":{"usd":0.00124664,"hypercredits":0.024932799999999998},"remaining":{"hypercredits":0}}}
308+ data: {"id":"chatcmpl-a959b933ec5afd0d94a11b65","object":"chat.completion.chunk","created":1781202040,"model":"gpt-oss-120b","choices":[],"usage":{"prompt_tokens":219,"completion_tokens":116,"total_tokens":335,"completion_tokens_details":{"reasoning_tokens":97},"cost":{"usd":0.00017742000000000002,"hypercredits":0.0035484},"remaining":{"hypercredits":0}}}
377309
378310 data: [DONE]
379311
@@ -382,15 +314,15 @@ interactions:
382314 - text/event-stream
383315 status: 200 OK
384316 code: 200
385− duration: 533.025375ms
317+ duration: 678.468958ms
386318- id: 2
387319 request:
388320 proto: HTTP/1.1
389321 proto_major: 1
390322 proto_minor: 1
391− content_length: 34554
323+ content_length: 34461
392324 host: ""
393− body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/write_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use write to create a new file called config.json with content '{\\\"name\\\": \\\"test\\\", \\\"version\\\": \\\"1.0.0\\\"}'\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_kLqkWWD0dwlybPAAd0yUiCAx\",\"function\":{\"arguments\":\"{\\\"content\\\": \\\"{\\\\\\\"name\\\\\\\": \\\\\\\"test\\\\\\\", \\\\\\\"version\\\\\\\": \\\\\\\"1.0.0\\\\\\\"}\\\", \\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/write_tool/config.json\\\"}\",\"name\":\"write\"},\"type\":\"function\"}],\"role\":\"assistant\",\"reasoning_content\":\"Simple request to create a file with write tool.\"},{\"content\":\"<result>\\nFile successfully written: /tmp/crush-test/TestCoderAgent/glm-5.1/write_tool/config.json\\n</result>\",\"tool_call_id\":\"call_kLqkWWD0dwlybPAAd0yUiCAx\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n\\n Co-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
325+ body: "{\"messages\":[{\"content\":\"You are Crush, a powerful AI Assistant that runs in the CLI.\\n\\n<critical_rules>\\nThese rules override everything else. Follow them strictly:\\n\\n1. **READ THE RELEVANT CONTEXT BEFORE EDITING**: Never edit a file you haven't already read the relevant context for 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.\\n2. **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.\\n3. **TEST AFTER CHANGES**: Run tests immediately after each modification.\\n4. **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.\\n5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.\\n6. **NEVER COMMIT**: Unless user explicitly says \\\"commit\\\". When committing, follow the `<git_commits>` format from the bash tool description exactly, including any configured attribution lines.\\n7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.\\n8. **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.\\n9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.\\n10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.\\n11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.\\n12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.\\n13. **TOOL CONSTRAINTS**: Only use documented tools. Never attempt 'apply_patch' or 'apply_diff' - they don't exist. Use 'edit' or 'multiedit' instead.\\n14. **LOAD MATCHING SKILLS**: If any entry in `<available_skills>` matches the current task, you MUST call `view` on its `<location>` before taking any other action for that task. The `<description>` is only a trigger — the actual procedure, scripts, and references live in SKILL.md. Do NOT infer a skill's behavior from its description or skip loading it because you think you already know how to do the task.\\n15. **LIMIT FILE READS**: Avoid reading entire files, as they can be very large. Read only the sections you need using 'offset' and 'limit' parameters.\\n</critical_rules>\\n\\n<communication_style>\\nKeep responses minimal:\\n- ALWAYS think and respond in the same spoken language the prompt was written in.\\n- Under 4 lines of text (tool use doesn't count)\\n- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.\\n- No preamble (\\\"Here's...\\\", \\\"I'll...\\\")\\n- No postamble (\\\"Let me know...\\\", \\\"Hope this helps...\\\")\\n- One-word answers when possible\\n- No emojis ever\\n- No explanations unless user asks\\n- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.\\n- 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.\\n\\nExamples:\\nuser: what is 2+2?\\nassistant: 4\\n\\nuser: list files in src/\\nassistant: [uses ls tool]\\nfoo.c, bar.c, baz.c\\n\\nuser: which file has the foo implementation?\\nassistant: src/foo.c\\n\\nuser: add error handling to the login function\\nassistant: [searches for login, reads file, edits with exact match, runs tests]\\nDone\\n\\nuser: Where are errors from the client handled?\\nassistant: Clients are marked as failed in the `connectToServer` function in src/services/process.go:712.\\n</communication_style>\\n\\n<code_references>\\nWhen referencing specific functions or code locations, use the pattern `file_path:line_number` to help users navigate:\\n- Example: \\\"The error is handled in src/main.go:45\\\"\\n- Example: \\\"See the implementation in pkg/utils/helper.go:123-145\\\"\\n</code_references>\\n\\n<workflow>\\nFor every task, follow this sequence internally (don't narrate it):\\n\\n**Before acting**:\\n- Search codebase for relevant files\\n- Read files to understand current state\\n- Check memory for stored commands\\n- Identify what needs to change\\n- Use `git log` and `git blame` for additional context when needed\\n\\n**While acting**:\\n- Read entire file before editing it\\n- Before editing: verify exact whitespace and indentation from View output\\n- Use exact text for find/replace (include whitespace)\\n- Make one logical change at a time\\n- After each change: run tests\\n- If tests fail: fix immediately\\n- If edit fails: read more context, don't guess - the text must match exactly\\n- Keep going until query is completely resolved before yielding to user\\n- For longer tasks, send brief progress updates (under 10 words) BUT IMMEDIATELY CONTINUE WORKING - progress updates are not stopping points\\n\\n**Before finishing**:\\n- Verify ENTIRE query is resolved (not just first step)\\n- All described next steps must be completed\\n- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.\\n- Run lint/typecheck if in memory\\n- Verify all changes work\\n- Keep response under 4 lines\\n\\n**Key behaviors**:\\n- Use find_references before changing shared code\\n- Follow existing patterns (check similar files)\\n- If stuck, try different approach (don't repeat failures)\\n- Make decisions yourself (search first, don't ask)\\n- Fix problems at root cause, not surface-level patches\\n- Don't fix unrelated bugs or broken tests (mention them in final message if relevant)\\n</workflow>\\n\\n<decision_making>\\n**Make decisions autonomously** - don't ask when you can:\\n- Search to find the answer\\n- Read files to see patterns\\n- Check similar code\\n- Infer from context\\n- Try most likely approach\\n- 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.\\n\\n**Only stop/ask user if**:\\n- Truly ambiguous business requirement\\n- Multiple valid approaches with big tradeoffs\\n- Could cause data loss\\n- Exhausted all attempts and hit actual blocking errors\\n\\n**When requesting information/access**:\\n- Exhaust all available tools, searches, and reasonable assumptions first.\\n- Never say \\\"Need more info\\\" without detail.\\n- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.\\n- State exactly what you will do once the information arrives so the user knows the next step.\\n\\nWhen 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.\\n\\n**Never stop for**:\\n- Task seems too large (break it down)\\n- Multiple files to change (change them)\\n- Concerns about \\\"session limits\\\" (no such limits exist)\\n- Work will take many steps (do all the steps)\\n\\nExamples of autonomous decisions:\\n- File location → search for similar files\\n- Test command → check package.json/memory\\n- Code style → read existing code\\n- Library choice → check what's used\\n- Naming → follow existing names\\n</decision_making>\\n\\n<editing_files>\\n**Available edit tools:**\\n- `edit` - Single find/replace in a file\\n- `multiedit` - Multiple find/replace operations in one file\\n- `write` - Create/overwrite entire file\\n\\nNever use `apply_patch` or similar - those tools don't exist.\\n\\nCritical: ALWAYS read the relevant context of files before editing them in this conversation.\\n\\nWhen using edit tools:\\n1. Read the relevant context first - note the EXACT indentation (spaces vs tabs, count)\\n2. Copy the exact text including ALL whitespace, newlines, and indentation\\n3. Include 3-5 lines of context before and after the target\\n4. Verify your old_string would appear exactly once in the file\\n5. If uncertain about whitespace, include more surrounding context\\n6. Verify edit succeeded\\n7. Run tests\\n\\n**Whitespace matters**:\\n- Count spaces/tabs carefully (use View tool line numbers as reference)\\n- Include blank lines if they exist\\n- Match line endings exactly\\n- When in doubt, include MORE context rather than less\\n\\nEfficiency tips:\\n- Don't re-read files after successful edits (tool will fail if it didn't work)\\n- Same applies for making folders, deleting files, etc.\\n\\nCommon mistakes to avoid:\\n- Editing without reading first\\n- Approximate text matches\\n- Wrong indentation (spaces vs tabs, wrong count)\\n- Missing or extra blank lines\\n- Not enough context (text appears multiple times)\\n- Trimming whitespace that exists in the original\\n- Not testing after changes\\n</editing_files>\\n\\n<whitespace_and_exact_matching>\\nThe Edit tool is extremely literal. \\\"Close enough\\\" will fail.\\n\\n**Before every edit**:\\n1. View the file and locate the exact lines to change\\n2. Copy the text EXACTLY including:\\n - Every space and tab\\n - Every blank line\\n - Opening/closing braces position\\n - Comment formatting\\n3. Include enough surrounding lines (3-5) to make it unique\\n4. Double-check indentation level matches\\n\\n**Common failures**:\\n- `func foo() {` vs `func foo(){` (space before brace)\\n- Tab vs 4 spaces vs 2 spaces\\n- Missing blank line before/after\\n- `// comment` vs `//comment` (space after //)\\n- Different number of spaces in indentation\\n\\n**If edit fails**:\\n- View the file again at the specific location\\n- Copy even more context\\n- Check for tabs vs spaces\\n- Verify line endings\\n- Try including the entire function/block if needed\\n- Never retry with guessed changes - get the exact text first\\n</whitespace_and_exact_matching>\\n\\n<task_completion>\\nEnsure every task is implemented completely, not partially or sketched.\\n\\n1. **Think before acting** (for non-trivial tasks)\\n - Identify all components that need changes (models, logic, routes, config, tests, docs)\\n - Consider edge cases and error paths upfront\\n - Form a mental checklist of requirements before making the first edit\\n - This planning happens internally - don't narrate it to the user\\n\\n2. **Implement end-to-end**\\n - Treat every request as complete work: if adding a feature, wire it fully\\n - Update all affected files (callers, configs, tests, docs)\\n - Don't leave TODOs or \\\"you'll also need to...\\\" - do it yourself\\n - No task is too large - break it down and complete all parts\\n - 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.\\n\\n3. **Verify before finishing**\\n - Re-read the original request and verify each requirement is met\\n - Check for missing error handling, edge cases, or unwired code\\n - Run tests to confirm the implementation works\\n - Only say \\\"Done\\\" when truly done - never stop mid-task\\n</task_completion>\\n\\n<error_handling>\\nWhen errors occur:\\n1. Read complete error message\\n2. Understand root cause (isolate with debug logs or minimal reproduction if needed)\\n3. Try different approach (don't repeat same action)\\n4. Search for similar code that works\\n5. Make targeted fix\\n6. Test to verify\\n7. 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.\\n\\nCommon errors:\\n- Import/Module → check paths, spelling, what exists\\n- Syntax → check brackets, indentation, typos\\n- Tests fail → read test, see what it expects\\n- File not found → use ls, check exact path\\n\\n**Edit tool \\\"old_string not found\\\"**:\\n- View the file again at the target location\\n- Copy the EXACT text including all whitespace\\n- Include more surrounding context (full function if needed)\\n- Check for tabs vs spaces, extra/missing blank lines\\n- Count indentation spaces carefully\\n- Don't retry with approximate matches - get the exact text\\n</error_handling>\\n\\n<memory_instructions>\\nMemory files store commands, preferences, and codebase info. Update them when you discover:\\n- Build/test/lint commands\\n- Code style preferences\\n- Important codebase patterns\\n- Useful project information\\n</memory_instructions>\\n\\n<code_conventions>\\nBefore writing code:\\n1. Check if library exists (look at imports, package.json)\\n2. Read similar code for patterns\\n3. Match existing style\\n4. Use same libraries/frameworks\\n5. Follow security best practices (never log secrets)\\n6. Don't use one-letter variable names unless requested\\n\\nNever assume libraries are available - verify first.\\n\\n**Ambition vs. precision**:\\n- New projects → be creative and ambitious with implementation\\n- Existing codebases → be surgical and precise, respect surrounding code\\n- Don't change filenames or variables unnecessarily\\n- Don't add formatters/linters/tests to codebases that don't have them\\n</code_conventions>\\n\\n<testing>\\nAfter significant changes:\\n- Start testing as specific as possible to code changed, then broaden to build confidence\\n- Use self-verification: write unit tests, add output logs, or use debug statements to verify your solutions\\n- Run relevant test suite\\n- If tests fail, fix before continuing\\n- Check memory for test commands\\n- Run lint/typecheck if available (on precise targets when possible)\\n- For formatters: iterate max 3 times to get it right; if still failing, present correct solution and note formatting issue\\n- Suggest adding commands to memory if not found\\n- Don't fix unrelated bugs or test failures (not your responsibility)\\n</testing>\\n\\n<tool_usage>\\n- 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.\\n- Search before assuming\\n- Read files before editing\\n- Always use absolute paths for file operations (editing, reading, writing)\\n- Use Agent tool for complex searches\\n- Run tools in parallel when safe (no dependencies)\\n- When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution\\n- Summarize tool output for user (they don't see it)\\n- Never use `curl` through the bash tool it is not allowed use the fetch tool instead.\\n- Only use the tools you know exist.\\n\\n<bash_commands>\\n**CRITICAL**: The `description` parameter is REQUIRED for all bash tool calls. Always provide it.\\n\\nWhen running non-trivial bash commands (especially those that modify the system):\\n- Briefly explain what the command does and why you're running it\\n- This ensures the user understands potentially dangerous operations\\n- Simple read-only commands (ls, cat, etc.) don't need explanation\\n- Use `&` for background processes that won't stop on their own (e.g., `node server.js &`)\\n- Avoid interactive commands - use non-interactive versions (e.g., `npm init -y` not `npm init`)\\n- Combine related commands to save time (e.g., `git status && git diff HEAD && git log -n 3`)\\n</bash_commands>\\n</tool_usage>\\n\\n<proactiveness>\\nBalance autonomy with user intent:\\n- When asked to do something → do it fully (including ALL follow-ups and \\\"next steps\\\")\\n- Never describe what you'll do next - just do it\\n- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.\\n- 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.\\n- When asked how to approach → explain first, don't auto-implement\\n- After completing work → stop, don't explain (unless asked)\\n- Don't surprise user with unexpected actions\\n</proactiveness>\\n\\n<final_answers>\\nAdapt verbosity to match the work completed:\\n\\n**Default (under 4 lines)**:\\n- Simple questions or single-file changes\\n- Casual conversation, greetings, acknowledgements\\n- One-word answers when possible\\n\\n**More detail allowed (up to 10-15 lines)**:\\n- Large multi-file changes that need walkthrough\\n- Complex refactoring where rationale adds value\\n- Tasks where understanding the approach is important\\n- When mentioning unrelated bugs/issues found\\n- Suggesting logical next steps user might want\\n- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.\\n\\n**What to include in verbose answers**:\\n- Brief summary of what was done and why\\n- Key files/functions changed (with `file:line` references)\\n- Any important decisions or tradeoffs made\\n- Next steps or things user should verify\\n- Issues found but not fixed\\n\\n**What to avoid**:\\n- Don't show full file contents unless explicitly asked\\n- Don't explain how to save files or copy code (user has access to your work)\\n- Don't use \\\"Here's what I did\\\" or \\\"Let me know if...\\\" style preambles/postambles\\n- Keep tone direct and factual, like handing off work to a teammate\\n</final_answers>\\n\\n<env>\\nWorking directory: /tmp/crush-test/TestCoderAgent/glm-5.1/write_tool\\nIs directory a git repo: no\\nPlatform: linux\\nToday's date: 1/1/2025\\n\\n</env>\\n\\n\\n\\n<available_skills>\\n <skill>\\n <name>crush-hooks</name>\\n <description>Use when the user wants to add, write, debug, or configure a Crush hook — gating or blocking tool calls, approving or rewriting tool input before execution, injecting context into tool results, or troubleshooting hook behavior in crush.json.</description>\\n <location>crush://skills/crush-hooks/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n <skill>\\n <name>jq</name>\\n <description>Use when the user needs to query, filter, reshape, extract, create, or construct JSON data — including API responses, config files, log output, or any structured data — or when helping the user write or debug JSON transformations.</description>\\n <location>crush://skills/jq/SKILL.md</location>\\n <type>builtin</type>\\n </skill>\\n</available_skills>\\n\\n<skills_usage>\\nThe `<description>` of each skill is a TRIGGER — it tells you *when* a skill applies. It is NOT a specification of what the skill does or how to do it. The procedure, scripts, commands, references, and required flags live only in the SKILL.md body. You do not know what a skill actually does until you have read its SKILL.md.\\n\\nMANDATORY activation flow:\\n1. Scan `<available_skills>` against the current user task.\\n2. If any skill's `<description>` matches, call the View tool with its `<location>` EXACTLY as shown — before any other tool call that performs the task.\\n3. Read the entire SKILL.md and follow its instructions.\\n4. Only then execute the task, using the skill's prescribed commands/tools.\\n\\nDo NOT skip step 2 because you think you already know how to do the task. Do NOT infer a skill's behavior from its name or description. If you find yourself about to run `bash`, `edit`, or any task-doing tool for a skill-eligible request without having just viewed the SKILL.md, stop and load the skill first.\\n\\nBuiltin skills (type=builtin) use virtual `crush://skills/...` location identifiers. The \\\"crush://\\\" prefix is NOT a URL, network address, or MCP resource — it is a special internal identifier the View tool understands natively. Pass the `<location>` verbatim to View.\\n\\nDo not use MCP tools (including read_mcp_resource) to load skills.\\nIf a skill mentions scripts, references, or assets, they live in the same folder as the skill itself (e.g., scripts/, references/, assets/ subdirectories within the skill's folder).\\n</skills_usage>\\n\\n\\n\\n\",\"role\":\"system\"},{\"content\":\"<system_reminder>This is a reminder that your todo list is currently empty. DO NOT mention this to the user explicitly because they are already aware.\\nIf you are working on tasks that would benefit from a todo list please use the \\\"todos\\\" tool to create one.\\nIf not, please feel free to ignore. Again do not mention this message to the user.</system_reminder>\",\"role\":\"user\"},{\"content\":\"use write to create a new file called config.json with content '{\\\"name\\\": \\\"test\\\", \\\"version\\\": \\\"1.0.0\\\"}'\",\"role\":\"user\"},{\"tool_calls\":[{\"id\":\"call_5e728d25014c27b9\",\"function\":{\"arguments\":\"{\\\"content\\\": \\\"{\\\\\\\"name\\\\\\\": \\\\\\\"test\\\\\\\", \\\\\\\"version\\\\\\\": \\\\\\\"1.0.0\\\\\\\"}\\\", \\\"file_path\\\": \\\"/tmp/crush-test/TestCoderAgent/glm-5.1/write_tool/config.json\\\"}\",\"name\":\"write\"},\"type\":\"function\"}],\"role\":\"assistant\"},{\"content\":\"<result>\\nFile successfully written: /tmp/crush-test/TestCoderAgent/glm-5.1/write_tool/config.json\\n</result>\",\"tool_call_id\":\"call_5e728d25014c27b9\",\"role\":\"tool\"}],\"model\":\"glm-5.1\",\"max_tokens\":10000,\"stream_options\":{\"include_usage\":true},\"tool_choice\":\"auto\",\"tools\":[{\"function\":{\"name\":\"bash\",\"strict\":false,\"description\":\"Execute shell commands; long-running commands automatically move to background and return a shell ID.\\n\\n<cross_platform>\\nUses mvdan/sh interpreter (Bash-compatible on all platforms including Windows).\\nUse forward slashes for paths: \\\"ls C:/foo/bar\\\" not \\\"ls C:\\\\foo\\\\bar\\\".\\nCommon shell builtins and core utils available on Windows.\\n</cross_platform>\\n\\n<execution_steps>\\n1. Directory Verification: If creating directories/files, use LS tool to verify parent exists\\n2. Security Check: Banned commands (alias, aria2c, axel, chrome, curl, curlie, firefox, http-prompt, httpie, links, lynx, nc, safari, scp, ssh, telnet, w3m, wget, xh, doas, su, sudo, apk, apt, apt-cache, apt-get, dnf, dpkg, emerge, home-manager, makepkg, opkg, pacman, paru, pkg, pkg_add, pkg_delete, portage, rpm, yay, yum, zypper, at, batch, chkconfig, crontab, fdisk, mkfs, mount, parted, service, systemctl, umount, firewall-cmd, ifconfig, ip, iptables, netstat, pfctl, route, ufw) return error - explain to user. Safe read-only commands execute without prompts\\n3. Command Execution: Execute with proper quoting, capture output\\n4. Auto-Background: Commands exceeding 1 minute (default, configurable via `auto_background_after`) automatically move to background and return shell ID\\n5. Output Processing: Truncate if exceeds 30000 characters\\n6. Return Result: Include errors, metadata with <cwd></cwd> tags\\n</execution_steps>\\n\\n<usage_notes>\\n- Command required, working_dir optional (defaults to current directory)\\n- IMPORTANT: Use Grep/Glob/Agent tools instead of 'find'/'grep'. Use View/LS tools instead of 'cat'/'head'/'tail'/'ls'\\n- Chain with ';' or '&&', avoid newlines except in quoted strings\\n- Each command runs in independent shell (no state persistence between calls)\\n- Prefer absolute paths over 'cd' (use 'cd' only if user explicitly requests)\\n</usage_notes>\\n\\n<background_execution>\\n- Set run_in_background=true to run commands in a separate background shell\\n- Returns a shell ID for managing the background process\\n- Use job_output tool to view current output from background shell\\n- Use job_kill tool to terminate a background shell\\n- IMPORTANT: NEVER use `&` at the end of commands to run in background - use run_in_background parameter instead\\n- Commands that should run in background:\\n * Long-running servers (e.g., `npm start`, `python -m http.server`, `node server.js`)\\n * Watch/monitoring tasks (e.g., `npm run watch`, `tail -f logfile`)\\n * Continuous processes that don't exit on their own\\n * Any command expected to run indefinitely\\n- Commands that should NOT run in background:\\n * Build commands (e.g., `npm run build`, `go build`)\\n * Test suites (e.g., `npm test`, `pytest`)\\n * Git operations\\n * File operations\\n * Short-lived scripts\\n</background_execution>\\n\\n<git_commits>\\nWhen user asks to create git commit:\\n\\n1. Single message with three tool_use blocks (IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - git log (recent commit message style)\\n\\n2. Add relevant untracked files to staging. Don't commit files already modified at conversation start unless relevant.\\n\\n3. Analyze staged changes in <commit_analysis> tags:\\n - List changed/added files, summarize nature (feature/enhancement/bug fix/refactoring/test/docs)\\n - Brainstorm purpose/motivation, assess project impact, check for sensitive info\\n - Don't use tools beyond git context\\n - Draft concise (1-2 sentences) message focusing on \\\"why\\\" not \\\"what\\\"\\n - Use clear language, accurate reflection (\\\"add\\\"=new feature, \\\"update\\\"=enhancement, \\\"fix\\\"=bug fix)\\n - Avoid generic messages, review draft\\n\\n4. Create commit with attribution using HEREDOC:\\n git commit -m \\\"$(cat &lt;&lt;'EOF'\\n Commit message here.\\n\\n\\n\U0001F498 Generated with Crush\\n\\n\\n\\nCo-Authored-By: Crush <crush@charm.land>\\n\\n\\n EOF\\n )\\\"\\n\\n5. If pre-commit hook fails, retry ONCE. If fails again, hook preventing commit. If succeeds but files modified, MUST amend.\\n\\n6. Run git status to verify.\\n\\nNotes: Use \\\"git commit -am\\\" when possible, don't stage unrelated files, NEVER update config, don't push, no -i flags, no empty commits, return empty response, when rebasing always use -m.\\n</git_commits>\\n\\n<pull_requests>\\nUse gh command for ALL GitHub tasks. When user asks to create PR:\\n\\n1. Single message with multiple tool_use blocks (VERY IMPORTANT for speed):\\n - git status (untracked files)\\n - git diff (staged/unstaged changes)\\n - Check if branch tracks remote and is up to date\\n - git log and 'git diff main...HEAD' (full commit history from main divergence)\\n\\n2. Create new branch if needed\\n3. Commit changes if needed\\n4. Push to remote with -u flag if needed\\n\\n5. Analyze changes in <pr_analysis> tags:\\n - List commits since diverging from main\\n - Summarize nature of changes\\n - Brainstorm purpose/motivation\\n - Assess project impact\\n - Don't use tools beyond git context\\n - Check for sensitive information\\n - Draft concise (1-2 bullet points) PR summary focusing on \\\"why\\\"\\n - Ensure summary reflects ALL changes since main divergence\\n - Clear, concise language\\n - Accurate reflection of changes and purpose\\n - Avoid generic summaries\\n - Review draft\\n\\n6. Create PR with gh pr create using HEREDOC:\\n gh pr create --title \\\"title\\\" --body \\\"$(cat &lt;&lt;'EOF'\\n\\n ## Summary\\n\\n &lt;1-3 bullet points>\\n\\n ## Test plan\\n\\n [Checklist of TODOs...]\\n\\n\\n \U0001F498 Generated with Crush\\n\\n\\n EOF\\n )\\\"\\n\\nImportant:\\n\\n- Return empty response - user sees gh output\\n- Never update git config\\n</pull_requests>\\n\\n<examples>\\nGood: pytest /foo/bar/tests\\nBad: cd /foo/bar && pytest tests\\n</examples>\\n\",\"parameters\":{\"properties\":{\"auto_background_after\":{\"description\":\"Seconds to wait before automatically moving the command to a background job (default: 60)\",\"type\":\"integer\"},\"command\":{\"description\":\"The command to execute\",\"type\":\"string\"},\"description\":{\"description\":\"A brief description of what the command does, try to keep it under 30 characters or so\",\"type\":\"string\"},\"run_in_background\":{\"description\":\"Set to true (boolean) to run this command in the background. Use job_output to read the output later.\",\"type\":\"boolean\"},\"working_dir\":{\"description\":\"The working directory to execute the command in (defaults to current directory)\",\"type\":\"string\"}},\"required\":[\"description\",\"command\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"download\",\"strict\":false,\"description\":\"Download a URL directly to a local file (binary-safe, streaming, max 600s timeout); overwrites without warning. For reading content into context use fetch.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The local file path where the downloaded content should be saved\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 600)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to download from\",\"type\":\"string\"}},\"required\":[\"url\",\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"edit\",\"strict\":false,\"description\":\"Edit a file by exact find-and-replace; can also create or delete content. For renames/moves use bash. For large edits use write.\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"},\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false)\",\"type\":\"boolean\"}},\"required\":[\"file_path\",\"old_string\",\"new_string\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"multiedit\",\"strict\":false,\"description\":\"Apply multiple find-and-replace edits to a single file in one operation; edits run sequentially. Prefer over edit for multiple changes to the same file. Same exact-match rules as edit apply.\",\"parameters\":{\"properties\":{\"edits\":{\"description\":\"Array of edit operations to perform sequentially on the file\",\"items\":{\"properties\":{\"new_string\":{\"description\":\"The text to replace it with\",\"type\":\"string\"},\"old_string\":{\"description\":\"The text to replace\",\"type\":\"string\"},\"replace_all\":{\"description\":\"Replace all occurrences of old_string (default false).\",\"type\":\"boolean\"}},\"required\":[\"old_string\",\"new_string\"],\"type\":\"object\"},\"type\":\"array\"},\"file_path\":{\"description\":\"The absolute path to the file to modify\",\"type\":\"string\"}},\"required\":[\"file_path\",\"edits\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"fetch\",\"strict\":false,\"description\":\"Fetch raw content from a URL as text, markdown, or html (max 100KB); no AI processing. For analysis or extraction use agentic_fetch.\\n\",\"parameters\":{\"properties\":{\"format\":{\"description\":\"The format to return the content in (text, markdown, or html)\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"},\"url\":{\"description\":\"The URL to fetch content from\",\"type\":\"string\"}},\"required\":[\"url\",\"format\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"glob\",\"strict\":false,\"description\":\"Find files by name/pattern (glob syntax), sorted by modification time; max 100 results; skips hidden files. Use grep to search file contents.\\n\",\"parameters\":{\"properties\":{\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The glob pattern to match files against\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"grep\",\"strict\":false,\"description\":\"Search file contents by regex or literal text; returns matching file paths sorted by modification time (max 100); respects .gitignore. Use glob to filter by filename, not contents.\\n\",\"parameters\":{\"properties\":{\"include\":{\"description\":\"File pattern to include in the search (e.g. \\\"*.js\\\", \\\"*.{ts,tsx}\\\")\",\"type\":\"string\"},\"literal_text\":{\"description\":\"If true, the pattern will be treated as literal text with special regex characters escaped. Default is false.\",\"type\":\"boolean\"},\"path\":{\"description\":\"The directory to search in. Defaults to the current working directory.\",\"type\":\"string\"},\"pattern\":{\"description\":\"The regex pattern to search for in file contents\",\"type\":\"string\"}},\"required\":[\"pattern\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"ls\",\"strict\":false,\"description\":\"List files and directories as a tree; skips hidden files and common system dirs; max 1000 files. Use glob to find files by pattern, grep to search contents.\\n\",\"parameters\":{\"properties\":{\"depth\":{\"description\":\"The maximum depth to traverse\",\"type\":\"integer\"},\"ignore\":{\"description\":\"List of glob patterns to ignore\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"path\":{\"description\":\"The path to the directory to list (defaults to current working directory)\",\"type\":\"string\"}},\"required\":[],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"sourcegraph\",\"strict\":false,\"description\":\"Search code across public GitHub repositories via Sourcegraph; supports regex, language/repo/file filters, and symbol search (max 20 results). Only searches public repos.\\n\",\"parameters\":{\"properties\":{\"context_window\":{\"description\":\"The context around the match to return (default: 10 lines)\",\"type\":\"integer\"},\"count\":{\"description\":\"Optional number of results to return (default: 10, max: 20)\",\"type\":\"integer\"},\"query\":{\"description\":\"The Sourcegraph search query\",\"type\":\"string\"},\"timeout\":{\"description\":\"Optional timeout in seconds (max 120)\",\"type\":\"integer\"}},\"required\":[\"query\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"view\",\"strict\":false,\"description\":\"Read a file by path with line numbers; supports offset and line limit (default 200, max 200KB returned file content section); renders images (PNG, JPEG, GIF, WebP); use ls for directories.\\n\",\"parameters\":{\"properties\":{\"file_path\":{\"description\":\"The path to the file to read\",\"type\":\"string\"},\"limit\":{\"description\":\"The number of lines to read (defaults to 200)\",\"type\":\"integer\"},\"offset\":{\"description\":\"The line number to start reading from (0-based)\",\"type\":\"integer\"}},\"required\":[\"file_path\"],\"type\":\"object\"}},\"type\":\"function\"},{\"function\":{\"name\":\"write\",\"strict\":false,\"description\":\"Create or overwrite a file with given content; auto-creates parent dirs. Cannot append. Read the file first to avoid conflicts. For surgical changes use edit or multiedit.\",\"parameters\":{\"properties\":{\"content\":{\"description\":\"The content to write to the file\",\"type\":\"string\"},\"file_path\":{\"description\":\"The path to the file to write\",\"type\":\"string\"}},\"required\":[\"file_path\",\"content\"],\"type\":\"object\"}},\"type\":\"function\"}],\"stream\":true}"
394326 headers:
395327 Accept:
396328 - application/json
@@ -407,21 +339,15 @@ interactions:
407339 content_length: -1
408340 uncompressed: true
409341 body: |+
410− data: {"id":"chatcmpl-c5f5fee46ba6c248fb29dc2e","object":"chat.completion.chunk","created":1780069706,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
411−
412− data: {"id":"chatcmpl-c5f5fee46ba6c248fb29dc2e","object":"chat.completion.chunk","created":1780069706,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Created"},"finish_reason":null}]}
413−
414− data: {"id":"chatcmpl-c5f5fee46ba6c248fb29dc2e","object":"chat.completion.chunk","created":1780069706,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `"},"finish_reason":null}]}
415−
416− data: {"id":"chatcmpl-c5f5fee46ba6c248fb29dc2e","object":"chat.completion.chunk","created":1780069706,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"config"},"finish_reason":null}]}
342+ data: {"id":"chatcmpl-cb3ceca063b18be77b2c721c","object":"chat.completion.chunk","created":1781202041,"model":"glm-5.1","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
417343
418− data: {"id":"chatcmpl-c5f5fee46ba6c248fb29dc2e","object":"chat.completion.chunk","created":1780069706,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":".json"},"finish_reason":null}]}
344+ data: {"id":"chatcmpl-cb3ceca063b18be77b2c721c","object":"chat.completion.chunk","created":1781202041,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"Created"},"finish_reason":null}]}
419345
420− data: {"id":"chatcmpl-c5f5fee46ba6c248fb29dc2e","object":"chat.completion.chunk","created":1780069706,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":"`."},"finish_reason":null}]}
346+ data: {"id":"chatcmpl-cb3ceca063b18be77b2c721c","object":"chat.completion.chunk","created":1781202041,"model":"glm-5.1","choices":[{"index":0,"delta":{"content":" `config.json`."},"finish_reason":null}]}
421347
422− data: {"id":"chatcmpl-c5f5fee46ba6c248fb29dc2e","object":"chat.completion.chunk","created":1780069706,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
348+ data: {"id":"chatcmpl-cb3ceca063b18be77b2c721c","object":"chat.completion.chunk","created":1781202041,"model":"glm-5.1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
423349
424− data: {"id":"chatcmpl-c5f5fee46ba6c248fb29dc2e","object":"chat.completion.chunk","created":1780069706,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":102,"completion_tokens":7,"total_tokens":7917,"prompt_tokens_details":{"cached_tokens":7808},"cost":{"usd":0.00016302000000000002,"hypercredits":0.0032604},"remaining":{"hypercredits":0}}}
350+ data: {"id":"chatcmpl-cb3ceca063b18be77b2c721c","object":"chat.completion.chunk","created":1781202041,"model":"glm-5.1","choices":[],"usage":{"prompt_tokens":777,"completion_tokens":5,"total_tokens":7913,"prompt_tokens_details":{"cached_tokens":7131},"cost":{"usd":0.0011098,"hypercredits":0.022195999999999997},"remaining":{"hypercredits":0}}}
425351
426352 data: [DONE]
427353
@@ -430,4 +356,4 @@ interactions:
430356 - text/event-stream
431357 status: 200 OK
432358 code: 200
433− duration: 628.357791ms
359+ duration: 613.135292ms
internal/agent/tools/bash.md.tpl+3−3
@@ -68,14 +68,14 @@ When user asks to create git commit:
6868 Commit message here.
6969
7070{{ if .Attribution.GeneratedWith }}
71− 💘 Generated with Crush
71+💘 Generated with Crush
7272{{ end}}
7373{{if eq .Attribution.TrailerStyle "assisted-by" }}
7474
75− Assisted-by: Crush:{{ .ModelID }}
75+Assisted-by: Crush:{{ .ModelID }}
7676{{ else if eq .Attribution.TrailerStyle "co-authored-by" }}
7777
78− Co-Authored-By: Crush <crush@charm.land>
78+Co-Authored-By: Crush <crush@charm.land>
7979{{ end }}
8080
8181 EOF