merge: resolve conflicts with main

Kieran Klukas created

Change summary

.envrc                                                                  |   1 
.github/cla-signatures.json                                             |  80 
.github/workflows/release.yml                                           |   1 
.github/workflows/security.yml                                          |  10 
.github/workflows/snapshot.yml                                          |   2 
.gitignore                                                              |   3 
docs/hooks/FUTURE.md                                                    |   3 
docs/hooks/README.md                                                    | 157 
flake.lock                                                              |  61 
flake.nix                                                               |  44 
go.mod                                                                  |  52 
go.sum                                                                  | 128 
internal/agent/coordinator.go                                           |  45 
internal/agent/hyper/provider.go                                        |  57 
internal/agent/hyper/provider.json                                      | 106 
internal/agent/testdata/TestCoderAgent/glm-5.1/bash_tool.yaml           |   6 
internal/agent/testdata/TestCoderAgent/glm-5.1/download_tool.yaml       | 388 
internal/agent/testdata/TestCoderAgent/glm-5.1/fetch_tool.yaml          | 382 
internal/agent/testdata/TestCoderAgent/glm-5.1/glob_tool.yaml           | 196 
internal/agent/testdata/TestCoderAgent/glm-5.1/grep_tool.yaml           |   6 
internal/agent/testdata/TestCoderAgent/glm-5.1/ls_tool.yaml             |   6 
internal/agent/testdata/TestCoderAgent/glm-5.1/multiedit_tool.yaml      |   6 
internal/agent/testdata/TestCoderAgent/glm-5.1/parallel_tool_calls.yaml | 476 
internal/agent/testdata/TestCoderAgent/glm-5.1/read_a_file.yaml         |  98 
internal/agent/testdata/TestCoderAgent/glm-5.1/simple_test.yaml         | 148 
internal/agent/testdata/TestCoderAgent/glm-5.1/sourcegraph_tool.yaml    |   3 
internal/agent/testdata/TestCoderAgent/glm-5.1/update_a_file.yaml       |   6 
internal/agent/testdata/TestCoderAgent/glm-5.1/write_tool.yaml          | 206 
internal/agent/tools/job_kill.go                                        |   2 
internal/agent/tools/job_kill.md                                        |   2 
internal/agent/tools/view.go                                            |   2 
internal/agent/tools/view.md                                            |   4 
internal/app/app.go                                                     |  57 
internal/app/app_test.go                                                | 240 
internal/backend/events.go                                              |   8 
internal/client/dial_other.go                                           |   1 
internal/cmd/login.go                                                   |   4 
internal/cmd/root_other.go                                              |   1 
internal/cmd/run.go                                                     |   2 
internal/cmd/server_other.go                                            |   1 
internal/cmd/session.go                                                 |  14 
internal/config/config.go                                               |  14 
internal/config/load.go                                                 |  21 
internal/config/provider.go                                             |   5 
internal/config/reload_hooks_test.go                                    | 102 
internal/config/store.go                                                |  75 
internal/config/store_test.go                                           | 182 
internal/db/connect.go                                                  |   7 
internal/db/connect_modernc.go                                          |   3 
internal/db/connect_ncruces.go                                          |   6 
internal/hooks/hooks_test.go                                            |  34 
internal/hooks/runner.go                                                |  54 
internal/server/net_other.go                                            |   1 
internal/server/proto.go                                                |   6 
internal/ui/attachments/attachments.go                                  |  12 
internal/ui/chat/messages.go                                            |  16 
internal/ui/chat/tools.go                                               |  17 
internal/ui/common/common.go                                            |  25 
internal/ui/common/elements.go                                          |  33 
internal/ui/common/markdown.go                                          |  36 
internal/ui/completions/completions.go                                  |   9 
internal/ui/dialog/oauth.go                                             |  34 
internal/ui/logo/logo.go                                                |  16 
internal/ui/model/chat.go                                               |  12 
internal/ui/model/header.go                                             |  34 
internal/ui/model/sidebar.go                                            |   6 
internal/ui/model/status.go                                             |  10 
internal/ui/model/ui.go                                                 | 277 
internal/ui/styles/quickstyle.go                                        | 697 
internal/ui/styles/styles.go                                            |  12 
internal/ui/styles/themes.go                                            | 104 
schema.json                                                             |  19 
72 files changed, 3,087 insertions(+), 1,807 deletions(-)

Detailed changes

.github/cla-signatures.json πŸ”—

@@ -1615,6 +1615,86 @@
       "created_at": "2026-04-23T12:33:57Z",
       "repoId": 987670088,
       "pullRequestNo": 2688
+    },
+    {
+      "name": "georgeglarson",
+      "id": 744063,
+      "comment_id": 4341592963,
+      "created_at": "2026-04-29T07:08:48Z",
+      "repoId": 987670088,
+      "pullRequestNo": 2749
+    },
+    {
+      "name": "vorticalbox",
+      "id": 10886065,
+      "comment_id": 4344669740,
+      "created_at": "2026-04-29T14:29:35Z",
+      "repoId": 987670088,
+      "pullRequestNo": 2751
+    },
+    {
+      "name": "lloydzhou",
+      "id": 1826685,
+      "comment_id": 4346011097,
+      "created_at": "2026-04-29T17:27:37Z",
+      "repoId": 987670088,
+      "pullRequestNo": 2752
+    },
+    {
+      "name": "carlosgrillet",
+      "id": 13719979,
+      "comment_id": 4351020450,
+      "created_at": "2026-04-30T08:48:52Z",
+      "repoId": 987670088,
+      "pullRequestNo": 2759
+    },
+    {
+      "name": "SAY-5",
+      "id": 240962040,
+      "comment_id": 4357189565,
+      "created_at": "2026-05-01T01:00:00Z",
+      "repoId": 987670088,
+      "pullRequestNo": 2691
+    },
+    {
+      "name": "mkaaad",
+      "id": 119158371,
+      "comment_id": 4358493210,
+      "created_at": "2026-05-01T08:25:06Z",
+      "repoId": 987670088,
+      "pullRequestNo": 2772
+    },
+    {
+      "name": "pragneshbagary",
+      "id": 41118746,
+      "comment_id": 4359152162,
+      "created_at": "2026-05-01T11:54:16Z",
+      "repoId": 987670088,
+      "pullRequestNo": 2773
+    },
+    {
+      "name": "somjik-api",
+      "id": 47082582,
+      "comment_id": 4364741275,
+      "created_at": "2026-05-02T21:17:55Z",
+      "repoId": 987670088,
+      "pullRequestNo": 2783
+    },
+    {
+      "name": "ilgax",
+      "id": 79969769,
+      "comment_id": 4367211073,
+      "created_at": "2026-05-03T21:25:46Z",
+      "repoId": 987670088,
+      "pullRequestNo": 2790
+    },
+    {
+      "name": "ardevd",
+      "id": 366855,
+      "comment_id": 4377260996,
+      "created_at": "2026-05-05T07:22:31Z",
+      "repoId": 987670088,
+      "pullRequestNo": 2801
     }
   ]
 }

.github/workflows/release.yml πŸ”—

@@ -25,7 +25,6 @@ jobs:
       fury_token: ${{ secrets.FURY_TOKEN }}
       nfpm_gpg_key: ${{ secrets.NFPM_GPG_KEY }}
       nfpm_passphrase: ${{ secrets.NFPM_PASSPHRASE }}
-      snapcraft_token: ${{ secrets.SNAPCRAFT_TOKEN }}
       aur_key: ${{ secrets.AUR_KEY }}
       macos_sign_p12: ${{ secrets.MACOS_SIGN_P12 }}
       macos_sign_password: ${{ secrets.MACOS_SIGN_PASSWORD }}

.github/workflows/security.yml πŸ”—

@@ -30,11 +30,11 @@ jobs:
       - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
         with:
           persist-credentials: false
-      - uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
+      - uses: github/codeql-action/init@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
         with:
           languages: ${{ matrix.language }}
-      - uses: github/codeql-action/autobuild@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
-      - uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
+      - uses: github/codeql-action/autobuild@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
+      - uses: github/codeql-action/analyze@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
 
   grype:
     runs-on: ubuntu-latest
@@ -52,7 +52,7 @@ jobs:
           path: "."
           fail-build: true
           severity-cutoff: critical
-      - uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
+      - uses: github/codeql-action/upload-sarif@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
         with:
           sarif_file: ${{ steps.scan.outputs.sarif }}
 
@@ -73,7 +73,7 @@ jobs:
       - name: Run govulncheck
         run: |
           govulncheck -C . -format sarif ./... > results.sarif
-      - uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
+      - uses: github/codeql-action/upload-sarif@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
         with:
           sarif_file: results.sarif
 

.github/workflows/snapshot.yml πŸ”—

@@ -25,7 +25,7 @@ jobs:
       - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
         with:
           go-version-file: go.mod
-      - uses: goreleaser/goreleaser-action@e24998b8b67b290c2fa8b7c14fcfa7de2c5c9b8c # v7.1.0
+      - uses: goreleaser/goreleaser-action@1a80836c5c9d9e5755a25cb59ec6f45a3b5f41a8 # v7.2.1
         with:
           version: "nightly"
           distribution: goreleaser-pro

.gitignore πŸ”—

@@ -42,6 +42,9 @@ Thumbs.db
 .env
 .env.local
 
+# Nix/direnv
+.direnv/
+
 **/.crush/**
 
 /crush

docs/hooks/FUTURE.md πŸ”—

@@ -4,7 +4,8 @@ This document tracks planned features and design notes for hooks that are not
 yet implemented. Nothing here is part of the current contract. Treat it as a
 scratchpad for what's next, not as documentation of current behavior.
 
-> [!NOTE] This document was largely LLM-generated.
+> [!NOTE]
+> This document was largely LLM-generated.
 
 ## `context_files`
 

docs/hooks/README.md πŸ”—

@@ -1,33 +1,92 @@
 # Hooks
 
-> [!NOTE] This document was designed for both humans and agents.
+> [!NOTE]
+> This document was designed for both humans and agents.
 
-Hooks are user-defined shell commands that fire at specific points during
-Crush's execution, giving you deterministic control over an agent's wily
-behavior.
+Hooks are user-defined shell scripts that run when various events happen during
+the agent lifecycle, allowing you to both build on top of Crush, customize
+its behavior, and exert deterministic control over an agent's wily behavior.
 
-Hooks in Crush are shell-based, with a focus on simplicity. This allows hooks to
-effectively be written in any language. In this document we'll primarily focus
-on Bash for simplicity's sake, though we'll include some examples in other
-languages at the end, too.
+Hooks are just shell commands, and were designed to be both simple and future
+forward.
 
 ### Hot Hook Facts
 
-- Hooks run before permission checks. If a hook denies a tool call, you'll
-  never see a permission prompt for it. If a hook explicitly allows a tool
-  call, you'll _also_ never see a prompt β€” Crush treats `"decision": "allow"`
-  as affirmative pre-approval.
-- Hooks only fire on the **top-level agent's** tool calls. Sub-agents (the
-  `agent` task tool, `agentic_fetch`, etc.) run without hook interception so
-  a single delegated turn doesn't trigger your hook N times. The outer
-  sub-agent tool call itself _is_ hooked, so policy like "never let the
-  agent spawn sub-agents" still works.
-- Hooks are also compatible with hooks in Claude Code, however this document
-  covers the Crush-specific API only. One intentional divergence: Crush treats
-  `updated_input` as a shallow-merge patch rather than a full replacement β€” see
-  [Output](#output) below.
+- Hooks just shell commands
+- Hooks can be written in any language because they’re just executables: Bash, Python, Node, Rust, Haskell, whatever
+- Hooks are Claude Code-compatible
+- Crush ships with a builtin `crush-hook` skill write, edit, and configure
+  hooks; just tell Crush how to configure Crush
 - Crush currently supports just one hook, `PreToolUse`, with plans to support
-  the full gamut. If there's a hook you'd like to see, let us know.
+  the full gamut; please let us know which hooks you'd like to see next
+- Hooks run in parallel for speed, but their results compose in config order
+  for determinism
+
+### Some things you can do with hooks:
+
+- Block "dangerous" commands: no more `git push -f` or `cabal init`
+- Rewrite tool input: turn `node` calls info `deno`, scrub secrets from
+  commands, rewrite all mentions of "Haskell" into "Haskell, The Best
+  Language", and so on
+- Inject context: add notes to the model's context whenever certain tools are
+  called. For example: "remember to run gofumpt after editing Go files"
+- Auto-approve tools: skip the permission prompt for bash commands that
+  you know are safe
+- Log certain tool calls
+
+…And lots more. Show us what you're building!
+
+## Baby's First Hook
+
+Let's just dive into it and make a simple hook. This particular hook will
+disallow the use of Haskell (but we love you, Simon Peyton Jones).
+
+### Config
+
+The first thing we need to do is hook up our hook. Let's add the following to
+our local `crush.json`. You can, of course, do this globally, too.
+
+```jsonc
+{
+  // As expected, hooks go in a "hooks" object.
+  "hooks": {
+    // PreToolUse is an event that fires before a tool is used.
+    "PreToolUse": [
+      {
+        // What tool do we want to hook into? In this case, Bash, because it
+        // runs the stuff we wanna block.
+        "matcher": "^bash$",
+
+        // The path to our actual hook script.
+        "command": "./no-haskell.sh",
+      },
+    ],
+  },
+}
+```
+
+Now, let's make our `no-haskell.sh` hook script.
+
+```bash
+#!/usr/bin/env bash
+
+# Disallow ghc, cabal, and stack. Pipe the bash command output
+# ($CRUSH_TOOL_INPUT_COMMAND) to grep and match on a regexp.
+if echo "$CRUSH_TOOL_INPUT_COMMAND" | grep -qE '(^| )((ghc|cabal|stack)(\.exe)?)( |$)'; then
+
+  # Someone is trying to use Haskell. Let's send a message back to the model
+  # and user explaining why we're blocking this. Note that we send all feedback
+  # like this to stderr.
+  echo "No Haskell allowed, kiddo." >&2
+
+  # Now, block the tool call by exiting with code 2.
+  exit 2
+fi
+```
+
+That's basically it. For the full guide on how hooks work, however, read on.
+
+---
 
 ## Execution model
 
@@ -70,8 +129,8 @@ What this means in practice:
 
 ## Configuration
 
-Hooks can be added to your `crush.json` at both the global and project-level,
-with project level hooks taking precedence.
+Hooks can be added to your `crush.json` (or `.crush.json`) at both the global
+and project-level, with project level hooks taking precedence.
 
 ```jsonc
 {
@@ -87,8 +146,8 @@ with project level hooks taking precedence.
 }
 ```
 
-Hooks are keyed by event name. Only `command` is required; omit `matcher` to
-match all tools.
+Remember, hooks will run in parallel but resolve in config order. Last hook
+wins when rewriting input, but first deny wins when blocking.
 
 ## Events
 
@@ -97,29 +156,24 @@ Here are the events you can hook into (spoiler: there's currently just one):
 ### PreToolUse
 
 This hook fires before every tool call. Use it to block dangerous commands,
-enforce policies, rewrite tool input, or inject context the model should see.
+enforce policies, rewrite tool input, inject context the model should see, log
+stuff, and so on.
 
 **Matched against**: the tool name (e.g. `bash`, `edit`, `write`,
 `mcp_github_create_pull_request`).
 
-> [!NOTE] Event names are case insensitive and snake-caseable, so `PreToolUse`,
+> [!NOTE]
+> Event names are case insensitive and snake-caseable, so `PreToolUse`,
 > `pretooluse`, `PRETOOLUSE`, `pre_tool_use`, and `PRE_TOOL_USE` all work.
 
-## Baby's First Hook
-
-Hooks are just shell scripts. Go crazy.
+**Scope**: `PreToolUse` only fires on the **top-level agent's** tool calls.
+Sub-agents (the `agent` task tool, `agentic_fetch`, etc.) run without hook
+interception so a single delegated turn doesn't trigger your hook N times. The
+outer sub-agent tool call itself _is_ hooked, so policy like "never let the
+agent spawn sub-agents" still works.
 
-```bash
-#!/usr/bin/env bash
-
-# Log all bash tool calls to a file.
-printf "%s: %s / %s" \
-    "$(date -Iseconds)" \
-    "$CRUSH_SESSION_ID" \
-    "$CRUSH_TOOL_INPUT_COMMAND" >> ./bash.log
-```
-
-That's basically it. For the full guide on how hooks work, however, read on.
+Hooks are keyed by event name. Only `command` is required, and you can omit
+`matcher` to match all tools.
 
 ## Building Hooks
 
@@ -133,6 +187,11 @@ When a hook fires, Crush:
 4. Waits for all to finish (or time out), then aggregates results **in config
    order**: deny wins over allow, allow wins over none; `updated_input` patches
    shallow-merge in order.
+5. Applies the result **before** permission checks. If the aggregated decision
+   is `deny`, the tool call is blocked and you never see a permission prompt
+   for it. If it's `allow`, Crush treats that as affirmative pre-approval and
+   also skips the prompt. Silence (no decision) falls through to the normal
+   permission flow.
 
 Note that you can omit `matcher` and match in your shell script instead,
 however you'll incur some additional overhead as Crush will still parse and
@@ -487,6 +546,20 @@ process.stdin.on("end", () => {
 
 ---
 
+## Claude Code compatibility
+
+Crush hooks are broadly compatible with [Claude Code
+hooks](https://docs.claude.com/en/docs/claude-code/hooks): the config shape,
+stdin payload, output envelope, and exit codes line up so most Claude Code
+hooks run under Crush unchanged. This document covers the Crush-specific API
+only β€” anything not documented here isn't guaranteed to work.
+
+One intentional divergence: Crush treats `updated_input` as a shallow-merge
+patch against the original `tool_input` rather than a full replacement. Keys
+you omit are preserved. See [Output](#output) for details.
+
+---
+
 ## Reference
 
 This is the official reference of the narrative above. If prose and this section

flake.lock πŸ”—

@@ -0,0 +1,61 @@
+{
+  "nodes": {
+    "flake-utils": {
+      "inputs": {
+        "systems": "systems"
+      },
+      "locked": {
+        "lastModified": 1731533236,
+        "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
+    "nixpkgs": {
+      "locked": {
+        "lastModified": 1775423009,
+        "narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "nixos-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "root": {
+      "inputs": {
+        "flake-utils": "flake-utils",
+        "nixpkgs": "nixpkgs"
+      }
+    },
+    "systems": {
+      "locked": {
+        "lastModified": 1681028828,
+        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+        "owner": "nix-systems",
+        "repo": "default",
+        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-systems",
+        "repo": "default",
+        "type": "github"
+      }
+    }
+  },
+  "root": "root",
+  "version": 7
+}

flake.nix πŸ”—

@@ -0,0 +1,44 @@
+{
+  description = "Crush development environment";
+
+  inputs = {
+    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+    flake-utils.url = "github:numtide/flake-utils";
+  };
+
+  outputs = {
+    self,
+    nixpkgs,
+    flake-utils,
+  }:
+    flake-utils.lib.eachDefaultSystem (
+      system: let
+        pkgs = nixpkgs.legacyPackages.${system};
+      in {
+        devShells.default = pkgs.mkShell {
+          buildInputs = with pkgs; [
+            # Go toolchain
+            go_1_26
+
+            # Development tools
+            gopls # Go language server
+            golangci-lint # Linter
+            gofumpt # Formatter (stricter than gofmt)
+            go-task # Task runner
+            delve # Go debugger
+
+            # Additional tools
+            git # Version control
+            gh # GitHub CLI
+            svu # Semantic version utility
+            sqlc # SQL code generator
+          ];
+
+          shellHook = ''
+            # Set Go environment variables
+            export CGO_ENABLED=0
+          '';
+        };
+      }
+    );
+}

go.mod πŸ”—

@@ -5,9 +5,9 @@ go 1.26.2
 require (
 	charm.land/bubbles/v2 v2.1.0
 	charm.land/bubbletea/v2 v2.0.6
-	charm.land/catwalk v0.37.14
+	charm.land/catwalk v0.39.5
 	charm.land/fang/v2 v2.0.1
-	charm.land/fantasy v0.21.0
+	charm.land/fantasy v0.23.0
 	charm.land/glamour/v2 v2.0.0
 	charm.land/lipgloss/v2 v2.0.3
 	charm.land/log/v2 v2.0.0
@@ -16,7 +16,7 @@ require (
 	github.com/MakeNowJust/heredoc v1.0.0
 	github.com/Microsoft/go-winio v0.6.2
 	github.com/PuerkitoBio/goquery v1.12.0
-	github.com/alecthomas/chroma/v2 v2.23.1
+	github.com/alecthomas/chroma/v2 v2.24.1
 	github.com/atotto/clipboard v0.1.4
 	github.com/aymanbagabas/go-nativeclipboard v0.1.3
 	github.com/aymanbagabas/go-udiff v0.4.1
@@ -43,18 +43,18 @@ require (
 	github.com/gen2brain/beeep v0.11.2
 	github.com/go-git/go-git/v5 v5.18.0
 	github.com/google/uuid v1.6.0
-	github.com/invopop/jsonschema v0.13.0
+	github.com/invopop/jsonschema v0.14.0
 	github.com/itchyny/gojq v0.12.19
 	github.com/joho/godotenv v1.5.1
 	github.com/jordanella/go-ansi-paintbrush v0.0.0-20240728195301-b7ad996ecf3d
 	github.com/lucasb-eyer/go-colorful v1.4.0
-	github.com/mattn/go-isatty v0.0.21
-	github.com/modelcontextprotocol/go-sdk v1.5.0
-	github.com/ncruces/go-sqlite3 v0.33.3
+	github.com/mattn/go-isatty v0.0.22
+	github.com/modelcontextprotocol/go-sdk v1.6.0
+	github.com/ncruces/go-sqlite3 v0.34.0
 	github.com/nxadm/tail v1.4.11
 	github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c
-	github.com/posthog/posthog-go v1.12.1
-	github.com/pressly/goose/v3 v3.27.0
+	github.com/posthog/posthog-go v1.12.4
+	github.com/pressly/goose/v3 v3.27.1
 	github.com/qjebbs/go-jsons v1.0.0-alpha.5
 	github.com/rivo/uniseg v0.4.7
 	github.com/sahilm/fuzzy v0.1.1
@@ -73,7 +73,7 @@ require (
 	golang.org/x/text v0.36.0
 	gopkg.in/natefinch/lumberjack.v2 v2.2.1
 	gopkg.in/yaml.v3 v3.0.1
-	modernc.org/sqlite v1.49.1
+	modernc.org/sqlite v1.50.0
 	mvdan.cc/sh/moreinterp v0.0.0-20250902163504-3cf4fd5717a5
 	mvdan.cc/sh/v3 v3.13.1
 )
@@ -89,7 +89,7 @@ require (
 	github.com/KyleBanks/depth v1.2.1 // indirect
 	github.com/andybalholm/cascadia v1.3.3 // indirect
 	github.com/aws/aws-sdk-go-v2 v1.41.6 // indirect
-	github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 // indirect
+	github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9 // indirect
 	github.com/aws/aws-sdk-go-v2/config v1.32.16 // indirect
 	github.com/aws/aws-sdk-go-v2/credentials v1.19.15 // indirect
 	github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.22 // indirect
@@ -102,7 +102,7 @@ require (
 	github.com/aws/aws-sdk-go-v2/service/sso v1.30.16 // indirect
 	github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20 // indirect
 	github.com/aws/aws-sdk-go-v2/service/sts v1.42.0 // indirect
-	github.com/aws/smithy-go v1.25.0 // indirect
+	github.com/aws/smithy-go v1.25.1 // indirect
 	github.com/aymerick/douceur v0.2.0 // indirect
 	github.com/bahlo/generic-list-go v0.2.0 // indirect
 	github.com/buger/jsonparser v1.1.2 // indirect
@@ -113,7 +113,7 @@ require (
 	github.com/charmbracelet/x/windows v0.2.2 // indirect
 	github.com/cyphar/filepath-securejoin v0.4.1 // indirect
 	github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
-	github.com/dlclark/regexp2 v1.11.5 // indirect
+	github.com/dlclark/regexp2 v1.12.0 // indirect
 	github.com/ebitengine/purego v0.10.0 // indirect
 	github.com/esiqveland/notify v0.13.3 // indirect
 	github.com/felixge/httpsnoop v1.0.4 // indirect
@@ -135,7 +135,7 @@ require (
 	github.com/godbus/dbus/v5 v5.2.2 // indirect
 	github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
 	github.com/google/go-cmp v0.7.0 // indirect
-	github.com/google/jsonschema-go v0.4.2 // indirect
+	github.com/google/jsonschema-go v0.4.3 // indirect
 	github.com/google/s2a-go v0.1.9 // indirect
 	github.com/googleapis/enterprise-certificate-proxy v0.3.15 // indirect
 	github.com/googleapis/gax-go/v2 v2.22.0 // indirect
@@ -147,10 +147,10 @@ require (
 	github.com/jackmordaunt/icns/v3 v3.0.1 // indirect
 	github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
 	github.com/josharian/intern v1.0.0 // indirect
-	github.com/kaptinlin/go-i18n v0.3.0 // indirect
-	github.com/kaptinlin/jsonpointer v0.4.17 // indirect
-	github.com/kaptinlin/jsonschema v0.7.7 // indirect
-	github.com/kaptinlin/messageformat-go v0.4.19 // indirect
+	github.com/kaptinlin/go-i18n v0.4.4 // indirect
+	github.com/kaptinlin/jsonpointer v0.4.19 // indirect
+	github.com/kaptinlin/jsonschema v0.7.11 // indirect
+	github.com/kaptinlin/messageformat-go v0.6.0 // indirect
 	github.com/klauspost/compress v1.18.5 // indirect
 	github.com/klauspost/cpuid/v2 v2.2.10 // indirect
 	github.com/klauspost/pgzip v1.2.6 // indirect
@@ -164,11 +164,12 @@ require (
 	github.com/muesli/mango-cobra v1.2.0 // indirect
 	github.com/muesli/mango-pflag v0.1.0 // indirect
 	github.com/muesli/roff v0.1.0 // indirect
-	github.com/ncruces/go-sqlite3-wasm v1.1.1-0.20260409221933-87e4b35a38d0 // indirect
+	github.com/ncruces/go-sqlite3-wasm/v2 v2.1.35300 // indirect
 	github.com/ncruces/go-strftime v1.0.0 // indirect
 	github.com/ncruces/julianday v1.0.0 // indirect
 	github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect
-	github.com/pierrec/lz4/v4 v4.1.25 // indirect
+	github.com/pb33f/ordered-map/v2 v2.3.1 // indirect
+	github.com/pierrec/lz4/v4 v4.1.26 // indirect
 	github.com/pjbgf/sha1cd v0.3.2 // indirect
 	github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
 	github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
@@ -184,7 +185,6 @@ require (
 	github.com/tidwall/pretty v1.2.1 // indirect
 	github.com/u-root/u-root v0.14.1-0.20250807200646-5e7721023dc7 // indirect
 	github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 // indirect
-	github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
 	github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
 	github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
 	github.com/yuin/goldmark v1.7.8 // indirect
@@ -198,23 +198,23 @@ require (
 	go.uber.org/multierr v1.11.0 // indirect
 	go.yaml.in/yaml/v4 v4.0.0-rc.3 // indirect
 	golang.org/x/crypto v0.50.0 // indirect
-	golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 // indirect
+	golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect
 	golang.org/x/image v0.38.0 // indirect
-	golang.org/x/mod v0.34.0 // indirect
+	golang.org/x/mod v0.35.0 // indirect
 	golang.org/x/oauth2 v0.36.0 // indirect
 	golang.org/x/term v0.42.0 // indirect
 	golang.org/x/time v0.15.0 // indirect
-	golang.org/x/tools v0.43.0 // indirect
+	golang.org/x/tools v0.44.0 // indirect
 	google.golang.org/api v0.276.0 // indirect
 	google.golang.org/genai v1.54.0 // indirect
-	google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4 // indirect
 	google.golang.org/grpc v1.80.0 // indirect
 	google.golang.org/protobuf v1.36.11 // indirect
 	gopkg.in/dnaeon/go-vcr.v4 v4.0.6-0.20251110073552-01de4eb40290 // indirect
 	gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
 	gopkg.in/warnings.v0 v0.1.2 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
-	modernc.org/libc v1.72.0 // indirect
+	modernc.org/libc v1.72.1 // indirect
 	modernc.org/mathutil v1.7.1 // indirect
 	modernc.org/memory v1.11.0 // indirect
 )

go.sum πŸ”—

@@ -2,12 +2,12 @@ charm.land/bubbles/v2 v2.1.0 h1:YSnNh5cPYlYjPxRrzs5VEn3vwhtEn3jVGRBT3M7/I0g=
 charm.land/bubbles/v2 v2.1.0/go.mod h1:l97h4hym2hvWBVfmJDtrEHHCtkIKeTEb3TTJ4ZOB3wY=
 charm.land/bubbletea/v2 v2.0.6 h1:UHN/91OyuhaOFGSrBXQ/hMZD8IO1Uc4BvHlgHXL2WJo=
 charm.land/bubbletea/v2 v2.0.6/go.mod h1:MH/D8ZLlN3op37vQvijKuU29g3rqTp+aQapURFonF9g=
-charm.land/catwalk v0.37.14 h1:PYz9777U3vnLgHQWriQA6lHwSSZLBnyvCF77E46W02M=
-charm.land/catwalk v0.37.14/go.mod h1:IvMXm7qMKvYuWWlN5A4dA0bTgYg4clG1GAeU9/NlY0w=
+charm.land/catwalk v0.39.5 h1:YH64kRKGZyPJeAwTfguO+B8zeltag2n1mPiI1kJTmsM=
+charm.land/catwalk v0.39.5/go.mod h1:IvMXm7qMKvYuWWlN5A4dA0bTgYg4clG1GAeU9/NlY0w=
 charm.land/fang/v2 v2.0.1 h1:zQCM8JQJ1JnQX/66B5jlCYBUxL2as5JXQZ2KJ6EL0mY=
 charm.land/fang/v2 v2.0.1/go.mod h1:S1GmkpcvK+OB5w9caywUnJcsMew45Ot8FXqoz8ALrII=
-charm.land/fantasy v0.21.0 h1:fYeW5axjn7KxJFvXavYhToZDG83zM+or1XEpHqX/GAo=
-charm.land/fantasy v0.21.0/go.mod h1:GYYvvDAS3u/Wpb5hX0VxCJPhQCaffHNNeBRtGw04IBI=
+charm.land/fantasy v0.23.0 h1:pocjwC5CxfEg1Bpwb0raML2d5ijo3op33Mmd6hYJyo4=
+charm.land/fantasy v0.23.0/go.mod h1:4yzSsd9XmFEVjRnF1P0LTEbLTmQX6OLnPkrHaf7iruo=
 charm.land/glamour/v2 v2.0.0 h1:IDBoqLEy7Hdpb9VOXN+khLP/XSxtJy1VsHuW/yF87+U=
 charm.land/glamour/v2 v2.0.0/go.mod h1:kjq9WB0s8vuUYZNYey2jp4Lgd9f4cKdzAw88FZtpj/w=
 charm.land/lipgloss/v2 v2.0.3 h1:yM2zJ4Cf5Y51b7RHIwioil4ApI/aypFXXVHSwlM6RzU=
@@ -47,8 +47,8 @@ github.com/PuerkitoBio/goquery v1.12.0 h1:pAcL4g3WRXekcB9AU/y1mbKez2dbY2AajVhtkO
 github.com/PuerkitoBio/goquery v1.12.0/go.mod h1:802ej+gV2y7bbIhOIoPY5sT183ZW0YFofScC4q/hIpQ=
 github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0=
 github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
-github.com/alecthomas/chroma/v2 v2.23.1 h1:nv2AVZdTyClGbVQkIzlDm/rnhk1E9bU9nXwmZ/Vk/iY=
-github.com/alecthomas/chroma/v2 v2.23.1/go.mod h1:NqVhfBR0lte5Ouh3DcthuUCTUpDC9cxBOfyMbMQPs3o=
+github.com/alecthomas/chroma/v2 v2.24.1 h1:m5ffpfZbIb++k8AqFEKy9uVgY12xIQtBsQlc6DfZJQM=
+github.com/alecthomas/chroma/v2 v2.24.1/go.mod h1:l+ohZ9xRXIbGe7cIW+YZgOGbvuVLjMps/FYN/CwuabI=
 github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs=
 github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
 github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
@@ -58,8 +58,8 @@ github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z
 github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
 github.com/aws/aws-sdk-go-v2 v1.41.6 h1:1AX0AthnBQzMx1vbmir3Y4WsnJgiydmnJjiLu+LvXOg=
 github.com/aws/aws-sdk-go-v2 v1.41.6/go.mod h1:dy0UzBIfwSeot4grGvY1AqFWN5zgziMmWGzysDnHFcQ=
-github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 h1:eBMB84YGghSocM7PsjmmPffTa+1FBUeNvGvFou6V/4o=
-github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8/go.mod h1:lyw7GFp3qENLh7kwzf7iMzAxDn+NzjXEAGjKS2UOKqI=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9 h1:adBsCIIpLbLmYnkQU+nAChU5yhVTvu5PerROm+/Kq2A=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9/go.mod h1:uOYhgfgThm/ZyAuJGNQ5YgNyOlYfqnGpTHXvk3cpykg=
 github.com/aws/aws-sdk-go-v2/config v1.32.16 h1:Q0iQ7quUgJP0F/SCRTieScnaMdXr9h/2+wze1u3cNeM=
 github.com/aws/aws-sdk-go-v2/config v1.32.16/go.mod h1:duCCnJEFqpt2RC6no1iK6q+8HpwOAkiUua0pY507dQc=
 github.com/aws/aws-sdk-go-v2/credentials v1.19.15 h1:fyvgWTszojq8hEnMi8PPBTvZdTtEVmAVyo+NFLHBhH4=
@@ -84,8 +84,8 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20 h1:oK/njaL8GtyEihkWMD4k3Vg
 github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20/go.mod h1:JHs8/y1f3zY7U5WcuzoJ/yAYGYtNIVPKLIbp61euvmg=
 github.com/aws/aws-sdk-go-v2/service/sts v1.42.0 h1:ks8KBcZPh3PYISr5dAiXCM5/Thcuxk8l+PG4+A0exds=
 github.com/aws/aws-sdk-go-v2/service/sts v1.42.0/go.mod h1:pFw33T0WLvXU3rw1WBkpMlkgIn54eCB5FYLhjDc9Foo=
-github.com/aws/smithy-go v1.25.0 h1:Sz/XJ64rwuiKtB6j98nDIPyYrV1nVNJ4YU74gttcl5U=
-github.com/aws/smithy-go v1.25.0/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc=
+github.com/aws/smithy-go v1.25.1 h1:J8ERsGSU7d+aCmdQur5Txg6bVoYelvQJgtZehD12GkI=
+github.com/aws/smithy-go v1.25.1/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc=
 github.com/aymanbagabas/go-nativeclipboard v0.1.3 h1:FmAWHPTwneAixu7uGDn3cL42xPlUCdNp2J8egMn3P1k=
 github.com/aymanbagabas/go-nativeclipboard v0.1.3/go.mod h1:2o7MyZwwi4pmXXpOpvOS5FwaHyoCIUks0ktjUvB0EoE=
 github.com/aymanbagabas/go-udiff v0.4.1 h1:OEIrQ8maEeDBXQDoGCbbTTXYJMYRCRO1fnodZ12Gv5o=
@@ -156,8 +156,8 @@ github.com/denisbrodbeck/machineid v1.0.1 h1:geKr9qtkB876mXguW2X6TU4ZynleN6ezuMS
 github.com/denisbrodbeck/machineid v1.0.1/go.mod h1:dJUwb7PTidGDeYyUBmXZ2GphQBbjJCrnectwCyxcUSI=
 github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
 github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
-github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ=
-github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
+github.com/dlclark/regexp2 v1.12.0 h1:0j4c5qQmnC6XOWNjP3PIXURXN2gWx76rd3KvgdPkCz8=
+github.com/dlclark/regexp2 v1.12.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
 github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI=
 github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
 github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
@@ -225,8 +225,8 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6
 github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
 github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
-github.com/google/jsonschema-go v0.4.2 h1:tmrUohrwoLZZS/P3x7ex0WAVknEkBZM46iALbcqoRA8=
-github.com/google/jsonschema-go v0.4.2/go.mod h1:r5quNTdLOYEz95Ru18zA0ydNbBuYoo9tgaYcxEYhJVE=
+github.com/google/jsonschema-go v0.4.3 h1:/DBOLZTfDow7pe2GmaJNhltueGTtDKICi8V8p+DQPd0=
+github.com/google/jsonschema-go v0.4.3/go.mod h1:r5quNTdLOYEz95Ru18zA0ydNbBuYoo9tgaYcxEYhJVE=
 github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs=
 github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
 github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0=
@@ -248,8 +248,8 @@ github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUq
 github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
 github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
-github.com/invopop/jsonschema v0.13.0 h1:KvpoAJWEjR3uD9Kbm2HWJmqsEaHt8lBUpd0qHcIi21E=
-github.com/invopop/jsonschema v0.13.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0=
+github.com/invopop/jsonschema v0.14.0 h1:MHQqLhvpNUZfw+hM3AZDYK7jxO8FZoQeQM77g8iyZjg=
+github.com/invopop/jsonschema v0.14.0/go.mod h1:ygm6C2EaVNMBDPpaPlnOA2pFAxBnxGjFlMZABxm9n2I=
 github.com/itchyny/gojq v0.12.19 h1:ttXA0XCLEMoaLOz5lSeFOZ6u6Q3QxmG46vfgI4O0DEs=
 github.com/itchyny/gojq v0.12.19/go.mod h1:5galtVPDywX8SPSOrqjGxkBeDhSxEW1gSxoy7tn1iZY=
 github.com/itchyny/timefmt-go v0.1.8 h1:1YEo1JvfXeAHKdjelbYr/uCuhkybaHCeTkH8Bo791OI=
@@ -264,14 +264,14 @@ github.com/jordanella/go-ansi-paintbrush v0.0.0-20240728195301-b7ad996ecf3d h1:o
 github.com/jordanella/go-ansi-paintbrush v0.0.0-20240728195301-b7ad996ecf3d/go.mod h1:SV0W0APWP9MZ1/gfDQ/NzzTlWdIgYZ/ZbpN4d/UXRYw=
 github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
-github.com/kaptinlin/go-i18n v0.3.0 h1:wP76dvYg04bvwTb+8NB+CmdZ2kL7lSSCQ9B/kFv7QHo=
-github.com/kaptinlin/go-i18n v0.3.0/go.mod h1:pVcu9qsW5pOIOoZFJXesRYmLos1vMQrby70JPAoWmJU=
-github.com/kaptinlin/jsonpointer v0.4.17 h1:mY9k8ciWncxbsECyaxKnR0MdmxamNdp2tLQkAKVrtSk=
-github.com/kaptinlin/jsonpointer v0.4.17/go.mod h1:SsfsjqnHG5zuKo1DTBzk1VknaHlL4osHw+X9kZKukpU=
-github.com/kaptinlin/jsonschema v0.7.7 h1:41BlQJ9dskH0oE5DSzBUrl/w4JQYIr6N6L0B5GNyDoM=
-github.com/kaptinlin/jsonschema v0.7.7/go.mod h1:rKjWfyySHSxAD7Li2ctYkPlOu960igoKBvZ2ADRtd5Q=
-github.com/kaptinlin/messageformat-go v0.4.19 h1:A5kuuZ1ybXDQ7kD1aoEWGAOemX7hLsMY0yolgSbgpRI=
-github.com/kaptinlin/messageformat-go v0.4.19/go.mod h1:utSDTfiXTxl66OC5RIEuObLH7Ue3YjbA2X86SYMBYWg=
+github.com/kaptinlin/go-i18n v0.4.4 h1:3XrUYyLOykcd1K3gm4j7ndrF8YLIYrJjtbKGr/nF2Kw=
+github.com/kaptinlin/go-i18n v0.4.4/go.mod h1:mU/7BH4molY5lGZYBwBRKAaiJ70dWRHuqmQ0/pFLGno=
+github.com/kaptinlin/jsonpointer v0.4.19 h1:dEkwEnvn9jJCofrwKGxfKaPNbDOQEf3UEbEumn4xZBg=
+github.com/kaptinlin/jsonpointer v0.4.19/go.mod h1:Mo7+DX8RlQTFqS4dnYJl0izSP4ob+Rl5xO/mGDETgaU=
+github.com/kaptinlin/jsonschema v0.7.11 h1:h63Lb3Q4FBSWeWiAGefNPEVPNsOvgn91ATmf25X0yRs=
+github.com/kaptinlin/jsonschema v0.7.11/go.mod h1:cJ8QIhwq3V/Yyh3sXRNt8w3sM943bNIbwnPTpBTXn3s=
+github.com/kaptinlin/messageformat-go v0.6.0 h1:D6jiXFsKW4/JG2CMddv/F6Rev9KVbCRKEzzV5QOAcpc=
+github.com/kaptinlin/messageformat-go v0.6.0/go.mod h1:NKjwS6e9u7DRhAK+vydjDDwJ7UbdHhYjk/yk2WPuZPs=
 github.com/klauspost/compress v1.18.5 h1:/h1gH5Ce+VWNLSWqPzOVn6XBO+vJbCNGvjoaGBFW2IE=
 github.com/klauspost/compress v1.18.5/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ=
 github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE=
@@ -294,8 +294,8 @@ github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN
 github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
 github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/mattn/go-isatty v0.0.21 h1:xYae+lCNBP7QuW4PUnNG61ffM4hVIfm+zUzDuSzYLGs=
-github.com/mattn/go-isatty v0.0.21/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
+github.com/mattn/go-isatty v0.0.22 h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4=
+github.com/mattn/go-isatty v0.0.22/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
 github.com/mattn/go-runewidth v0.0.23 h1:7ykA0T0jkPpzSvMS5i9uoNn2Xy3R383f9HDx3RybWcw=
 github.com/mattn/go-runewidth v0.0.23/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
 github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6BbAxPY=
@@ -304,8 +304,8 @@ github.com/microcosm-cc/bluemonday v1.0.27 h1:MpEUotklkwCSLeH+Qdx1VJgNqLlpY2KXwX
 github.com/microcosm-cc/bluemonday v1.0.27/go.mod h1:jFi9vgW+H7c3V0lb6nR74Ib/DIB5OBs92Dimizgw2cA=
 github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/modelcontextprotocol/go-sdk v1.5.0 h1:CHU0FIX9kpueNkxuYtfYQn1Z0slhFzBZuq+x6IiblIU=
-github.com/modelcontextprotocol/go-sdk v1.5.0/go.mod h1:gggDIhoemhWs3BGkGwd1umzEXCEMMvAnhTrnbXJKKKA=
+github.com/modelcontextprotocol/go-sdk v1.6.0 h1:PPLS3kn7WtOEnR+Af4X5H96SG0qSab8R/ZQT/HkhPkY=
+github.com/modelcontextprotocol/go-sdk v1.6.0/go.mod h1:kzm3kzFL1/+AziGOE0nUs3gvPoNxMCvkxokMkuFapXQ=
 github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
 github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
 github.com/muesli/mango v0.1.0 h1:DZQK45d2gGbql1arsYA4vfg4d7I9Hfx5rX/GCmzsAvI=
@@ -316,10 +316,10 @@ github.com/muesli/mango-pflag v0.1.0 h1:UADqbYgpUyRoBja3g6LUL+3LErjpsOwaC9ywvBWe
 github.com/muesli/mango-pflag v0.1.0/go.mod h1:YEQomTxaCUp8PrbhFh10UfbhbQrM/xJ4i2PB8VTLLW0=
 github.com/muesli/roff v0.1.0 h1:YD0lalCotmYuF5HhZliKWlIx7IEhiXeSfq7hNjFqGF8=
 github.com/muesli/roff v0.1.0/go.mod h1:pjAHQM9hdUUwm/krAfrLGgJkXJ+YuhtsfZ42kieB2Ig=
-github.com/ncruces/go-sqlite3 v0.33.3 h1:6jCR3KuGvJSEwhaQrkHDGeIe2qCQ6nOUDNsPz7ZIotw=
-github.com/ncruces/go-sqlite3 v0.33.3/go.mod h1:t2Osfw0wcKzJTgv2EvrkTtVLqlbKTA5Yvwb2ypAlBcY=
-github.com/ncruces/go-sqlite3-wasm v1.1.1-0.20260409221933-87e4b35a38d0 h1:ymE9H30x1AyW5VfMNkJC9teuI2W1jjMsQS7kc6zl6Tg=
-github.com/ncruces/go-sqlite3-wasm v1.1.1-0.20260409221933-87e4b35a38d0/go.mod h1:/H3+JykPsfSlvKbOxNSx9kKwm3ecqQGzyCs1e9KkNsU=
+github.com/ncruces/go-sqlite3 v0.34.0 h1:q2I6wHTLWIoz6ehYkKdG5dGQc66eJv7ZGnekhvuMfK8=
+github.com/ncruces/go-sqlite3 v0.34.0/go.mod h1:qpBxsSdGPnO9K5OExuv5GEsrGQ7Rk6JsJFH6wn2DwwU=
+github.com/ncruces/go-sqlite3-wasm/v2 v2.1.35300 h1:cRdxCt3BDfMu0vfSdoqaAPD+dzIXPkGREjqyZMLN2Ak=
+github.com/ncruces/go-sqlite3-wasm/v2 v2.1.35300/go.mod h1:R2kJLPoSA/GBX/b8x7zwOq/KLAw6rLMY1l3Hi76SQIo=
 github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w=
 github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
 github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M=
@@ -331,10 +331,12 @@ github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY=
 github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc=
 github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
 github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
-github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
-github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
-github.com/pierrec/lz4/v4 v4.1.25 h1:kocOqRffaIbU5djlIBr7Wh+cx82C0vtFb0fOurZHqD0=
-github.com/pierrec/lz4/v4 v4.1.25/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4=
+github.com/pb33f/ordered-map/v2 v2.3.1 h1:5319HDO0aw4DA4gzi+zv4FXU9UlSs3xGZ40wcP1nBjY=
+github.com/pb33f/ordered-map/v2 v2.3.1/go.mod h1:qxFQgd0PkVUtOMCkTapqotNgzRhMPL7VvaHKbd1HnmQ=
+github.com/pelletier/go-toml/v2 v2.3.0 h1:k59bC/lIZREW0/iVaQR8nDHxVq8OVlIzYCOJf421CaM=
+github.com/pelletier/go-toml/v2 v2.3.0/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
+github.com/pierrec/lz4/v4 v4.1.26 h1:GrpZw1gZttORinvzBdXPUXATeqlJjqUG/D87TKMnhjY=
+github.com/pierrec/lz4/v4 v4.1.26/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4=
 github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4=
 github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A=
 github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
@@ -347,10 +349,10 @@ github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/posthog/posthog-go v1.12.1 h1:qZMHfC0frQOR1LT4js3ns+pXbDIyFsV+kWpvJEok3ms=
-github.com/posthog/posthog-go v1.12.1/go.mod h1:xsVOW9YImilUcazwPNEq4PJDqEZf2KeCS758zXjwkPg=
-github.com/pressly/goose/v3 v3.27.0 h1:/D30gVTuQhu0WsNZYbJi4DMOsx1lNq+6SkLe+Wp59BM=
-github.com/pressly/goose/v3 v3.27.0/go.mod h1:3ZBeCXqzkgIRvrEMDkYh1guvtoJTU5oMMuDdkutoM78=
+github.com/posthog/posthog-go v1.12.4 h1:fAqTAGgLQFZADRg3AJvSSoP0hwEIs940OE8AmL8/H8c=
+github.com/posthog/posthog-go v1.12.4/go.mod h1:xsVOW9YImilUcazwPNEq4PJDqEZf2KeCS758zXjwkPg=
+github.com/pressly/goose/v3 v3.27.1 h1:6uEvcprBybDmW4hcz3gYujhARhye+GoWKhEWyzD5sh4=
+github.com/pressly/goose/v3 v3.27.1/go.mod h1:maruOxsPnIG2yHHyo8UqKWXYKFcH7Q76csUV7+7KYoM=
 github.com/qjebbs/go-jsons v1.0.0-alpha.5 h1:U2PPDxeKI1MMOSw7e7xyxhwH9Ggc7UrDvaRIkJ+l0n8=
 github.com/qjebbs/go-jsons v1.0.0-alpha.5/go.mod h1:wNJrtinHyC3YSf6giEh4FJN8+yZV7nXBjvmfjhBIcw4=
 github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
@@ -417,8 +419,6 @@ github.com/u-root/u-root v0.14.1-0.20250807200646-5e7721023dc7 h1:ax+jBy7xFhh+Ka
 github.com/u-root/u-root v0.14.1-0.20250807200646-5e7721023dc7/go.mod h1:/0Qr7qJeDwWxoKku2xKQ4Szc+SwBE3g9VE8jNiamsmc=
 github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 h1:pyC9PaHYZFgEKFdlp3G8RaCKgVpHZnecvArXvPXcFkM=
 github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701/go.mod h1:P3a5rG4X7tI17Nn3aOIAYr5HbIMukwXG0urG0WuL8OA=
-github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc=
-github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw=
 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
 github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4=
@@ -465,8 +465,8 @@ golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v
 golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
 golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI=
 golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q=
-golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 h1:jiDhWWeC7jfWqR9c/uplMOqJ0sbNlNWv0UkzE0vX1MA=
-golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90/go.mod h1:xE1HEv6b+1SCZ5/uscMRjUBKtIxworgEcEi+/n9NQDQ=
+golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM=
+golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80=
 golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
 golang.org/x/image v0.38.0 h1:5l+q+Y9JDC7mBOMjo4/aPhMDcxEptsX+Tt3GgRQRPuE=
 golang.org/x/image v0.38.0/go.mod h1:/3f6vaXC+6CEanU4KJxbcUZyEePbyKbaLoDOe4ehFYY=
@@ -475,8 +475,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
 golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
 golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
 golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
-golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI=
-golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY=
+golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM=
+golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
@@ -550,8 +550,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
 golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
 golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
 golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
-golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s=
-golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0=
+golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
+golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
 gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
@@ -559,12 +559,12 @@ google.golang.org/api v0.276.0 h1:nVArUtfLEihtW+b0DdcqRGK1xoEm2+ltAihyztq7MKY=
 google.golang.org/api v0.276.0/go.mod h1:Fnag/EWUPIcJXuIkP1pjoTgS5vdxlk3eeemL7Do6bvw=
 google.golang.org/genai v1.54.0 h1:ZQCa70WMTJDI11FdqWCzGvZ5PanpcpfoO6jl/lrSnGU=
 google.golang.org/genai v1.54.0/go.mod h1:A3kkl0nyBjyFlNjgxIwKq70julKbIxpSxqKO5gw/gmk=
-google.golang.org/genproto v0.0.0-20260414002931-afd174a4e478 h1:aLsVTW0lZ8+IY5u/ERjZSCvAmhuR7slKzyha3YikDNA=
-google.golang.org/genproto v0.0.0-20260414002931-afd174a4e478/go.mod h1:YJAzKjfHIUHb9T+bfu8L7mthAp7VVXQBUs1PLdBWS7M=
-google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 h1:yQugLulqltosq0B/f8l4w9VryjV+N/5gcW0jQ3N8Qec=
-google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478/go.mod h1:C6ADNqOxbgdUUeRTU+LCHDPB9ttAMCTff6auwCVa4uc=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 h1:RmoJA1ujG+/lRGNfUnOMfhCy5EipVMyvUE+KNbPbTlw=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
+google.golang.org/genproto v0.0.0-20260427160629-7cedc36a6bc4 h1:2iMJZntwvmfgtse+s744JY7v7PgEdSBuFYXucvpOHNM=
+google.golang.org/genproto v0.0.0-20260427160629-7cedc36a6bc4/go.mod h1:v14kaaboYyXQ1Gsu489Q+Hg/oN4B33mWtuOhF1HCeXA=
+google.golang.org/genproto/googleapis/api v0.0.0-20260427160629-7cedc36a6bc4 h1:yOzSCGPx+cp5VO7IxvZ9SBFF7j1tZVcNtlHR2iYKtVo=
+google.golang.org/genproto/googleapis/api v0.0.0-20260427160629-7cedc36a6bc4/go.mod h1:Q9HWtNeE7tM9npdIsEvqXj1QJIvVoeAV3rtXtS715Cw=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4 h1:tEkOQcXgF6dH1G+MVKZrfpYvozGrzb91k6ha7jireSM=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
 google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM=
 google.golang.org/grpc v1.80.0/go.mod h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4=
 google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
@@ -590,10 +590,10 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
 gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-modernc.org/cc/v4 v4.27.3 h1:uNCgn37E5U09mTv1XgskEVUJ8ADKpmFMPxzGJ0TSo+U=
-modernc.org/cc/v4 v4.27.3/go.mod h1:3YjcbCqhoTTHPycJDRl2WZKKFj0nwcOIPBfEZK0Hdk8=
-modernc.org/ccgo/v4 v4.32.4 h1:L5OB8rpEX4ZsXEQwGozRfJyJSFHbbNVOoQ59DU9/KuU=
-modernc.org/ccgo/v4 v4.32.4/go.mod h1:lY7f+fiTDHfcv6YlRgSkxYfhs+UvOEEzj49jAn2TOx0=
+modernc.org/cc/v4 v4.28.1 h1:XpLbkYVQ24E8tX5u8+yWGvaxerxkR/S4zqxI8ZoSBuc=
+modernc.org/cc/v4 v4.28.1/go.mod h1:OnovgIhbbMXMu1aISnJ0wvVD1KnW+cAUJkIrAWh+kVI=
+modernc.org/ccgo/v4 v4.33.0 h1:dspBCm75jsj8Y/ufwAMVfe375L2iYdMyQ2QG/v3hL54=
+modernc.org/ccgo/v4 v4.33.0/go.mod h1:+RhXBoRYzRwaH21mV/aj6XvQRDtfjcZfAlPMsQo8CR0=
 modernc.org/fileutil v1.4.0 h1:j6ZzNTftVS054gi281TyLjHPp6CPHr2KCxEXjEbD6SM=
 modernc.org/fileutil v1.4.0/go.mod h1:EqdKFDxiByqxLk8ozOxObDSfcVOv/54xDs/DUHdvCUU=
 modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI=
@@ -602,18 +602,18 @@ modernc.org/gc/v3 v3.1.2 h1:ZtDCnhonXSZexk/AYsegNRV1lJGgaNZJuKjJSWKyEqo=
 modernc.org/gc/v3 v3.1.2/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY=
 modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks=
 modernc.org/goabi0 v0.2.0/go.mod h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI=
-modernc.org/libc v1.72.0 h1:IEu559v9a0XWjw0DPoVKtXpO2qt5NVLAnFaBbjq+n8c=
-modernc.org/libc v1.72.0/go.mod h1:tTU8DL8A+XLVkEY3x5E/tO7s2Q/q42EtnNWda/L5QhQ=
+modernc.org/libc v1.72.1 h1:db1xwJ6u1kE3KHTFTTbe2GCrczHPKzlURP0aDC4NGD0=
+modernc.org/libc v1.72.1/go.mod h1:HRMiC/PhPGLIPM7GzAFCbI+oSgE3dhZ8FWftmRrHVlY=
 modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU=
 modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg=
 modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI=
 modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw=
-modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8=
-modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns=
+modernc.org/opt v0.2.0 h1:tGyef5ApycA7FSEOMraay9SaTk5zmbx7Tu+cJs4QKZg=
+modernc.org/opt v0.2.0/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns=
 modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w=
 modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE=
-modernc.org/sqlite v1.49.1 h1:dYGHTKcX1sJ+EQDnUzvz4TJ5GbuvhNJa8Fg6ElGx73U=
-modernc.org/sqlite v1.49.1/go.mod h1:m0w8xhwYUVY3H6pSDwc3gkJ/irZT/0YEXwBlhaxQEew=
+modernc.org/sqlite v1.50.0 h1:eMowQSWLK0MeiQTdmz3lqoF5dqclujdlIKeJA11+7oM=
+modernc.org/sqlite v1.50.0/go.mod h1:m0w8xhwYUVY3H6pSDwc3gkJ/irZT/0YEXwBlhaxQEew=
 modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0=
 modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A=
 modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=

internal/agent/coordinator.go πŸ”—

@@ -281,20 +281,7 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
 		return options
 	}
 
-	providerType := providerCfg.Type
-	if providerType == "hyper" {
-		if strings.Contains(model.CatwalkCfg.ID, "claude") {
-			providerType = anthropic.Name
-		} else if strings.Contains(model.CatwalkCfg.ID, "gpt") {
-			providerType = openai.Name
-		} else if strings.Contains(model.CatwalkCfg.ID, "gemini") {
-			providerType = google.Name
-		} else {
-			providerType = openaicompat.Name
-		}
-	}
-
-	switch providerType {
+	switch providerCfg.Type {
 	case openai.Name, azure.Name:
 		_, hasReasoningEffort := mergedOptions["reasoning_effort"]
 		if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
@@ -374,11 +361,39 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
 		if err == nil {
 			options[google.Name] = parsed
 		}
-	case openaicompat.Name:
+	case openaicompat.Name, hyper.Name:
 		_, hasReasoningEffort := mergedOptions["reasoning_effort"]
 		if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
 			mergedOptions["reasoning_effort"] = model.ModelCfg.ReasoningEffort
 		}
+
+		extraBody := make(map[string]any)
+
+		// "reasoning effort" is a standard OpenAI field, but "thinking" is not.
+		// Setting it in the right way for each provider.
+		// TODO: Abstract this in Fantasy somehow?
+		// TODO: Allow custom providers to specify how to set this?
+		switch providerCfg.ID {
+		case hyper.Name:
+			extraBody["thinking"] = model.ModelCfg.Think
+		case string(catwalk.InferenceProviderIoNet):
+			extraBody["chat_template_kwargs"] = map[string]any{
+				"thinking": model.ModelCfg.Think,
+			}
+		case string(catwalk.InferenceProviderZAI):
+			if model.ModelCfg.Think {
+				extraBody["thinking"] = map[string]any{
+					"type": "enabled",
+				}
+			} else {
+				extraBody["thinking"] = map[string]any{
+					"type": "disabled",
+				}
+			}
+		}
+
+		mergedOptions["extra_body"] = extraBody
+
 		parsed, err := openaicompat.ParseOptions(mergedOptions)
 		if err == nil {
 			options[openaicompat.Name] = parsed

internal/agent/hyper/provider.go πŸ”—

@@ -3,34 +3,24 @@ package hyper
 
 import (
 	"cmp"
+	"context"
 	_ "embed"
 	"encoding/json"
+	"fmt"
 	"log/slog"
+	"net/http"
 	"os"
-	"strconv"
 	"sync"
+	"time"
 
 	"charm.land/catwalk/pkg/catwalk"
 )
 
-//go:generate wget -O provider.json https://hyper.charm.land/api/v1/provider
+//go:generate wget -O provider.json https://hyper.charm.land/v1/provider
 
 //go:embed provider.json
 var embedded []byte
 
-// Enabled returns true if hyper is enabled.
-var Enabled = sync.OnceValue(func() bool {
-	b, _ := strconv.ParseBool(
-		cmp.Or(
-			os.Getenv("HYPER"),
-			os.Getenv("HYPERCRUSH"),
-			os.Getenv("HYPER_ENABLE"),
-			os.Getenv("HYPER_ENABLED"),
-		),
-	)
-	return b
-})
-
 // Embedded returns the embedded Hyper provider.
 var Embedded = sync.OnceValue(func() catwalk.Provider {
 	var provider catwalk.Provider
@@ -46,6 +36,8 @@ var Embedded = sync.OnceValue(func() catwalk.Provider {
 const (
 	// Name is the default name of this meta provider.
 	Name = "hyper"
+	// DisplayName is the display name of Hyper.
+	DisplayName = "Charm Hyper"
 	// defaultBaseURL is the default proxy URL.
 	defaultBaseURL = "https://hyper.charm.land"
 )
@@ -54,3 +46,38 @@ const (
 var BaseURL = sync.OnceValue(func() string {
 	return cmp.Or(os.Getenv("HYPER_URL"), defaultBaseURL)
 })
+
+// FetchCredits calls the Hyper /v1/credits endpoint and returns the remaining
+// credits count.
+func FetchCredits(ctx context.Context, apiKey string) (int, error) {
+	req, err := http.NewRequestWithContext(
+		ctx,
+		http.MethodGet,
+		BaseURL()+"/v1/credits",
+		nil,
+	)
+	if err != nil {
+		return 0, fmt.Errorf("could not create request: %w", err)
+	}
+	req.Header.Set("Authorization", "Bearer "+apiKey)
+
+	client := &http.Client{Timeout: 10 * time.Second}
+	resp, err := client.Do(req)
+	if err != nil {
+		return 0, fmt.Errorf("failed to make request: %w", err)
+	}
+	defer resp.Body.Close() //nolint:errcheck
+
+	if resp.StatusCode != http.StatusOK {
+		return 0, fmt.Errorf("unexpected status code: %d", resp.StatusCode)
+	}
+
+	var result struct {
+		Balance int `json:"balance"`
+	}
+	if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
+		return 0, fmt.Errorf("failed to decode response: %w", err)
+	}
+
+	return result.Balance, nil
+}

internal/agent/hyper/provider.json πŸ”—

@@ -6,6 +6,42 @@
   "default_large_model_id": "kimi-k2.5",
   "default_small_model_id": "gpt-oss-120b",
   "models": [
+    {
+      "id": "deepseek-v4-flash",
+      "name": "DeepSeek V4 Flash",
+      "cost_per_1m_in": 1.55,
+      "cost_per_1m_out": 2.28,
+      "cost_per_1m_in_cached": 0.38,
+      "cost_per_1m_out_cached": 0,
+      "context_window": 65000,
+      "default_max_tokens": 6500,
+      "can_reason": true,
+      "supports_attachments": false
+    },
+    {
+      "id": "deepseek-v4-pro",
+      "name": "DeepSeek V4 Pro",
+      "cost_per_1m_in": 4.45,
+      "cost_per_1m_out": 5.5,
+      "cost_per_1m_in_cached": 0.35,
+      "cost_per_1m_out_cached": 0,
+      "context_window": 600000,
+      "default_max_tokens": 60000,
+      "can_reason": true,
+      "supports_attachments": false
+    },
+    {
+      "id": "gemma-4-26b-a4b-it",
+      "name": "Gemma 4 26B A4B",
+      "cost_per_1m_in": 0.145,
+      "cost_per_1m_out": 0.5,
+      "cost_per_1m_in_cached": 0.08,
+      "cost_per_1m_out_cached": 0,
+      "context_window": 262144,
+      "default_max_tokens": 26214,
+      "can_reason": true,
+      "supports_attachments": false
+    },
     {
       "id": "glm-5",
       "name": "GLM-5",
@@ -21,7 +57,7 @@
     {
       "id": "glm-5.1",
       "name": "GLM-5.1",
-      "cost_per_1m_in": 1.06,
+      "cost_per_1m_in": 1.5,
       "cost_per_1m_out": 4.4,
       "cost_per_1m_in_cached": 0.26,
       "cost_per_1m_out_cached": 0,
@@ -63,14 +99,74 @@
     {
       "id": "kimi-k2.6",
       "name": "Kimi K2.6",
-      "cost_per_1m_in": 0.8,
-      "cost_per_1m_out": 4,
-      "cost_per_1m_in_cached": 0.25,
+      "cost_per_1m_in": 0.74,
+      "cost_per_1m_out": 3.49,
+      "cost_per_1m_in_cached": 0.14,
       "cost_per_1m_out_cached": 0,
-      "context_window": 262144,
+      "context_window": 262142,
       "default_max_tokens": 26214,
       "can_reason": true,
       "supports_attachments": true
+    },
+    {
+      "id": "llama-3.3-70b-instruct",
+      "name": "Llama 3.3 70B Instruct",
+      "cost_per_1m_in": 0.1,
+      "cost_per_1m_out": 0.32,
+      "cost_per_1m_in_cached": 0.05,
+      "cost_per_1m_out_cached": 0.2,
+      "context_window": 128000,
+      "default_max_tokens": 12800,
+      "can_reason": true,
+      "supports_attachments": false
+    },
+    {
+      "id": "llama-4-maverick-17b-128e-instruct-fp8",
+      "name": "Llama 4 Maverick 17B 128E Instruct FP8",
+      "cost_per_1m_in": 0.15,
+      "cost_per_1m_out": 0.6,
+      "cost_per_1m_in_cached": 0.075,
+      "cost_per_1m_out_cached": 0.3,
+      "context_window": 430000,
+      "default_max_tokens": 43000,
+      "can_reason": true,
+      "supports_attachments": true
+    },
+    {
+      "id": "mistral-large-instruct-2411",
+      "name": "Mistral Large Instruct 2411",
+      "cost_per_1m_in": 2,
+      "cost_per_1m_out": 6,
+      "cost_per_1m_in_cached": 1,
+      "cost_per_1m_out_cached": 4,
+      "context_window": 128000,
+      "default_max_tokens": 12800,
+      "can_reason": false,
+      "supports_attachments": true
+    },
+    {
+      "id": "qwen3-coder-480b-a35b-instruct-int4-mixed-ar",
+      "name": "Qwen3 Coder 480B A35B Instruct INT4 Mixed AR",
+      "cost_per_1m_in": 0.22,
+      "cost_per_1m_out": 0.95,
+      "cost_per_1m_in_cached": 0.11,
+      "cost_per_1m_out_cached": 0.44,
+      "context_window": 106000,
+      "default_max_tokens": 10600,
+      "can_reason": false,
+      "supports_attachments": false
+    },
+    {
+      "id": "qwen3-next-80b-a3b-instruct",
+      "name": "Qwen3 Next 80B A3B Instruct",
+      "cost_per_1m_in": 0.06,
+      "cost_per_1m_out": 0.6,
+      "cost_per_1m_in_cached": 0.03,
+      "cost_per_1m_out_cached": 0.12,
+      "context_window": 262144,
+      "default_max_tokens": 26214,
+      "can_reason": false,
+      "supports_attachments": false
     }
   ]
 }

internal/agent/testdata/TestCoderAgent/glm-5.1/download_tool.yaml πŸ”—

@@ -25,213 +25,391 @@ interactions:
     content_length: -1
     uncompressed: true
     body: |+
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" asks"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" produce"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user's"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" message"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" The"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" download"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" message"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"download"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" https"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"://"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"example"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"-files"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" https"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".online"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"://"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"-con"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"example"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"vert"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"-files"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".com"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".online"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/document"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"-con"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/t"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"vert"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"xt"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".com"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/example"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/document"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/t"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"xt"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/example"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" it"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" as"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" it"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" as"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" produce"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" English"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"),"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Something"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Something"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Download"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Download"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Save"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Download"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Download"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Save"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" save"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".txt"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" is"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" D"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fine"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" w"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Return"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" only"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" n"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Download"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Save"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" example"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" d"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".txt"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" from"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" URL"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-d1a5ef493c193e479231adc3","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":14,"completion_tokens":111,"total_tokens":333}}
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" x"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" m"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" p"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"15"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" x"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" f"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" m"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" U"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" R"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" L"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" n"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" d"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" v"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" okay"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fine"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Download"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" example"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".txt"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" from"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" URL"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" save"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-8efc292f6882f3c242d54c7e","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":46,"completion_tokens":200,"total_tokens":422}}
 
       data: [DONE]
 
@@ -240,7 +418,7 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 873.598583ms
+    duration: 747.881583ms
 - id: 1
   request:
     proto: HTTP/1.1
@@ -248,7 +426,7 @@ interactions:
     proto_minor: 1
     content_length: 33707
     host: ""

internal/agent/testdata/TestCoderAgent/glm-5.1/fetch_tool.yaml πŸ”—

@@ -25,385 +25,165 @@ interactions:
     content_length: -1
     uncompressed: true
     body: |+
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" produce"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" produce"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user's"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" request"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" They"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" want"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fetch"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Fetch"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" from"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" URL"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" check"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" check"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" word"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"John"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"John"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" must"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Need"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Something"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Check"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" more"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" than"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" presence"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" of"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" John"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" One"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Possible"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Check"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Check"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" presence"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" of"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" occurrence"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" John"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" of"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" John"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"45"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Check"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Check"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" example"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" example"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".html"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" for"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" occurrence"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" presence"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" of"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" of"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" John"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" John"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Doe"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Doe"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Check"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"example"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".html"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" total"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"for"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"occ"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"urrence"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" =\u003e"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"of"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"John"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Doe"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"=\u003e"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"45"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"45"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Make"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" sure"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" colon"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fine"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Check"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" example"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".html"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" for"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" occurrence"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" of"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" John"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Doe"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-0ea6904f89f7f9b1f8ab8eae","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":3,"completion_tokens":197,"total_tokens":424}}
+      data: {"id":"chatcmpl-636aff44fb03055c1ea3d457","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":51,"completion_tokens":87,"total_tokens":314}}
 
       data: [DONE]
 
@@ -412,7 +192,7 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 697.596792ms
+    duration: 801.333959ms
 - id: 1
   request:
     proto: HTTP/1.1
@@ -420,7 +200,7 @@ interactions:
     proto_minor: 1
     content_length: 33725
     host: ""

internal/agent/testdata/TestCoderAgent/glm-5.1/glob_tool.yaml πŸ”—

@@ -25,195 +25,199 @@ interactions:
     content_length: -1
     uncompressed: true
     body: |+
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"User"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"User"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Keep"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" find"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Possibly"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" code"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" snippet"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Using"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" should"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" locate"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Under"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Keep"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" produce"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Use"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Find"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" list"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" folder"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" craft"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"43"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Using"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"?"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" locate"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Use"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" list"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Using"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" folder"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" locate"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"44"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" inc"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" spaces"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Use"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" glob"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" list"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Using"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" glob"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" files"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" in"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" locate"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" current"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" all"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" folder"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-216e9f5505919a1c0a6ed41f","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":3,"completion_tokens":102,"total_tokens":313}}
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"go"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" files"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-b43fe00f1a52b3fecc7c0543","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":35,"completion_tokens":104,"total_tokens":315}}
 
       data: [DONE]
 
@@ -222,7 +226,7 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 373.542625ms
+    duration: 716.833959ms
 - id: 1
   request:
     proto: HTTP/1.1
@@ -230,7 +234,7 @@ interactions:
     proto_minor: 1
     content_length: 33643
     host: ""

internal/agent/testdata/TestCoderAgent/glm-5.1/parallel_tool_calls.yaml πŸ”—

@@ -25,357 +25,479 @@ interactions:
     content_length: -1
     uncompressed: true
     body: |+
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"We"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" need"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" generate"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user's"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" request"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Parallel"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Must"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ≀"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Keep"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Parallel"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Content"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" find"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" all"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" listing"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" use"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Parallel"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" list"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" current"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" it"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" is"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" very"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" listing"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" important"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" you"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" let's"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" run"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" both"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" tool"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" calls"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Parallel"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" parallel"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" could"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" +"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Parallel"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"glob"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Parallel"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" glob"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" files"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" and"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ls"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" directory"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" length"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"?"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Let's"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" count"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" P"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"2"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"4"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"files"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"5"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"6"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"8"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" g"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"and"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"10"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"3"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"11"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" b"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"12"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"13"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" f"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"directory"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"14"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"9"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"15"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"16"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" space"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"17"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"18"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"listing"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" g"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"19"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"7"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"20"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"49"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"21"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"49"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" f"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"22"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" i"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" okay"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"23"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"24"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"25"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Return"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"26"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Parallel"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"27"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" glob"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"28"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" n"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" files"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"29"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" d"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" directory"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"30"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" listing"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-b682e93c4db04e3e10b56efc","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":4,"completion_tokens":183,"total_tokens":411}}
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"31"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" l"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"32"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" s"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"33"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"space"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"34"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" d"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"35"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" i"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"37"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" e"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"38"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" c"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"39"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" t"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"40"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" o"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"41"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" r"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"42"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" y"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"43"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"43"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" One"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"colon"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fits"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".\n\n"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Return"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" that"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Parallel"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" glob"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" for"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ."},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"go"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" files"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" ls"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" directory"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-fd45114ba4070538ac1dc9db","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":36,"completion_tokens":244,"total_tokens":472}}
 
       data: [DONE]
 
@@ -384,7 +506,7 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 788.312459ms
+    duration: 534.428042ms
 - id: 1
   request:
     proto: HTTP/1.1
@@ -392,7 +514,7 @@ interactions:
     proto_minor: 1
     content_length: 33732
     host: ""

internal/agent/testdata/TestCoderAgent/glm-5.1/read_a_file.yaml πŸ”—

@@ -25,95 +25,101 @@ interactions:
     content_length: -1
     uncompressed: true
     body: |+
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"User"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"User"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Read"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" mod"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Read"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" mod"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" should"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Probably"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Reading"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" English"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".mod"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" File"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Keep"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" under"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Something"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Viewing"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Should"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Go"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Module"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" File"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Read"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" fine"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" the"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" go"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".mod"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Viewing"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" File"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" the"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-98d249b7bf501e68c95ad23d","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":11,"completion_tokens":52,"total_tokens":255}}
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" Go"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" module"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" file"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-30ece0378efe0089c19682b8","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":27,"completion_tokens":55,"total_tokens":258}}
 
       data: [DONE]
 
@@ -122,7 +128,7 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 424.473125ms
+    duration: 626.797666ms
 - id: 1
   request:
     proto: HTTP/1.1
@@ -130,7 +136,7 @@ interactions:
     proto_minor: 1
     content_length: 33605
     host: ""

internal/agent/testdata/TestCoderAgent/glm-5.1/simple_test.yaml πŸ”—

@@ -25,151 +25,143 @@ interactions:
     content_length: -1
     uncompressed: true
     body: |+
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"User"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" says"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" asks"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Generate"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" following"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" They"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" want"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" The"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" is"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" just"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summar"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"izing"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Hello"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" We"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" must"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Hello"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" output"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Must"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" in"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" more"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" than"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" could"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" summary"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" of"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Greeting"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user's"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Or"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" message"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Simple"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" So"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Hello"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" something"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" like"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Use"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" same"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Greeting"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" language"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ("},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"English"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" appropriate"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":")."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Provide"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Return"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" just"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Greeting"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" I'll"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" output"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Greeting"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Greeting"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Greeting"},"finish_reason":null}]}
-
-      data: {"id":"chatcmpl-9b6c8c4fb96fca89f847f69c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":8,"completion_tokens":80,"total_tokens":280}}
+      data: {"id":"chatcmpl-a2f612ae965c35df07c936e7","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":152,"completion_tokens":76,"total_tokens":276}}
 
       data: [DONE]
 
@@ -178,7 +170,7 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 626.287542ms
+    duration: 1.432785917s
 - id: 1
   request:
     proto: HTTP/1.1
@@ -186,7 +178,7 @@ interactions:
     proto_minor: 1
     content_length: 33595
     host: ""

internal/agent/testdata/TestCoderAgent/glm-5.1/sourcegraph_tool.yaml πŸ”—

@@ -6,9 +6,9 @@ interactions:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 819
+    content_length: 33655
     host: ""
-    body: '{"messages":[{"content":"You will generate a short title based on the first message a user begins a conversation with.\n\n<rules>\n- 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}'

internal/agent/testdata/TestCoderAgent/glm-5.1/write_tool.yaml πŸ”—

@@ -25,205 +25,209 @@ interactions:
     content_length: -1
     uncompressed: true
     body: |+
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"The"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"User"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" user"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" wants"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" concise"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" for"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" the"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" given"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Need"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" write"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" create"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" new"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" called"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" or"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" col"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '{\""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"name"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Content"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"test"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"use"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"version"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" write"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" to"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" create"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" a"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" new"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"0"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" called"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"0"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"}"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" '{\""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" should"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"name"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" be"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" short"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"test"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \u003c="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\","},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"50"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"version"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" one"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" line"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"1"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":","},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" no"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"0"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"/"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"0"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"col"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"}"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ons"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"'"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Summ"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ar"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"ize"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Perhaps"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Create"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Create"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" file"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" JSON"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" content"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" settings"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Title"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Count"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" characters"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Create"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":":"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" \""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"Create"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" config"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":".json"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" JSON"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" with"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" data"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" test"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" settings"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" That's"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"\""},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" ="},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" "},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"36"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" chars"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" No"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" quotes"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":" Good"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"reasoning_content":"."},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Create"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" config"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":"Create"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".json"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" config"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" with"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":".json"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" test"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" with"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" settings"},"finish_reason":null}]}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" test"},"finish_reason":null}]}
 
-      data: {"id":"chatcmpl-5de54c80d1a8f3193a84f17c","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":3,"completion_tokens":107,"total_tokens":334}}
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" JSON"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{"content":" data"},"finish_reason":null}]}
+
+      data: {"id":"chatcmpl-a5acf5c18b9ab869cdebd547","object":"chat.completion.chunk","created":0,"model":"gpt-oss-120b","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":51,"completion_tokens":109,"total_tokens":336}}
 
       data: [DONE]
 
@@ -232,7 +236,7 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 400.28525ms
+    duration: 599.85525ms
 - id: 1
   request:
     proto: HTTP/1.1
@@ -240,7 +244,7 @@ interactions:
     proto_minor: 1
     content_length: 33698
     host: ""

internal/agent/tools/job_kill.go πŸ”—

@@ -29,7 +29,7 @@ type JobKillResponseMetadata struct {
 func NewJobKillTool() fantasy.AgentTool {
 	return fantasy.NewAgentTool(
 		JobKillToolName,
-		FirstLineDescription(jobKillDescription),
+		string(jobKillDescription),
 		func(ctx context.Context, params JobKillParams, call fantasy.ToolCall) (fantasy.ToolResponse, error) {
 			if params.ShellID == "" {
 				return fantasy.NewTextErrorResponse("missing shell_id"), nil

internal/agent/tools/job_kill.md πŸ”—

@@ -1,4 +1,4 @@
-Terminate a background shell process by ID; shell ID becomes invalid after killing.
+Terminate a background shell process.
 
 <usage>
 - Provide the shell ID returned from a background bash execution

internal/agent/tools/view.go πŸ”—

@@ -53,7 +53,7 @@ type ViewResponseMetadata struct {
 
 const (
 	ViewToolName     = "view"
-	MaxViewSize      = 100 * 1024 // 100KB
+	MaxViewSize      = 200 * 1024 // 200KB
 	DefaultReadLimit = 2000
 	MaxLineLength    = 2000
 )

internal/agent/tools/view.md πŸ”—

@@ -1,4 +1,4 @@
-Read a file by path with line numbers; supports offset and line limit (default 2000, max 100KB); renders images (PNG, JPEG, GIF, BMP, SVG, WebP); use ls for directories.
+Read a file by path with line numbers; supports offset and line limit (default 2000, max 200KB); renders images (PNG, JPEG, GIF, BMP, SVG, WebP); use ls for directories.
 
 <usage>
 - Provide file path to read
@@ -18,7 +18,7 @@ Read a file by path with line numbers; supports offset and line limit (default 2
 </features>
 
 <limitations>
-- Max file size: 100KB
+- Max file size: 200KB
 - Default limit: 2000 lines
 - Lines >2000 chars truncated
 - Binary files (except images) cannot be displayed

internal/app/app.go πŸ”—

@@ -66,7 +66,7 @@ type App struct {
 
 	serviceEventsWG *sync.WaitGroup
 	eventsCtx       context.Context
-	events          chan tea.Msg
+	events          *pubsub.Broker[tea.Msg]
 	tuiWG           *sync.WaitGroup
 
 	// global context and cleanup functions
@@ -100,7 +100,7 @@ func New(ctx context.Context, conn *sql.DB, store *config.ConfigStore) (*App, er
 
 		config: store,
 
-		events:             make(chan tea.Msg, 100),
+		events:             pubsub.NewBroker[tea.Msg](),
 		serviceEventsWG:    &sync.WaitGroup{},
 		tuiWG:              &sync.WaitGroup{},
 		agentNotifications: pubsub.NewBroker[notify.Notification](),
@@ -153,18 +153,15 @@ func (app *App) Store() *config.ConfigStore {
 	return app.config
 }
 
-// Events returns the events channel for the application.
-func (app *App) Events() <-chan tea.Msg {
-	return app.events
+// Events returns a per-caller subscription channel for application events.
+// Each caller receives its own channel; all callers receive every event.
+func (app *App) Events(ctx context.Context) <-chan pubsub.Event[tea.Msg] {
+	return app.events.Subscribe(ctx)
 }
 
-// SendEvent pushes a message into the application's events channel.
-// It is non-blocking; the message is dropped if the channel is full.
+// SendEvent publishes a message to all event subscribers.
 func (app *App) SendEvent(msg tea.Msg) {
-	select {
-	case app.events <- msg:
-	default:
-	}
+	app.events.Publish(pubsub.UpdatedEvent, msg)
 }
 
 // AgentNotifications returns the broker for agent notification events.
@@ -233,7 +230,7 @@ func (app *App) RunNonInteractive(ctx context.Context, output io.Writer, prompt,
 	progress = app.config.Config().Options.Progress == nil || *app.config.Config().Options.Progress
 
 	if !hideSpinner && stderrTTY {
-		t := styles.CharmtonePantera()
+		t := styles.ThemeForProvider(app.config.Config().Models[config.SelectedModelTypeLarge].Provider)
 
 		// Detect background color to set the appropriate color for the
 		// spinner's 'Generating...' text. Without this, that text would be
@@ -486,26 +483,21 @@ func (app *App) setupEvents() {
 	cleanupFunc := func(context.Context) error {
 		cancel()
 		app.serviceEventsWG.Wait()
+		app.events.Shutdown()
 		return nil
 	}
 	app.cleanupFuncs = append(app.cleanupFuncs, cleanupFunc)
 }
 
-const subscriberSendTimeout = 2 * time.Second
-
 func setupSubscriber[T any](
 	ctx context.Context,
 	wg *sync.WaitGroup,
 	name string,
 	subscriber func(context.Context) <-chan pubsub.Event[T],
-	outputCh chan<- tea.Msg,
+	broker *pubsub.Broker[tea.Msg],
 ) {
 	wg.Go(func() {
 		subCh := subscriber(ctx)
-		sendTimer := time.NewTimer(0)
-		<-sendTimer.C
-		defer sendTimer.Stop()
-
 		for {
 			select {
 			case event, ok := <-subCh:
@@ -513,23 +505,7 @@ func setupSubscriber[T any](
 					slog.Debug("Subscription channel closed", "name", name)
 					return
 				}
-				var msg tea.Msg = event
-				if !sendTimer.Stop() {
-					select {
-					case <-sendTimer.C:
-					default:
-					}
-				}
-				sendTimer.Reset(subscriberSendTimeout)
-
-				select {
-				case outputCh <- msg:
-				case <-sendTimer.C:
-					slog.Debug("Message dropped due to slow consumer", "name", name)
-				case <-ctx.Done():
-					slog.Debug("Subscription cancelled", "name", name)
-					return
-				}
+				broker.Publish(pubsub.UpdatedEvent, tea.Msg(event))
 			case <-ctx.Done():
 				slog.Debug("Subscription cancelled", "name", name)
 				return
@@ -579,17 +555,18 @@ func (app *App) Subscribe(program *tea.Program) {
 	})
 	defer app.tuiWG.Done()
 
+	events := app.events.Subscribe(tuiCtx)
 	for {
 		select {
 		case <-tuiCtx.Done():
 			slog.Debug("TUI message handler shutting down")
 			return
-		case msg, ok := <-app.events:
+		case ev, ok := <-events:
 			if !ok {
 				slog.Debug("TUI message channel closed")
 				return
 			}
-			program.Send(msg)
+			program.Send(ev.Payload)
 		}
 	}
 }
@@ -649,9 +626,9 @@ func (app *App) checkForUpdates(ctx context.Context) {
 	if err != nil || !info.Available() {
 		return
 	}
-	app.events <- UpdateAvailableMsg{
+	app.events.Publish(pubsub.UpdatedEvent, UpdateAvailableMsg{
 		CurrentVersion: info.Current,
 		LatestVersion:  info.Latest,
 		IsDevelopment:  info.IsDevelopment(),
-	}
+	})
 }

internal/app/app_test.go πŸ”—

@@ -2,156 +2,182 @@ package app
 
 import (
 	"context"
+	"fmt"
 	"sync"
 	"testing"
-	"testing/synctest"
 	"time"
 
 	tea "charm.land/bubbletea/v2"
 	"github.com/charmbracelet/crush/internal/pubsub"
 	"github.com/stretchr/testify/require"
-	"go.uber.org/goleak"
 )
 
+// TestSetupSubscriber_NormalFlow verifies that events published to the source
+// broker are forwarded to the output broker.
 func TestSetupSubscriber_NormalFlow(t *testing.T) {
-	synctest.Test(t, func(t *testing.T) {
-		f := newSubscriberFixture(t, 10)
+	t.Parallel()
 
-		time.Sleep(10 * time.Millisecond)
-		synctest.Wait()
+	ctx, cancel := context.WithCancel(t.Context())
+	defer cancel()
 
-		f.broker.Publish(pubsub.CreatedEvent, "event1")
-		f.broker.Publish(pubsub.CreatedEvent, "event2")
+	src := pubsub.NewBroker[string]()
+	defer src.Shutdown()
+	out := pubsub.NewBroker[tea.Msg]()
+	defer out.Shutdown()
 
-		for range 2 {
-			select {
-			case <-f.outputCh:
-			case <-time.After(5 * time.Second):
-				t.Fatal("Timed out waiting for messages")
-			}
+	ch := out.Subscribe(ctx)
+
+	var wg sync.WaitGroup
+	setupSubscriber(ctx, &wg, "test", src.Subscribe, out)
+
+	// Yield so the subscriber goroutine can call src.Subscribe before we publish.
+	time.Sleep(10 * time.Millisecond)
+
+	src.Publish(pubsub.CreatedEvent, "hello")
+	src.Publish(pubsub.CreatedEvent, "world")
+
+	for range 2 {
+		select {
+		case <-ch:
+		case <-time.After(5 * time.Second):
+			t.Fatal("timed out waiting for forwarded event")
 		}
+	}
 
-		f.cancel()
-		f.wg.Wait()
-	})
+	cancel()
+	wg.Wait()
 }
 
-func TestSetupSubscriber_SlowConsumer(t *testing.T) {
-	synctest.Test(t, func(t *testing.T) {
-		f := newSubscriberFixture(t, 0)
+// TestSetupSubscriber_ContextCancellation verifies the goroutine exits cleanly
+// when the context is cancelled.
+func TestSetupSubscriber_ContextCancellation(t *testing.T) {
+	t.Parallel()
 
-		const numEvents = 5
+	ctx, cancel := context.WithCancel(t.Context())
 
-		var pubWg sync.WaitGroup
-		pubWg.Go(func() {
-			for range numEvents {
-				f.broker.Publish(pubsub.CreatedEvent, "event")
-				time.Sleep(10 * time.Millisecond)
-				synctest.Wait()
-			}
-		})
+	src := pubsub.NewBroker[string]()
+	defer src.Shutdown()
+	out := pubsub.NewBroker[tea.Msg]()
+	defer out.Shutdown()
 
-		time.Sleep(time.Duration(numEvents) * (subscriberSendTimeout + 20*time.Millisecond))
-		synctest.Wait()
-
-		received := 0
-		for {
-			select {
-			case <-f.outputCh:
-				received++
-			default:
-				pubWg.Wait()
-				f.cancel()
-				f.wg.Wait()
-				require.Less(t, received, numEvents, "Slow consumer should have dropped some messages")
-				return
-			}
-		}
-	})
+	var wg sync.WaitGroup
+	setupSubscriber(ctx, &wg, "test", src.Subscribe, out)
+
+	src.Publish(pubsub.CreatedEvent, "event")
+	cancel()
+
+	done := make(chan struct{})
+	go func() { wg.Wait(); close(done) }()
+
+	select {
+	case <-done:
+	case <-time.After(5 * time.Second):
+		t.Fatal("setupSubscriber goroutine did not exit after context cancellation")
+	}
 }
 
-func TestSetupSubscriber_ContextCancellation(t *testing.T) {
-	synctest.Test(t, func(t *testing.T) {
-		f := newSubscriberFixture(t, 10)
+// TestEvents_ZeroConsumers verifies that publishing with no subscribers does
+// not block or panic.
+func TestEvents_ZeroConsumers(t *testing.T) {
+	t.Parallel()
+
+	broker := pubsub.NewBroker[tea.Msg]()
+	defer broker.Shutdown()
+
+	require.Equal(t, 0, broker.GetSubscriberCount())
 
-		f.broker.Publish(pubsub.CreatedEvent, "event1")
-		time.Sleep(100 * time.Millisecond)
-		synctest.Wait()
+	// Must not block.
+	done := make(chan struct{})
+	go func() {
+		broker.Publish(pubsub.UpdatedEvent, tea.Msg("msg1"))
+		broker.Publish(pubsub.UpdatedEvent, tea.Msg("msg2"))
+		close(done)
+	}()
 
-		f.cancel()
-		f.wg.Wait()
-	})
+	select {
+	case <-done:
+	case <-time.After(time.Second):
+		t.Fatal("Publish with zero consumers blocked")
+	}
 }
 
-func TestSetupSubscriber_DrainAfterDrop(t *testing.T) {
-	synctest.Test(t, func(t *testing.T) {
-		f := newSubscriberFixture(t, 0)
+// TestEvents_OneConsumer verifies that a single subscriber receives every event
+// exactly once.
+func TestEvents_OneConsumer(t *testing.T) {
+	t.Parallel()
 
-		time.Sleep(10 * time.Millisecond)
-		synctest.Wait()
+	ctx, cancel := context.WithCancel(t.Context())
+	defer cancel()
 
-		// First event: nobody reads outputCh so the timer fires (message dropped).
-		f.broker.Publish(pubsub.CreatedEvent, "event1")
-		time.Sleep(subscriberSendTimeout + 25*time.Millisecond)
-		synctest.Wait()
+	broker := pubsub.NewBroker[tea.Msg]()
+	defer broker.Shutdown()
 
-		// Second event: triggers Stop()==false path; without the fix this deadlocks.
-		f.broker.Publish(pubsub.CreatedEvent, "event2")
+	ch := broker.Subscribe(ctx)
 
-		// If the timer drain deadlocks, wg.Wait never returns.
-		done := make(chan struct{})
-		go func() {
-			f.cancel()
-			f.wg.Wait()
-			close(done)
-		}()
+	const n = 10
+	for i := range n {
+		broker.Publish(pubsub.UpdatedEvent, tea.Msg(i))
+	}
 
+	for i := range n {
 		select {
-		case <-done:
+		case ev := <-ch:
+			require.Equal(t, tea.Msg(i), ev.Payload)
 		case <-time.After(5 * time.Second):
-			t.Fatal("setupSubscriber goroutine hung β€” likely timer drain deadlock")
+			t.Fatalf("timed out waiting for event %d", i)
 		}
-	})
+	}
 }
 
-func TestSetupSubscriber_NoTimerLeak(t *testing.T) {
-	defer goleak.VerifyNone(t)
-	synctest.Test(t, func(t *testing.T) {
-		f := newSubscriberFixture(t, 100)
+// TestEvents_NConsumers verifies that every subscriber receives every event
+// exactly once, regardless of how many concurrent consumers are attached.
+func TestEvents_NConsumers(t *testing.T) {
+	t.Parallel()
 
-		for range 100 {
-			f.broker.Publish(pubsub.CreatedEvent, "event")
-			time.Sleep(5 * time.Millisecond)
-			synctest.Wait()
-		}
-
-		f.cancel()
-		f.wg.Wait()
-	})
-}
-
-type subscriberFixture struct {
-	broker   *pubsub.Broker[string]
-	wg       sync.WaitGroup
-	outputCh chan tea.Msg
-	cancel   context.CancelFunc
+	for _, n := range []int{2, 5, 10} {
+		t.Run(fmt.Sprintf("consumers=%d", n), func(t *testing.T) {
+			t.Parallel()
+			testNConsumers(t, n)
+		})
+	}
 }
 
-func newSubscriberFixture(t *testing.T, bufSize int) *subscriberFixture {
+func testNConsumers(t *testing.T, n int) {
 	t.Helper()
+
 	ctx, cancel := context.WithCancel(t.Context())
-	t.Cleanup(cancel)
+	defer cancel()
+
+	broker := pubsub.NewBroker[tea.Msg]()
+	defer broker.Shutdown()
 
-	f := &subscriberFixture{
-		broker:   pubsub.NewBroker[string](),
-		outputCh: make(chan tea.Msg, bufSize),
-		cancel:   cancel,
+	// Subscribe all N consumers before publishing.
+	channels := make([]<-chan pubsub.Event[tea.Msg], n)
+	for i := range n {
+		channels[i] = broker.Subscribe(ctx)
 	}
-	t.Cleanup(f.broker.Shutdown)
+	require.Equal(t, n, broker.GetSubscriberCount())
 
-	setupSubscriber(ctx, &f.wg, "test", func(ctx context.Context) <-chan pubsub.Event[string] {
-		return f.broker.Subscribe(ctx)
-	}, f.outputCh)
+	const numEvents = 20
+	for i := range numEvents {
+		broker.Publish(pubsub.UpdatedEvent, tea.Msg(i))
+	}
 
-	return f
+	// Each consumer must receive all numEvents messages.
+	var wg sync.WaitGroup
+	for i, ch := range channels {
+		wg.Go(func() {
+			for j := range numEvents {
+				select {
+				case ev := <-ch:
+					require.Equal(t, tea.Msg(j), ev.Payload,
+						"consumer %d: wrong payload for event %d", i, j)
+				case <-time.After(5 * time.Second):
+					t.Errorf("consumer %d: timed out waiting for event %d", i, j)
+					return
+				}
+			}
+		})
+	}
+	wg.Wait()
 }

internal/backend/events.go πŸ”—

@@ -8,16 +8,18 @@ import (
 	mcptools "github.com/charmbracelet/crush/internal/agent/tools/mcp"
 	"github.com/charmbracelet/crush/internal/app"
 	"github.com/charmbracelet/crush/internal/config"
+	"github.com/charmbracelet/crush/internal/pubsub"
 )
 
-// SubscribeEvents returns the event channel for a workspace's app.
-func (b *Backend) SubscribeEvents(workspaceID string) (<-chan tea.Msg, error) {
+// SubscribeEvents returns a per-caller event channel for a workspace.
+// Each caller receives all events; multiple callers do not compete.
+func (b *Backend) SubscribeEvents(ctx context.Context, workspaceID string) (<-chan pubsub.Event[tea.Msg], error) {
 	ws, err := b.GetWorkspace(workspaceID)
 	if err != nil {
 		return nil, err
 	}
 
-	return ws.Events(), nil
+	return ws.Events(ctx), nil
 }
 
 // GetLSPStates returns the state of all LSP clients.

internal/cmd/login.go πŸ”—

@@ -9,7 +9,6 @@ import (
 
 	"charm.land/lipgloss/v2"
 	"github.com/atotto/clipboard"
-	hyperp "github.com/charmbracelet/crush/internal/agent/hyper"
 	"github.com/charmbracelet/crush/internal/client"
 	"github.com/charmbracelet/crush/internal/config"
 	"github.com/charmbracelet/crush/internal/oauth"
@@ -70,9 +69,6 @@ crush login copilot
 }
 
 func loginHyper(c *client.Client, wsID string) error {
-	if !hyperp.Enabled() {
-		return fmt.Errorf("hyper not enabled")
-	}
 	ctx := getLoginContext()
 
 	resp, err := hyper.InitiateDeviceAuth(ctx)

internal/cmd/run.go πŸ”—

@@ -189,7 +189,7 @@ func runNonInteractive(
 	progress = ws.Config.Options.Progress == nil || *ws.Config.Options.Progress
 
 	if !hideSpinner && stderrTTY {
-		t := styles.CharmtonePantera()
+		t := styles.ThemeForProvider(ws.Config.Models[config.SelectedModelTypeLarge].Provider)
 
 		hasDarkBG := true
 		if stdinTTY && stdoutTTY {

internal/cmd/session.go πŸ”—

@@ -101,6 +101,7 @@ func init() {
 type sessionServices struct {
 	sessions session.Service
 	messages message.Service
+	cfg      *config.ConfigStore
 }
 
 func sessionSetup(cmd *cobra.Command) (context.Context, *sessionServices, func(), error) {
@@ -127,6 +128,7 @@ func sessionSetup(cmd *cobra.Command) (context.Context, *sessionServices, func()
 	svc := &sessionServices{
 		sessions: session.NewService(queries, conn),
 		messages: message.NewService(queries),
+		cfg:      cfg,
 	}
 	return ctx, svc, func() { conn.Close() }, nil
 }
@@ -280,7 +282,7 @@ func runSessionShow(cmd *cobra.Command, args []string) error {
 	if sessionShowJSON {
 		return outputSessionJSON(cmd.OutOrStdout(), sess, msgPtrs)
 	}
-	return outputSessionHuman(ctx, sess, msgPtrs)
+	return outputSessionHuman(ctx, svc.cfg, sess, msgPtrs)
 }
 
 func runSessionDelete(cmd *cobra.Command, args []string) error {
@@ -387,7 +389,7 @@ func runSessionLast(cmd *cobra.Command, _ []string) error {
 	if sessionLastJSON {
 		return outputSessionJSON(cmd.OutOrStdout(), sess, msgPtrs)
 	}
-	return outputSessionHuman(ctx, sess, msgPtrs)
+	return outputSessionHuman(ctx, svc.cfg, sess, msgPtrs)
 }
 
 const (
@@ -437,8 +439,12 @@ func outputSessionJSON(w io.Writer, sess session.Session, msgs []*message.Messag
 	return enc.Encode(output)
 }
 
-func outputSessionHuman(ctx context.Context, sess session.Session, msgs []*message.Message) error {
-	styles := styles.CharmtonePantera()
+func outputSessionHuman(ctx context.Context, cfg *config.ConfigStore, sess session.Session, msgs []*message.Message) error {
+	var providerID string
+	if cfg != nil {
+		providerID = cfg.Config().Models[config.SelectedModelTypeLarge].Provider
+	}
+	styles := styles.ThemeForProvider(providerID)
 	toolResults := chat.BuildToolResultMap(msgs)
 
 	width := sessionOutputWidth

internal/config/config.go πŸ”—

@@ -9,7 +9,6 @@ import (
 	"maps"
 	"net/http"
 	"net/url"
-	"regexp"
 	"slices"
 	"strings"
 	"time"
@@ -371,7 +370,9 @@ func (t ToolGrep) GetTimeout() time.Duration {
 }
 
 // HookConfig defines a user-configured shell command that fires on a hook
-// event (e.g. PreToolUse).
+// event (e.g. PreToolUse). This is a pure-data struct: matcher compilation
+// is owned by hooks.Runner so a JSON round-trip, merge, or reload can't
+// silently drop compiled state.
 type HookConfig struct {
 	// Regex pattern tested against the tool name. Empty means match all.
 	Matcher string `json:"matcher,omitempty" jsonschema:"description=Regex pattern tested against the tool name. Empty means match all tools."`
@@ -379,15 +380,6 @@ type HookConfig struct {
 	Command string `json:"command" jsonschema:"required,description=Shell command to execute when the hook fires"`
 	// Timeout in seconds. Default 30.
 	Timeout int `json:"timeout,omitempty" jsonschema:"description=Timeout in seconds for the hook command,default=30"`
-
-	// Compiled matcher regex. Not serialized.
-	matcherRegex *regexp.Regexp
-}
-
-// MatcherRegex returns the compiled matcher regex, or nil if no matcher is
-// set.
-func (h *HookConfig) MatcherRegex() *regexp.Regexp {
-	return h.matcherRegex
 }
 
 // TimeoutDuration returns the hook timeout as a time.Duration, defaulting

internal/config/load.go πŸ”—

@@ -905,8 +905,11 @@ func normalizeHookEvent(name string) string {
 	}
 }
 
-// ValidateHooks normalizes event names and compiles matcher regexes for all
-// configured hooks. Returns an error if any regex is invalid.
+// ValidateHooks normalizes event names and checks that every configured
+// hook has a command and a syntactically valid matcher regex. Matcher
+// compilation used for matching is owned by hooks.Runner; this function
+// only validates up front so the user sees config errors at load time
+// rather than on the first tool call.
 func (c *Config) ValidateHooks() error {
 	// Normalize event name keys.
 	for event, eventHooks := range c.Hooks {
@@ -918,17 +921,15 @@ func (c *Config) ValidateHooks() error {
 	}
 
 	for event, eventHooks := range c.Hooks {
-		for i := range eventHooks {
-			h := &c.Hooks[event][i]
+		for i, h := range eventHooks {
 			if h.Command == "" {
 				return fmt.Errorf("hook %s[%d]: command is required", event, i)
 			}
-			if h.Matcher != "" {
-				re, err := regexp.Compile(h.Matcher)
-				if err != nil {
-					return fmt.Errorf("hook %s[%d]: invalid matcher regex %q: %w", event, i, h.Matcher, err)
-				}
-				h.matcherRegex = re
+			if h.Matcher == "" {
+				continue
+			}
+			if _, err := regexp.Compile(h.Matcher); err != nil {
+				return fmt.Errorf("hook %s[%d]: invalid matcher regex %q: %w", event, i, h.Matcher, err)
 			}
 		}
 	}

internal/config/provider.go πŸ”—

@@ -91,9 +91,6 @@ func UpdateProviders(pathOrURL string) error {
 
 // UpdateHyper updates the Hyper provider information from a specified URL.
 func UpdateHyper(pathOrURL string) error {
-	if !hyper.Enabled() {
-		return fmt.Errorf("hyper not enabled")
-	}
 	var provider catwalk.Provider
 	pathOrURL = cmp.Or(pathOrURL, hyper.BaseURL())
 
@@ -169,7 +166,7 @@ func Providers(cfg *Config) ([]catwalk.Provider, error) {
 		})
 
 		wg.Go(func() {
-			if customProvidersOnly || !hyper.Enabled() {
+			if customProvidersOnly {
 				return
 			}
 			path := cachePathFor("hyper")

internal/config/reload_hooks_test.go πŸ”—

@@ -0,0 +1,102 @@
+package config_test
+
+import (
+	"context"
+	"os"
+	"path/filepath"
+	"testing"
+
+	"github.com/charmbracelet/crush/internal/config"
+	"github.com/charmbracelet/crush/internal/hooks"
+	"github.com/stretchr/testify/require"
+)
+
+// TestReloadFromDisk_CompilesHookMatchers is a regression test for a bug
+// where ReloadFromDisk dropped the compiled matcher regex on every hook,
+// causing a matcher like "^bash$" to match every tool call after any
+// SetConfigField-triggered reload.
+//
+// The assertion is phrased in terms of observable Runner behavior (not
+// internal field presence) so it stays valid if the Runner later owns
+// matcher compilation itself.
+func TestReloadFromDisk_CompilesHookMatchers(t *testing.T) {
+	// No t.Parallel(): we Setenv HOME/XDG_CONFIG_HOME to isolate from the
+	// developer's real global config, which may define its own hooks.
+	isolated := t.TempDir()
+	t.Setenv("HOME", isolated)
+	t.Setenv("XDG_CONFIG_HOME", filepath.Join(isolated, ".config"))
+	t.Setenv("XDG_DATA_HOME", filepath.Join(isolated, ".local", "share"))
+
+	workDir := t.TempDir()
+	dataDir := t.TempDir()
+	configPath := filepath.Join(workDir, "crush.json")
+	cfgJSON := `{
+        "hooks": {
+            "PreToolUse": [
+                {"matcher": "^bash$", "command": "exit 0"}
+            ]
+        }
+    }`
+	require.NoError(t, os.WriteFile(configPath, []byte(cfgJSON), 0o600))
+
+	store, err := config.Load(workDir, dataDir, false)
+	require.NoError(t, err)
+
+	// Sanity: hook filtering works immediately after Load.
+	assertHookFilters(t, store)
+
+	require.NoError(t, store.ReloadFromDisk(context.Background()))
+
+	// The actual regression check: filtering must still work after a
+	// reload, not silently collapse to match-everything.
+	assertHookFilters(t, store)
+}
+
+// assertHookFilters builds a Runner from the store's current hooks and
+// verifies the "^bash$" matcher rejects a non-bash tool while accepting
+// bash.
+func assertHookFilters(t *testing.T, store *config.ConfigStore) {
+	t.Helper()
+	preHooks := store.Config().Hooks[hooks.EventPreToolUse]
+	require.Len(t, preHooks, 1)
+
+	runner := hooks.NewRunner(preHooks, t.TempDir(), t.TempDir())
+
+	nonMatch, err := runner.Run(context.Background(), hooks.EventPreToolUse, "sess", "view", `{}`)
+	require.NoError(t, err)
+	require.Equal(t, 0, nonMatch.HookCount, "view must not match ^bash$ matcher")
+
+	match, err := runner.Run(context.Background(), hooks.EventPreToolUse, "sess", "bash", `{}`)
+	require.NoError(t, err)
+	require.Equal(t, 1, match.HookCount, "bash must match ^bash$ matcher")
+}
+
+// TestSetConfigField_AutoReload_PreservesHookMatcherFiltering verifies the
+// dominant real-world trigger path: config writes call autoReload,
+// autoReload calls ReloadFromDisk, and hook matching must remain correct.
+func TestSetConfigField_AutoReload_PreservesHookMatcherFiltering(t *testing.T) {
+	isolated := t.TempDir()
+	t.Setenv("HOME", isolated)
+	t.Setenv("XDG_CONFIG_HOME", filepath.Join(isolated, ".config"))
+	t.Setenv("XDG_DATA_HOME", filepath.Join(isolated, ".local", "share"))
+
+	workDir := t.TempDir()
+	dataDir := t.TempDir()
+	configPath := filepath.Join(workDir, "crush.json")
+	cfgJSON := `{
+        "hooks": {
+            "PreToolUse": [
+                {"matcher": "^bash$", "command": "exit 0"}
+            ]
+        }
+    }`
+	require.NoError(t, os.WriteFile(configPath, []byte(cfgJSON), 0o600))
+
+	store, err := config.Load(workDir, dataDir, false)
+	require.NoError(t, err)
+	assertHookFilters(t, store)
+
+	require.NoError(t, store.SetConfigField(config.ScopeGlobal, "options.debug", true))
+
+	assertHookFilters(t, store)
+}

internal/config/store.go πŸ”—

@@ -3,6 +3,7 @@ package config
 import (
 	"cmp"
 	"context"
+	"encoding/json"
 	"fmt"
 	"log/slog"
 	"os"
@@ -288,6 +289,9 @@ func (s *ConfigStore) SetProviderAPIKey(scope Scope, providerID string, apiKey a
 }
 
 // RefreshOAuthToken refreshes the OAuth token for the given provider.
+// Before making an external refresh request, it checks the config file on
+// disk to see if another Crush session has already refreshed the token. If
+// a newer token is found, it is used instead of refreshing.
 func (s *ConfigStore) RefreshOAuthToken(ctx context.Context, scope Scope, providerID string) error {
 	providerConfig, exists := s.config.Providers.Get(providerID)
 	if !exists {
@@ -298,13 +302,29 @@ func (s *ConfigStore) RefreshOAuthToken(ctx context.Context, scope Scope, provid
 		return fmt.Errorf("provider %s does not have an OAuth token", providerID)
 	}
 
-	var newToken *oauth.Token
+	// Check if another session refreshed the token recently by reading
+	// the current token from the config file on disk.
+	newToken, err := s.loadTokenFromDisk(scope, providerID)
+	if err != nil {
+		slog.Warn("Failed to read token from config file, proceeding with refresh", "provider", providerID, "error", err)
+	} else if newToken != nil && newToken.AccessToken != providerConfig.OAuthToken.AccessToken {
+		slog.Info("Using token refreshed by another session", "provider", providerID)
+		providerConfig.OAuthToken = newToken
+		providerConfig.APIKey = newToken.AccessToken
+		if providerID == string(catwalk.InferenceProviderCopilot) {
+			providerConfig.SetupGitHubCopilot()
+		}
+		s.config.Providers.Set(providerID, providerConfig)
+		return nil
+	}
+
+	var refreshedToken *oauth.Token
 	var refreshErr error
 	switch providerID {
 	case string(catwalk.InferenceProviderCopilot):
-		newToken, refreshErr = copilot.RefreshToken(ctx, providerConfig.OAuthToken.RefreshToken)
+		refreshedToken, refreshErr = copilot.RefreshToken(ctx, providerConfig.OAuthToken.RefreshToken)
 	case hyperp.Name:
-		newToken, refreshErr = hyper.ExchangeToken(ctx, providerConfig.OAuthToken.RefreshToken)
+		refreshedToken, refreshErr = hyper.ExchangeToken(ctx, providerConfig.OAuthToken.RefreshToken)
 	default:
 		return fmt.Errorf("OAuth refresh not supported for provider %s", providerID)
 	}
@@ -313,8 +333,8 @@ func (s *ConfigStore) RefreshOAuthToken(ctx context.Context, scope Scope, provid
 	}
 
 	slog.Info("Successfully refreshed OAuth token", "provider", providerID)
-	providerConfig.OAuthToken = newToken
-	providerConfig.APIKey = newToken.AccessToken
+	providerConfig.OAuthToken = refreshedToken
+	providerConfig.APIKey = refreshedToken.AccessToken
 
 	switch providerID {
 	case string(catwalk.InferenceProviderCopilot):
@@ -324,8 +344,8 @@ func (s *ConfigStore) RefreshOAuthToken(ctx context.Context, scope Scope, provid
 	s.config.Providers.Set(providerID, providerConfig)
 
 	if err := cmp.Or(
-		s.SetConfigField(scope, fmt.Sprintf("providers.%s.api_key", providerID), newToken.AccessToken),
-		s.SetConfigField(scope, fmt.Sprintf("providers.%s.oauth", providerID), newToken),
+		s.SetConfigField(scope, fmt.Sprintf("providers.%s.api_key", providerID), refreshedToken.AccessToken),
+		s.SetConfigField(scope, fmt.Sprintf("providers.%s.oauth", providerID), refreshedToken),
 	); err != nil {
 		return fmt.Errorf("failed to persist refreshed token: %w", err)
 	}
@@ -333,6 +353,41 @@ func (s *ConfigStore) RefreshOAuthToken(ctx context.Context, scope Scope, provid
 	return nil
 }
 
+// loadTokenFromDisk reads the OAuth token for the given provider from the
+// config file on disk. Returns nil if the token is not found or matches the
+// current in-memory token.
+func (s *ConfigStore) loadTokenFromDisk(scope Scope, providerID string) (*oauth.Token, error) {
+	path, err := s.configPath(scope)
+	if err != nil {
+		return nil, err
+	}
+
+	data, err := os.ReadFile(path)
+	if err != nil {
+		if os.IsNotExist(err) {
+			return nil, nil
+		}
+		return nil, err
+	}
+
+	oauthKey := fmt.Sprintf("providers.%s.oauth", providerID)
+	oauthResult := gjson.Get(string(data), oauthKey)
+	if !oauthResult.Exists() {
+		return nil, nil
+	}
+
+	var token oauth.Token
+	if err := json.Unmarshal([]byte(oauthResult.Raw), &token); err != nil {
+		return nil, err
+	}
+
+	if token.AccessToken == "" {
+		return nil, nil
+	}
+
+	return &token, nil
+}
+
 // recordRecentModel records a model in the recent models list.
 func (s *ConfigStore) recordRecentModel(scope Scope, modelType SelectedModelType, model SelectedModel) error {
 	if model.Provider == "" || model.Model == "" {
@@ -590,6 +645,12 @@ func (s *ConfigStore) ReloadFromDisk(ctx context.Context) error {
 		}
 	}
 
+	// Validate hooks after all config merging is complete so matcher
+	// regexes are recompiled on the reloaded config (mirrors Load).
+	if err := cfg.ValidateHooks(); err != nil {
+		return fmt.Errorf("invalid hook configuration on reload: %w", err)
+	}
+
 	// Preserve runtime overrides
 	overrides := s.overrides
 

internal/config/store_test.go πŸ”—

@@ -8,6 +8,8 @@ import (
 	"testing"
 	"time"
 
+	"github.com/charmbracelet/crush/internal/csync"
+	"github.com/charmbracelet/crush/internal/oauth"
 	"github.com/stretchr/testify/require"
 )
 
@@ -510,3 +512,183 @@ func TestAutoReloadDisabledDuringReload(t *testing.T) {
 	// Verify reload completed successfully
 	require.False(t, store.autoReloadDisabled, "autoReloadDisabled should be false after ReloadFromDisk")
 }
+
+func TestLoadTokenFromDisk_ReturnsNewerToken(t *testing.T) {
+	t.Parallel()
+
+	dir := t.TempDir()
+	configPath := filepath.Join(dir, "crush.json")
+
+	// Create config file with a newer token on disk
+	configContent := `{
+		"providers": {
+			"hyper": {
+				"oauth": {
+					"access_token": "newer-token-from-disk",
+					"refresh_token": "refresh-abc",
+					"expires_in": 3600,
+					"expires_at": 9999999999
+				}
+			}
+		}
+	}`
+	require.NoError(t, os.WriteFile(configPath, []byte(configContent), 0o600))
+
+	store := &ConfigStore{
+		config:         &Config{},
+		globalDataPath: configPath,
+	}
+
+	token, err := store.loadTokenFromDisk(ScopeGlobal, "hyper")
+	require.NoError(t, err)
+	require.NotNil(t, token)
+	require.Equal(t, "newer-token-from-disk", token.AccessToken)
+	require.Equal(t, "refresh-abc", token.RefreshToken)
+	require.Equal(t, 3600, token.ExpiresIn)
+	require.Equal(t, int64(9999999999), token.ExpiresAt)
+}
+
+func TestLoadTokenFromDisk_ReturnsNilWhenSameToken(t *testing.T) {
+	t.Parallel()
+
+	dir := t.TempDir()
+	configPath := filepath.Join(dir, "crush.json")
+
+	// Create config file with the same token
+	configContent := `{
+		"providers": {
+			"hyper": {
+				"oauth": {
+					"access_token": "same-token",
+					"refresh_token": "refresh-abc",
+					"expires_in": 3600,
+					"expires_at": 9999999999
+				}
+			}
+		}
+	}`
+	require.NoError(t, os.WriteFile(configPath, []byte(configContent), 0o600))
+
+	store := &ConfigStore{
+		config:         &Config{},
+		globalDataPath: configPath,
+	}
+
+	token, err := store.loadTokenFromDisk(ScopeGlobal, "hyper")
+	require.NoError(t, err)
+	require.NotNil(t, token)
+	require.Equal(t, "same-token", token.AccessToken)
+}
+
+func TestLoadTokenFromDisk_ReturnsNilWhenFileMissing(t *testing.T) {
+	t.Parallel()
+
+	dir := t.TempDir()
+	configPath := filepath.Join(dir, "nonexistent.json")
+
+	store := &ConfigStore{
+		config:         &Config{},
+		globalDataPath: configPath,
+	}
+
+	token, err := store.loadTokenFromDisk(ScopeGlobal, "hyper")
+	require.NoError(t, err)
+	require.Nil(t, token)
+}
+
+func TestLoadTokenFromDisk_ReturnsNilWhenProviderMissing(t *testing.T) {
+	t.Parallel()
+
+	dir := t.TempDir()
+	configPath := filepath.Join(dir, "crush.json")
+
+	// Create config file without the hyper provider
+	configContent := `{"providers": {"openai": {"api_key": "test-key"}}}`
+	require.NoError(t, os.WriteFile(configPath, []byte(configContent), 0o600))
+
+	store := &ConfigStore{
+		config:         &Config{},
+		globalDataPath: configPath,
+	}
+
+	token, err := store.loadTokenFromDisk(ScopeGlobal, "hyper")
+	require.NoError(t, err)
+	require.Nil(t, token)
+}
+
+func TestLoadTokenFromDisk_ReturnsNilWhenOAuthMissing(t *testing.T) {
+	t.Parallel()
+
+	dir := t.TempDir()
+	configPath := filepath.Join(dir, "crush.json")
+
+	// Create config file with provider but no OAuth token
+	configContent := `{"providers": {"hyper": {"api_key": "test-key"}}}`
+	require.NoError(t, os.WriteFile(configPath, []byte(configContent), 0o600))
+
+	store := &ConfigStore{
+		config:         &Config{},
+		globalDataPath: configPath,
+	}
+
+	token, err := store.loadTokenFromDisk(ScopeGlobal, "hyper")
+	require.NoError(t, err)
+	require.Nil(t, token)
+}
+
+func TestRefreshOAuthToken_UsesDiskTokenWhenDifferent(t *testing.T) {
+	t.Parallel()
+
+	dir := t.TempDir()
+	configPath := filepath.Join(dir, "crush.json")
+
+	// Create config file with a newer token on disk
+	configContent := `{
+		"providers": {
+			"hyper": {
+				"api_key": "newer-access-token",
+				"oauth": {
+					"access_token": "newer-access-token",
+					"refresh_token": "refresh-abc",
+					"expires_in": 3600,
+					"expires_at": 9999999999
+				}
+			}
+		}
+	}`
+	require.NoError(t, os.WriteFile(configPath, []byte(configContent), 0o600))
+
+	// Set up store with an older in-memory token
+	oldToken := &oauth.Token{
+		AccessToken:  "older-access-token",
+		RefreshToken: "refresh-abc",
+		ExpiresIn:    3600,
+		ExpiresAt:    time.Now().Add(-time.Hour).Unix(), // Expired
+	}
+
+	providers := csync.NewMap[string, ProviderConfig]()
+	providers.Set("hyper", ProviderConfig{
+		ID:         "hyper",
+		Name:       "Hyper",
+		APIKey:     oldToken.AccessToken,
+		OAuthToken: oldToken,
+	})
+
+	store := &ConfigStore{
+		config: &Config{
+			Providers: providers,
+		},
+		globalDataPath: configPath,
+	}
+
+	// Refresh should use the disk token without making an external call
+	err := store.RefreshOAuthToken(context.Background(), ScopeGlobal, "hyper")
+	require.NoError(t, err)
+
+	// Verify the in-memory token was updated to the disk token
+	updatedConfig, ok := store.config.Providers.Get("hyper")
+	require.True(t, ok)
+	require.Equal(t, "newer-access-token", updatedConfig.APIKey)
+	require.Equal(t, "newer-access-token", updatedConfig.OAuthToken.AccessToken)
+	require.Equal(t, "refresh-abc", updatedConfig.OAuthToken.RefreshToken)
+}

internal/db/connect.go πŸ”—

@@ -50,6 +50,13 @@ func Connect(ctx context.Context, dataDir string) (*sql.DB, error) {
 		return nil, err
 	}
 
+	// Serialize all access through a single connection. SQLite serializes
+	// writes at the file level anyway, and allowing multiple pool
+	// connections to interleave writes/checkpoints (especially under
+	// concurrent sub-agents) has caused WAL/header desync resulting in
+	// SQLITE_NOTADB (26) on the next open.
+	db.SetMaxOpenConns(1)
+
 	if err = db.PingContext(ctx); err != nil {
 		db.Close()
 		return nil, fmt.Errorf("failed to connect to database: %w", err)

internal/db/connect_modernc.go πŸ”—

@@ -17,6 +17,9 @@ func openDB(dbPath string) (*sql.DB, error) {
 	for name, value := range pragmas {
 		params.Add("_pragma", fmt.Sprintf("%s(%s)", name, value))
 	}
+	// Use BEGIN IMMEDIATE so writers acquire the reserved lock up front,
+	// preventing deferred-to-writer upgrade deadlocks.
+	params.Set("_txlock", "immediate")
 
 	dsn := fmt.Sprintf("file:%s?%s", dbPath, params.Encode())
 	db, err := sql.Open("sqlite", dsn)

internal/db/connect_ncruces.go πŸ”—

@@ -11,7 +11,11 @@ import (
 )
 
 func openDB(dbPath string) (*sql.DB, error) {
-	db, err := driver.Open(dbPath, func(c *sqlite3.Conn) error {
+	// Use BEGIN IMMEDIATE so writers acquire the reserved lock up front,
+	// preventing deferred-to-writer upgrade deadlocks. The "file:" prefix
+	// is required for the ncruces driver to parse query parameters.
+	dsn := fmt.Sprintf("file:%s?_txlock=immediate", dbPath)
+	db, err := driver.Open(dsn, func(c *sqlite3.Conn) error {
 		// Set pragmas for better performance via _pragma query params.
 		// Format: PRAGMA name = value;
 		for name, value := range pragmas {

internal/hooks/hooks_test.go πŸ”—

@@ -383,6 +383,40 @@ func TestRunnerMatcherFiltering(t *testing.T) {
 		require.NoError(t, err)
 		require.Equal(t, DecisionNone, result.Decision)
 	})
+
+	// Runner must compile matchers itself; it cannot rely on
+	// ValidateHooks having run first. This is the guarantee that prevents
+	// the reload-drops-matcher class of bug.
+	t.Run("runner compiles matcher without ValidateHooks", func(t *testing.T) {
+		t.Parallel()
+		raw := []config.HookConfig{
+			{Command: `echo '{"decision":"deny","reason":"blocked"}'`, Matcher: "^bash$"},
+		}
+		r := NewRunner(raw, t.TempDir(), t.TempDir())
+
+		deny, err := r.Run(context.Background(), EventPreToolUse, "sess", "bash", `{}`)
+		require.NoError(t, err)
+		require.Equal(t, DecisionDeny, deny.Decision)
+
+		noop, err := r.Run(context.Background(), EventPreToolUse, "sess", "view", `{}`)
+		require.NoError(t, err)
+		require.Equal(t, DecisionNone, noop.Decision)
+	})
+
+	// A matcher that fails to compile at Runner construction must not
+	// degrade to match-everything; the hook is dropped instead.
+	t.Run("runner skips hooks with invalid matcher", func(t *testing.T) {
+		t.Parallel()
+		raw := []config.HookConfig{
+			{Command: `echo '{"decision":"deny","reason":"should not fire"}'`, Matcher: "[invalid"},
+		}
+		r := NewRunner(raw, t.TempDir(), t.TempDir())
+
+		result, err := r.Run(context.Background(), EventPreToolUse, "sess", "bash", `{}`)
+		require.NoError(t, err)
+		require.Equal(t, DecisionNone, result.Decision)
+		require.Empty(t, r.Hooks())
+	})
 }
 
 func TestValidateHooksInvalidRegex(t *testing.T) {

internal/hooks/runner.go πŸ”—

@@ -4,6 +4,7 @@ import (
 	"bytes"
 	"context"
 	"log/slog"
+	"regexp"
 	"strings"
 	"sync"
 	"time"
@@ -24,25 +25,63 @@ const abandonGrace = time.Second
 // depending on the scheduling behavior of the real interpreter.
 var runShell = shell.Run
 
+// compiledHook pairs a HookConfig with its compiled matcher regex. A nil
+// matcher means "match every tool".
+type compiledHook struct {
+	cfg     config.HookConfig
+	matcher *regexp.Regexp
+}
+
 // Runner executes hook commands and aggregates their results.
 type Runner struct {
-	hooks      []config.HookConfig
+	hooks      []compiledHook
 	cwd        string
 	projectDir string
 }
 
-// NewRunner creates a Runner from the given hook configs.
+// NewRunner creates a Runner from the given hook configs. Each hook's
+// Matcher is compiled here so the Runner is self-sufficient; callers do
+// not have to pre-compile matchers on the config, and reloads or merges
+// that rebuild HookConfig values can't silently strip compiled state.
+//
+// Hooks whose matcher fails to compile are skipped with a warning rather
+// than treated as match-everything. ValidateHooks is expected to have
+// caught syntax errors earlier, so this is defense in depth.
 func NewRunner(hooks []config.HookConfig, cwd, projectDir string) *Runner {
+	compiled := make([]compiledHook, 0, len(hooks))
+	for _, h := range hooks {
+		ch := compiledHook{cfg: h}
+		if h.Matcher != "" {
+			re, err := regexp.Compile(h.Matcher)
+			if err != nil {
+				slog.Warn("Hook matcher failed to compile; skipping hook",
+					"matcher", h.Matcher,
+					"command", h.Command,
+					"error", err,
+				)
+				continue
+			}
+			ch.matcher = re
+		}
+		compiled = append(compiled, ch)
+	}
 	return &Runner{
-		hooks:      hooks,
+		hooks:      compiled,
 		cwd:        cwd,
 		projectDir: projectDir,
 	}
 }
 
-// Hooks returns the hook configs the runner was created with.
+// Hooks returns the hook configs the runner was created with, in config
+// order. Hooks whose matcher failed to compile at construction are
+// omitted. Intended for diagnostics; callers should not rely on ordering
+// or identity beyond that.
 func (r *Runner) Hooks() []config.HookConfig {
-	return r.hooks
+	out := make([]config.HookConfig, len(r.hooks))
+	for i, h := range r.hooks {
+		out[i] = h.cfg
+	}
+	return out
 }
 
 // Run executes all matching hooks for the given event and tool, returning
@@ -105,9 +144,8 @@ func (r *Runner) Run(ctx context.Context, eventName, sessionID, toolName, toolIn
 func (r *Runner) matchingHooks(toolName string) []config.HookConfig {
 	var matched []config.HookConfig
 	for _, h := range r.hooks {
-		re := h.MatcherRegex()
-		if re == nil || re.MatchString(toolName) {
-			matched = append(matched, h)
+		if h.matcher == nil || h.matcher.MatchString(toolName) {
+			matched = append(matched, h.cfg)
 		}
 	}
 	return matched

internal/server/proto.go πŸ”—

@@ -199,7 +199,7 @@ func (c *controllerV1) handleGetWorkspaceProviders(w http.ResponseWriter, r *htt
 func (c *controllerV1) handleGetWorkspaceEvents(w http.ResponseWriter, r *http.Request) {
 	flusher := http.NewResponseController(w)
 	id := r.PathValue("id")
-	events, err := c.backend.SubscribeEvents(id)
+	events, err := c.backend.SubscribeEvents(r.Context(), id)
 	if err != nil {
 		c.handleError(w, r, err)
 		return
@@ -218,8 +218,8 @@ func (c *controllerV1) handleGetWorkspaceEvents(w http.ResponseWriter, r *http.R
 			if !ok {
 				return
 			}
-			c.server.logDebug(r, "Sending event", "event", fmt.Sprintf("%T %+v", ev, ev))
-			wrapped := wrapEvent(ev)
+			c.server.logDebug(r, "Sending event", "event", fmt.Sprintf("%T %+v", ev.Payload, ev.Payload))
+			wrapped := wrapEvent(ev.Payload)
 			if wrapped == nil {
 				continue
 			}

internal/ui/attachments/attachments.go πŸ”—

@@ -78,6 +78,10 @@ func (m *Attachments) Render(width int) string {
 	return m.renderer.Render(m.list, m.deleting, width)
 }
 
+// Renderer returns the attachment renderer so callers can update its
+// styles in place.
+func (m *Attachments) Renderer() *Renderer { return m.renderer }
+
 func NewRenderer(normalStyle, deletingStyle, imageStyle, textStyle lipgloss.Style) *Renderer {
 	return &Renderer{
 		normalStyle:   normalStyle,
@@ -87,6 +91,14 @@ func NewRenderer(normalStyle, deletingStyle, imageStyle, textStyle lipgloss.Styl
 	}
 }
 
+// SetStyles updates the renderer styles in place.
+func (r *Renderer) SetStyles(normalStyle, deletingStyle, imageStyle, textStyle lipgloss.Style) {
+	r.normalStyle = normalStyle
+	r.textStyle = textStyle
+	r.imageStyle = imageStyle
+	r.deletingStyle = deletingStyle
+}
+
 type Renderer struct {
 	normalStyle, textStyle, imageStyle, deletingStyle lipgloss.Style
 }

internal/ui/chat/messages.go πŸ”—

@@ -128,6 +128,22 @@ func defaultHighlighter(sty *styles.Styles) *highlightableMessageItem {
 	}
 }
 
+// cacheClearable is implemented by message items that cache rendered
+// output and can be asked to drop the cache.
+type cacheClearable interface {
+	clearCache()
+}
+
+// ClearItemCaches drops any cached rendered output on each item so the
+// next render uses the current styles.
+func ClearItemCaches(items []MessageItem) {
+	for _, item := range items {
+		if cc, ok := item.(cacheClearable); ok {
+			cc.clearCache()
+		}
+	}
+}
+
 // cachedMessageItem caches rendered message content to avoid re-rendering.
 //
 // This should be used by any message that can store a cached version of its render. e.x user,assistant... and so on

internal/ui/chat/tools.go πŸ”—

@@ -797,22 +797,27 @@ func renderHookLine(sty *styles.Styles, hi hooks.HookInfo, rawName, detail strin
 
 // hookDetail returns the styled detail text for a single hook result.
 func hookDetail(sty *styles.Styles, hi hooks.HookInfo) string {
+	const (
+		okMessage      = "OK"
+		denialMessage  = "Denied"
+		rewroteMessage = "Rewrote Output"
+	)
 	switch hi.Decision {
 	case "deny":
 		if hi.Reason != "" {
-			return sty.Tool.HookDenied.Render("Denied") + " " + sty.Tool.HookDeniedReason.Render(hi.Reason)
+			return sty.Tool.HookDenied.Render(denialMessage) + " " + sty.Tool.HookDeniedReason.Render(hi.Reason)
 		}
-		return sty.Tool.HookDenied.Render("Denied")
+		return sty.Tool.HookDenied.Render(denialMessage)
 	case "allow":
-		result := sty.Tool.HookOK.Render("OK")
+		result := sty.Tool.HookOK.Render(okMessage)
 		if hi.InputRewrite {
-			result += " " + sty.Tool.HookRewrote.Render("Rewrote Input")
+			result += " " + sty.Tool.HookRewrote.Render(rewroteMessage)
 		}
 		return result
 	default:
-		result := sty.Tool.HookOK.Render("OK")
+		result := sty.Tool.HookOK.Render(okMessage)
 		if hi.InputRewrite {
-			result += " " + sty.Tool.HookRewrote.Render("Rewrote Input")
+			result += " " + sty.Tool.HookRewrote.Render(rewroteMessage)
 		}
 		return result
 	}

internal/ui/common/common.go πŸ”—

@@ -31,15 +31,36 @@ func (c *Common) Config() *config.Config {
 	return c.Workspace.Config()
 }
 
-// DefaultCommon returns the default common UI configurations.
+// DefaultCommon returns the default common UI configurations. When the
+// workspace has a large model selected, the theme is chosen based on its
+// provider; otherwise the default theme is used.
 func DefaultCommon(ws workspace.Workspace) *Common {
-	s := styles.CharmtonePantera()
+	s := styles.ThemeForProvider(largeModelProviderID(ws))
 	return &Common{
 		Workspace: ws,
 		Styles:    &s,
 	}
 }
 
+// largeModelProviderID returns the provider ID of the currently selected
+// large model, or the empty string if none is set or the workspace is nil.
+func largeModelProviderID(ws workspace.Workspace) string {
+	if ws == nil {
+		return ""
+	}
+	cfg := ws.Config()
+	if cfg == nil {
+		return ""
+	}
+	return cfg.Models[config.SelectedModelTypeLarge].Provider
+}
+
+// IsHyper reports whether the currently selected large model is provided
+// by Hyper.
+func (c *Common) IsHyper() bool {
+	return largeModelProviderID(c.Workspace) == "hyper"
+}
+
 // CenterRect returns a new [Rectangle] centered within the given area with the
 // specified width and height.
 func CenterRect(area uv.Rectangle, width, height int) uv.Rectangle {

internal/ui/common/elements.go πŸ”—

@@ -4,9 +4,11 @@ import (
 	"cmp"
 	"fmt"
 	"image/color"
+	"strconv"
 	"strings"
 
 	"charm.land/lipgloss/v2"
+	"github.com/charmbracelet/crush/internal/agent/hyper"
 	"github.com/charmbracelet/crush/internal/home"
 	"github.com/charmbracelet/crush/internal/ui/styles"
 	"github.com/charmbracelet/x/ansi"
@@ -38,7 +40,7 @@ type ModelContextInfo struct {
 
 // ModelInfo renders model information including name, provider, reasoning
 // settings, and optional context usage/cost.
-func ModelInfo(t *styles.Styles, modelName, providerName, reasoningInfo string, context *ModelContextInfo, width int) string {
+func ModelInfo(t *styles.Styles, modelName, providerName, reasoningInfo string, context *ModelContextInfo, width int, hyperCredits *int) string {
 	modelIcon := t.ModelInfo.Icon.Render(styles.ModelIcon)
 	modelName = t.ModelInfo.Name.Render(modelName)
 
@@ -76,6 +78,13 @@ func ModelInfo(t *styles.Styles, modelName, providerName, reasoningInfo string,
 		parts = append(parts, lipgloss.NewStyle().PaddingLeft(2).Render(formattedInfo))
 	}
 
+	if providerName == hyper.DisplayName && hyperCredits != nil {
+		hcInfo := t.ModelInfo.HypercreditIcon.Render(styles.HypercreditIcon)
+		hcInfo += " "
+		hcInfo += t.ModelInfo.HypercreditText.Render(fmt.Sprintf("%s Hypercredits", FormatCredits(*hyperCredits)))
+		parts = append(parts, "", hcInfo)
+	}
+
 	return lipgloss.NewStyle().Width(width).Render(
 		lipgloss.JoinVertical(lipgloss.Left, parts...),
 	)
@@ -115,6 +124,28 @@ func formatTokensAndCost(t *styles.Styles, tokens, contextWindow int64, cost flo
 	return fmt.Sprintf("%s %s", formattedTokens, formattedCost)
 }
 
+// FormatCredits formats an integer with comma separators for thousands.
+func FormatCredits(n int) string {
+	s := strconv.FormatInt(int64(n), 10)
+	if n < 1000 {
+		return s
+	}
+	// Calculate how many digits before the first comma.
+	firstGroup := len(s) % 3
+	if firstGroup == 0 {
+		firstGroup = 3
+	}
+	var b []byte
+	for i := 0; i < len(s); i++ {
+		if i > 0 && i == firstGroup {
+			b = append(b, ',')
+			firstGroup += 3
+		}
+		b = append(b, s[i])
+	}
+	return string(b)
+}
+
 // StatusOpts defines options for rendering a status line with icon, title,
 // description, and optional extra content.
 type StatusOpts struct {

internal/ui/common/markdown.go πŸ”—

@@ -2,6 +2,7 @@ package common
 
 import (
 	"image/color"
+	"sync"
 
 	"charm.land/glamour/v2"
 	"github.com/alecthomas/chroma/v2/formatters"
@@ -18,24 +19,55 @@ func init() {
 	formatters.Register(formatterName, xchroma.Formatter(zero, nil))
 }
 
+var (
+	mdCacheMu    sync.Mutex
+	mdCache      = map[int]*glamour.TermRenderer{}
+	quietMDCache = map[int]*glamour.TermRenderer{}
+)
+
 // MarkdownRenderer returns a glamour [glamour.TermRenderer] configured with
-// the given styles and width.
+// the given styles and width. Renderers are memoized per width and shared
+// across callers; call InvalidateMarkdownRendererCache when the active
+// styles change.
 func MarkdownRenderer(sty *styles.Styles, width int) *glamour.TermRenderer {
+	mdCacheMu.Lock()
+	defer mdCacheMu.Unlock()
+	if r, ok := mdCache[width]; ok {
+		return r
+	}
 	r, _ := glamour.NewTermRenderer(
 		glamour.WithStyles(sty.Markdown),
 		glamour.WithWordWrap(width),
 		glamour.WithChromaFormatter(formatterName),
 	)
+	mdCache[width] = r
 	return r
 }
 
 // QuietMarkdownRenderer returns a glamour [glamour.TermRenderer] with no colors
-// (plain text with structure) and the given width.
+// (plain text with structure) and the given width. Renderers are memoized per
+// width and shared across callers.
 func QuietMarkdownRenderer(sty *styles.Styles, width int) *glamour.TermRenderer {
+	mdCacheMu.Lock()
+	defer mdCacheMu.Unlock()
+	if r, ok := quietMDCache[width]; ok {
+		return r
+	}
 	r, _ := glamour.NewTermRenderer(
 		glamour.WithStyles(sty.QuietMarkdown),
 		glamour.WithWordWrap(width),
 		glamour.WithChromaFormatter(formatterName),
 	)
+	quietMDCache[width] = r
 	return r
 }
+
+// InvalidateMarkdownRendererCache drops every cached renderer. Call this
+// whenever the active styles change so subsequent renderers pick up the new
+// ansi.StyleConfig.
+func InvalidateMarkdownRendererCache() {
+	mdCacheMu.Lock()
+	defer mdCacheMu.Unlock()
+	mdCache = map[int]*glamour.TermRenderer{}
+	quietMDCache = map[int]*glamour.TermRenderer{}
+}

internal/ui/completions/completions.go πŸ”—

@@ -110,6 +110,15 @@ func New(normalStyle, focusedStyle, matchStyle lipgloss.Style) *Completions {
 	}
 }
 
+// SetStyles updates the styles used when rendering completion items.
+// Existing items are not restyled; subsequent SetItems calls pick up the
+// new styles.
+func (c *Completions) SetStyles(normalStyle, focusedStyle, matchStyle lipgloss.Style) {
+	c.normalStyle = normalStyle
+	c.focusedStyle = focusedStyle
+	c.matchStyle = matchStyle
+}
+
 // IsOpen returns whether the completions popup is open.
 func (c *Completions) IsOpen() bool {
 	return c.open

internal/ui/dialog/oauth.go πŸ”—

@@ -222,7 +222,7 @@ func (m *OAuth) headerContent() string {
 		textStyle    = t.Dialog.PrimaryText
 		dialogStyle  = t.Dialog.View.Width(m.width)
 		headerOffset = titleStyle.GetHorizontalFrameSize() + dialogStyle.GetHorizontalFrameSize()
-		dialogTitle  = fmt.Sprintf("Authenticate with %s", m.oAuthProvider.name())
+		dialogTitle  = fmt.Sprintf("Let’s authenticate with %s", m.oAuthProvider.name())
 	)
 	if m.isOnboarding {
 		return textStyle.Render(dialogTitle)
@@ -232,13 +232,13 @@ func (m *OAuth) headerContent() string {
 
 func (m *OAuth) innerDialogContent() string {
 	var (
-		t            = m.com.Styles
-		whiteStyle   = t.Dialog.OAuth.Instructions
-		primaryStyle = t.Dialog.OAuth.Enter
-		greenStyle   = t.Dialog.OAuth.Success
-		linkStyle    = t.Dialog.OAuth.Link
-		errorStyle   = t.Dialog.OAuth.ErrorText
-		mutedStyle   = t.Dialog.OAuth.StatusText
+		t                = m.com.Styles
+		instructionStyle = t.Dialog.OAuth.Instructions
+		enterKeyStyle    = t.Dialog.OAuth.Enter
+		successStyle     = t.Dialog.OAuth.Success
+		linkStyle        = t.Dialog.OAuth.Link
+		errorStyle       = t.Dialog.OAuth.ErrorText
+		statusTextStyle  = t.Dialog.OAuth.StatusText
 	)
 
 	switch m.State {
@@ -248,8 +248,8 @@ func (m *OAuth) innerDialogContent() string {
 			Width(m.width - 2).
 			Align(lipgloss.Center).
 			Render(
-				greenStyle.Render(m.spinner.View()) +
-					mutedStyle.Render("Initializing..."),
+				successStyle.Render(m.spinner.View()) +
+					statusTextStyle.Render("Initializing..."),
 			)
 
 	case OAuthStateDisplay:
@@ -257,9 +257,9 @@ func (m *OAuth) innerDialogContent() string {
 			Margin(0, 1).
 			Width(m.width - 2).
 			Render(
-				whiteStyle.Render("Press ") +
-					primaryStyle.Render("enter") +
-					whiteStyle.Render(" to copy the code below and open the browser."),
+				instructionStyle.Render("Press ") +
+					enterKeyStyle.Render("enter") +
+					instructionStyle.Render(" to copy the code below and open the browser."),
 			)
 
 		codeBox := lipgloss.NewStyle().
@@ -273,16 +273,16 @@ func (m *OAuth) innerDialogContent() string {
 			)
 
 		link := linkStyle.Hyperlink(m.verificationURL, "id=oauth-verify").Render(m.verificationURL)
-		url := mutedStyle.
+		url := statusTextStyle.
 			Margin(0, 1).
 			Width(m.width - 2).
-			Render("Browser not opening? Refer to\n" + link)
+			Render("Browser not opening? Pay a visit to:\n" + link)
 
 		waiting := lipgloss.NewStyle().
 			Margin(0, 1).
 			Width(m.width - 2).
 			Render(
-				greenStyle.Render(m.spinner.View()) + mutedStyle.Render("Verifying..."),
+				successStyle.Render(m.spinner.View()) + statusTextStyle.Render("Verifying..."),
 			)
 
 		return lipgloss.JoinVertical(
@@ -299,7 +299,7 @@ func (m *OAuth) innerDialogContent() string {
 		)
 
 	case OAuthStateSuccess:
-		return greenStyle.
+		return successStyle.
 			Margin(1).
 			Width(m.width - 2).
 			Render("Authentication successful!")

internal/ui/logo/logo.go πŸ”—

@@ -148,10 +148,18 @@ func Render(base lipgloss.Style, version string, compact bool, o Opts) string {
 
 // SmallRender renders a smaller version of the Crush logo, suitable for
 // smaller windows or sidebar usage.
-func SmallRender(t *styles.Styles, width int) string {
-	title := t.Logo.SmallCharm.Render("Charmβ„’")
-	title = fmt.Sprintf("%s %s", title, styles.ApplyBoldForegroundGrad(t.Logo.GradCanvas, "Crush", t.Logo.SmallGradFromColor, t.Logo.SmallGradToColor))
-	remainingWidth := width - lipgloss.Width(title) - 1 // 1 for the space after "Crush"
+func SmallRender(t *styles.Styles, width int, o Opts) string {
+	name := "Crush"
+	if o.Hyper {
+		name = "HYPERCRUSH"
+	}
+	charm := "Charmβ„’"
+	if !o.Hyper {
+		charm = " " + charm
+	}
+	title := t.Logo.SmallCharm.Render(charm)
+	title = fmt.Sprintf("%s %s", title, styles.ApplyBoldForegroundGrad(t.Logo.GradCanvas, name, t.Logo.SmallGradFromColor, t.Logo.SmallGradToColor))
+	remainingWidth := width - lipgloss.Width(title) - 1 // 1 for the space after the name
 	if remainingWidth > 0 {
 		lines := strings.Repeat("β•±", remainingWidth)
 		title = fmt.Sprintf("%s %s", title, t.Logo.SmallDiagonals.Render(lines))

internal/ui/model/chat.go πŸ”—

@@ -107,6 +107,18 @@ func (m *Chat) Len() int {
 	return m.list.Len()
 }
 
+// InvalidateRenderCaches drops cached rendered output on every message
+// item so the next draw re-renders with the current styles.
+func (m *Chat) InvalidateRenderCaches() {
+	items := make([]chat.MessageItem, 0, m.list.Len())
+	for i := range m.list.Len() {
+		if item, ok := m.list.ItemAt(i).(chat.MessageItem); ok {
+			items = append(items, item)
+		}
+	}
+	chat.ClearItemCaches(items)
+}
+
 // SetMessages sets the chat messages to the provided list of message items.
 func (m *Chat) SetMessages(msgs ...chat.MessageItem) {
 	m.idInxMap = make(map[string]int)

internal/ui/model/header.go πŸ”—

@@ -37,12 +37,30 @@ func newHeader(com *common.Common) *header {
 	h := &header{
 		com: com,
 	}
-	t := com.Styles
-	h.compactLogo = t.Header.Charm.Render("Charmβ„’") + " " +
-		styles.ApplyBoldForegroundGrad(t.Header.LogoGradCanvas, "CRUSH", t.Header.LogoGradFromColor, t.Header.LogoGradToColor) + " "
+	h.refresh()
 	return h
 }
 
+// refresh rebuilds cached logo strings using the current styles. Call
+// after the theme changes.
+func (h *header) refresh() {
+	t := h.com.Styles
+	isHyper := h.com.IsHyper()
+	charm := "Charmβ„’"
+	if !isHyper {
+		charm = " " + charm
+	}
+	name := "CRUSH"
+	if isHyper {
+		name = "HYPERCRUSH"
+	}
+	h.compactLogo = t.Header.Charm.Render(charm) + " " +
+		styles.ApplyBoldForegroundGrad(t.Header.LogoGradCanvas, name, t.Header.LogoGradFromColor, t.Header.LogoGradToColor) + " "
+	// Force drawHeader to re-render the wide logo on the next frame.
+	h.width = 0
+	h.logo = ""
+}
+
 // drawHeader draws the header for the given session.
 func (h *header) drawHeader(
 	scr uv.Screen,
@@ -51,10 +69,11 @@ func (h *header) drawHeader(
 	compact bool,
 	detailsOpen bool,
 	width int,
+	hyperCredits *int,
 ) {
 	t := h.com.Styles
 	if width != h.width || compact != h.compact {
-		h.logo = renderLogo(h.com.Styles, compact, width)
+		h.logo = renderLogo(h.com.Styles, compact, h.com.IsHyper(), width)
 	}
 
 	h.width = width
@@ -83,6 +102,7 @@ func (h *header) drawHeader(
 		lspErrorCount,
 		detailsOpen,
 		availDetailWidth,
+		hyperCredits,
 	)
 
 	remainingWidth := width -
@@ -113,6 +133,7 @@ func renderHeaderDetails(
 	lspErrorCount int,
 	detailsOpen bool,
 	availWidth int,
+	hyperCredits *int,
 ) string {
 	t := com.Styles
 
@@ -130,6 +151,11 @@ func renderHeaderDetails(
 		parts = append(parts, formattedPercentage)
 	}
 
+	if com.IsHyper() && hyperCredits != nil {
+		hc := t.Header.Hypercredit.Render(styles.HypercreditIcon) + " " + t.Header.Percentage.Render(common.FormatCredits(*hyperCredits))
+		parts = append(parts, hc)
+	}
+
 	const keystroke = "ctrl+d"
 	if detailsOpen {
 		parts = append(parts, t.Header.Keystroke.Render(keystroke)+t.Header.KeystrokeTip.Render(" close"))

internal/ui/model/sidebar.go πŸ”—

@@ -53,7 +53,7 @@ func (m *UI) modelInfo(width int) string {
 	if model != nil {
 		modelName = model.CatwalkCfg.Name
 	}
-	return common.ModelInfo(m.com.Styles, modelName, providerName, reasoningInfo, modelContext, width)
+	return common.ModelInfo(m.com.Styles, modelName, providerName, reasoningInfo, modelContext, width, m.hyperCredits)
 }
 
 // getDynamicHeightLimits will give us the num of items to show in each section based on the height
@@ -142,7 +142,9 @@ func (m *UI) drawSidebar(scr uv.Screen, area uv.Rectangle) {
 	cwd := common.PrettyPath(t, m.com.Workspace.WorkingDir(), width)
 	sidebarLogo := m.sidebarLogo
 	if height < logoHeightBreakpoint {
-		sidebarLogo = logo.SmallRender(m.com.Styles, width)
+		sidebarLogo = logo.SmallRender(m.com.Styles, width, logo.Opts{
+			Hyper: m.com.IsHyper(),
+		})
 	}
 	blocks := []string{
 		sidebarLogo,

internal/ui/model/status.go πŸ”—

@@ -101,11 +101,13 @@ func (s *Status) Draw(scr uv.Screen, area uv.Rectangle) {
 
 	ind := indStyle.String()
 	indWidth := lipgloss.Width(ind)
+	msgPad := msgStyle.GetPaddingLeft() + msgStyle.GetPaddingRight()
+	avail := max(0, area.Dx()-indWidth-msgPad)
 	msg := strings.Join(strings.Split(s.msg.Msg, "\n"), " ")
-	msgWidth := lipgloss.Width(msg)
-	msg = ansi.Truncate(msg, area.Dx()-indWidth-msgWidth, "…")
-	padWidth := max(0, area.Dx()-indWidth-msgWidth)
-	msg += strings.Repeat(" ", padWidth)
+	msg = ansi.Truncate(msg, avail, "…")
+	if w := lipgloss.Width(msg); w < avail {
+		msg += strings.Repeat(" ", avail-w)
+	}
 	info := msgStyle.Render(msg)
 
 	// Draw the info message over the help view

internal/ui/model/ui.go πŸ”—

@@ -25,6 +25,7 @@ import (
 	tea "charm.land/bubbletea/v2"
 	"charm.land/catwalk/pkg/catwalk"
 	"charm.land/lipgloss/v2"
+	"github.com/charmbracelet/crush/internal/agent/hyper"
 	"github.com/charmbracelet/crush/internal/agent/notify"
 	agenttools "github.com/charmbracelet/crush/internal/agent/tools"
 	"github.com/charmbracelet/crush/internal/agent/tools/mcp"
@@ -137,6 +138,13 @@ type (
 	// closeDialogMsg is sent to close the current dialog.
 	closeDialogMsg struct{}
 
+	// hyperRefreshDoneMsg is sent after a silent Hyper OAuth refresh
+	// finishes. It carries the original model-selection action so the
+	// selection can be resumed.
+	hyperRefreshDoneMsg struct {
+		action dialog.ActionSelectModel
+	}
+
 	// copyChatHighlightMsg is sent to copy the current chat highlight to clipboard.
 	copyChatHighlightMsg struct{}
 
@@ -144,6 +152,11 @@ type (
 	sessionFilesUpdatesMsg struct {
 		sessionFiles []SessionFile
 	}
+	// creditsUpdatedMsg is sent when the remaining Hyper credits have been
+	// fetched from the API.
+	creditsUpdatedMsg struct {
+		credits int
+	}
 )
 
 // UI represents the main user interface model.
@@ -257,6 +270,9 @@ type UI struct {
 	// mouse highlighting related state
 	lastClickTime time.Time
 
+	// hyperCredits is the remaining Hyper credits, updated after each prompt.
+	hyperCredits *int
+
 	// Prompt history for up/down navigation through previous messages.
 	promptHistory struct {
 		messages []string
@@ -331,7 +347,7 @@ func New(com *common.Common, initialSessionID string, continueLast bool) *UI {
 
 	status := NewStatus(com, ui)
 
-	ui.setEditorPrompt(false)
+	ui.setEditorPrompt(com.Workspace.PermissionSkipRequests())
 	ui.randomizePlaceholders()
 	ui.textarea.Placeholder = ui.readyPlaceholder
 	ui.status = status
@@ -379,6 +395,9 @@ func (m *UI) Init() tea.Cmd {
 	if cmd := m.loadInitialSession(); cmd != nil {
 		cmds = append(cmds, cmd)
 	}
+	if m.com.IsHyper() {
+		cmds = append(cmds, m.fetchHyperCredits())
+	}
 	return tea.Batch(cmds...)
 }
 
@@ -843,6 +862,12 @@ func (m *UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
 		m.textarea.SetValue(msg.Text)
 		m.textarea.MoveToEnd()
 		cmds = append(cmds, m.updateTextareaWithPrevHeight(msg, prevHeight))
+	case hyperRefreshDoneMsg:
+		if cmd := m.handleSelectModel(msg.action); cmd != nil {
+			cmds = append(cmds, cmd)
+		}
+	case creditsUpdatedMsg:
+		m.hyperCredits = &msg.credits
 	case util.InfoMsg:
 		if msg.Type == util.InfoTypeError {
 			slog.Error("Error reported", "error", msg.Msg)
@@ -853,6 +878,18 @@ func (m *UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
 			ttl = DefaultStatusTTL
 		}
 		cmds = append(cmds, clearInfoMsgCmd(ttl))
+	case app.UpdateAvailableMsg:
+		text := fmt.Sprintf("Crush update available: v%s β†’ v%s.", msg.CurrentVersion, msg.LatestVersion)
+		if msg.IsDevelopment {
+			text = fmt.Sprintf("This is a development version of Crush. The latest version is v%s.", msg.LatestVersion)
+		}
+		ttl := 10 * time.Second
+		m.status.SetInfoMsg(util.InfoMsg{
+			Type: util.InfoTypeUpdate,
+			Msg:  text,
+			TTL:  ttl,
+		})
+		cmds = append(cmds, clearInfoMsgCmd(ttl))
 	case util.ClearStatusMsg:
 		m.status.ClearInfoMsg()
 	case completions.CompletionItemsLoadedMsg:
@@ -1429,66 +1466,8 @@ func (m *UI) handleDialogMsg(msg tea.Msg) tea.Cmd {
 		m.dialog.CloseDialog(dialog.CommandsID)
 
 	case dialog.ActionSelectModel:
-		if m.isAgentBusy() {
-			cmds = append(cmds, util.ReportWarn("Agent is busy, please wait..."))
-			break
-		}
-
-		cfg := m.com.Config()
-		if cfg == nil {
-			cmds = append(cmds, util.ReportError(errors.New("configuration not found")))
-			break
-		}
-
-		var (
-			providerID   = msg.Model.Provider
-			isCopilot    = providerID == string(catwalk.InferenceProviderCopilot)
-			isConfigured = func() bool { _, ok := cfg.Providers.Get(providerID); return ok }
-		)
-
-		// Attempt to import GitHub Copilot tokens from VSCode if available.
-		if isCopilot && !isConfigured() && !msg.ReAuthenticate {
-			m.com.Workspace.ImportCopilot()
-		}
-
-		if !isConfigured() || msg.ReAuthenticate {
-			m.dialog.CloseDialog(dialog.ModelsID)
-			if cmd := m.openAuthenticationDialog(msg.Provider, msg.Model, msg.ModelType); cmd != nil {
-				cmds = append(cmds, cmd)
-			}
-			break
-		}
-
-		if err := m.com.Workspace.UpdatePreferredModel(config.ScopeGlobal, msg.ModelType, msg.Model); err != nil {
-			cmds = append(cmds, util.ReportError(err))
-		} else if _, ok := cfg.Models[config.SelectedModelTypeSmall]; !ok {
-			// Ensure small model is set is unset.
-			smallModel := m.com.Workspace.GetDefaultSmallModel(providerID)
-			if err := m.com.Workspace.UpdatePreferredModel(config.ScopeGlobal, config.SelectedModelTypeSmall, smallModel); err != nil {
-				cmds = append(cmds, util.ReportError(err))
-			}
-		}
-
-		cmds = append(cmds, func() tea.Msg {
-			if err := m.com.Workspace.UpdateAgentModel(context.TODO()); err != nil {
-				return util.ReportError(err)
-			}
-
-			modelMsg := fmt.Sprintf("%s model changed to %s", msg.ModelType, msg.Model.Model)
-
-			return util.NewInfoMsg(modelMsg)
-		})
-
-		m.dialog.CloseDialog(dialog.APIKeyInputID)
-		m.dialog.CloseDialog(dialog.OAuthID)
-		m.dialog.CloseDialog(dialog.ModelsID)
-
-		if isOnboarding {
-			m.setState(uiLanding, uiFocusEditor)
-			m.com.Config().SetupAgents()
-			if err := m.com.Workspace.InitCoderAgent(context.TODO()); err != nil {
-				cmds = append(cmds, util.ReportError(err))
-			}
+		if cmd := m.handleSelectModel(msg); cmd != nil {
+			cmds = append(cmds, cmd)
 		}
 	case dialog.ActionSelectReasoningEffort:
 		if m.isAgentBusy() {
@@ -1594,6 +1573,137 @@ func substituteArgs(content string, args map[string]string) string {
 	return content
 }
 
+// refreshHyperAndRetrySelect returns a command that silently refreshes
+// the Hyper OAuth token and then re-runs the model selection. If the
+// refresh fails, the selection resumes with ReAuthenticate set so the
+// OAuth dialog opens.
+func (m *UI) refreshHyperAndRetrySelect(msg dialog.ActionSelectModel) tea.Cmd {
+	return func() tea.Msg {
+		ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)
+		defer cancel()
+		if err := m.com.Workspace.RefreshOAuthToken(ctx, config.ScopeGlobal, "hyper"); err != nil {
+			slog.Warn("Hyper OAuth refresh failed, requesting re-auth", "error", err)
+			msg.ReAuthenticate = true
+		}
+		return hyperRefreshDoneMsg{action: msg}
+	}
+}
+
+// fetchHyperCredits returns a command that asynchronously fetches the
+// remaining Hyper credits from the API.
+func (m *UI) fetchHyperCredits() tea.Cmd {
+	return func() tea.Msg {
+		cfg := m.com.Config()
+		if cfg == nil {
+			return nil
+		}
+		providerCfg, ok := cfg.Providers.Get(hyper.Name)
+		if !ok {
+			return nil
+		}
+		apiKey, err := m.com.Workspace.Resolver().ResolveValue(providerCfg.APIKey)
+		if err != nil || apiKey == "" {
+			return nil
+		}
+		ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
+		defer cancel()
+		credits, err := hyper.FetchCredits(ctx, apiKey)
+		if err != nil {
+			slog.Error("Failed to fetch Hyper credits", "error", err)
+			return nil
+		}
+		return creditsUpdatedMsg{credits: credits}
+	}
+}
+
+// handleSelectModel performs the model selection after any provider
+// pre-checks (such as a silent Hyper OAuth refresh) have completed.
+func (m *UI) handleSelectModel(msg dialog.ActionSelectModel) tea.Cmd {
+	var cmds []tea.Cmd
+
+	if m.isAgentBusy() {
+		return util.ReportWarn("Agent is busy, please wait...")
+	}
+
+	cfg := m.com.Config()
+	if cfg == nil {
+		return util.ReportError(errors.New("configuration not found"))
+	}
+
+	var (
+		providerID   = msg.Model.Provider
+		isCopilot    = providerID == string(catwalk.InferenceProviderCopilot)
+		isConfigured = func() bool { _, ok := cfg.Providers.Get(providerID); return ok }
+		isOnboarding = m.state == uiOnboarding
+	)
+
+	// For Hyper, if the stored OAuth token is expired, try a silent
+	// refresh before deciding whether the provider is configured. Keeps
+	// users from hitting a 401 on their first message after the
+	// short-lived access token ages out.
+	if !msg.ReAuthenticate && providerID == "hyper" {
+		if pc, ok := cfg.Providers.Get(providerID); ok && pc.OAuthToken != nil && pc.OAuthToken.IsExpired() {
+			return m.refreshHyperAndRetrySelect(msg)
+		}
+	}
+
+	// Attempt to import GitHub Copilot tokens from VSCode if available.
+	if isCopilot && !isConfigured() && !msg.ReAuthenticate {
+		m.com.Workspace.ImportCopilot()
+	}
+
+	if !isConfigured() || msg.ReAuthenticate {
+		m.dialog.CloseDialog(dialog.ModelsID)
+		if cmd := m.openAuthenticationDialog(msg.Provider, msg.Model, msg.ModelType); cmd != nil {
+			cmds = append(cmds, cmd)
+		}
+		return tea.Batch(cmds...)
+	}
+
+	if err := m.com.Workspace.UpdatePreferredModel(config.ScopeGlobal, msg.ModelType, msg.Model); err != nil {
+		cmds = append(cmds, util.ReportError(err))
+	} else {
+		if msg.ModelType == config.SelectedModelTypeLarge {
+			// Swap the theme live based on the newly selected large
+			// model's provider.
+			m.applyTheme(styles.ThemeForProvider(providerID))
+		}
+		if _, ok := cfg.Models[config.SelectedModelTypeSmall]; !ok {
+			// Ensure small model is set is unset.
+			smallModel := m.com.Workspace.GetDefaultSmallModel(providerID)
+			if err := m.com.Workspace.UpdatePreferredModel(config.ScopeGlobal, config.SelectedModelTypeSmall, smallModel); err != nil {
+				cmds = append(cmds, util.ReportError(err))
+			}
+		}
+	}
+
+	cmds = append(cmds, func() tea.Msg {
+		if err := m.com.Workspace.UpdateAgentModel(context.TODO()); err != nil {
+			return util.ReportError(err)
+		}
+
+		modelMsg := fmt.Sprintf("%s model changed to %s", msg.ModelType, msg.Model.Model)
+
+		return util.NewInfoMsg(modelMsg)
+	})
+
+	m.dialog.CloseDialog(dialog.APIKeyInputID)
+	m.dialog.CloseDialog(dialog.OAuthID)
+	m.dialog.CloseDialog(dialog.ModelsID)
+
+	if isOnboarding {
+		m.setState(uiLanding, uiFocusEditor)
+		m.com.Config().SetupAgents()
+		if err := m.com.Workspace.InitCoderAgent(context.TODO()); err != nil {
+			cmds = append(cmds, util.ReportError(err))
+		}
+	} else if m.com.IsHyper() {
+		cmds = append(cmds, m.fetchHyperCredits())
+	}
+
+	return tea.Batch(cmds...)
+}
+
 func (m *UI) openAuthenticationDialog(provider catwalk.Provider, model config.SelectedModel, modelType config.SelectedModelType) tea.Cmd {
 	var (
 		dlg dialog.Dialog
@@ -1999,6 +2109,7 @@ func (m *UI) drawHeader(scr uv.Screen, area uv.Rectangle) {
 		m.isCompact,
 		m.detailsOpen,
 		area.Dx(),
+		m.hyperCredits,
 	)
 }
 
@@ -2977,7 +3088,37 @@ func (m *UI) renderEditorView(width int) string {
 
 // cacheSidebarLogo renders and caches the sidebar logo at the specified width.
 func (m *UI) cacheSidebarLogo(width int) {
-	m.sidebarLogo = renderLogo(m.com.Styles, true, width)
+	m.sidebarLogo = renderLogo(m.com.Styles, true, m.com.IsHyper(), width)
+}
+
+// applyTheme replaces the active styles with the given theme, drops the
+// shared markdown renderer cache, and refreshes every component that
+// caches style data.
+func (m *UI) applyTheme(s styles.Styles) {
+	*m.com.Styles = s
+	common.InvalidateMarkdownRendererCache()
+	m.refreshStyles()
+}
+
+// refreshStyles pushes the current *m.com.Styles into every subcomponent
+// that copies or pre-renders style-dependent values at construction time.
+func (m *UI) refreshStyles() {
+	t := m.com.Styles
+	m.header.refresh()
+	if m.layout.sidebar.Dx() > 0 {
+		m.cacheSidebarLogo(m.layout.sidebar.Dx())
+	}
+	m.textarea.SetStyles(t.Editor.Textarea)
+	m.completions.SetStyles(t.Completions.Normal, t.Completions.Focused, t.Completions.Match)
+	m.attachments.Renderer().SetStyles(
+		t.Attachments.Normal,
+		t.Attachments.Deleting,
+		t.Attachments.Image,
+		t.Attachments.Text,
+	)
+	m.todoSpinner.Style = t.Pills.TodoSpinner
+	m.status.help.Styles = t.Help
+	m.chat.InvalidateRenderCaches()
 }
 
 // sendMessage sends a message with the given content and attachments.
@@ -3257,10 +3398,15 @@ func (m *UI) handlePermissionNotification(notification permission.PermissionNoti
 func (m *UI) handleAgentNotification(n notify.Notification) tea.Cmd {
 	switch n.Type {
 	case notify.TypeAgentFinished:
-		return m.sendNotification(notification.Notification{
+		var cmds []tea.Cmd
+		cmds = append(cmds, m.sendNotification(notification.Notification{
 			Title:   "Crush is waiting...",
 			Message: fmt.Sprintf("Agent's turn completed in \"%s\"", n.SessionTitle),
-		})
+		}))
+		if m.com.IsHyper() {
+			cmds = append(cmds, m.fetchHyperCredits())
+		}
+		return tea.Batch(cmds...)
 	case notify.TypeReAuthenticate:
 		return m.handleReAuthenticate(n.ProviderID)
 	default:
@@ -3656,7 +3802,7 @@ func (m *UI) disableDockerMCP() tea.Msg {
 }
 
 // renderLogo renders the Crush logo with the given styles and dimensions.
-func renderLogo(t *styles.Styles, compact bool, width int) string {
+func renderLogo(t *styles.Styles, compact, hyper bool, width int) string {
 	return logo.Render(t.Logo.GradCanvas, version.Version, compact, logo.Opts{
 		FieldColor:   t.Logo.FieldColor,
 		TitleColorA:  t.Logo.TitleColorA,
@@ -3664,5 +3810,6 @@ func renderLogo(t *styles.Styles, compact bool, width int) string {
 		CharmColor:   t.Logo.CharmColor,
 		VersionColor: t.Logo.VersionColor,
 		Width:        width,
+		Hyper:        hyper,
 	})
 }

internal/ui/styles/quickstyle.go πŸ”—

@@ -14,119 +14,83 @@ import (
 	"github.com/charmbracelet/x/exp/charmtone"
 )
 
-// quickStyleOpts is the palette of colors used by quickStyle to build a
-// complete Styles value. Each field maps to a semantic role in the UI.
+// quickStyleOpts is the palette of colors used by quickStyle to simplify the
+// process of building a theme.
 type quickStyleOpts struct {
 	// Brand.
 	primary   color.Color
 	secondary color.Color
-	tertiary  color.Color
+	accent    color.Color
+	keyword   color.Color
 
-	// Foregrounds.
-	fgBase      color.Color
-	fgMuted     color.Color
-	fgHalfMuted color.Color
-	fgSubtle    color.Color
+	// Default foreground and background colors.
+	fgBase color.Color
+	bgBase color.Color
+
+	// Low-contrast dividers, separators, and rule lines.
+	separator color.Color
+
+	fgSubtle     color.Color
+	fgMoreSubtle color.Color
+	fgMostSubtle color.Color
 
 	// Contrast pairings: foregrounds designed to sit on top of a
 	// matching background role.
 	onPrimary color.Color // foreground on primary backgrounds.
-	onAccent  color.Color // foreground on saturated status/accent backgrounds.
-
-	// Backgrounds.
-	bgBase        color.Color
-	bgBaseLighter color.Color
-	bgSubtle      color.Color
-	bgOverlay     color.Color
-
-	// Borders.
-	border      color.Color
-	borderFocus color.Color
-
-	// Status.
-	danger        color.Color
-	error         color.Color
-	warning       color.Color
-	warningStrong color.Color
-	busy          color.Color
-	info          color.Color
-	infoSubtle    color.Color
-	infoMuted     color.Color
-	success       color.Color
-	successSubtle color.Color
-	successMuted  color.Color
+
+	bgMostVisible  color.Color
+	bgLessVisible  color.Color
+	bgLeastVisible color.Color
+
+	// Statuses.
+	destructive       color.Color
+	error             color.Color
+	warning           color.Color
+	warningSubtle     color.Color
+	busy              color.Color
+	info              color.Color
+	infoMoreSubtle    color.Color
+	infoMostSubtle    color.Color
+	success           color.Color
+	successMoreSubtle color.Color
+	successMostSubtle color.Color
 }
 
-// quickStyle builds a complete Styles value from a palette of semantic
-// colors. Themes should populate quickStyleOpts and call this rather than
-// re-implementing every style rule.
+// quickStyle builds the default Styles (that is, the default theme, Charmtone
+// Pantera) from a palette of semi-semanticly-named colors.
 //
-// The idea here is that you can do most of the work with quickStyle, then
-// add overrides as needed.
+// The idea here is that you can do most of the work on a theme with quickStyle,
+// then add overrides as needed.
 func quickStyle(o quickStyleOpts) Styles {
 	var (
-		primary   = o.primary
-		secondary = o.secondary
-		tertiary  = o.tertiary
-
-		fgBase      = o.fgBase
-		fgMuted     = o.fgMuted
-		fgHalfMuted = o.fgHalfMuted
-		fgSubtle    = o.fgSubtle
-
-		onPrimary = o.onPrimary
-		onAccent  = o.onAccent
-
-		bgBase        = o.bgBase
-		bgBaseLighter = o.bgBaseLighter
-		bgSubtle      = o.bgSubtle
-		bgOverlay     = o.bgOverlay
-
-		border      = o.border
-		borderFocus = o.borderFocus
-
-		danger        = o.danger
-		error         = o.error
-		warning       = o.warning
-		warningStrong = o.warningStrong
-		busy          = o.busy
-		info          = o.info
-		infoSubtle    = o.infoSubtle
-		infoMuted     = o.infoMuted
-		success       = o.success
-		successSubtle = o.successSubtle
-		successMuted  = o.successMuted
-	)
-
-	var (
-		base   = lipgloss.NewStyle().Foreground(fgBase)
-		muted  = lipgloss.NewStyle().Foreground(fgMuted)
-		subtle = lipgloss.NewStyle().Foreground(fgSubtle)
+		base   = lipgloss.NewStyle().Foreground(o.fgBase)
+		muted  = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+		subtle = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
 		s      Styles
 	)
 
-	s.Background = bgBase
+	s.Background = o.bgBase
 
 	// Populate color fields
-	s.WorkingGradFromColor = primary
-	s.WorkingGradToColor = secondary
-	s.WorkingLabelColor = fgBase
+	s.WorkingGradFromColor = o.primary
+	s.WorkingGradToColor = o.secondary
+	s.WorkingLabelColor = o.fgBase
 
 	s.TextInput = textinput.Styles{
 		Focused: textinput.StyleState{
 			Text:        base,
-			Placeholder: base.Foreground(fgSubtle),
-			Prompt:      base.Foreground(tertiary),
-			Suggestion:  base.Foreground(fgSubtle),
+			Placeholder: base.Foreground(o.fgMostSubtle),
+			Prompt:      base.Foreground(o.accent),
+			Suggestion:  base.Foreground(o.fgMostSubtle),
 		},
 		Blurred: textinput.StyleState{
-			Text:        base.Foreground(fgMuted),
-			Placeholder: base.Foreground(fgSubtle),
-			Prompt:      base.Foreground(fgMuted),
-			Suggestion:  base.Foreground(fgSubtle),
+			Text:        base.Foreground(o.fgMoreSubtle),
+			Placeholder: base.Foreground(o.fgMostSubtle),
+			Prompt:      base.Foreground(o.fgMoreSubtle),
+			Suggestion:  base.Foreground(o.fgMostSubtle),
 		},
 		Cursor: textinput.CursorStyle{
-			Color: secondary,
+			Color: o.secondary,
 			Shape: tea.CursorBlock,
 			Blink: true,
 		},
@@ -136,23 +100,23 @@ func quickStyle(o quickStyleOpts) Styles {
 		Focused: textarea.StyleState{
 			Base:             base,
 			Text:             base,
-			LineNumber:       base.Foreground(fgSubtle),
+			LineNumber:       base.Foreground(o.fgMostSubtle),
 			CursorLine:       base,
-			CursorLineNumber: base.Foreground(fgSubtle),
-			Placeholder:      base.Foreground(fgSubtle),
-			Prompt:           base.Foreground(tertiary),
+			CursorLineNumber: base.Foreground(o.fgMostSubtle),
+			Placeholder:      base.Foreground(o.fgMostSubtle),
+			Prompt:           base.Foreground(o.accent),
 		},
 		Blurred: textarea.StyleState{
 			Base:             base,
-			Text:             base.Foreground(fgMuted),
-			LineNumber:       base.Foreground(fgMuted),
+			Text:             base.Foreground(o.fgMoreSubtle),
+			LineNumber:       base.Foreground(o.fgMoreSubtle),
 			CursorLine:       base,
-			CursorLineNumber: base.Foreground(fgMuted),
-			Placeholder:      base.Foreground(fgSubtle),
-			Prompt:           base.Foreground(fgMuted),
+			CursorLineNumber: base.Foreground(o.fgMoreSubtle),
+			Placeholder:      base.Foreground(o.fgMostSubtle),
+			Prompt:           base.Foreground(o.fgMoreSubtle),
 		},
 		Cursor: textarea.CursorStyle{
-			Color: secondary,
+			Color: o.secondary,
 			Shape: tea.CursorBlock,
 			Blink: true,
 		},
@@ -163,7 +127,7 @@ func quickStyle(o quickStyleOpts) Styles {
 			StylePrimitive: ansi.StylePrimitive{
 				// BlockPrefix: "\n",
 				// BlockSuffix: "\n",
-				Color: hex(fgHalfMuted),
+				Color: hex(o.fgSubtle),
 			},
 			// Margin: new(uint(defaultMargin)),
 		},
@@ -178,7 +142,7 @@ func quickStyle(o quickStyleOpts) Styles {
 		Heading: ansi.StyleBlock{
 			StylePrimitive: ansi.StylePrimitive{
 				BlockSuffix: "\n",
-				Color:       hex(info),
+				Color:       hex(o.info),
 				Bold:        new(true),
 			},
 		},
@@ -186,8 +150,8 @@ func quickStyle(o quickStyleOpts) Styles {
 			StylePrimitive: ansi.StylePrimitive{
 				Prefix:          " ",
 				Suffix:          " ",
-				Color:           hex(warning),
-				BackgroundColor: hex(primary),
+				Color:           hex(o.warningSubtle),
+				BackgroundColor: hex(o.primary),
 				Bold:            new(true),
 			},
 		},
@@ -214,7 +178,7 @@ func quickStyle(o quickStyleOpts) Styles {
 		H6: ansi.StyleBlock{
 			StylePrimitive: ansi.StylePrimitive{
 				Prefix: "###### ",
-				Color:  hex(successMuted),
+				Color:  hex(o.successMostSubtle),
 				Bold:   new(false),
 			},
 		},
@@ -228,7 +192,7 @@ func quickStyle(o quickStyleOpts) Styles {
 			Bold: new(true),
 		},
 		HorizontalRule: ansi.StylePrimitive{
-			Color:  hex(border),
+			Color:  hex(o.separator),
 			Format: "\n--------\n",
 		},
 		Item: ansi.StylePrimitive{
@@ -247,7 +211,7 @@ func quickStyle(o quickStyleOpts) Styles {
 			Underline: new(true),
 		},
 		LinkText: ansi.StylePrimitive{
-			Color: hex(successMuted),
+			Color: hex(o.successMostSubtle),
 			Bold:  new(true),
 		},
 		Image: ansi.StylePrimitive{
@@ -255,40 +219,40 @@ func quickStyle(o quickStyleOpts) Styles {
 			Underline: new(true),
 		},
 		ImageText: ansi.StylePrimitive{
-			Color:  hex(fgMuted),
+			Color:  hex(o.fgMoreSubtle),
 			Format: "Image: {{.text}} β†’",
 		},
 		Code: ansi.StyleBlock{
 			StylePrimitive: ansi.StylePrimitive{
 				Prefix:          " ",
 				Suffix:          " ",
-				Color:           hex(danger),
-				BackgroundColor: hex(bgSubtle),
+				Color:           hex(o.destructive),
+				BackgroundColor: hex(o.bgLessVisible),
 			},
 		},
 		CodeBlock: ansi.StyleCodeBlock{
 			StyleBlock: ansi.StyleBlock{
 				StylePrimitive: ansi.StylePrimitive{
-					Color: hex(bgSubtle),
+					Color: hex(o.bgLessVisible),
 				},
 				Margin: new(uint(defaultMargin)),
 			},
 			Chroma: &ansi.Chroma{
 				Text: ansi.StylePrimitive{
-					Color: hex(fgHalfMuted),
+					Color: hex(o.fgSubtle),
 				},
 				Error: ansi.StylePrimitive{
-					Color:           hex(onAccent),
-					BackgroundColor: hex(error),
+					Color:           hex(o.onPrimary),
+					BackgroundColor: hex(o.error),
 				},
 				Comment: ansi.StylePrimitive{
-					Color: hex(fgSubtle),
+					Color: hex(o.fgMostSubtle),
 				},
 				CommentPreproc: ansi.StylePrimitive{
 					Color: hex(charmtone.Bengal),
 				},
 				Keyword: ansi.StylePrimitive{
-					Color: hex(info),
+					Color: hex(o.info),
 				},
 				KeywordReserved: ansi.StylePrimitive{
 					Color: hex(charmtone.Pony),
@@ -303,10 +267,10 @@ func quickStyle(o quickStyleOpts) Styles {
 					Color: hex(charmtone.Salmon),
 				},
 				Punctuation: ansi.StylePrimitive{
-					Color: hex(warning),
+					Color: hex(o.warningSubtle),
 				},
 				Name: ansi.StylePrimitive{
-					Color: hex(fgHalfMuted),
+					Color: hex(o.fgSubtle),
 				},
 				NameBuiltin: ansi.StylePrimitive{
 					Color: hex(charmtone.Cheeky),
@@ -326,34 +290,34 @@ func quickStyle(o quickStyleOpts) Styles {
 					Color: hex(charmtone.Citron),
 				},
 				NameFunction: ansi.StylePrimitive{
-					Color: hex(successMuted),
+					Color: hex(o.successMostSubtle),
 				},
 				LiteralNumber: ansi.StylePrimitive{
-					Color: hex(success),
+					Color: hex(o.success),
 				},
 				LiteralString: ansi.StylePrimitive{
 					Color: hex(charmtone.Cumin),
 				},
 				LiteralStringEscape: ansi.StylePrimitive{
-					Color: hex(successSubtle),
+					Color: hex(o.successMoreSubtle),
 				},
 				GenericDeleted: ansi.StylePrimitive{
-					Color: hex(danger),
+					Color: hex(o.destructive),
 				},
 				GenericEmph: ansi.StylePrimitive{
 					Italic: new(true),
 				},
 				GenericInserted: ansi.StylePrimitive{
-					Color: hex(successMuted),
+					Color: hex(o.successMostSubtle),
 				},
 				GenericStrong: ansi.StylePrimitive{
 					Bold: new(true),
 				},
 				GenericSubheading: ansi.StylePrimitive{
-					Color: hex(fgMuted),
+					Color: hex(o.fgMoreSubtle),
 				},
 				Background: ansi.StylePrimitive{
-					BackgroundColor: hex(bgSubtle),
+					BackgroundColor: hex(o.bgLessVisible),
 				},
 			},
 		},
@@ -368,8 +332,8 @@ func quickStyle(o quickStyleOpts) Styles {
 	}
 
 	// QuietMarkdown style - muted colors on subtle background for thinking content.
-	plainBg := hex(bgBaseLighter)
-	plainFg := hex(fgMuted)
+	plainBg := hex(o.bgLeastVisible)
+	plainFg := hex(o.fgMoreSubtle)
 	s.QuietMarkdown = ansi.StyleConfig{
 		Document: ansi.StyleBlock{
 			StylePrimitive: ansi.StylePrimitive{
@@ -531,37 +495,37 @@ func quickStyle(o quickStyleOpts) Styles {
 	}
 
 	s.Help = help.Styles{
-		ShortKey:       base.Foreground(fgMuted),
-		ShortDesc:      base.Foreground(fgSubtle),
-		ShortSeparator: base.Foreground(border),
-		Ellipsis:       base.Foreground(border),
-		FullKey:        base.Foreground(fgMuted),
-		FullDesc:       base.Foreground(fgSubtle),
-		FullSeparator:  base.Foreground(border),
+		ShortKey:       base.Foreground(o.fgMoreSubtle),
+		ShortDesc:      base.Foreground(o.fgMostSubtle),
+		ShortSeparator: base.Foreground(o.separator),
+		Ellipsis:       base.Foreground(o.separator),
+		FullKey:        base.Foreground(o.fgMoreSubtle),
+		FullDesc:       base.Foreground(o.fgMostSubtle),
+		FullSeparator:  base.Foreground(o.separator),
 	}
 
 	s.Diff = diffview.Style{
 		DividerLine: diffview.LineStyle{
 			LineNumber: lipgloss.NewStyle().
-				Foreground(fgHalfMuted).
-				Background(bgBaseLighter),
+				Foreground(o.fgSubtle).
+				Background(o.bgLeastVisible),
 			Code: lipgloss.NewStyle().
-				Foreground(fgHalfMuted).
-				Background(bgBaseLighter),
+				Foreground(o.fgSubtle).
+				Background(o.bgLeastVisible),
 		},
 		MissingLine: diffview.LineStyle{
 			LineNumber: lipgloss.NewStyle().
-				Background(bgBaseLighter),
+				Background(o.bgLeastVisible),
 			Code: lipgloss.NewStyle().
-				Background(bgBaseLighter),
+				Background(o.bgLeastVisible),
 		},
 		EqualLine: diffview.LineStyle{
 			LineNumber: lipgloss.NewStyle().
-				Foreground(fgMuted).
-				Background(bgBase),
+				Foreground(o.fgMoreSubtle).
+				Background(o.bgBase),
 			Code: lipgloss.NewStyle().
-				Foreground(fgMuted).
-				Background(bgBase),
+				Foreground(o.fgMoreSubtle).
+				Background(o.bgBase),
 		},
 		InsertLine: diffview.LineStyle{
 			LineNumber: lipgloss.NewStyle().
@@ -585,237 +549,252 @@ func quickStyle(o quickStyleOpts) Styles {
 		},
 		Filename: diffview.LineStyle{
 			LineNumber: lipgloss.NewStyle().
-				Foreground(fgHalfMuted).
-				Background(bgBaseLighter),
+				Foreground(o.fgSubtle).
+				Background(o.bgLeastVisible),
 			Code: lipgloss.NewStyle().
-				Foreground(fgHalfMuted).
-				Background(bgBaseLighter),
+				Foreground(o.fgSubtle).
+				Background(o.bgLeastVisible),
 		},
 	}
 
 	s.FilePicker = filepicker.Styles{
-		DisabledCursor:   base.Foreground(fgMuted),
-		Cursor:           base.Foreground(fgBase),
-		Symlink:          base.Foreground(fgSubtle),
-		Directory:        base.Foreground(primary),
-		File:             base.Foreground(fgBase),
-		DisabledFile:     base.Foreground(fgMuted),
-		DisabledSelected: base.Background(bgOverlay).Foreground(fgMuted),
-		Permission:       base.Foreground(fgMuted),
-		Selected:         base.Background(primary).Foreground(fgBase),
-		FileSize:         base.Foreground(fgMuted),
-		EmptyDirectory:   base.Foreground(fgMuted).PaddingLeft(2).SetString("Empty directory"),
+		DisabledCursor:   base.Foreground(o.fgMoreSubtle),
+		Cursor:           base.Foreground(o.fgBase),
+		Symlink:          base.Foreground(o.fgMostSubtle),
+		Directory:        base.Foreground(o.primary),
+		File:             base.Foreground(o.fgBase),
+		DisabledFile:     base.Foreground(o.fgMoreSubtle),
+		DisabledSelected: base.Background(o.bgMostVisible).Foreground(o.fgMoreSubtle),
+		Permission:       base.Foreground(o.fgMoreSubtle),
+		Selected:         base.Background(o.primary).Foreground(o.fgBase),
+		FileSize:         base.Foreground(o.fgMoreSubtle),
+		EmptyDirectory:   base.Foreground(o.fgMoreSubtle).PaddingLeft(2).SetString("Empty directory"),
 	}
 
 	// borders
-	s.ToolCallSuccess = lipgloss.NewStyle().Foreground(success).SetString(ToolSuccess)
+	s.ToolCallSuccess = lipgloss.NewStyle().Foreground(o.success).SetString(ToolSuccess)
 
-	s.Header.Charm = base.Foreground(secondary)
-	s.Header.Diagonals = base.Foreground(primary)
+	s.Header.Charm = base.Foreground(o.secondary)
+	s.Header.Diagonals = base.Foreground(o.primary)
 	s.Header.Percentage = muted
+	s.Header.Hypercredit = base.Foreground(charmtone.Dolly)
 	s.Header.Keystroke = muted
 	s.Header.KeystrokeTip = subtle
 	s.Header.WorkingDir = muted
 	s.Header.Separator = subtle
-	s.Header.Wrapper = lipgloss.NewStyle().Foreground(fgBase)
+	s.Header.Wrapper = lipgloss.NewStyle().Foreground(o.fgBase)
 	s.Header.LogoGradCanvas = lipgloss.NewStyle()
-	s.Header.LogoGradFromColor = secondary
-	s.Header.LogoGradToColor = primary
+	s.Header.LogoGradFromColor = o.secondary
+	s.Header.LogoGradToColor = o.primary
 
 	s.CompactDetails.Title = base
-	s.CompactDetails.View = base.Padding(0, 1, 1, 1).Border(lipgloss.RoundedBorder()).BorderForeground(borderFocus)
-	s.CompactDetails.Version = lipgloss.NewStyle().Foreground(border)
+	s.CompactDetails.View = base.Padding(0, 1, 1, 1).Border(lipgloss.RoundedBorder()).BorderForeground(o.primary)
+	s.CompactDetails.Version = lipgloss.NewStyle().Foreground(o.separator)
 
 	// Tool rendering styles
-	s.Tool.IconPending = base.Foreground(successMuted).SetString(ToolPending)
-	s.Tool.IconSuccess = base.Foreground(success).SetString(ToolSuccess)
-	s.Tool.IconError = base.Foreground(error).SetString(ToolError)
+	s.Tool.IconPending = base.Foreground(o.successMostSubtle).SetString(ToolPending)
+	s.Tool.IconSuccess = base.Foreground(o.success).SetString(ToolSuccess)
+	s.Tool.IconError = base.Foreground(o.error).SetString(ToolError)
 	s.Tool.IconCancelled = muted.SetString(ToolPending)
 
-	s.Tool.NameNormal = base.Foreground(info)
-	s.Tool.NameNested = base.Foreground(info)
+	s.Tool.NameNormal = base.Foreground(o.info)
+	s.Tool.NameNested = base.Foreground(o.info)
 
 	s.Tool.ParamMain = subtle
 	s.Tool.ParamKey = subtle
 
 	// Content rendering - prepared styles that accept width parameter
-	s.Tool.ContentLine = muted.Background(bgBaseLighter)
-	s.Tool.ContentTruncation = muted.Background(bgBaseLighter)
-	s.Tool.ContentCodeLine = base.Background(bgBase).PaddingLeft(2)
-	s.Tool.ContentCodeTruncation = muted.Background(bgBase).PaddingLeft(2)
-	s.Tool.ContentCodeBg = bgBase
+	s.Tool.ContentLine = muted.Background(o.bgLeastVisible)
+	s.Tool.ContentTruncation = muted.Background(o.bgLeastVisible)
+	s.Tool.ContentCodeLine = base.Background(o.bgBase).PaddingLeft(2)
+	s.Tool.ContentCodeTruncation = muted.Background(o.bgBase).PaddingLeft(2)
+	s.Tool.ContentCodeBg = o.bgBase
 	s.Tool.Body = base.PaddingLeft(2)
 
 	// Deprecated - kept for backward compatibility
-	s.Tool.ContentBg = muted.Background(bgBaseLighter)
+	s.Tool.ContentBg = muted.Background(o.bgLeastVisible)
 	s.Tool.ContentText = muted
-	s.Tool.ContentLineNumber = base.Foreground(fgMuted).Background(bgBase).PaddingRight(1).PaddingLeft(1)
+	s.Tool.ContentLineNumber = base.Foreground(o.fgMoreSubtle).Background(o.bgBase).PaddingRight(1).PaddingLeft(1)
 
-	s.Tool.StateWaiting = base.Foreground(fgSubtle)
-	s.Tool.StateCancelled = base.Foreground(fgSubtle)
+	s.Tool.StateWaiting = base.Foreground(o.fgMostSubtle)
+	s.Tool.StateCancelled = base.Foreground(o.fgMostSubtle)
 
-	s.Tool.ErrorTag = base.Padding(0, 1).Background(danger).Foreground(onAccent)
-	s.Tool.ErrorMessage = base.Foreground(fgHalfMuted)
+	s.Tool.ErrorTag = base.Padding(0, 1).Background(o.destructive).Foreground(o.onPrimary)
+	s.Tool.ErrorMessage = base.Foreground(o.fgSubtle)
 
 	// Diff and multi-edit styles
-	s.Tool.DiffTruncation = muted.Background(bgBaseLighter).PaddingLeft(2)
-	s.Tool.NoteTag = base.Padding(0, 1).Background(info).Foreground(onAccent)
-	s.Tool.NoteMessage = base.Foreground(fgHalfMuted)
+	s.Tool.DiffTruncation = muted.Background(o.bgLeastVisible).PaddingLeft(2)
+	s.Tool.NoteTag = base.Padding(0, 1).Background(o.info).Foreground(o.onPrimary)
+	s.Tool.NoteMessage = base.Foreground(o.fgSubtle)
 
 	// Job header styles
-	s.Tool.JobIconPending = base.Foreground(successMuted)
-	s.Tool.JobIconError = base.Foreground(error)
-	s.Tool.JobIconSuccess = base.Foreground(success)
-	s.Tool.JobToolName = base.Foreground(info)
-	s.Tool.JobAction = base.Foreground(infoMuted)
+	s.Tool.JobIconPending = base.Foreground(o.successMostSubtle)
+	s.Tool.JobIconError = base.Foreground(o.error)
+	s.Tool.JobIconSuccess = base.Foreground(o.success)
+	s.Tool.JobToolName = base.Foreground(o.info)
+	s.Tool.JobAction = base.Foreground(o.infoMostSubtle)
 	s.Tool.JobPID = muted
 	s.Tool.JobDescription = subtle
 
 	// Agent task styles
-	s.Tool.AgentTaskTag = base.Bold(true).Padding(0, 1).MarginLeft(2).Background(infoSubtle).Foreground(onAccent)
+	s.Tool.AgentTaskTag = base.Bold(true).Padding(0, 1).MarginLeft(2).Background(o.infoMoreSubtle).Foreground(o.onPrimary)
 	s.Tool.AgentPrompt = muted
 
 	// Agentic fetch styles
-	s.Tool.AgenticFetchPromptTag = base.Bold(true).Padding(0, 1).MarginLeft(2).Background(success).Foreground(border)
+	s.Tool.AgenticFetchPromptTag = base.Bold(true).Padding(0, 1).MarginLeft(2).Background(o.success).Foreground(o.separator)
 
 	// Todo styles
-	s.Tool.TodoRatio = base.Foreground(infoMuted)
-	s.Tool.TodoCompletedIcon = base.Foreground(success)
-	s.Tool.TodoInProgressIcon = base.Foreground(successMuted)
-	s.Tool.TodoPendingIcon = base.Foreground(fgMuted)
-	s.Tool.TodoStatusNote = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.Tool.TodoItem = lipgloss.NewStyle().Foreground(fgBase)
-	s.Tool.TodoJustStarted = lipgloss.NewStyle().Foreground(fgBase)
+	s.Tool.TodoRatio = base.Foreground(o.infoMostSubtle)
+	s.Tool.TodoCompletedIcon = base.Foreground(o.success)
+	s.Tool.TodoInProgressIcon = base.Foreground(o.successMostSubtle)
+	s.Tool.TodoPendingIcon = base.Foreground(o.fgMoreSubtle)
+	s.Tool.TodoStatusNote = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.Tool.TodoItem = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.Tool.TodoJustStarted = lipgloss.NewStyle().Foreground(o.fgBase)
 
 	// MCP styles
-	s.Tool.MCPName = base.Foreground(info)
-	s.Tool.MCPToolName = base.Foreground(infoMuted)
-	s.Tool.MCPArrow = base.Foreground(info).SetString(ArrowRightIcon)
+	s.Tool.MCPName = base.Foreground(o.info)
+	s.Tool.MCPToolName = base.Foreground(o.infoMostSubtle)
+	s.Tool.MCPArrow = base.Foreground(o.info).SetString(ArrowRightIcon)
 
 	// Loading indicators for images, skills
-	s.Tool.ResourceLoadedText = base.Foreground(success)
-	s.Tool.ResourceLoadedIndicator = base.Foreground(successMuted)
+	s.Tool.ResourceLoadedText = base.Foreground(o.success)
+	s.Tool.ResourceLoadedIndicator = base.Foreground(o.successMostSubtle)
 	s.Tool.ResourceName = base
 	s.Tool.MediaType = base
-	s.Tool.ResourceSize = base.Foreground(fgMuted)
+	s.Tool.ResourceSize = base.Foreground(o.fgMoreSubtle)
+
+	// Hook styles
+	s.Tool.HookLabel = base.Foreground(o.successMoreSubtle)
+	s.Tool.HookName = base
+	s.Tool.HookMatcher = base.Foreground(o.fgMoreSubtle)
+	s.Tool.HookArrow = base.Foreground(o.successMoreSubtle)
+	s.Tool.HookDetail = base.Foreground(o.fgMoreSubtle)
+	s.Tool.HookOK = base.Foreground(o.successMostSubtle)
+	s.Tool.HookDenied = base.Foreground(o.error)
+	s.Tool.HookDeniedLabel = base.Foreground(o.destructive)
+	s.Tool.HookDeniedReason = base.Foreground(o.bgMostVisible)
+	s.Tool.HookRewrote = base.Foreground(o.bgMostVisible)
 
 	// Tool-call action verbs and result-list styling.
-	s.Tool.ActionCreate = lipgloss.NewStyle().Foreground(successSubtle)
-	s.Tool.ActionDestroy = lipgloss.NewStyle().Foreground(danger)
-	s.Tool.ResultEmpty = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.Tool.ResultTruncation = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.Tool.ResultItemName = lipgloss.NewStyle().Foreground(fgBase)
-	s.Tool.ResultItemDesc = lipgloss.NewStyle().Foreground(fgSubtle)
+	s.Tool.ActionCreate = lipgloss.NewStyle().Foreground(o.successMoreSubtle)
+	s.Tool.ActionDestroy = lipgloss.NewStyle().Foreground(o.destructive)
+	s.Tool.ResultEmpty = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.Tool.ResultTruncation = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.Tool.ResultItemName = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.Tool.ResultItemDesc = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
 
 	// Buttons
-	s.Button.Focused = lipgloss.NewStyle().Foreground(onAccent).Background(secondary)
-	s.Button.Blurred = lipgloss.NewStyle().Foreground(fgBase).Background(bgSubtle)
+	s.Button.Focused = lipgloss.NewStyle().Foreground(o.onPrimary).Background(o.secondary)
+	s.Button.Blurred = lipgloss.NewStyle().Foreground(o.fgBase).Background(o.bgLessVisible)
 
 	// Editor
-	s.Editor.PromptNormalFocused = lipgloss.NewStyle().Foreground(successMuted).SetString("::: ")
-	s.Editor.PromptNormalBlurred = s.Editor.PromptNormalFocused.Foreground(fgMuted)
-	s.Editor.PromptYoloIconFocused = lipgloss.NewStyle().MarginRight(1).Foreground(fgSubtle).Background(busy).Bold(true).SetString(" ! ")
-	s.Editor.PromptYoloIconBlurred = s.Editor.PromptYoloIconFocused.Foreground(bgBase).Background(fgMuted)
-	s.Editor.PromptYoloDotsFocused = lipgloss.NewStyle().MarginRight(1).Foreground(warning).SetString(":::")
-	s.Editor.PromptYoloDotsBlurred = s.Editor.PromptYoloDotsFocused.Foreground(fgMuted)
+	s.Editor.PromptNormalFocused = lipgloss.NewStyle().Foreground(o.successMostSubtle).SetString("::: ")
+	s.Editor.PromptNormalBlurred = s.Editor.PromptNormalFocused.Foreground(o.fgMoreSubtle)
+	s.Editor.PromptYoloIconFocused = lipgloss.NewStyle().MarginRight(1).Foreground(o.fgMostSubtle).Background(o.busy).Bold(true).SetString(" ! ")
+	s.Editor.PromptYoloIconBlurred = s.Editor.PromptYoloIconFocused.Foreground(o.bgBase).Background(o.fgMoreSubtle)
+	s.Editor.PromptYoloDotsFocused = lipgloss.NewStyle().MarginRight(1).Foreground(o.warningSubtle).SetString(":::")
+	s.Editor.PromptYoloDotsBlurred = s.Editor.PromptYoloDotsFocused.Foreground(o.fgMoreSubtle)
 
-	s.Radio.On = lipgloss.NewStyle().Foreground(fgHalfMuted).SetString(RadioOn)
-	s.Radio.Off = lipgloss.NewStyle().Foreground(fgHalfMuted).SetString(RadioOff)
-	s.Radio.Label = lipgloss.NewStyle().Foreground(fgHalfMuted)
+	s.Radio.On = lipgloss.NewStyle().Foreground(o.fgSubtle).SetString(RadioOn)
+	s.Radio.Off = lipgloss.NewStyle().Foreground(o.fgSubtle).SetString(RadioOff)
+	s.Radio.Label = lipgloss.NewStyle().Foreground(o.fgSubtle)
 
 	// Logo
-	s.Logo.FieldColor = primary
-	s.Logo.TitleColorA = secondary
-	s.Logo.TitleColorB = primary
-	s.Logo.CharmColor = secondary
-	s.Logo.VersionColor = primary
-	s.Logo.SmallCharm = lipgloss.NewStyle().Foreground(secondary)
-	s.Logo.SmallDiagonals = lipgloss.NewStyle().Foreground(primary)
+	s.Logo.FieldColor = o.primary
+	s.Logo.TitleColorA = o.secondary
+	s.Logo.TitleColorB = o.primary
+	s.Logo.CharmColor = o.secondary
+	s.Logo.VersionColor = o.primary
+	s.Logo.SmallCharm = lipgloss.NewStyle().Foreground(o.secondary)
+	s.Logo.SmallDiagonals = lipgloss.NewStyle().Foreground(o.primary)
 	s.Logo.GradCanvas = lipgloss.NewStyle()
-	s.Logo.SmallGradFromColor = secondary
-	s.Logo.SmallGradToColor = primary
+	s.Logo.SmallGradFromColor = o.secondary
+	s.Logo.SmallGradToColor = o.primary
 
 	// Section
 	s.Section.Title = subtle
-	s.Section.Line = base.Foreground(border)
+	s.Section.Line = base.Foreground(o.separator)
 
 	// Initialize
 	s.Initialize.Header = base
 	s.Initialize.Content = muted
-	s.Initialize.Accent = base.Foreground(successMuted)
+	s.Initialize.Accent = base.Foreground(o.successMostSubtle)
 
 	// ResourceGroup (LSP/MCP/skills sidebar lists).
-	s.Resource.Heading = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.Resource.Name = lipgloss.NewStyle().Foreground(fgMuted)
-	s.Resource.StatusText = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.Resource.OfflineIcon = lipgloss.NewStyle().Foreground(bgOverlay).SetString("●")
-	s.Resource.BusyIcon = s.Resource.OfflineIcon.Foreground(busy)
-	s.Resource.ErrorIcon = s.Resource.OfflineIcon.Foreground(danger)
-	s.Resource.OnlineIcon = s.Resource.OfflineIcon.Foreground(successMuted)
-	s.Resource.DisabledIcon = lipgloss.NewStyle().Foreground(fgMuted).SetString("●")
-	s.Resource.AdditionalText = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.Resource.CapabilityCount = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.Resource.RowTitleBase = lipgloss.NewStyle().Foreground(fgBase)
-	s.Resource.RowDescBase = lipgloss.NewStyle().Foreground(fgBase)
-	s.Resource.DefaultTitleFg = fgMuted
-	s.Resource.DefaultDescFg = fgSubtle
+	s.Resource.Heading = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.Resource.Name = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+	s.Resource.StatusText = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.Resource.OfflineIcon = lipgloss.NewStyle().Foreground(o.bgMostVisible).SetString("●")
+	s.Resource.BusyIcon = s.Resource.OfflineIcon.Foreground(o.busy)
+	s.Resource.ErrorIcon = s.Resource.OfflineIcon.Foreground(o.destructive)
+	s.Resource.OnlineIcon = s.Resource.OfflineIcon.Foreground(o.successMostSubtle)
+	s.Resource.DisabledIcon = lipgloss.NewStyle().Foreground(o.fgMoreSubtle).SetString("●")
+	s.Resource.AdditionalText = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.Resource.CapabilityCount = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.Resource.RowTitleBase = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.Resource.RowDescBase = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.Resource.DefaultTitleFg = o.fgMoreSubtle
+	s.Resource.DefaultDescFg = o.fgMostSubtle
 
 	// LSP
-	s.LSP.ErrorDiagnostic = base.Foreground(error)
-	s.LSP.WarningDiagnostic = base.Foreground(warning)
-	s.LSP.HintDiagnostic = base.Foreground(fgHalfMuted)
-	s.LSP.InfoDiagnostic = base.Foreground(info)
+	s.LSP.ErrorDiagnostic = base.Foreground(o.error)
+	s.LSP.WarningDiagnostic = base.Foreground(o.warningSubtle)
+	s.LSP.HintDiagnostic = base.Foreground(o.fgSubtle)
+	s.LSP.InfoDiagnostic = base.Foreground(o.info)
 
 	// Files
-	s.Files.Path = lipgloss.NewStyle().Foreground(fgMuted)
-	s.Files.Additions = lipgloss.NewStyle().Foreground(successMuted)
-	s.Files.Deletions = lipgloss.NewStyle().Foreground(error)
-	s.Files.SectionTitle = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.Files.EmptyMessage = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.Files.TruncationHint = lipgloss.NewStyle().Foreground(fgSubtle)
+	s.Files.Path = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+	s.Files.Additions = lipgloss.NewStyle().Foreground(o.successMostSubtle)
+	s.Files.Deletions = lipgloss.NewStyle().Foreground(o.error)
+	s.Files.SectionTitle = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.Files.EmptyMessage = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.Files.TruncationHint = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
 
 	// Sidebar
-	s.Sidebar.SessionTitle = lipgloss.NewStyle().Foreground(fgMuted)
-	s.Sidebar.WorkingDir = lipgloss.NewStyle().Foreground(fgMuted)
+	s.Sidebar.SessionTitle = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+	s.Sidebar.WorkingDir = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
 
 	// ModelInfo
-	s.ModelInfo.Icon = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.ModelInfo.Name = lipgloss.NewStyle().Foreground(fgBase)
-	s.ModelInfo.Provider = lipgloss.NewStyle().Foreground(fgMuted)
-	s.ModelInfo.ProviderFallback = lipgloss.NewStyle().Foreground(fgMuted).PaddingLeft(2)
-	s.ModelInfo.Reasoning = lipgloss.NewStyle().Foreground(fgSubtle).PaddingLeft(2)
-	s.ModelInfo.TokenCount = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.ModelInfo.TokenPercentage = lipgloss.NewStyle().Foreground(fgMuted)
-	s.ModelInfo.Cost = lipgloss.NewStyle().Foreground(fgMuted)
+	s.ModelInfo.Icon = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.ModelInfo.Name = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.ModelInfo.Provider = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+	s.ModelInfo.ProviderFallback = lipgloss.NewStyle().Foreground(o.fgMoreSubtle).PaddingLeft(2)
+	s.ModelInfo.Reasoning = lipgloss.NewStyle().Foreground(o.fgMostSubtle).PaddingLeft(2)
+	s.ModelInfo.TokenCount = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.ModelInfo.TokenPercentage = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+	s.ModelInfo.Cost = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+	s.ModelInfo.HypercreditIcon = lipgloss.NewStyle().Foreground(charmtone.Dolly)
+	s.ModelInfo.HypercreditText = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
 
 	// ResourceGroup
-	s.Resource.DefaultTitleFg = fgMuted
-	s.Resource.DefaultDescFg = fgSubtle
+	s.Resource.DefaultTitleFg = o.fgMoreSubtle
+	s.Resource.DefaultDescFg = o.fgMostSubtle
 
 	// Chat
 	messageFocussedBorder := lipgloss.Border{
 		Left: "β–Œ",
 	}
 
-	s.Messages.NoContent = lipgloss.NewStyle().Foreground(fgBase)
+	s.Messages.NoContent = lipgloss.NewStyle().Foreground(o.fgBase)
 	s.Messages.UserBlurred = s.Messages.NoContent.PaddingLeft(1).BorderLeft(true).
-		BorderForeground(primary).BorderStyle(lipgloss.NormalBorder())
+		BorderForeground(o.primary).BorderStyle(lipgloss.NormalBorder())
 	s.Messages.UserFocused = s.Messages.NoContent.PaddingLeft(1).BorderLeft(true).
-		BorderForeground(primary).BorderStyle(messageFocussedBorder)
+		BorderForeground(o.primary).BorderStyle(messageFocussedBorder)
 	s.Messages.AssistantBlurred = s.Messages.NoContent.PaddingLeft(2)
 	s.Messages.AssistantFocused = s.Messages.NoContent.PaddingLeft(1).BorderLeft(true).
-		BorderForeground(successMuted).BorderStyle(messageFocussedBorder)
+		BorderForeground(o.successMostSubtle).BorderStyle(messageFocussedBorder)
 	s.Messages.Thinking = lipgloss.NewStyle().MaxHeight(10)
 	s.Messages.ErrorTag = lipgloss.NewStyle().Padding(0, 1).
-		Background(danger).Foreground(onAccent)
-	s.Messages.ErrorTitle = lipgloss.NewStyle().Foreground(fgHalfMuted)
-	s.Messages.ErrorDetails = lipgloss.NewStyle().Foreground(fgSubtle)
+		Background(o.destructive).Foreground(o.onPrimary)
+	s.Messages.ErrorTitle = lipgloss.NewStyle().Foreground(o.fgSubtle)
+	s.Messages.ErrorDetails = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
 
 	// Message item styles
 	s.Messages.ToolCallFocused = muted.PaddingLeft(1).
 		BorderStyle(messageFocussedBorder).
 		BorderLeft(true).
-		BorderForeground(successMuted)
+		BorderForeground(o.successMostSubtle)
 	s.Messages.ToolCallBlurred = muted.PaddingLeft(2)
 	// No padding or border for compact tool calls within messages
 	s.Messages.ToolCallCompact = muted
@@ -824,144 +803,144 @@ func quickStyle(o quickStyleOpts) Styles {
 	s.Messages.AssistantInfoModel = muted
 	s.Messages.AssistantInfoProvider = subtle
 	s.Messages.AssistantInfoDuration = subtle
-	s.Messages.AssistantCanceled = lipgloss.NewStyle().Foreground(fgBase).Italic(true)
+	s.Messages.AssistantCanceled = lipgloss.NewStyle().Foreground(o.fgBase).Italic(true)
 
 	// Thinking section styles
-	s.Messages.ThinkingBox = subtle.Background(bgBaseLighter)
+	s.Messages.ThinkingBox = subtle.Background(o.bgLeastVisible)
 	s.Messages.ThinkingTruncationHint = muted
 	s.Messages.ThinkingFooterTitle = muted
 	s.Messages.ThinkingFooterDuration = subtle
 
 	// Text selection.
-	s.TextSelection = lipgloss.NewStyle().Foreground(onPrimary).Background(primary)
+	s.TextSelection = lipgloss.NewStyle().Foreground(o.onPrimary).Background(o.primary)
 
 	// Dialog styles
-	s.Dialog.Title = base.Padding(0, 1).Foreground(primary)
-	s.Dialog.TitleText = base.Foreground(primary)
-	s.Dialog.TitleError = base.Foreground(danger)
-	s.Dialog.TitleAccent = base.Foreground(success).Bold(true)
+	s.Dialog.Title = base.Padding(0, 1).Foreground(o.primary)
+	s.Dialog.TitleText = base.Foreground(o.primary)
+	s.Dialog.TitleError = base.Foreground(o.destructive)
+	s.Dialog.TitleAccent = base.Foreground(o.success).Bold(true)
 	s.Dialog.TitleLineBase = lipgloss.NewStyle()
-	s.Dialog.TitleGradFromColor = primary
-	s.Dialog.TitleGradToColor = secondary
+	s.Dialog.TitleGradFromColor = o.primary
+	s.Dialog.TitleGradToColor = o.secondary
 
 	// Dialog.ListItem (commands, reasoning, models)
-	s.Dialog.ListItem.InfoBlurred = lipgloss.NewStyle().Foreground(fgBase)
-	s.Dialog.ListItem.InfoFocused = lipgloss.NewStyle().Foreground(fgBase)
+	s.Dialog.ListItem.InfoBlurred = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.Dialog.ListItem.InfoFocused = lipgloss.NewStyle().Foreground(o.fgBase)
 
 	// Dialog.Models
-	s.Dialog.Models.ConfiguredText = lipgloss.NewStyle().Foreground(fgSubtle)
+	s.Dialog.Models.ConfiguredText = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
 
 	// Dialog.Permissions
-	s.Dialog.Permissions.KeyText = lipgloss.NewStyle().Foreground(fgMuted)
-	s.Dialog.Permissions.ValueText = lipgloss.NewStyle().Foreground(fgBase)
-	s.Dialog.Permissions.ParamsBg = bgSubtle
+	s.Dialog.Permissions.KeyText = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+	s.Dialog.Permissions.ValueText = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.Dialog.Permissions.ParamsBg = o.bgLessVisible
 
 	// Dialog.Quit
-	s.Dialog.Quit.Content = lipgloss.NewStyle().Foreground(fgBase)
-	s.Dialog.Quit.Frame = lipgloss.NewStyle().BorderForeground(borderFocus).Border(lipgloss.RoundedBorder()).Padding(1, 2)
-	s.Dialog.View = base.Border(lipgloss.RoundedBorder()).BorderForeground(borderFocus)
-	s.Dialog.PrimaryText = base.Padding(0, 1).Foreground(primary)
-	s.Dialog.SecondaryText = base.Padding(0, 1).Foreground(fgSubtle)
+	s.Dialog.Quit.Content = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.Dialog.Quit.Frame = lipgloss.NewStyle().BorderForeground(o.primary).Border(lipgloss.RoundedBorder()).Padding(1, 2)
+	s.Dialog.View = base.Border(lipgloss.RoundedBorder()).BorderForeground(o.primary)
+	s.Dialog.PrimaryText = base.Padding(0, 1).Foreground(o.primary)
+	s.Dialog.SecondaryText = base.Padding(0, 1).Foreground(o.fgMostSubtle)
 	s.Dialog.HelpView = base.Padding(0, 1).AlignHorizontal(lipgloss.Left)
-	s.Dialog.Help.ShortKey = base.Foreground(fgMuted)
-	s.Dialog.Help.ShortDesc = base.Foreground(fgSubtle)
-	s.Dialog.Help.ShortSeparator = base.Foreground(border)
-	s.Dialog.Help.Ellipsis = base.Foreground(border)
-	s.Dialog.Help.FullKey = base.Foreground(fgMuted)
-	s.Dialog.Help.FullDesc = base.Foreground(fgSubtle)
-	s.Dialog.Help.FullSeparator = base.Foreground(border)
-	s.Dialog.NormalItem = base.Padding(0, 1).Foreground(fgBase)
-	s.Dialog.SelectedItem = base.Padding(0, 1).Background(primary).Foreground(fgBase)
+	s.Dialog.Help.ShortKey = base.Foreground(o.fgMoreSubtle)
+	s.Dialog.Help.ShortDesc = base.Foreground(o.fgMostSubtle)
+	s.Dialog.Help.ShortSeparator = base.Foreground(o.separator)
+	s.Dialog.Help.Ellipsis = base.Foreground(o.separator)
+	s.Dialog.Help.FullKey = base.Foreground(o.fgMoreSubtle)
+	s.Dialog.Help.FullDesc = base.Foreground(o.fgMostSubtle)
+	s.Dialog.Help.FullSeparator = base.Foreground(o.separator)
+	s.Dialog.NormalItem = base.Padding(0, 1).Foreground(o.fgBase)
+	s.Dialog.SelectedItem = base.Padding(0, 1).Background(o.primary).Foreground(o.onPrimary)
 	s.Dialog.InputPrompt = base.Margin(1, 1)
 
 	s.Dialog.List = base.Margin(0, 0, 1, 0)
-	s.Dialog.ContentPanel = base.Background(bgSubtle).Foreground(fgBase).Padding(1, 2)
-	s.Dialog.Spinner = base.Foreground(secondary)
-	s.Dialog.ScrollbarThumb = base.Foreground(secondary)
-	s.Dialog.ScrollbarTrack = base.Foreground(border)
+	s.Dialog.ContentPanel = base.Background(o.bgLessVisible).Foreground(o.fgBase).Padding(1, 2)
+	s.Dialog.Spinner = base.Foreground(o.secondary)
+	s.Dialog.ScrollbarThumb = base.Foreground(o.secondary)
+	s.Dialog.ScrollbarTrack = base.Foreground(o.separator)
 
-	s.Dialog.ImagePreview = lipgloss.NewStyle().Padding(0, 1).Foreground(fgSubtle)
+	s.Dialog.ImagePreview = lipgloss.NewStyle().Padding(0, 1).Foreground(o.fgMostSubtle)
 
 	// API key input dialog
-	s.Dialog.APIKey.Spinner = base.Foreground(success)
+	s.Dialog.APIKey.Spinner = base.Foreground(o.success)
 
 	// OAuth dialog
-	s.Dialog.OAuth.Spinner = base.Foreground(successSubtle)
-	s.Dialog.OAuth.Instructions = lipgloss.NewStyle().Foreground(onAccent)
-	s.Dialog.OAuth.UserCode = lipgloss.NewStyle().Bold(true).Foreground(onAccent)
-	s.Dialog.OAuth.Success = lipgloss.NewStyle().Foreground(successSubtle)
-	s.Dialog.OAuth.Link = lipgloss.NewStyle().Foreground(successMuted).Underline(true)
-	s.Dialog.OAuth.Enter = lipgloss.NewStyle().Foreground(primary)
-	s.Dialog.OAuth.ErrorText = lipgloss.NewStyle().Foreground(error)
-	s.Dialog.OAuth.StatusText = lipgloss.NewStyle().Foreground(fgMuted)
-	s.Dialog.OAuth.UserCodeBg = bgBaseLighter
+	s.Dialog.OAuth.Spinner = base.Foreground(o.successMoreSubtle)
+	s.Dialog.OAuth.Instructions = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.Dialog.OAuth.UserCode = lipgloss.NewStyle().Bold(true).Foreground(o.fgBase)
+	s.Dialog.OAuth.Success = lipgloss.NewStyle().Foreground(o.successMoreSubtle)
+	s.Dialog.OAuth.Link = lipgloss.NewStyle().Foreground(o.successMostSubtle).Underline(true)
+	s.Dialog.OAuth.Enter = lipgloss.NewStyle().Foreground(o.keyword)
+	s.Dialog.OAuth.ErrorText = lipgloss.NewStyle().Foreground(o.error)
+	s.Dialog.OAuth.StatusText = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+	s.Dialog.OAuth.UserCodeBg = o.bgLeastVisible
 
 	s.Dialog.Arguments.Content = base.Padding(1)
 	s.Dialog.Arguments.Description = base.MarginBottom(1).MaxHeight(3)
-	s.Dialog.Arguments.InputLabelBlurred = base.Foreground(fgMuted)
+	s.Dialog.Arguments.InputLabelBlurred = base.Foreground(o.fgMoreSubtle)
 	s.Dialog.Arguments.InputLabelFocused = base.Bold(true)
-	s.Dialog.Arguments.InputRequiredMarkBlurred = base.Foreground(fgMuted).SetString("*")
-	s.Dialog.Arguments.InputRequiredMarkFocused = base.Foreground(primary).Bold(true).SetString("*")
+	s.Dialog.Arguments.InputRequiredMarkBlurred = base.Foreground(o.fgMoreSubtle).SetString("*")
+	s.Dialog.Arguments.InputRequiredMarkFocused = base.Foreground(o.primary).Bold(true).SetString("*")
 
-	s.Dialog.Sessions.DeletingTitle = s.Dialog.Title.Foreground(danger)
-	s.Dialog.Sessions.DeletingView = s.Dialog.View.BorderForeground(danger)
+	s.Dialog.Sessions.DeletingTitle = s.Dialog.Title.Foreground(o.destructive)
+	s.Dialog.Sessions.DeletingView = s.Dialog.View.BorderForeground(o.destructive)
 	s.Dialog.Sessions.DeletingMessage = base.Padding(1)
-	s.Dialog.Sessions.DeletingTitleGradientFromColor = danger
-	s.Dialog.Sessions.DeletingTitleGradientToColor = primary
-	s.Dialog.Sessions.DeletingItemBlurred = s.Dialog.NormalItem.Foreground(fgSubtle)
-	s.Dialog.Sessions.DeletingItemFocused = s.Dialog.SelectedItem.Background(danger).Foreground(onAccent)
+	s.Dialog.Sessions.DeletingTitleGradientFromColor = o.destructive
+	s.Dialog.Sessions.DeletingTitleGradientToColor = o.primary
+	s.Dialog.Sessions.DeletingItemBlurred = s.Dialog.NormalItem.Foreground(o.fgMostSubtle)
+	s.Dialog.Sessions.DeletingItemFocused = s.Dialog.SelectedItem.Background(o.destructive).Foreground(o.onPrimary)
 
-	s.Dialog.Sessions.RenamingingTitle = s.Dialog.Title.Foreground(warning)
-	s.Dialog.Sessions.RenamingView = s.Dialog.View.BorderForeground(warning)
+	s.Dialog.Sessions.RenamingingTitle = s.Dialog.Title.Foreground(o.warningSubtle)
+	s.Dialog.Sessions.RenamingView = s.Dialog.View.BorderForeground(o.warningSubtle)
 	s.Dialog.Sessions.RenamingingMessage = base.Padding(1)
-	s.Dialog.Sessions.RenamingTitleGradientFromColor = warning
-	s.Dialog.Sessions.RenamingTitleGradientToColor = tertiary
-	s.Dialog.Sessions.RenamingItemBlurred = s.Dialog.NormalItem.Foreground(fgSubtle)
+	s.Dialog.Sessions.RenamingTitleGradientFromColor = o.warningSubtle
+	s.Dialog.Sessions.RenamingTitleGradientToColor = o.accent
+	s.Dialog.Sessions.RenamingItemBlurred = s.Dialog.NormalItem.Foreground(o.fgMostSubtle)
 	s.Dialog.Sessions.RenamingingItemFocused = s.Dialog.SelectedItem.UnsetBackground().UnsetForeground()
-	s.Dialog.Sessions.RenamingPlaceholder = base.Foreground(fgMuted)
-	s.Dialog.Sessions.InfoBlurred = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.Dialog.Sessions.InfoFocused = lipgloss.NewStyle().Foreground(fgBase)
+	s.Dialog.Sessions.RenamingPlaceholder = base.Foreground(o.fgMoreSubtle)
+	s.Dialog.Sessions.InfoBlurred = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.Dialog.Sessions.InfoFocused = lipgloss.NewStyle().Foreground(o.fgBase)
 
 	s.Status.Help = lipgloss.NewStyle().Padding(0, 1)
-	s.Status.SuccessIndicator = base.Foreground(bgSubtle).Background(success).Padding(0, 1).Bold(true).SetString("OKAY!")
+	s.Status.SuccessIndicator = base.Foreground(o.bgLessVisible).Background(o.success).Padding(0, 1).Bold(true).SetString("OKAY!")
 	s.Status.InfoIndicator = s.Status.SuccessIndicator
 	s.Status.UpdateIndicator = s.Status.SuccessIndicator.SetString("HEY!")
-	s.Status.WarnIndicator = s.Status.SuccessIndicator.Foreground(bgOverlay).Background(warningStrong).SetString("WARNING")
-	s.Status.ErrorIndicator = s.Status.SuccessIndicator.Foreground(bgBase).Background(danger).SetString("ERROR")
-	s.Status.SuccessMessage = base.Foreground(bgSubtle).Background(successMuted).Padding(0, 1)
+	s.Status.WarnIndicator = s.Status.SuccessIndicator.Foreground(o.bgMostVisible).Background(o.warning).SetString("WARNING")
+	s.Status.ErrorIndicator = s.Status.SuccessIndicator.Foreground(o.bgBase).Background(o.destructive).SetString("ERROR")
+	s.Status.SuccessMessage = base.Foreground(o.bgLessVisible).Background(o.successMostSubtle).Padding(0, 1)
 	s.Status.InfoMessage = s.Status.SuccessMessage
 	s.Status.UpdateMessage = s.Status.SuccessMessage
-	s.Status.WarnMessage = s.Status.SuccessMessage.Foreground(bgOverlay).Background(warning)
-	s.Status.ErrorMessage = s.Status.SuccessMessage.Foreground(onAccent).Background(error)
+	s.Status.WarnMessage = s.Status.SuccessMessage.Foreground(o.bgMostVisible).Background(o.warningSubtle)
+	s.Status.ErrorMessage = s.Status.SuccessMessage.Foreground(o.onPrimary).Background(o.error)
 
 	// Completions styles
-	s.Completions.Normal = base.Background(bgSubtle).Foreground(fgBase)
-	s.Completions.Focused = base.Background(primary).Foreground(onAccent)
+	s.Completions.Normal = base.Background(o.bgLessVisible).Foreground(o.fgBase)
+	s.Completions.Focused = base.Background(o.primary).Foreground(o.onPrimary)
 	s.Completions.Match = base.Underline(true)
 
 	// Attachments styles
-	attachmentIconStyle := base.Foreground(bgSubtle).Background(success).Padding(0, 1)
+	attachmentIconStyle := base.Foreground(o.bgLessVisible).Background(o.success).Padding(0, 1)
 	s.Attachments.Image = attachmentIconStyle.SetString(ImageIcon)
 	s.Attachments.Text = attachmentIconStyle.SetString(TextIcon)
-	s.Attachments.Normal = base.Padding(0, 1).MarginRight(1).Background(fgMuted).Foreground(fgBase)
-	s.Attachments.Deleting = base.Padding(0, 1).Bold(true).Background(danger).Foreground(fgBase)
+	s.Attachments.Normal = base.Padding(0, 1).MarginRight(1).Background(o.fgMoreSubtle).Foreground(o.fgBase)
+	s.Attachments.Deleting = base.Padding(0, 1).Bold(true).Background(o.destructive).Foreground(o.fgBase)
 
 	// Pills styles
 	s.Pills.Base = base.Padding(0, 1)
-	s.Pills.Focused = base.Padding(0, 1).BorderStyle(lipgloss.RoundedBorder()).BorderForeground(bgOverlay)
+	s.Pills.Focused = base.Padding(0, 1).BorderStyle(lipgloss.RoundedBorder()).BorderForeground(o.bgMostVisible)
 	s.Pills.Blurred = base.Padding(0, 1).BorderStyle(lipgloss.HiddenBorder())
-	s.Pills.QueueItemPrefix = lipgloss.NewStyle().Foreground(fgMuted).SetString("  β€’")
-	s.Pills.QueueItemText = lipgloss.NewStyle().Foreground(fgMuted)
-	s.Pills.QueueLabel = lipgloss.NewStyle().Foreground(fgBase)
-	s.Pills.QueueIconBase = lipgloss.NewStyle().Foreground(fgBase)
-	s.Pills.QueueGradFromColor = error
-	s.Pills.QueueGradToColor = secondary
-	s.Pills.TodoLabel = lipgloss.NewStyle().Foreground(fgBase)
-	s.Pills.TodoProgress = lipgloss.NewStyle().Foreground(fgMuted)
-	s.Pills.TodoCurrentTask = lipgloss.NewStyle().Foreground(fgSubtle)
-	s.Pills.TodoSpinner = lipgloss.NewStyle().Foreground(successMuted)
-	s.Pills.HelpKey = lipgloss.NewStyle().Foreground(fgMuted)
-	s.Pills.HelpText = lipgloss.NewStyle().Foreground(fgSubtle)
+	s.Pills.QueueItemPrefix = lipgloss.NewStyle().Foreground(o.fgMoreSubtle).SetString("  β€’")
+	s.Pills.QueueItemText = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+	s.Pills.QueueLabel = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.Pills.QueueIconBase = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.Pills.QueueGradFromColor = o.error
+	s.Pills.QueueGradToColor = o.secondary
+	s.Pills.TodoLabel = lipgloss.NewStyle().Foreground(o.fgBase)
+	s.Pills.TodoProgress = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+	s.Pills.TodoCurrentTask = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
+	s.Pills.TodoSpinner = lipgloss.NewStyle().Foreground(o.successMostSubtle)
+	s.Pills.HelpKey = lipgloss.NewStyle().Foreground(o.fgMoreSubtle)
+	s.Pills.HelpText = lipgloss.NewStyle().Foreground(o.fgMostSubtle)
 	s.Pills.Area = base
 
 	return s

internal/ui/styles/styles.go πŸ”—

@@ -17,10 +17,11 @@ import (
 )
 
 const (
-	CheckIcon   string = "βœ“"
-	SpinnerIcon string = "β‹―"
-	LoadingIcon string = "⟳"
-	ModelIcon   string = "β—‡"
+	CheckIcon       string = "βœ“"
+	SpinnerIcon     string = "β‹―"
+	LoadingIcon     string = "⟳"
+	ModelIcon       string = "β—‡"
+	HypercreditIcon string = "β—†"
 
 	ArrowRightIcon string = "β†’"
 
@@ -63,6 +64,7 @@ type Styles struct {
 		Charm             lipgloss.Style // Style for "Charmβ„’" label
 		Diagonals         lipgloss.Style // Style for diagonal separators (β•±)
 		Percentage        lipgloss.Style // Style for context percentage
+		Hypercredit       lipgloss.Style // Style for Hypercredit count (β—† N)
 		Keystroke         lipgloss.Style // Style for keystroke hints (e.g., "ctrl+d")
 		KeystrokeTip      lipgloss.Style // Style for keystroke action text (e.g., "open", "close")
 		WorkingDir        lipgloss.Style // Style for current working directory
@@ -189,6 +191,8 @@ type Styles struct {
 		TokenCount       lipgloss.Style // "(42K)" token count
 		TokenPercentage  lipgloss.Style // "42%" percent of context window
 		Cost             lipgloss.Style // "$0.42" cost readout
+		HypercreditIcon  lipgloss.Style // Hypercredit icon (β—†)
+		HypercreditText  lipgloss.Style // Remaining Hypercredits text
 	}
 
 	// Resource styles the LSP/MCP/skills sidebar lists: their heading,

internal/ui/styles/themes.go πŸ”—

@@ -2,40 +2,86 @@ package styles
 
 import "github.com/charmbracelet/x/exp/charmtone"
 
+// ThemeForProvider returns the Styles associated with the given provider
+// ID. Unknown or empty provider IDs yield the default Charmtone Pantera
+// theme.
+func ThemeForProvider(providerID string) Styles {
+	switch providerID {
+	case "hyper":
+		return HypercrushObsidiana()
+	default:
+		return CharmtonePantera()
+	}
+}
+
 // CharmtonePantera returns the Charmtone dark theme. It's the default style
 // for the UI.
 func CharmtonePantera() Styles {
 	return quickStyle(quickStyleOpts{
 		primary:   charmtone.Charple,
 		secondary: charmtone.Dolly,
-		tertiary:  charmtone.Bok,
-
-		fgBase:      charmtone.Ash,
-		fgMuted:     charmtone.Squid,
-		fgHalfMuted: charmtone.Smoke,
-		fgSubtle:    charmtone.Oyster,
-
-		onPrimary: charmtone.Salt,
-		onAccent:  charmtone.Butter,
-
-		bgBase:        charmtone.Pepper,
-		bgBaseLighter: charmtone.BBQ,
-		bgSubtle:      charmtone.Charcoal,
-		bgOverlay:     charmtone.Iron,
-
-		border:      charmtone.Charcoal,
-		borderFocus: charmtone.Charple,
-
-		danger:        charmtone.Coral,
-		error:         charmtone.Sriracha,
-		warning:       charmtone.Zest,
-		warningStrong: charmtone.Mustard,
-		busy:          charmtone.Citron,
-		info:          charmtone.Malibu,
-		infoSubtle:    charmtone.Sardine,
-		infoMuted:     charmtone.Damson,
-		success:       charmtone.Julep,
-		successSubtle: charmtone.Bok,
-		successMuted:  charmtone.Guac,
+		accent:    charmtone.Bok,
+		keyword:   charmtone.Blush,
+
+		fgBase:       charmtone.Ash,
+		fgMoreSubtle: charmtone.Squid,
+		fgSubtle:     charmtone.Smoke,
+		fgMostSubtle: charmtone.Oyster,
+
+		onPrimary: charmtone.Butter,
+
+		bgBase:         charmtone.Pepper,
+		bgLeastVisible: charmtone.BBQ,
+		bgLessVisible:  charmtone.Charcoal,
+		bgMostVisible:  charmtone.Iron,
+
+		separator: charmtone.Charcoal,
+
+		destructive:       charmtone.Coral,
+		error:             charmtone.Sriracha,
+		warningSubtle:     charmtone.Zest,
+		warning:           charmtone.Mustard,
+		busy:              charmtone.Citron,
+		info:              charmtone.Malibu,
+		infoMoreSubtle:    charmtone.Sardine,
+		infoMostSubtle:    charmtone.Damson,
+		success:           charmtone.Julep,
+		successMoreSubtle: charmtone.Bok,
+		successMostSubtle: charmtone.Guac,
+	})
+}
+
+// HypercrushObsidiana returns the Hypercrush dark theme.
+func HypercrushObsidiana() Styles {
+	return quickStyle(quickStyleOpts{
+		primary:   charmtone.Charple,
+		secondary: charmtone.Dolly,
+		accent:    charmtone.Bok,
+
+		fgBase:       charmtone.Ash,
+		fgMoreSubtle: charmtone.Squid,
+		fgSubtle:     charmtone.Smoke,
+		fgMostSubtle: charmtone.Oyster,
+
+		onPrimary: charmtone.Butter,
+
+		bgBase:         charmtone.Pepper,
+		bgLeastVisible: charmtone.BBQ,
+		bgLessVisible:  charmtone.Charcoal,
+		bgMostVisible:  charmtone.Iron,
+
+		separator: charmtone.Charcoal,
+
+		destructive:       charmtone.Coral,
+		error:             charmtone.Sriracha,
+		warningSubtle:     charmtone.Zest,
+		warning:           charmtone.Mustard,
+		busy:              charmtone.Citron,
+		info:              charmtone.Malibu,
+		infoMoreSubtle:    charmtone.Sardine,
+		infoMostSubtle:    charmtone.Damson,
+		success:           charmtone.Julep,
+		successMoreSubtle: charmtone.Bok,
+		successMostSubtle: charmtone.Guac,
 	})
 }

schema.json πŸ”—

@@ -102,10 +102,7 @@
         }
       },
       "additionalProperties": false,
-      "type": "object",
-      "required": [
-        "tools"
-      ]
+      "type": "object"
     },
     "HookConfig": {
       "properties": {
@@ -354,8 +351,7 @@
         "context_window",
         "default_max_tokens",
         "can_reason",
-        "supports_attachments",
-        "options"
+        "supports_attachments"
       ]
     },
     "ModelOptions": {
@@ -708,10 +704,7 @@
         }
       },
       "additionalProperties": false,
-      "type": "object",
-      "required": [
-        "completions"
-      ]
+      "type": "object"
     },
     "Token": {
       "properties": {
@@ -779,11 +772,7 @@
         }
       },
       "additionalProperties": false,
-      "type": "object",
-      "required": [
-        "ls",
-        "grep"
-      ]
+      "type": "object"
     }
   }
 }