.envrc π
@@ -0,0 +1 @@
+use flake
Kieran Klukas created
.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(-)
@@ -0,0 +1 @@
+use flake
@@ -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
}
]
}
@@ -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 }}
@@ -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
@@ -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
@@ -42,6 +42,9 @@ Thumbs.db
.env
.env.local
+# Nix/direnv
+.direnv/
+
**/.crush/**
/crush
@@ -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`
@@ -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
@@ -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
+}
@@ -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
+ '';
+ };
+ }
+ );
+}
@@ -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
)
@@ -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=
@@ -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
@@ -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
+}
@@ -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
}
]
}
@@ -2,6 +2,104 @@
version: 2
interactions:
- id: 0
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 33682
+ host: ""
@@ -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: ""
@@ -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: ""
@@ -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: ""
@@ -2,6 +2,86 @@
version: 2
interactions:
- id: 0
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 33641
+ host: ""
@@ -2,6 +2,46 @@
version: 2
interactions:
- id: 0
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 33635
+ host: ""
@@ -2,6 +2,114 @@
version: 2
interactions:
- id: 0
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 33721
+ host: ""
@@ -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: ""
@@ -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: ""
@@ -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: ""
@@ -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}'
@@ -2,6 +2,108 @@
version: 2
interactions:
- id: 0
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 33661
+ host: ""
@@ -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: ""
@@ -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
@@ -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
@@ -53,7 +53,7 @@ type ViewResponseMetadata struct {
const (
ViewToolName = "view"
- MaxViewSize = 100 * 1024 // 100KB
+ MaxViewSize = 200 * 1024 // 200KB
DefaultReadLimit = 2000
MaxLineLength = 2000
)
@@ -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
@@ -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(),
- }
+ })
}
@@ -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()
}
@@ -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.
@@ -1,5 +1,4 @@
//go:build !windows
-// +build !windows
package client
@@ -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)
@@ -1,5 +1,4 @@
//go:build !windows
-// +build !windows
package cmd
@@ -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 {
@@ -1,5 +1,4 @@
//go:build !windows
-// +build !windows
package cmd
@@ -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
@@ -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
@@ -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)
}
}
}
@@ -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")
@@ -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)
+}
@@ -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
@@ -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)
+}
@@ -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)
@@ -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)
@@ -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 {
@@ -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) {
@@ -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
@@ -1,5 +1,4 @@
//go:build !windows
-// +build !windows
package server
@@ -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
}
@@ -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
}
@@ -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
@@ -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
}
@@ -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 {
@@ -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 {
@@ -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{}
+}
@@ -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
@@ -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!")
@@ -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))
@@ -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)
@@ -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"))
@@ -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,
@@ -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
@@ -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,
})
}
@@ -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
@@ -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,
@@ -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,
})
}
@@ -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"
}
}
}