Expected thinking or redacted_thinking, but found tool_use #2032

Closed
opened 2026-02-16 17:33:50 -05:00 by yindo · 16 comments
Owner

Originally created by @jessevdp on GitHub (Oct 10, 2025).

Originally assigned to: @thdxr on GitHub.

Related: https://github.com/sst/opencode/issues/2599

AI_APICallError: litellm.BadRequestError: BedrockException
The model returned the following errors: messages.3.content.0.type: Expected thinking or redacted_thinking, but found tool_use. When thinking is enabled, a final assistant message must start with a thinking block (preceeding the lastmost set of tool_use and tool_result blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable thinking. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking

A session share link where this error happened: https://opencode.ai/s/iDe3unHA

My config

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "my-litellm-provider": {
      "name": "My LiteLLM Provider",
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "https://my-provider.com",
        "apiKey": "...",
        "includeUsage": true
      },
      "models": {
        "claude-4-5-sonnet": {
          "name": "Anthropic Claude Sonnet 4.5",
          "release_date": "2025-09-29",
          "attachment": true,
          "reasoning": true,
          "temperature": true,
          "tool_call": true,
          "limit": {
            "context": 200000,
            "output": 64000
          },
          "options": {
            "thinking": {
              "type": "enabled",
              "budget_tokens": 16000,
            },
          }
        },
      }
    }
  }
}

Originally created by @jessevdp on GitHub (Oct 10, 2025). Originally assigned to: @thdxr on GitHub. Related: https://github.com/sst/opencode/issues/2599 > AI_APICallError: litellm.BadRequestError: BedrockException > The model returned the following errors: messages.3.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking **A session share link where this error happened:** https://opencode.ai/s/iDe3unHA <details><summary>My config</summary> <p> ```json { "$schema": "https://opencode.ai/config.json", "provider": { "my-litellm-provider": { "name": "My LiteLLM Provider", "npm": "@ai-sdk/openai-compatible", "options": { "baseURL": "https://my-provider.com", "apiKey": "...", "includeUsage": true }, "models": { "claude-4-5-sonnet": { "name": "Anthropic Claude Sonnet 4.5", "release_date": "2025-09-29", "attachment": true, "reasoning": true, "temperature": true, "tool_call": true, "limit": { "context": 200000, "output": 64000 }, "options": { "thinking": { "type": "enabled", "budget_tokens": 16000, }, } }, } } } } ``` </p> </details> <img src="https://github.com/user-attachments/assets/0f0d7c5c-af21-46c6-bf6b-bc7823af680f" />
yindo closed this issue 2026-02-16 17:33:50 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Oct 10, 2025):

This issue might be a duplicate of existing issues. Please check:

  • #2599: [bug] v0.8.0 Introduced thinking block bug with Claude Sonnet 4 - Reports the exact same error message about "Expected thinking or redacted_thinking, but found text" when using thinking blocks with tool calls
  • #2915: LiteLLM error: Anthropic doesn't support tool calling without tools= param specified - Similar LiteLLM configuration issues with Anthropic models and tool calling
  • #2038: Bedrock Exception: name: Extra inputs are not permitted - Another LiteLLM/Bedrock configuration issue where extra parameters cause API errors

Feel free to ignore if none of these address your specific case.

@github-actions[bot] commented on GitHub (Oct 10, 2025): This issue might be a duplicate of existing issues. Please check: - #2599: [bug] v0.8.0 Introduced thinking block bug with Claude Sonnet 4 - Reports the exact same error message about "Expected `thinking` or `redacted_thinking`, but found `text`" when using thinking blocks with tool calls - #2915: LiteLLM error: Anthropic doesn't support tool calling without tools= param specified - Similar LiteLLM configuration issues with Anthropic models and tool calling - #2038: Bedrock Exception: name: Extra inputs are not permitted - Another LiteLLM/Bedrock configuration issue where extra parameters cause API errors Feel free to ignore if none of these address your specific case.
Author
Owner

@jessevdp commented on GitHub (Oct 10, 2025):

I was able to get the payload of the last request sent that resulted in this error:

HTTP log implementation

On dev branch on 28d617d867 I changed:

diff --git a/packages/opencode/src/flag/flag.ts b/packages/opencode/src/flag/flag.ts
index 0437c4c6..ec7c76e1 100644
--- a/packages/opencode/src/flag/flag.ts
+++ b/packages/opencode/src/flag/flag.ts
@@ -9,6 +9,7 @@ export namespace Flag {
   export const OPENCODE_DISABLE_LSP_DOWNLOAD = truthy("OPENCODE_DISABLE_LSP_DOWNLOAD")
   export const OPENCODE_ENABLE_EXPERIMENTAL_MODELS = truthy("OPENCODE_ENABLE_EXPERIMENTAL_MODELS")
   export const OPENCODE_DISABLE_AUTOCOMPACT = truthy("OPENCODE_DISABLE_AUTOCOMPACT")
+  export const OPENCODE_HTTP_LOG = truthy("OPENCODE_HTTP_LOG")
 
   // Experimental
   export const OPENCODE_EXPERIMENTAL_WATCHER = truthy("OPENCODE_EXPERIMENTAL_WATCHER")
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index e0fe4be2..f6cf158e 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -393,10 +393,36 @@ export namespace Provider {
       const modPath =
         provider.id === "google-vertex-anthropic" ? `${installedPath}/dist/anthropic/index.mjs` : installedPath
       const mod = await import(modPath)
-      if (options["timeout"] !== undefined) {
-        // Only override fetch if user explicitly sets timeout
+      const timeout = options["timeout"]
+      const httpLog = Flag.OPENCODE_HTTP_LOG
+      if (timeout !== undefined || httpLog) {
+        const originalFetch = options["fetch"] ?? fetch
         options["fetch"] = async (input: any, init?: any) => {
-          return await fetch(input, { ...init, timeout: options["timeout"] })
+          const requestTime = Date.now()
+          if (httpLog) {
+            log.info("http request", {
+              providerID: provider.id,
+              url: typeof input === "string" ? input : input?.url,
+              method: init?.method ?? "POST",
+              headers: init?.headers,
+              body: init?.body,
+            })
+          }
+          const response = await originalFetch(input, timeout !== undefined ? { ...init, timeout } : init)
+          if (httpLog) {
+            const duration = Date.now() - requestTime
+            const clonedResponse = response.clone()
+            const body = await clonedResponse.text().catch(() => "[failed to read body]")
+            log.info("http response", {
+              providerID: provider.id,
+              status: response.status,
+              statusText: response.statusText,
+              headers: Object.fromEntries(response.headers.entries()),
+              body,
+              duration,
+            })
+          }
+          return response
         }
       }
       const fn = mod[Object.keys(mod).find((key) => key.startsWith("create"))!]

HTTP request body

{
  "model": "claude-4-5-sonnet",
  "max_tokens": 32000,
  "temperature": 1,
  "thinking": {
    "type": "enabled",
    "budget_tokens": 16000
  },
  "messages": [
    {
      "role": "system",
      "content": "...",
      "cache_control": {
        "type": "ephemeral"
      }
    },
    {
      "role": "system",
      "content": "...",
      "cache_control": {
        "type": "ephemeral"
      }
    },
    {
      "role": "user",
      "content": "Think of a shell commands to run and run it."
    },
    {
      "role": "assistant",
      "content": "",
      "tool_calls": [
        {
          "id": "tooluse_DjCcbaRbTQuSqZ_EYPjtDw",
          "type": "function",
          "function": {
            "name": "bash",
            "arguments": "{\"command\":\"git branch --show-current\",\"description\":\"Show current git branch\"}"
          },
          "cache_control": {
            "type": "ephemeral"
          }
        }
      ]
    },
    {
      "role": "tool",
      "tool_call_id": "tooluse_DjCcbaRbTQuSqZ_EYPjtDw",
      "content": "dev\n",
      "cache_control": {
        "type": "ephemeral"
      }
    }
  ],
  "tools": [
    // ...
  ],
  "tool_choice": "auto",
  "stream": true,
  "stream_options": {
    "include_usage": true
  }
}

@jessevdp commented on GitHub (Oct 10, 2025): I was able to get the payload of the last request sent that resulted in this error: <details><summary>HTTP log implementation</summary> <p> On `dev` branch on 28d617d867cf4797dd13b9806fa1ee0a327dfbe4 I changed: ```patch diff --git a/packages/opencode/src/flag/flag.ts b/packages/opencode/src/flag/flag.ts index 0437c4c6..ec7c76e1 100644 --- a/packages/opencode/src/flag/flag.ts +++ b/packages/opencode/src/flag/flag.ts @@ -9,6 +9,7 @@ export namespace Flag { export const OPENCODE_DISABLE_LSP_DOWNLOAD = truthy("OPENCODE_DISABLE_LSP_DOWNLOAD") export const OPENCODE_ENABLE_EXPERIMENTAL_MODELS = truthy("OPENCODE_ENABLE_EXPERIMENTAL_MODELS") export const OPENCODE_DISABLE_AUTOCOMPACT = truthy("OPENCODE_DISABLE_AUTOCOMPACT") + export const OPENCODE_HTTP_LOG = truthy("OPENCODE_HTTP_LOG") // Experimental export const OPENCODE_EXPERIMENTAL_WATCHER = truthy("OPENCODE_EXPERIMENTAL_WATCHER") diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index e0fe4be2..f6cf158e 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -393,10 +393,36 @@ export namespace Provider { const modPath = provider.id === "google-vertex-anthropic" ? `${installedPath}/dist/anthropic/index.mjs` : installedPath const mod = await import(modPath) - if (options["timeout"] !== undefined) { - // Only override fetch if user explicitly sets timeout + const timeout = options["timeout"] + const httpLog = Flag.OPENCODE_HTTP_LOG + if (timeout !== undefined || httpLog) { + const originalFetch = options["fetch"] ?? fetch options["fetch"] = async (input: any, init?: any) => { - return await fetch(input, { ...init, timeout: options["timeout"] }) + const requestTime = Date.now() + if (httpLog) { + log.info("http request", { + providerID: provider.id, + url: typeof input === "string" ? input : input?.url, + method: init?.method ?? "POST", + headers: init?.headers, + body: init?.body, + }) + } + const response = await originalFetch(input, timeout !== undefined ? { ...init, timeout } : init) + if (httpLog) { + const duration = Date.now() - requestTime + const clonedResponse = response.clone() + const body = await clonedResponse.text().catch(() => "[failed to read body]") + log.info("http response", { + providerID: provider.id, + status: response.status, + statusText: response.statusText, + headers: Object.fromEntries(response.headers.entries()), + body, + duration, + }) + } + return response } } const fn = mod[Object.keys(mod).find((key) => key.startsWith("create"))!] ``` </p> </details> <details><summary>HTTP request body</summary> <p> ```jsonc { "model": "claude-4-5-sonnet", "max_tokens": 32000, "temperature": 1, "thinking": { "type": "enabled", "budget_tokens": 16000 }, "messages": [ { "role": "system", "content": "...", "cache_control": { "type": "ephemeral" } }, { "role": "system", "content": "...", "cache_control": { "type": "ephemeral" } }, { "role": "user", "content": "Think of a shell commands to run and run it." }, { "role": "assistant", "content": "", "tool_calls": [ { "id": "tooluse_DjCcbaRbTQuSqZ_EYPjtDw", "type": "function", "function": { "name": "bash", "arguments": "{\"command\":\"git branch --show-current\",\"description\":\"Show current git branch\"}" }, "cache_control": { "type": "ephemeral" } } ] }, { "role": "tool", "tool_call_id": "tooluse_DjCcbaRbTQuSqZ_EYPjtDw", "content": "dev\n", "cache_control": { "type": "ephemeral" } } ], "tools": [ // ... ], "tool_choice": "auto", "stream": true, "stream_options": { "include_usage": true } } ``` </p> </details>
Author
Owner

@rekram1-node commented on GitHub (Oct 10, 2025):

does litellm proxy all the reasoning data? There is metadata missing from the reasoning chunk that is probably related:

        {
          "id": "prt_9ce7d0f2a001hbMeUIiVLauU1R",
          "sessionID": "ses_631830520ffeKAg0mziDe3unHA",
          "messageID": "msg_9ce7cfae5001QdLuZKqdf2ko95",
          "type": "reasoning",
          "text": "The user is asking me to think of 5 different shell commands and run them. This is a straightforward task. I should pick some common, useful shell commands that won't cause any harm and will provide interesting information about the system.\n\nLet me think of 5 different commands:\n1. `pwd` - print working directory\n2. `date` - show current date and time\n3. `uname -a` - show system information\n4. `whoami` - show current user\n5. `echo $SHELL` - show the current shell\n\nThese are all safe, read-only commands that will give useful information. I should run them all in parallel since they're independent.\n\nAccording to the instructions, I should be concise and direct. I don't need to explain much unless it's a non-trivial command. These are all trivial commands, so I should just run them.",
          "time": {
            "start": 1760105926442,
            "end": 1760105929703
          }
        },

Example of what I'd expect tto see there:

{
          .....
          "metadata": {
            "anthropic": {
              "signature": "EpoFCkYICBgCKkCbTfCLXzhDRXz6OqIdv7M/TW5uqwOam/XJcmdXqpUSmQ7Excsa2jhPPKV3vOMtPn4WYeH5MOplnsO3ltSuFdEcEgxZ+toRK8yaQEzcUX8aDH6cE85hDM7VHR12riIwRAG91rGHahBxIsZDUqUy6iDiZAa88iY7zu62L4mwIiDCrSzK661IRhfyFuhIXzbEKoEEinnwzJMwUuF/DesP99dLdNbmxlrlEivqS0glCmIuIqIjV5PqGymNJmMfE20EPnoZ0u6hRzR7ecIv8bVMIycJ8X5aLaRNyimEyI6SMmbCV4qIbNAfm74wV2cUvLMZ3HR6Deb3O3PcN/4A9HVF4iPDxKSUwXMtn/JWvLQSF4SzHjrL8Rr1wFmUDGLb++uL7fAeG8Q/bO05pWiSxzl4n/FKKt5oEiGTeKZhjd7MpKviCHJfMN05nCkPatUff2uUoLqUpHShSuGoJZDYjOOIpUL5FQHktZR16Pa6EoKGVDUH7iKBHx4XV+BDAHxUJUkVd8JIbCeGzyer9kiWr0F5iBqMMNV0XG6yt1RzSeP6mko0r3CFFdvTRl9BA02AXVMDQhintL7pujWZwh2INyZToz/BfFSM/HR/U1JtrEkZI+etUCcV8UanVFtwpjLSBSf9CGlXmeadG+7noa8VKVLJCxkMyvWzH40HjXwULXgknGgxIvTg48pKoiXp3dQ7adwbk0fCUm8/j/RmOMCDMNHNiB3yOGShWHo8W/OcwNc8GH9aCPbecC+wk4H5XqqahSqpClRtxp7IMKbVo54+gn5QbvjWXcYo9B/1x7Efw78Z6tmzyKN/tyGezQCoWIHjPAY/0jphJ2HNYE3rm5Goyc/4uu3Vg+StjPe4LSX+RK3KSnmXvPbtGAE="
            }
          },
         .....
@rekram1-node commented on GitHub (Oct 10, 2025): does litellm proxy all the reasoning data? There is metadata missing from the reasoning chunk that is probably related: ``` { "id": "prt_9ce7d0f2a001hbMeUIiVLauU1R", "sessionID": "ses_631830520ffeKAg0mziDe3unHA", "messageID": "msg_9ce7cfae5001QdLuZKqdf2ko95", "type": "reasoning", "text": "The user is asking me to think of 5 different shell commands and run them. This is a straightforward task. I should pick some common, useful shell commands that won't cause any harm and will provide interesting information about the system.\n\nLet me think of 5 different commands:\n1. `pwd` - print working directory\n2. `date` - show current date and time\n3. `uname -a` - show system information\n4. `whoami` - show current user\n5. `echo $SHELL` - show the current shell\n\nThese are all safe, read-only commands that will give useful information. I should run them all in parallel since they're independent.\n\nAccording to the instructions, I should be concise and direct. I don't need to explain much unless it's a non-trivial command. These are all trivial commands, so I should just run them.", "time": { "start": 1760105926442, "end": 1760105929703 } }, ``` Example of what I'd expect tto see there: ``` { ..... "metadata": { "anthropic": { "signature": "EpoFCkYICBgCKkCbTfCLXzhDRXz6OqIdv7M/TW5uqwOam/XJcmdXqpUSmQ7Excsa2jhPPKV3vOMtPn4WYeH5MOplnsO3ltSuFdEcEgxZ+toRK8yaQEzcUX8aDH6cE85hDM7VHR12riIwRAG91rGHahBxIsZDUqUy6iDiZAa88iY7zu62L4mwIiDCrSzK661IRhfyFuhIXzbEKoEEinnwzJMwUuF/DesP99dLdNbmxlrlEivqS0glCmIuIqIjV5PqGymNJmMfE20EPnoZ0u6hRzR7ecIv8bVMIycJ8X5aLaRNyimEyI6SMmbCV4qIbNAfm74wV2cUvLMZ3HR6Deb3O3PcN/4A9HVF4iPDxKSUwXMtn/JWvLQSF4SzHjrL8Rr1wFmUDGLb++uL7fAeG8Q/bO05pWiSxzl4n/FKKt5oEiGTeKZhjd7MpKviCHJfMN05nCkPatUff2uUoLqUpHShSuGoJZDYjOOIpUL5FQHktZR16Pa6EoKGVDUH7iKBHx4XV+BDAHxUJUkVd8JIbCeGzyer9kiWr0F5iBqMMNV0XG6yt1RzSeP6mko0r3CFFdvTRl9BA02AXVMDQhintL7pujWZwh2INyZToz/BfFSM/HR/U1JtrEkZI+etUCcV8UanVFtwpjLSBSf9CGlXmeadG+7noa8VKVLJCxkMyvWzH40HjXwULXgknGgxIvTg48pKoiXp3dQ7adwbk0fCUm8/j/RmOMCDMNHNiB3yOGShWHo8W/OcwNc8GH9aCPbecC+wk4H5XqqahSqpClRtxp7IMKbVo54+gn5QbvjWXcYo9B/1x7Efw78Z6tmzyKN/tyGezQCoWIHjPAY/0jphJ2HNYE3rm5Goyc/4uu3Vg+StjPe4LSX+RK3KSnmXvPbtGAE=" } }, ..... ```
Author
Owner

@jessevdp commented on GitHub (Oct 10, 2025):

full log with HTTP requests & responses

INFO  2025-10-10T14:51:21 +3ms service=provider providerID=my-lite-llm-provider url=https://my-litellm-host.com/chat/completions method=POST body={"model":"gemini-2.5-flash","max_tokens":1500,"messages":[{"role":"system","content":"..."},{"role":"user","content":"Think of 5 different shell commands to run and run them."}]} http request
INFO  2025-10-10T14:51:21 +0ms service=provider providerID=my-lite-llm-provider url=https://my-litellm-host.com/chat/completions method=POST body={"model":"claude-4-5-sonnet","max_tokens":32000,"temperature":1,"thinking":{"type":"enabled","budget_tokens":16000},"messages":[{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"user","content":"Think of 5 different shell commands to run and run them.","cache_control":{"type":"ephemeral"}}],"tools":[...],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}} http request
INFO  2025-10-10T14:51:22 +38ms service=provider providerID=my-lite-llm-provider status=200 statusText=OK headers={"connection":"keep-alive","content-length":"584","content-type":"application/json","date":"Fri, 10 Oct 2025 14:51:22 GMT","server":"uvicorn","x-litellm-attempted-fallbacks":"0","x-litellm-attempted-retries":"0","x-litellm-call-id":"6dc5948f-ebf3-4e90-9c8f-7e83c921374b","x-litellm-key-spend":"32.07764145000002","x-litellm-model-group":"gemini-2.5-flash","x-litellm-model-id":"bee511aa55363cd0f2f94431fea34fab0d936909c167dd0a707c348797734d4d","x-litellm-response-cost":"0.00038869999999999996","x-litellm-version":"1.77.5"} body={"id":"ah3paJbAAa7-kbwP2dbhkAY","created":1760107881,"model":"gemini-2.5-flash","object":"chat.completion","choices":[{"finish_reason":"stop","index":0,"message":{"content":"Running 5 different shell commands","role":"assistant","images":[],"thinking_blocks":[]}}],"usage":{"completion_tokens":131,"prompt_tokens":204,"total_tokens":335,"completion_tokens_details":{"reasoning_tokens":125,"text_tokens":6},"prompt_tokens_details":{"text_tokens":204}},"vertex_ai_grounding_metadata":[],"vertex_ai_url_context_metadata":[],"vertex_ai_safety_results":[],"vertex_ai_citation_metadata":[]} duration=1038 http response
INFO  2025-10-10T14:51:28 +23ms service=provider providerID=my-lite-llm-provider status=200 statusText=OK headers={"connection":"keep-alive","content-type":"text/event-stream; charset=utf-8","date":"Fri, 10 Oct 2025 14:51:24 GMT","server":"uvicorn","transfer-encoding":"chunked","x-litellm-call-id":"25058b06-6a16-4647-9ed1-e9799923ae5e","x-litellm-key-spend":"32.07764145000002","x-litellm-model-api-base":"https://bedrock-runtime.eu-central-1.amazonaws.com/model/eu.anthropic.claude-sonnet-4-5-20250929-v1%3A0/converse-stream","x-litellm-model-id":"b13a5f4ec04005c9b991a3723cfa44a8e388fda30c782189d08741a1dbb3472d","x-litellm-version":"1.77.5"} body=data: {"id":"chatcmpl-23e24dd9-100c-4133-b90c-3a783141e274","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"The user wants me","thinking_blocks":[{"type":"thinking","thinking":"The user wants me"}],"provider_specific_fields":{"reasoningContent":{"text":"The user wants me"}},"content":"","role":"assistant"}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-dff732ad-3440-40d6-bcf1-e7015398cedd","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" to think of 5 different shell","thinking_blocks":[{"type":"thinking","thinking":" to think of 5 different shell"}],"provider_specific_fields":{"reasoningContent":{"text":" to think of 5 different shell"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-e6cd65f5-e4ae-4920-b6cd-f41a42e8a141","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" commands to","thinking_blocks":[{"type":"thinking","thinking":" commands to"}],"provider_specific_fields":{"reasoningContent":{"text":" commands to"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-3621fcc5-3cd4-4e6a-bb76-fd179f2682e6","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" run an","thinking_blocks":[{"type":"thinking","thinking":" run an"}],"provider_specific_fields":{"reasoningContent":{"text":" run an"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-39f0e62e-19f5-4125-9bad-613a696dfd00","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"d execute","thinking_blocks":[{"type":"thinking","thinking":"d execute"}],"provider_specific_fields":{"reasoningContent":{"text":"d execute"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-5fa2e734-ed30-476c-9602-b8c6ca7bc6b2","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" them. I should pick","thinking_blocks":[{"type":"thinking","thinking":" them. I should pick"}],"provider_specific_fields":{"reasoningContent":{"text":" them. I should pick"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-8c0e9c3d-f61e-4075-b3aa-5e74cd6e5209","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" reasonable","thinking_blocks":[{"type":"thinking","thinking":" reasonable"}],"provider_specific_fields":{"reasoningContent":{"text":" reasonable"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-9d6adc8a-844a-486d-8d9b-270e59748429","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" commands","thinking_blocks":[{"type":"thinking","thinking":" commands"}],"provider_specific_fields":{"reasoningContent":{"text":" commands"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-7c938080-760c-43d1-ad41-a0ec7c6cd5f0","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" that would be inform","thinking_blocks":[{"type":"thinking","thinking":" that would be inform"}],"provider_specific_fields":{"reasoningContent":{"text":" that would be inform"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-946982fa-1412-4b50-ae77-c6bc68174cb8","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"ative or","thinking_blocks":[{"type":"thinking","thinking":"ative or"}],"provider_specific_fields":{"reasoningContent":{"text":"ative or"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-9020bb6f-e6ef-404b-abfa-8ed2890c935b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" useful in","thinking_blocks":[{"type":"thinking","thinking":" useful in"}],"provider_specific_fields":{"reasoningContent":{"text":" useful in"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-b877bf16-fc5c-45ae-a38f-df118f621f52","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" this context. Since","thinking_blocks":[{"type":"thinking","thinking":" this context. Since"}],"provider_specific_fields":{"reasoningContent":{"text":" this context. Since"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-43301132-b848-46a0-836d-42987bcd9a1e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" I","thinking_blocks":[{"type":"thinking","thinking":" I"}],"provider_specific_fields":{"reasoningContent":{"text":" I"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-e069675a-d0fa-4bd2-82ae-a80ce4f1860c","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"'m","thinking_blocks":[{"type":"thinking","thinking":"'m"}],"provider_specific_fields":{"reasoningContent":{"text":"'m"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-da18dddf-31b6-49fb-b06b-4522dc2070cc","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" in a git","thinking_blocks":[{"type":"thinking","thinking":" in a git"}],"provider_specific_fields":{"reasoningContent":{"text":" in a git"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-48a9aba5-702e-4caf-b7e8-737e6ae87486","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" repository, I can","thinking_blocks":[{"type":"thinking","thinking":" repository, I can"}],"provider_specific_fields":{"reasoningContent":{"text":" repository, I can"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-5d886ed1-a484-414b-9335-1d55d1ea61d3","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" run","thinking_blocks":[{"type":"thinking","thinking":" run"}],"provider_specific_fields":{"reasoningContent":{"text":" run"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-b62eaf53-f164-49c4-9b51-48a7a6210f43","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" various","thinking_blocks":[{"type":"thinking","thinking":" various"}],"provider_specific_fields":{"reasoningContent":{"text":" various"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-3ec22c18-7113-4fd5-a48f-58eb3f3093ca","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" commands.","thinking_blocks":[{"type":"thinking","thinking":" commands."}],"provider_specific_fields":{"reasoningContent":{"text":" commands."}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-21509bd4-7b80-4ba1-a5d9-a1585dd9af83","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" Let me think of 5 different","thinking_blocks":[{"type":"thinking","thinking":" Let me think of 5 different"}],"provider_specific_fields":{"reasoningContent":{"text":" Let me think of 5 different"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-933182fe-83da-4cfb-8e84-bb438a451228","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" commands:\n\n1. `pw","thinking_blocks":[{"type":"thinking","thinking":" commands:\n\n1. `pw"}],"provider_specific_fields":{"reasoningContent":{"text":" commands:\n\n1. `pw"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-37ead03c-1ed0-48f3-9659-bfdffcdfa2f5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"d` - Print working directory\n2.","thinking_blocks":[{"type":"thinking","thinking":"d` - Print working directory\n2."}],"provider_specific_fields":{"reasoningContent":{"text":"d` - Print working directory\n2."}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-c75f772b-6cb7-4a66-87e4-da7262db4842","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" `git","thinking_blocks":[{"type":"thinking","thinking":" `git"}],"provider_specific_fields":{"reasoningContent":{"text":" `git"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-d70d2fd3-c54e-4c3a-af0b-ecbf6e578741","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" branch","thinking_blocks":[{"type":"thinking","thinking":" branch"}],"provider_specific_fields":{"reasoningContent":{"text":" branch"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-5884639d-e8b2-46d3-a67b-ebf6f75268ce","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"` - Show","thinking_blocks":[{"type":"thinking","thinking":"` - Show"}],"provider_specific_fields":{"reasoningContent":{"text":"` - Show"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-d6ffd1af-9f75-43fd-9ad7-61f12e122a46","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" git","thinking_blocks":[{"type":"thinking","thinking":" git"}],"provider_specific_fields":{"reasoningContent":{"text":" git"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-500f4f1f-df2b-434e-8f4e-a1d85ab2109d","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" branches\n3. `u","thinking_blocks":[{"type":"thinking","thinking":" branches\n3. `u"}],"provider_specific_fields":{"reasoningContent":{"text":" branches\n3. `u"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-c18d2eec-423d-41d9-9cf6-478d4d459be5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"name -a` - Show system information","thinking_blocks":[{"type":"thinking","thinking":"name -a` - Show system information"}],"provider_specific_fields":{"reasoningContent":{"text":"name -a` - Show system information"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-d9f7784e-791c-43f9-b007-808384fcc1b8","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"\n4. `node","thinking_blocks":[{"type":"thinking","thinking":"\n4. `node"}],"provider_specific_fields":{"reasoningContent":{"text":"\n4. `node"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-e0377e52-7a79-42c1-a38d-371da31a2031","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" --version` - Show node","thinking_blocks":[{"type":"thinking","thinking":" --version` - Show node"}],"provider_specific_fields":{"reasoningContent":{"text":" --version` - Show node"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-a7e7613e-46a8-46cf-9ab0-672066f18acd","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" version\n5. `b","thinking_blocks":[{"type":"thinking","thinking":" version\n5. `b"}],"provider_specific_fields":{"reasoningContent":{"text":" version\n5. `b"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-64a825a2-9e15-46c8-9bfa-4507ea9e8d4b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"un --version` - Show bun","thinking_blocks":[{"type":"thinking","thinking":"un --version` - Show bun"}],"provider_specific_fields":{"reasoningContent":{"text":"un --version` - Show bun"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-05316e80-029d-48ba-8397-1f670ec7ce05","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" version (","thinking_blocks":[{"type":"thinking","thinking":" version ("}],"provider_specific_fields":{"reasoningContent":{"text":" version ("}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-72ba6264-306d-4e01-bf1e-e4fa026a3fb8","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"since this","thinking_blocks":[{"type":"thinking","thinking":"since this"}],"provider_specific_fields":{"reasoningContent":{"text":"since this"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-9faec5f9-f3f6-4160-81d3-ad70c2f8a22a","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" project","thinking_blocks":[{"type":"thinking","thinking":" project"}],"provider_specific_fields":{"reasoningContent":{"text":" project"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-ae8ef1dc-b3ca-4ceb-a01d-d10794d304bc","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" uses bun)\n\nI shoul","thinking_blocks":[{"type":"thinking","thinking":" uses bun)\n\nI shoul"}],"provider_specific_fields":{"reasoningContent":{"text":" uses bun)\n\nI shoul"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-04c147a4-c0df-4367-8835-401d304f61ec","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"d run these in","thinking_blocks":[{"type":"thinking","thinking":"d run these in"}],"provider_specific_fields":{"reasoningContent":{"text":"d run these in"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-0a622a83-b3b8-4310-8fde-fba7a111fac1","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" parallel since","thinking_blocks":[{"type":"thinking","thinking":" parallel since"}],"provider_specific_fields":{"reasoningContent":{"text":" parallel since"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-63dd1dff-b67d-4855-a533-85b944ba4178","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" they're all","thinking_blocks":[{"type":"thinking","thinking":" they're all"}],"provider_specific_fields":{"reasoningContent":{"text":" they're all"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-e84070f1-8f14-4e2c-8eaa-bc975fbabc4b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" independent of","thinking_blocks":[{"type":"thinking","thinking":" independent of"}],"provider_specific_fields":{"reasoningContent":{"text":" independent of"}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-9ed7805b-a3bf-4a49-b0ca-2afab7e20edb","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" each other.","thinking_blocks":[{"type":"thinking","thinking":" each other."}],"provider_specific_fields":{"reasoningContent":{"text":" each other."}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-92a96b72-6a53-45ca-bb3a-5e29ebc29ba6","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"","thinking_blocks":[{"type":"thinking","signature":"Et4FCkgICBABGAIqQFm+AC4NJF4/9kEyplZ9WB9i1vplCHJCTSVmWfOvoNZ/5ifWsh40lyc/NiFcEpt2wrHpaxCEencZdL9BWp5YbeMSDDNc6kP8/Ro71T9G6hoMltAMuQwesnxDk9x7IjBvqhVIo5bIBO7YvAbsDyABrDXCECEYJluW3cRpYj90VG0IirCBxfozHdmQVI6j87QqwwTyQ8ILIWStyDhCJXBmPQsI1lOhs0aFKEs4D+FeDkZPwo6lehfkZ9XDfdvlGpD7zoiSPp8OpmiZUqQoeGIgC+RPcq04JUind5raJOWMzxf4nM681Nqqe99tMQRrAP67h+7YEWrH0O/YTZ1VRJ4dGVJ3q82ABmFLJu/7DgmEATyhWxQ7IdmMik+YYTHiSMdURkSm6Jvp20QsYPMB84BEM3UHIJcGyQQmQZ0ibRvtho1oPQrZxpcnpPuO0LRl/1GTRR7xgP3n2zm2f5l4bL1dLxl3BQLBH9NNG8RoA3LjcZ4T1v4IGbOsuGJZD+AZVr1vT0ZnkShcF8S+vHfuP8Y25AaFFxIAhZn9vC/FfrDVreQSEiFgLqOEZe1EP77b12zC0mQAoLPfdQLjPihASwNLcmV++wEOEq6ziJcfFw0137BxGo6d/Y9cj0nvmIqCAkCHo5J85gGMJBjIbBwHdEhKth5iT6tRITIDyCGBuTg1rdYldMz7ofefZaYCq2QTt2JHFaTsdxc4tobZExVCSfgrOUFpfCgE/egnJEAVk9gXYqKDk+Fua2aBwjpVD2NhcKkBDAUSYrYYNWrsbLDGoCnBgorze8nDKfRI67vNxRnQQr1ONiPlcti8rS7d0Q/fxBJjDlwNN3IFiRtdE2quRzr4nfVSuoXw8UTawMwsTzaLRG0SkuF66ximFkl0DyYt1USxJBCUHt9gO2tq1WBo0BYFkTAygUN6GTMB0G2rvbLSig08f8PwH06eZ5hCOkmZtVuenmZ7PRcYAQ==","thinking":""}],"provider_specific_fields":{"reasoningContent":{"signature":"Et4FCkgICBABGAIqQFm+AC4NJF4/9kEyplZ9WB9i1vplCHJCTSVmWfOvoNZ/5ifWsh40lyc/NiFcEpt2wrHpaxCEencZdL9BWp5YbeMSDDNc6kP8/Ro71T9G6hoMltAMuQwesnxDk9x7IjBvqhVIo5bIBO7YvAbsDyABrDXCECEYJluW3cRpYj90VG0IirCBxfozHdmQVI6j87QqwwTyQ8ILIWStyDhCJXBmPQsI1lOhs0aFKEs4D+FeDkZPwo6lehfkZ9XDfdvlGpD7zoiSPp8OpmiZUqQoeGIgC+RPcq04JUind5raJOWMzxf4nM681Nqqe99tMQRrAP67h+7YEWrH0O/YTZ1VRJ4dGVJ3q82ABmFLJu/7DgmEATyhWxQ7IdmMik+YYTHiSMdURkSm6Jvp20QsYPMB84BEM3UHIJcGyQQmQZ0ibRvtho1oPQrZxpcnpPuO0LRl/1GTRR7xgP3n2zm2f5l4bL1dLxl3BQLBH9NNG8RoA3LjcZ4T1v4IGbOsuGJZD+AZVr1vT0ZnkShcF8S+vHfuP8Y25AaFFxIAhZn9vC/FfrDVreQSEiFgLqOEZe1EP77b12zC0mQAoLPfdQLjPihASwNLcmV++wEOEq6ziJcfFw0137BxGo6d/Y9cj0nvmIqCAkCHo5J85gGMJBjIbBwHdEhKth5iT6tRITIDyCGBuTg1rdYldMz7ofefZaYCq2QTt2JHFaTsdxc4tobZExVCSfgrOUFpfCgE/egnJEAVk9gXYqKDk+Fua2aBwjpVD2NhcKkBDAUSYrYYNWrsbLDGoCnBgorze8nDKfRI67vNxRnQQr1ONiPlcti8rS7d0Q/fxBJjDlwNN3IFiRtdE2quRzr4nfVSuoXw8UTawMwsTzaLRG0SkuF66ximFkl0DyYt1USxJBCUHt9gO2tq1WBo0BYFkTAygUN6GTMB0G2rvbLSig08f8PwH06eZ5hCOkmZtVuenmZ7PRcYAQ=="}},"content":""}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-4a7652c3-496e-4bbd-81a7-dcb9539de0b5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"tooluse_xY3KNO5BQ_Wb2hdMsEgD8g","function":{"arguments":"","name":"bash"},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-3af16f4d-79da-451c-8332-501ff914703d","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":""},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-40478524-46b7-4015-9649-9000c6baa8d5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"{\"comma"},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-d0208348-ba3f-4990-a874-253a86648d5e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"nd\":"},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-2c98dea9-c7e2-42e1-867e-75ce7016759e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" \"pw"},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-1c19a51d-c059-4f2d-9376-89decf28a50f","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"d\""},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-9381aa52-3ebe-48af-a2d0-8e5c2a442edf","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":", \"descri"},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-a0e8598e-be0b-4716-a521-e71aae4a34e1","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ption\": \"Pri"},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-a876628b-3555-44d2-9bf2-4d6730f895e8","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"nt w"},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-87d4d3ce-379f-4607-997e-207a4420691b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ork"},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-6bdd06c5-f711-4ca0-ab8d-9916d1b674ce","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ing di"},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-c0a602c2-75f5-48f8-8e8a-7e59aa802d94","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"rectory\"}"},"type":"function","index":0}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-a80446aa-cb3f-4b1d-9943-a3e00bd21fc7","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"tooluse_QALMoQXsQYePdVd8rIaRTA","function":{"arguments":"","name":"bash"},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-71efd005-78d7-4bc6-84c9-3c5c42598906","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":""},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-294c6ce2-63fe-4c23-b608-b8290fae4a5e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"{\"co"},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-af6d1967-fc7a-41ee-8f8a-ebf9c10c9089","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"mma"},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-8a04b1f5-9f65-41fa-8616-17d0a87aa416","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"nd"},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-d7e5f430-1aed-44a0-b96c-9b1b6cc6eb7b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"\": \"git b"},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-9c7ce8cc-9145-4128-ab57-7e66624215fb","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ranch\""},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-c120f009-dc59-4da0-b012-a000d73e7376","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":", \"d"},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-9b1418aa-9fd6-4730-b304-3b6ddc7fb815","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"escri"},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-3dfd7085-7777-46ea-a94f-bbd907c70924","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ption\": \"Sh"},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-75e1b700-a490-4882-8185-efeb3c9aeb0e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ow git"},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-5a25a396-773d-4c01-90fd-119fcd71b906","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" branch"},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-8ab6db62-e56f-47bc-b76d-8ff7ce75a2fe","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"es\"}"},"type":"function","index":1}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-e6f69dda-e440-4548-a6b2-f8e77ae7890c","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"tooluse_V7hI0qzdTOC9xVQuvrNnDA","function":{"arguments":"","name":"bash"},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-6b727401-7fc0-4a6b-ab8b-4275ce70ce31","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":""},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-6253bc8c-8b15-43e9-806b-c5b0d5d48341","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"{\"command\":"},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-6d6f15ec-3c6f-44cf-871a-b8ac99edcc65","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" \"u"},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-a5bd390d-0d94-4e02-abbd-9f3b1b7702ed","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"name -a\""},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-2c392ccd-b378-4a71-b6a3-181a697a7edd","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":", \"desc"},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-1e0b9716-002c-4f5f-9dfb-6199632ff3c3","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ription\""},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-c2357ca5-892f-40a9-8708-19fbb14fc782","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":": \"Sh"},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-255a2ead-ce4d-471b-8587-ee723dd574d4","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ow system"},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-4ebe0b90-de0f-4874-8601-8b66d480ac00","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" infor"},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-7445fe26-8b08-49c0-a4fb-21f7a4c72be9","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"mati"},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-1ad86a2d-38db-4097-a624-86902502f360","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"on\"}"},"type":"function","index":2}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-f45d9944-756e-43c8-9833-d000e7749158","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"tooluse_hq8Ap0CYRiOxbMx66NONbg","function":{"arguments":"","name":"bash"},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-02e0ead3-21f8-4f03-b5ba-373455d3ff39","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":""},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-42f2ff1d-3541-4b4e-a8e6-8b8e4ac728bf","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"{\"comman"},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-26310201-cecf-4135-b519-8efb37f74814","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"d\": \""},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-c7a8436b-9127-4bf9-b39a-d5eafba677f6","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"bun --"},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-2fc76d87-cfe8-4b51-85dc-65fb39fe127b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"version"},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-4108c015-21ed-462a-96a8-76311ac484d9","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"\""},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-3e952e03-6419-452b-bca4-4f512903ec4e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":", \"descript"},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-b45f66a3-7605-4a53-96bf-9afdd3cb29d5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ion\": \"Sho"},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-7b51c1e7-7733-471d-b127-6e7f41b3b386","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"w b"},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-a1a3790e-711f-464f-8cf6-27b07a641854","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"un"},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-f599fc5c-946f-4047-8bc4-3957571fafed","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" vers"},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-45ce91e1-88e2-4e6d-9eba-7d2e8cce596f","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ion\"}"},"type":"function","index":3}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-0dbae566-048f-4437-b70d-9386c8e73dc0","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"tooluse_ciZPFEpRS8KVQork8dOxDA","function":{"arguments":"","name":"bash"},"type":"function","index":4}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-0f5b963b-16b5-4cd4-a154-ba9df0c775ec","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":""},"type":"function","index":4}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-aca1fd34-0e79-4737-a751-3fb4dc9acc4a","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"{\"command\": "},"type":"function","index":4}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-6486769f-e70f-4d59-8e06-0e5632a0d4a2","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"\"git log --"},"type":"function","index":4}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-fcaa18ff-f4a4-404f-a99b-57c871d1b641","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"oneline -"},"type":"function","index":4}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-f08fe0d2-bcec-4743-b5bc-4a9f05c5c1a8","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"5\""},"type":"function","index":4}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-32a0f358-056f-4979-9990-1f9f5d0e2e55","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":", \"descri"},"type":"function","index":4}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-a9d0d9ea-be63-41b8-8e31-493102615b67","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ption\": \"S"},"type":"function","index":4}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-70e78e8f-2452-43b0-ba85-35f18b41575a","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ho"},"type":"function","index":4}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-2c16c79d-ed30-422c-afbb-4e145eb5a493","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"w last 5 git"},"type":"function","index":4}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-52851c20-be61-41f7-847c-82d517d76dc5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" commits\"}"},"type":"function","index":4}]}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-6187695b-33c8-4230-99dc-a4416b4946a6","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"finish_reason":"tool_calls","index":0,"delta":{}}],"provider_specific_fields":{}}

data: {"id":"chatcmpl-94721afc-fc39-433a-bcdc-b8fa86f941f1","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{}}],"usage":{"completion_tokens":452,"prompt_tokens":9,"total_tokens":461,"completion_tokens_details":{"reasoning_tokens":135},"prompt_tokens_details":{"cached_tokens":0,"cache_creation_tokens":12922},"cache_creation_input_tokens":12922,"cache_read_input_tokens":0}}

data: [DONE]

 duration=4658 http response
...
INFO  2025-10-10T14:51:30 +1ms service=provider providerID=my-lite-llm-provider url=https://my-litellm-host.com/chat/completions method=POST body={"model":"claude-4-5-sonnet","max_tokens":32000,"temperature":1,"thinking":{"type":"enabled","budget_tokens":16000},"messages":[{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"user","content":"Think of 5 different shell commands to run and run them."},{"role":"assistant","content":"","tool_calls":[{"id":"tooluse_xY3KNO5BQ_Wb2hdMsEgD8g","type":"function","function":{"name":"bash","arguments":"{\"command\":\"pwd\",\"description\":\"Print working directory\"}"}},{"id":"tooluse_QALMoQXsQYePdVd8rIaRTA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"git branch\",\"description\":\"Show git branches\"}"}},{"id":"tooluse_V7hI0qzdTOC9xVQuvrNnDA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"uname -a\",\"description\":\"Show system information\"}"}},{"id":"tooluse_hq8Ap0CYRiOxbMx66NONbg","type":"function","function":{"name":"bash","arguments":"{\"command\":\"bun --version\",\"description\":\"Show bun version\"}"}},{"id":"tooluse_ciZPFEpRS8KVQork8dOxDA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"git log --oneline -5\",\"description\":\"Show last 5 git commits\"}"},"cache_control":{"type":"ephemeral"}}]},{"role":"tool","tool_call_id":"tooluse_xY3KNO5BQ_Wb2hdMsEgD8g","content":"/Users/jessevanderpluijm/Code/forks/opencode\n"},{"role":"tool","tool_call_id":"tooluse_QALMoQXsQYePdVd8rIaRTA","content":"  azure-openai-tool-schema\n  better-claude-prompt-caching-detection\n* dev\n"},{"role":"tool","tool_call_id":"tooluse_V7hI0qzdTOC9xVQuvrNnDA","content":"Darwin mac.home 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:40 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6041 arm64 arm Darwin\n"},{"role":"tool","tool_call_id":"tooluse_hq8Ap0CYRiOxbMx66NONbg","content":"1.2.20\n"},{"role":"tool","tool_call_id":"tooluse_ciZPFEpRS8KVQork8dOxDA","content":"b3ef1428 add http log\n28d617d8 ignore: update download stats 2025-10-10\n9b52d338 core: improve directory validation error messages to help users fix invalid directory names\n096710a8 ensure @opencode-ai/plugin is available in `.opencode` folder\n50bb2011 release: v0.14.7\n","cache_control":{"type":"ephemeral"}}],"tools":[...],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}} http request
INFO  2025-10-10T14:51:38 +10ms service=provider providerID=my-lite-llm-provider status=400 statusText=Bad Request body={"error":{"message":"litellm.BadRequestError: BedrockException - {\"message\":\"The model returned the following errors: messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"}. Received Model Group=claude-4-5-sonnet\nAvailable Model Group Fallbacks=['claude-4-5-sonnet-vertex']\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"},\"request_id\":\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}]. Received Model Group=claude-4-5-sonnet-vertex\nAvailable Model Group Fallbacks=None\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"},\"request_id\":\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}] LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 LiteLLM Retried: 1 times, LiteLLM Max Retries: 2","type":null,"param":null,"code":"400"}} duration=7608 http response
ERROR 2025-10-10T14:51:38 +4ms service=session.prompt session=ses_631651ae2ffej8iZ7gQz8TeDHV error={"error":{"name":"AI_APICallError","url":"https://my-litellm-host.com/chat/completions","requestBodyValues":{"model":"claude-4-5-sonnet","max_tokens":32000,"temperature":1,"thinking":{"type":"enabled","budget_tokens":16000},"messages":[{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"user","content":"Think of 5 different shell commands to run and run them."},{"role":"assistant","content":"","tool_calls":[{"id":"tooluse_xY3KNO5BQ_Wb2hdMsEgD8g","type":"function","function":{"name":"bash","arguments":"{\"command\":\"pwd\",\"description\":\"Print working directory\"}"}},{"id":"tooluse_QALMoQXsQYePdVd8rIaRTA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"git branch\",\"description\":\"Show git branches\"}"}},{"id":"tooluse_V7hI0qzdTOC9xVQuvrNnDA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"uname -a\",\"description\":\"Show system information\"}"}},{"id":"tooluse_hq8Ap0CYRiOxbMx66NONbg","type":"function","function":{"name":"bash","arguments":"{\"command\":\"bun --version\",\"description\":\"Show bun version\"}"}},{"id":"tooluse_ciZPFEpRS8KVQork8dOxDA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"git log --oneline -5\",\"description\":\"Show last 5 git commits\"}"},"cache_control":{"type":"ephemeral"}}]},{"role":"tool","tool_call_id":"tooluse_xY3KNO5BQ_Wb2hdMsEgD8g","content":"/Users/jessevanderpluijm/Code/forks/opencode\n"},{"role":"tool","tool_call_id":"tooluse_QALMoQXsQYePdVd8rIaRTA","content":"  azure-openai-tool-schema\n  better-claude-prompt-caching-detection\n* dev\n"},{"role":"tool","tool_call_id":"tooluse_V7hI0qzdTOC9xVQuvrNnDA","content":"Darwin mac.home 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:40 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6041 arm64 arm Darwin\n"},{"role":"tool","tool_call_id":"tooluse_hq8Ap0CYRiOxbMx66NONbg","content":"1.2.20\n"},{"role":"tool","tool_call_id":"tooluse_ciZPFEpRS8KVQork8dOxDA","content":"b3ef1428 add http log\n28d617d8 ignore: update download stats 2025-10-10\n9b52d338 core: improve directory validation error messages to help users fix invalid directory names\n096710a8 ensure @opencode-ai/plugin is available in `.opencode` folder\n50bb2011 release: v0.14.7\n","cache_control":{"type":"ephemeral"}}],"tools":[...],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"statusCode":400,"responseHeaders":{"connection":"keep-alive","content-length":"3066","content-type":"application/json","date":"Fri, 10 Oct 2025 14:51:37 GMT","server":"uvicorn","x-litellm-call-id":"e27f8ee2-b8b7-47b6-a0fe-a82f1f88b271","x-litellm-key-spend":"32.04287525000002","x-litellm-response-cost":"0","x-litellm-timeout":"600"},"responseBody":"{\"error\":{\"message\":\"litellm.BadRequestError: BedrockException - {\\\"message\\\":\\\"The model returned the following errors: messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\\\"}. Received Model Group=claude-4-5-sonnet\\nAvailable Model Group Fallbacks=['claude-4-5-sonnet-vertex']\\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\\\"type\\\":\\\"error\\\",\\\"error\\\":{\\\"type\\\":\\\"invalid_request_error\\\",\\\"message\\\":\\\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\\\"},\\\"request_id\\\":\\\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\\\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}]. Received Model Group=claude-4-5-sonnet-vertex\\nAvailable Model Group Fallbacks=None\\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\\\"type\\\":\\\"error\\\",\\\"error\\\":{\\\"type\\\":\\\"invalid_request_error\\\",\\\"message\\\":\\\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\\\"},\\\"request_id\\\":\\\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\\\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}] LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 LiteLLM Retried: 1 times, LiteLLM Max Retries: 2\",\"type\":null,\"param\":null,\"code\":\"400\"}}","isRetryable":false,"data":{"error":{"message":"litellm.BadRequestError: BedrockException - {\"message\":\"The model returned the following errors: messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"}. Received Model Group=claude-4-5-sonnet\nAvailable Model Group Fallbacks=['claude-4-5-sonnet-vertex']\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"},\"request_id\":\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}]. Received Model Group=claude-4-5-sonnet-vertex\nAvailable Model Group Fallbacks=None\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"},\"request_id\":\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}] LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 LiteLLM Retried: 1 times, LiteLLM Max Retries: 2","type":null,"param":null,"code":"400"}}}} stream error
INFO  2025-10-10T14:51:38 +0ms service=session.prompt session=ses_631651ae2ffej8iZ7gQz8TeDHV type=error part
ERROR 2025-10-10T14:51:38 +1ms service=session.prompt session=ses_631651ae2ffej8iZ7gQz8TeDHV error=litellm.BadRequestError: BedrockException - {"message":"The model returned the following errors: messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"}. Received Model Group=claude-4-5-sonnet
Available Model Group Fallbacks=['claude-4-5-sonnet-vertex']
Error doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{"type":"error","error":{"type":"invalid_request_error","message":"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"},"request_id":"req_vrtx_011CTyhuTXynwxFQeCCieTz7"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}]. Received Model Group=claude-4-5-sonnet-vertex
Available Model Group Fallbacks=None
Error doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{"type":"error","error":{"type":"invalid_request_error","message":"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"},"request_id":"req_vrtx_011CTyhuTXynwxFQeCCieTz7"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}] LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 process
ERROR 2025-10-10T14:51:38 +0ms service=tui message=AI_APICallError: litellm.BadRequestError: BedrockException - {"message":"The model returned the following errors: messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"}. Received Model Group=claude-4-5-sonnet
Available Model Group Fallbacks=['claude-4-5-sonnet-vertex']
Error doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{"type":"error","error":{"type":"invalid_request_error","message":"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"},"request_id":"req_vrtx_011CTyhuTXynwxFQeCCieTz7"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}]. Received Model Group=claude-4-5-sonnet-vertex
Available Model Group Fallbacks=None
Error doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{"type":"error","error":{"type":"invalid_request_error","message":"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"},"request_id":"req_vrtx_011CTyhuTXynwxFQeCCieTz7"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}] LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 name=UnknownError Server error
INFO  2025-10-10T14:51:38 +0ms service=server duration=0 response

@jessevdp commented on GitHub (Oct 10, 2025): <details><summary>full log with HTTP requests & responses</summary> <p> ``` INFO 2025-10-10T14:51:21 +3ms service=provider providerID=my-lite-llm-provider url=https://my-litellm-host.com/chat/completions method=POST body={"model":"gemini-2.5-flash","max_tokens":1500,"messages":[{"role":"system","content":"..."},{"role":"user","content":"Think of 5 different shell commands to run and run them."}]} http request INFO 2025-10-10T14:51:21 +0ms service=provider providerID=my-lite-llm-provider url=https://my-litellm-host.com/chat/completions method=POST body={"model":"claude-4-5-sonnet","max_tokens":32000,"temperature":1,"thinking":{"type":"enabled","budget_tokens":16000},"messages":[{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"user","content":"Think of 5 different shell commands to run and run them.","cache_control":{"type":"ephemeral"}}],"tools":[...],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}} http request INFO 2025-10-10T14:51:22 +38ms service=provider providerID=my-lite-llm-provider status=200 statusText=OK headers={"connection":"keep-alive","content-length":"584","content-type":"application/json","date":"Fri, 10 Oct 2025 14:51:22 GMT","server":"uvicorn","x-litellm-attempted-fallbacks":"0","x-litellm-attempted-retries":"0","x-litellm-call-id":"6dc5948f-ebf3-4e90-9c8f-7e83c921374b","x-litellm-key-spend":"32.07764145000002","x-litellm-model-group":"gemini-2.5-flash","x-litellm-model-id":"bee511aa55363cd0f2f94431fea34fab0d936909c167dd0a707c348797734d4d","x-litellm-response-cost":"0.00038869999999999996","x-litellm-version":"1.77.5"} body={"id":"ah3paJbAAa7-kbwP2dbhkAY","created":1760107881,"model":"gemini-2.5-flash","object":"chat.completion","choices":[{"finish_reason":"stop","index":0,"message":{"content":"Running 5 different shell commands","role":"assistant","images":[],"thinking_blocks":[]}}],"usage":{"completion_tokens":131,"prompt_tokens":204,"total_tokens":335,"completion_tokens_details":{"reasoning_tokens":125,"text_tokens":6},"prompt_tokens_details":{"text_tokens":204}},"vertex_ai_grounding_metadata":[],"vertex_ai_url_context_metadata":[],"vertex_ai_safety_results":[],"vertex_ai_citation_metadata":[]} duration=1038 http response INFO 2025-10-10T14:51:28 +23ms service=provider providerID=my-lite-llm-provider status=200 statusText=OK headers={"connection":"keep-alive","content-type":"text/event-stream; charset=utf-8","date":"Fri, 10 Oct 2025 14:51:24 GMT","server":"uvicorn","transfer-encoding":"chunked","x-litellm-call-id":"25058b06-6a16-4647-9ed1-e9799923ae5e","x-litellm-key-spend":"32.07764145000002","x-litellm-model-api-base":"https://bedrock-runtime.eu-central-1.amazonaws.com/model/eu.anthropic.claude-sonnet-4-5-20250929-v1%3A0/converse-stream","x-litellm-model-id":"b13a5f4ec04005c9b991a3723cfa44a8e388fda30c782189d08741a1dbb3472d","x-litellm-version":"1.77.5"} body=data: {"id":"chatcmpl-23e24dd9-100c-4133-b90c-3a783141e274","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"The user wants me","thinking_blocks":[{"type":"thinking","thinking":"The user wants me"}],"provider_specific_fields":{"reasoningContent":{"text":"The user wants me"}},"content":"","role":"assistant"}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-dff732ad-3440-40d6-bcf1-e7015398cedd","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" to think of 5 different shell","thinking_blocks":[{"type":"thinking","thinking":" to think of 5 different shell"}],"provider_specific_fields":{"reasoningContent":{"text":" to think of 5 different shell"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-e6cd65f5-e4ae-4920-b6cd-f41a42e8a141","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" commands to","thinking_blocks":[{"type":"thinking","thinking":" commands to"}],"provider_specific_fields":{"reasoningContent":{"text":" commands to"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-3621fcc5-3cd4-4e6a-bb76-fd179f2682e6","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" run an","thinking_blocks":[{"type":"thinking","thinking":" run an"}],"provider_specific_fields":{"reasoningContent":{"text":" run an"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-39f0e62e-19f5-4125-9bad-613a696dfd00","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"d execute","thinking_blocks":[{"type":"thinking","thinking":"d execute"}],"provider_specific_fields":{"reasoningContent":{"text":"d execute"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-5fa2e734-ed30-476c-9602-b8c6ca7bc6b2","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" them. I should pick","thinking_blocks":[{"type":"thinking","thinking":" them. I should pick"}],"provider_specific_fields":{"reasoningContent":{"text":" them. I should pick"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-8c0e9c3d-f61e-4075-b3aa-5e74cd6e5209","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" reasonable","thinking_blocks":[{"type":"thinking","thinking":" reasonable"}],"provider_specific_fields":{"reasoningContent":{"text":" reasonable"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-9d6adc8a-844a-486d-8d9b-270e59748429","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" commands","thinking_blocks":[{"type":"thinking","thinking":" commands"}],"provider_specific_fields":{"reasoningContent":{"text":" commands"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-7c938080-760c-43d1-ad41-a0ec7c6cd5f0","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" that would be inform","thinking_blocks":[{"type":"thinking","thinking":" that would be inform"}],"provider_specific_fields":{"reasoningContent":{"text":" that would be inform"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-946982fa-1412-4b50-ae77-c6bc68174cb8","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"ative or","thinking_blocks":[{"type":"thinking","thinking":"ative or"}],"provider_specific_fields":{"reasoningContent":{"text":"ative or"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-9020bb6f-e6ef-404b-abfa-8ed2890c935b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" useful in","thinking_blocks":[{"type":"thinking","thinking":" useful in"}],"provider_specific_fields":{"reasoningContent":{"text":" useful in"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-b877bf16-fc5c-45ae-a38f-df118f621f52","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" this context. Since","thinking_blocks":[{"type":"thinking","thinking":" this context. Since"}],"provider_specific_fields":{"reasoningContent":{"text":" this context. Since"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-43301132-b848-46a0-836d-42987bcd9a1e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" I","thinking_blocks":[{"type":"thinking","thinking":" I"}],"provider_specific_fields":{"reasoningContent":{"text":" I"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-e069675a-d0fa-4bd2-82ae-a80ce4f1860c","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"'m","thinking_blocks":[{"type":"thinking","thinking":"'m"}],"provider_specific_fields":{"reasoningContent":{"text":"'m"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-da18dddf-31b6-49fb-b06b-4522dc2070cc","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" in a git","thinking_blocks":[{"type":"thinking","thinking":" in a git"}],"provider_specific_fields":{"reasoningContent":{"text":" in a git"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-48a9aba5-702e-4caf-b7e8-737e6ae87486","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" repository, I can","thinking_blocks":[{"type":"thinking","thinking":" repository, I can"}],"provider_specific_fields":{"reasoningContent":{"text":" repository, I can"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-5d886ed1-a484-414b-9335-1d55d1ea61d3","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" run","thinking_blocks":[{"type":"thinking","thinking":" run"}],"provider_specific_fields":{"reasoningContent":{"text":" run"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-b62eaf53-f164-49c4-9b51-48a7a6210f43","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" various","thinking_blocks":[{"type":"thinking","thinking":" various"}],"provider_specific_fields":{"reasoningContent":{"text":" various"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-3ec22c18-7113-4fd5-a48f-58eb3f3093ca","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" commands.","thinking_blocks":[{"type":"thinking","thinking":" commands."}],"provider_specific_fields":{"reasoningContent":{"text":" commands."}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-21509bd4-7b80-4ba1-a5d9-a1585dd9af83","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" Let me think of 5 different","thinking_blocks":[{"type":"thinking","thinking":" Let me think of 5 different"}],"provider_specific_fields":{"reasoningContent":{"text":" Let me think of 5 different"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-933182fe-83da-4cfb-8e84-bb438a451228","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" commands:\n\n1. `pw","thinking_blocks":[{"type":"thinking","thinking":" commands:\n\n1. `pw"}],"provider_specific_fields":{"reasoningContent":{"text":" commands:\n\n1. `pw"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-37ead03c-1ed0-48f3-9659-bfdffcdfa2f5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"d` - Print working directory\n2.","thinking_blocks":[{"type":"thinking","thinking":"d` - Print working directory\n2."}],"provider_specific_fields":{"reasoningContent":{"text":"d` - Print working directory\n2."}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-c75f772b-6cb7-4a66-87e4-da7262db4842","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" `git","thinking_blocks":[{"type":"thinking","thinking":" `git"}],"provider_specific_fields":{"reasoningContent":{"text":" `git"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-d70d2fd3-c54e-4c3a-af0b-ecbf6e578741","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" branch","thinking_blocks":[{"type":"thinking","thinking":" branch"}],"provider_specific_fields":{"reasoningContent":{"text":" branch"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-5884639d-e8b2-46d3-a67b-ebf6f75268ce","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"` - Show","thinking_blocks":[{"type":"thinking","thinking":"` - Show"}],"provider_specific_fields":{"reasoningContent":{"text":"` - Show"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-d6ffd1af-9f75-43fd-9ad7-61f12e122a46","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" git","thinking_blocks":[{"type":"thinking","thinking":" git"}],"provider_specific_fields":{"reasoningContent":{"text":" git"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-500f4f1f-df2b-434e-8f4e-a1d85ab2109d","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" branches\n3. `u","thinking_blocks":[{"type":"thinking","thinking":" branches\n3. `u"}],"provider_specific_fields":{"reasoningContent":{"text":" branches\n3. `u"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-c18d2eec-423d-41d9-9cf6-478d4d459be5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"name -a` - Show system information","thinking_blocks":[{"type":"thinking","thinking":"name -a` - Show system information"}],"provider_specific_fields":{"reasoningContent":{"text":"name -a` - Show system information"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-d9f7784e-791c-43f9-b007-808384fcc1b8","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"\n4. `node","thinking_blocks":[{"type":"thinking","thinking":"\n4. `node"}],"provider_specific_fields":{"reasoningContent":{"text":"\n4. `node"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-e0377e52-7a79-42c1-a38d-371da31a2031","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" --version` - Show node","thinking_blocks":[{"type":"thinking","thinking":" --version` - Show node"}],"provider_specific_fields":{"reasoningContent":{"text":" --version` - Show node"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-a7e7613e-46a8-46cf-9ab0-672066f18acd","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" version\n5. `b","thinking_blocks":[{"type":"thinking","thinking":" version\n5. `b"}],"provider_specific_fields":{"reasoningContent":{"text":" version\n5. `b"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-64a825a2-9e15-46c8-9bfa-4507ea9e8d4b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"un --version` - Show bun","thinking_blocks":[{"type":"thinking","thinking":"un --version` - Show bun"}],"provider_specific_fields":{"reasoningContent":{"text":"un --version` - Show bun"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-05316e80-029d-48ba-8397-1f670ec7ce05","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" version (","thinking_blocks":[{"type":"thinking","thinking":" version ("}],"provider_specific_fields":{"reasoningContent":{"text":" version ("}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-72ba6264-306d-4e01-bf1e-e4fa026a3fb8","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"since this","thinking_blocks":[{"type":"thinking","thinking":"since this"}],"provider_specific_fields":{"reasoningContent":{"text":"since this"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-9faec5f9-f3f6-4160-81d3-ad70c2f8a22a","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" project","thinking_blocks":[{"type":"thinking","thinking":" project"}],"provider_specific_fields":{"reasoningContent":{"text":" project"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-ae8ef1dc-b3ca-4ceb-a01d-d10794d304bc","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" uses bun)\n\nI shoul","thinking_blocks":[{"type":"thinking","thinking":" uses bun)\n\nI shoul"}],"provider_specific_fields":{"reasoningContent":{"text":" uses bun)\n\nI shoul"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-04c147a4-c0df-4367-8835-401d304f61ec","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"d run these in","thinking_blocks":[{"type":"thinking","thinking":"d run these in"}],"provider_specific_fields":{"reasoningContent":{"text":"d run these in"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-0a622a83-b3b8-4310-8fde-fba7a111fac1","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" parallel since","thinking_blocks":[{"type":"thinking","thinking":" parallel since"}],"provider_specific_fields":{"reasoningContent":{"text":" parallel since"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-63dd1dff-b67d-4855-a533-85b944ba4178","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" they're all","thinking_blocks":[{"type":"thinking","thinking":" they're all"}],"provider_specific_fields":{"reasoningContent":{"text":" they're all"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-e84070f1-8f14-4e2c-8eaa-bc975fbabc4b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" independent of","thinking_blocks":[{"type":"thinking","thinking":" independent of"}],"provider_specific_fields":{"reasoningContent":{"text":" independent of"}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-9ed7805b-a3bf-4a49-b0ca-2afab7e20edb","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":" each other.","thinking_blocks":[{"type":"thinking","thinking":" each other."}],"provider_specific_fields":{"reasoningContent":{"text":" each other."}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-92a96b72-6a53-45ca-bb3a-5e29ebc29ba6","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"","thinking_blocks":[{"type":"thinking","signature":"Et4FCkgICBABGAIqQFm+AC4NJF4/9kEyplZ9WB9i1vplCHJCTSVmWfOvoNZ/5ifWsh40lyc/NiFcEpt2wrHpaxCEencZdL9BWp5YbeMSDDNc6kP8/Ro71T9G6hoMltAMuQwesnxDk9x7IjBvqhVIo5bIBO7YvAbsDyABrDXCECEYJluW3cRpYj90VG0IirCBxfozHdmQVI6j87QqwwTyQ8ILIWStyDhCJXBmPQsI1lOhs0aFKEs4D+FeDkZPwo6lehfkZ9XDfdvlGpD7zoiSPp8OpmiZUqQoeGIgC+RPcq04JUind5raJOWMzxf4nM681Nqqe99tMQRrAP67h+7YEWrH0O/YTZ1VRJ4dGVJ3q82ABmFLJu/7DgmEATyhWxQ7IdmMik+YYTHiSMdURkSm6Jvp20QsYPMB84BEM3UHIJcGyQQmQZ0ibRvtho1oPQrZxpcnpPuO0LRl/1GTRR7xgP3n2zm2f5l4bL1dLxl3BQLBH9NNG8RoA3LjcZ4T1v4IGbOsuGJZD+AZVr1vT0ZnkShcF8S+vHfuP8Y25AaFFxIAhZn9vC/FfrDVreQSEiFgLqOEZe1EP77b12zC0mQAoLPfdQLjPihASwNLcmV++wEOEq6ziJcfFw0137BxGo6d/Y9cj0nvmIqCAkCHo5J85gGMJBjIbBwHdEhKth5iT6tRITIDyCGBuTg1rdYldMz7ofefZaYCq2QTt2JHFaTsdxc4tobZExVCSfgrOUFpfCgE/egnJEAVk9gXYqKDk+Fua2aBwjpVD2NhcKkBDAUSYrYYNWrsbLDGoCnBgorze8nDKfRI67vNxRnQQr1ONiPlcti8rS7d0Q/fxBJjDlwNN3IFiRtdE2quRzr4nfVSuoXw8UTawMwsTzaLRG0SkuF66ximFkl0DyYt1USxJBCUHt9gO2tq1WBo0BYFkTAygUN6GTMB0G2rvbLSig08f8PwH06eZ5hCOkmZtVuenmZ7PRcYAQ==","thinking":""}],"provider_specific_fields":{"reasoningContent":{"signature":"Et4FCkgICBABGAIqQFm+AC4NJF4/9kEyplZ9WB9i1vplCHJCTSVmWfOvoNZ/5ifWsh40lyc/NiFcEpt2wrHpaxCEencZdL9BWp5YbeMSDDNc6kP8/Ro71T9G6hoMltAMuQwesnxDk9x7IjBvqhVIo5bIBO7YvAbsDyABrDXCECEYJluW3cRpYj90VG0IirCBxfozHdmQVI6j87QqwwTyQ8ILIWStyDhCJXBmPQsI1lOhs0aFKEs4D+FeDkZPwo6lehfkZ9XDfdvlGpD7zoiSPp8OpmiZUqQoeGIgC+RPcq04JUind5raJOWMzxf4nM681Nqqe99tMQRrAP67h+7YEWrH0O/YTZ1VRJ4dGVJ3q82ABmFLJu/7DgmEATyhWxQ7IdmMik+YYTHiSMdURkSm6Jvp20QsYPMB84BEM3UHIJcGyQQmQZ0ibRvtho1oPQrZxpcnpPuO0LRl/1GTRR7xgP3n2zm2f5l4bL1dLxl3BQLBH9NNG8RoA3LjcZ4T1v4IGbOsuGJZD+AZVr1vT0ZnkShcF8S+vHfuP8Y25AaFFxIAhZn9vC/FfrDVreQSEiFgLqOEZe1EP77b12zC0mQAoLPfdQLjPihASwNLcmV++wEOEq6ziJcfFw0137BxGo6d/Y9cj0nvmIqCAkCHo5J85gGMJBjIbBwHdEhKth5iT6tRITIDyCGBuTg1rdYldMz7ofefZaYCq2QTt2JHFaTsdxc4tobZExVCSfgrOUFpfCgE/egnJEAVk9gXYqKDk+Fua2aBwjpVD2NhcKkBDAUSYrYYNWrsbLDGoCnBgorze8nDKfRI67vNxRnQQr1ONiPlcti8rS7d0Q/fxBJjDlwNN3IFiRtdE2quRzr4nfVSuoXw8UTawMwsTzaLRG0SkuF66ximFkl0DyYt1USxJBCUHt9gO2tq1WBo0BYFkTAygUN6GTMB0G2rvbLSig08f8PwH06eZ5hCOkmZtVuenmZ7PRcYAQ=="}},"content":""}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-4a7652c3-496e-4bbd-81a7-dcb9539de0b5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"tooluse_xY3KNO5BQ_Wb2hdMsEgD8g","function":{"arguments":"","name":"bash"},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-3af16f4d-79da-451c-8332-501ff914703d","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":""},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-40478524-46b7-4015-9649-9000c6baa8d5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"{\"comma"},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-d0208348-ba3f-4990-a874-253a86648d5e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"nd\":"},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-2c98dea9-c7e2-42e1-867e-75ce7016759e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" \"pw"},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-1c19a51d-c059-4f2d-9376-89decf28a50f","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"d\""},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-9381aa52-3ebe-48af-a2d0-8e5c2a442edf","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":", \"descri"},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-a0e8598e-be0b-4716-a521-e71aae4a34e1","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ption\": \"Pri"},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-a876628b-3555-44d2-9bf2-4d6730f895e8","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"nt w"},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-87d4d3ce-379f-4607-997e-207a4420691b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ork"},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-6bdd06c5-f711-4ca0-ab8d-9916d1b674ce","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ing di"},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-c0a602c2-75f5-48f8-8e8a-7e59aa802d94","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"rectory\"}"},"type":"function","index":0}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-a80446aa-cb3f-4b1d-9943-a3e00bd21fc7","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"tooluse_QALMoQXsQYePdVd8rIaRTA","function":{"arguments":"","name":"bash"},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-71efd005-78d7-4bc6-84c9-3c5c42598906","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":""},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-294c6ce2-63fe-4c23-b608-b8290fae4a5e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"{\"co"},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-af6d1967-fc7a-41ee-8f8a-ebf9c10c9089","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"mma"},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-8a04b1f5-9f65-41fa-8616-17d0a87aa416","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"nd"},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-d7e5f430-1aed-44a0-b96c-9b1b6cc6eb7b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"\": \"git b"},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-9c7ce8cc-9145-4128-ab57-7e66624215fb","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ranch\""},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-c120f009-dc59-4da0-b012-a000d73e7376","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":", \"d"},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-9b1418aa-9fd6-4730-b304-3b6ddc7fb815","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"escri"},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-3dfd7085-7777-46ea-a94f-bbd907c70924","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ption\": \"Sh"},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-75e1b700-a490-4882-8185-efeb3c9aeb0e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ow git"},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-5a25a396-773d-4c01-90fd-119fcd71b906","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" branch"},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-8ab6db62-e56f-47bc-b76d-8ff7ce75a2fe","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"es\"}"},"type":"function","index":1}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-e6f69dda-e440-4548-a6b2-f8e77ae7890c","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"tooluse_V7hI0qzdTOC9xVQuvrNnDA","function":{"arguments":"","name":"bash"},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-6b727401-7fc0-4a6b-ab8b-4275ce70ce31","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":""},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-6253bc8c-8b15-43e9-806b-c5b0d5d48341","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"{\"command\":"},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-6d6f15ec-3c6f-44cf-871a-b8ac99edcc65","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" \"u"},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-a5bd390d-0d94-4e02-abbd-9f3b1b7702ed","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"name -a\""},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-2c392ccd-b378-4a71-b6a3-181a697a7edd","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":", \"desc"},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-1e0b9716-002c-4f5f-9dfb-6199632ff3c3","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ription\""},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-c2357ca5-892f-40a9-8708-19fbb14fc782","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":": \"Sh"},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-255a2ead-ce4d-471b-8587-ee723dd574d4","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ow system"},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-4ebe0b90-de0f-4874-8601-8b66d480ac00","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" infor"},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-7445fe26-8b08-49c0-a4fb-21f7a4c72be9","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"mati"},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-1ad86a2d-38db-4097-a624-86902502f360","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"on\"}"},"type":"function","index":2}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-f45d9944-756e-43c8-9833-d000e7749158","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"tooluse_hq8Ap0CYRiOxbMx66NONbg","function":{"arguments":"","name":"bash"},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-02e0ead3-21f8-4f03-b5ba-373455d3ff39","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":""},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-42f2ff1d-3541-4b4e-a8e6-8b8e4ac728bf","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"{\"comman"},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-26310201-cecf-4135-b519-8efb37f74814","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"d\": \""},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-c7a8436b-9127-4bf9-b39a-d5eafba677f6","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"bun --"},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-2fc76d87-cfe8-4b51-85dc-65fb39fe127b","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"version"},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-4108c015-21ed-462a-96a8-76311ac484d9","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"\""},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-3e952e03-6419-452b-bca4-4f512903ec4e","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":", \"descript"},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-b45f66a3-7605-4a53-96bf-9afdd3cb29d5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ion\": \"Sho"},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-7b51c1e7-7733-471d-b127-6e7f41b3b386","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"w b"},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-a1a3790e-711f-464f-8cf6-27b07a641854","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"un"},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-f599fc5c-946f-4047-8bc4-3957571fafed","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" vers"},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-45ce91e1-88e2-4e6d-9eba-7d2e8cce596f","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ion\"}"},"type":"function","index":3}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-0dbae566-048f-4437-b70d-9386c8e73dc0","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"id":"tooluse_ciZPFEpRS8KVQork8dOxDA","function":{"arguments":"","name":"bash"},"type":"function","index":4}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-0f5b963b-16b5-4cd4-a154-ba9df0c775ec","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":""},"type":"function","index":4}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-aca1fd34-0e79-4737-a751-3fb4dc9acc4a","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"{\"command\": "},"type":"function","index":4}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-6486769f-e70f-4d59-8e06-0e5632a0d4a2","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"\"git log --"},"type":"function","index":4}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-fcaa18ff-f4a4-404f-a99b-57c871d1b641","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"oneline -"},"type":"function","index":4}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-f08fe0d2-bcec-4743-b5bc-4a9f05c5c1a8","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"5\""},"type":"function","index":4}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-32a0f358-056f-4979-9990-1f9f5d0e2e55","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":", \"descri"},"type":"function","index":4}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-a9d0d9ea-be63-41b8-8e31-493102615b67","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ption\": \"S"},"type":"function","index":4}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-70e78e8f-2452-43b0-ba85-35f18b41575a","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"ho"},"type":"function","index":4}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-2c16c79d-ed30-422c-afbb-4e145eb5a493","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":"w last 5 git"},"type":"function","index":4}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-52851c20-be61-41f7-847c-82d517d76dc5","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"","tool_calls":[{"function":{"arguments":" commits\"}"},"type":"function","index":4}]}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-6187695b-33c8-4230-99dc-a4416b4946a6","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"finish_reason":"tool_calls","index":0,"delta":{}}],"provider_specific_fields":{}} data: {"id":"chatcmpl-94721afc-fc39-433a-bcdc-b8fa86f941f1","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{}}],"usage":{"completion_tokens":452,"prompt_tokens":9,"total_tokens":461,"completion_tokens_details":{"reasoning_tokens":135},"prompt_tokens_details":{"cached_tokens":0,"cache_creation_tokens":12922},"cache_creation_input_tokens":12922,"cache_read_input_tokens":0}} data: [DONE] duration=4658 http response ... INFO 2025-10-10T14:51:30 +1ms service=provider providerID=my-lite-llm-provider url=https://my-litellm-host.com/chat/completions method=POST body={"model":"claude-4-5-sonnet","max_tokens":32000,"temperature":1,"thinking":{"type":"enabled","budget_tokens":16000},"messages":[{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"user","content":"Think of 5 different shell commands to run and run them."},{"role":"assistant","content":"","tool_calls":[{"id":"tooluse_xY3KNO5BQ_Wb2hdMsEgD8g","type":"function","function":{"name":"bash","arguments":"{\"command\":\"pwd\",\"description\":\"Print working directory\"}"}},{"id":"tooluse_QALMoQXsQYePdVd8rIaRTA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"git branch\",\"description\":\"Show git branches\"}"}},{"id":"tooluse_V7hI0qzdTOC9xVQuvrNnDA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"uname -a\",\"description\":\"Show system information\"}"}},{"id":"tooluse_hq8Ap0CYRiOxbMx66NONbg","type":"function","function":{"name":"bash","arguments":"{\"command\":\"bun --version\",\"description\":\"Show bun version\"}"}},{"id":"tooluse_ciZPFEpRS8KVQork8dOxDA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"git log --oneline -5\",\"description\":\"Show last 5 git commits\"}"},"cache_control":{"type":"ephemeral"}}]},{"role":"tool","tool_call_id":"tooluse_xY3KNO5BQ_Wb2hdMsEgD8g","content":"/Users/jessevanderpluijm/Code/forks/opencode\n"},{"role":"tool","tool_call_id":"tooluse_QALMoQXsQYePdVd8rIaRTA","content":" azure-openai-tool-schema\n better-claude-prompt-caching-detection\n* dev\n"},{"role":"tool","tool_call_id":"tooluse_V7hI0qzdTOC9xVQuvrNnDA","content":"Darwin mac.home 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:40 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6041 arm64 arm Darwin\n"},{"role":"tool","tool_call_id":"tooluse_hq8Ap0CYRiOxbMx66NONbg","content":"1.2.20\n"},{"role":"tool","tool_call_id":"tooluse_ciZPFEpRS8KVQork8dOxDA","content":"b3ef1428 add http log\n28d617d8 ignore: update download stats 2025-10-10\n9b52d338 core: improve directory validation error messages to help users fix invalid directory names\n096710a8 ensure @opencode-ai/plugin is available in `.opencode` folder\n50bb2011 release: v0.14.7\n","cache_control":{"type":"ephemeral"}}],"tools":[...],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}} http request INFO 2025-10-10T14:51:38 +10ms service=provider providerID=my-lite-llm-provider status=400 statusText=Bad Request body={"error":{"message":"litellm.BadRequestError: BedrockException - {\"message\":\"The model returned the following errors: messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"}. Received Model Group=claude-4-5-sonnet\nAvailable Model Group Fallbacks=['claude-4-5-sonnet-vertex']\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"},\"request_id\":\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}]. Received Model Group=claude-4-5-sonnet-vertex\nAvailable Model Group Fallbacks=None\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"},\"request_id\":\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}] LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 LiteLLM Retried: 1 times, LiteLLM Max Retries: 2","type":null,"param":null,"code":"400"}} duration=7608 http response ERROR 2025-10-10T14:51:38 +4ms service=session.prompt session=ses_631651ae2ffej8iZ7gQz8TeDHV error={"error":{"name":"AI_APICallError","url":"https://my-litellm-host.com/chat/completions","requestBodyValues":{"model":"claude-4-5-sonnet","max_tokens":32000,"temperature":1,"thinking":{"type":"enabled","budget_tokens":16000},"messages":[{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"system","content":"...","cache_control":{"type":"ephemeral"}},{"role":"user","content":"Think of 5 different shell commands to run and run them."},{"role":"assistant","content":"","tool_calls":[{"id":"tooluse_xY3KNO5BQ_Wb2hdMsEgD8g","type":"function","function":{"name":"bash","arguments":"{\"command\":\"pwd\",\"description\":\"Print working directory\"}"}},{"id":"tooluse_QALMoQXsQYePdVd8rIaRTA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"git branch\",\"description\":\"Show git branches\"}"}},{"id":"tooluse_V7hI0qzdTOC9xVQuvrNnDA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"uname -a\",\"description\":\"Show system information\"}"}},{"id":"tooluse_hq8Ap0CYRiOxbMx66NONbg","type":"function","function":{"name":"bash","arguments":"{\"command\":\"bun --version\",\"description\":\"Show bun version\"}"}},{"id":"tooluse_ciZPFEpRS8KVQork8dOxDA","type":"function","function":{"name":"bash","arguments":"{\"command\":\"git log --oneline -5\",\"description\":\"Show last 5 git commits\"}"},"cache_control":{"type":"ephemeral"}}]},{"role":"tool","tool_call_id":"tooluse_xY3KNO5BQ_Wb2hdMsEgD8g","content":"/Users/jessevanderpluijm/Code/forks/opencode\n"},{"role":"tool","tool_call_id":"tooluse_QALMoQXsQYePdVd8rIaRTA","content":" azure-openai-tool-schema\n better-claude-prompt-caching-detection\n* dev\n"},{"role":"tool","tool_call_id":"tooluse_V7hI0qzdTOC9xVQuvrNnDA","content":"Darwin mac.home 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:40 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6041 arm64 arm Darwin\n"},{"role":"tool","tool_call_id":"tooluse_hq8Ap0CYRiOxbMx66NONbg","content":"1.2.20\n"},{"role":"tool","tool_call_id":"tooluse_ciZPFEpRS8KVQork8dOxDA","content":"b3ef1428 add http log\n28d617d8 ignore: update download stats 2025-10-10\n9b52d338 core: improve directory validation error messages to help users fix invalid directory names\n096710a8 ensure @opencode-ai/plugin is available in `.opencode` folder\n50bb2011 release: v0.14.7\n","cache_control":{"type":"ephemeral"}}],"tools":[...],"tool_choice":"auto","stream":true,"stream_options":{"include_usage":true}},"statusCode":400,"responseHeaders":{"connection":"keep-alive","content-length":"3066","content-type":"application/json","date":"Fri, 10 Oct 2025 14:51:37 GMT","server":"uvicorn","x-litellm-call-id":"e27f8ee2-b8b7-47b6-a0fe-a82f1f88b271","x-litellm-key-spend":"32.04287525000002","x-litellm-response-cost":"0","x-litellm-timeout":"600"},"responseBody":"{\"error\":{\"message\":\"litellm.BadRequestError: BedrockException - {\\\"message\\\":\\\"The model returned the following errors: messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\\\"}. Received Model Group=claude-4-5-sonnet\\nAvailable Model Group Fallbacks=['claude-4-5-sonnet-vertex']\\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\\\"type\\\":\\\"error\\\",\\\"error\\\":{\\\"type\\\":\\\"invalid_request_error\\\",\\\"message\\\":\\\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\\\"},\\\"request_id\\\":\\\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\\\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}]. Received Model Group=claude-4-5-sonnet-vertex\\nAvailable Model Group Fallbacks=None\\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\\\"type\\\":\\\"error\\\",\\\"error\\\":{\\\"type\\\":\\\"invalid_request_error\\\",\\\"message\\\":\\\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\\\"},\\\"request_id\\\":\\\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\\\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}] LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 LiteLLM Retried: 1 times, LiteLLM Max Retries: 2\",\"type\":null,\"param\":null,\"code\":\"400\"}}","isRetryable":false,"data":{"error":{"message":"litellm.BadRequestError: BedrockException - {\"message\":\"The model returned the following errors: messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"}. Received Model Group=claude-4-5-sonnet\nAvailable Model Group Fallbacks=['claude-4-5-sonnet-vertex']\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"},\"request_id\":\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}]. Received Model Group=claude-4-5-sonnet-vertex\nAvailable Model Group Fallbacks=None\nError doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking\"},\"request_id\":\"req_vrtx_011CTyhuTXynwxFQeCCieTz7\"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}] LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 LiteLLM Retried: 1 times, LiteLLM Max Retries: 2","type":null,"param":null,"code":"400"}}}} stream error INFO 2025-10-10T14:51:38 +0ms service=session.prompt session=ses_631651ae2ffej8iZ7gQz8TeDHV type=error part ERROR 2025-10-10T14:51:38 +1ms service=session.prompt session=ses_631651ae2ffej8iZ7gQz8TeDHV error=litellm.BadRequestError: BedrockException - {"message":"The model returned the following errors: messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"}. Received Model Group=claude-4-5-sonnet Available Model Group Fallbacks=['claude-4-5-sonnet-vertex'] Error doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{"type":"error","error":{"type":"invalid_request_error","message":"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"},"request_id":"req_vrtx_011CTyhuTXynwxFQeCCieTz7"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}]. Received Model Group=claude-4-5-sonnet-vertex Available Model Group Fallbacks=None Error doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{"type":"error","error":{"type":"invalid_request_error","message":"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"},"request_id":"req_vrtx_011CTyhuTXynwxFQeCCieTz7"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}] LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 process ERROR 2025-10-10T14:51:38 +0ms service=tui message=AI_APICallError: litellm.BadRequestError: BedrockException - {"message":"The model returned the following errors: messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"}. Received Model Group=claude-4-5-sonnet Available Model Group Fallbacks=['claude-4-5-sonnet-vertex'] Error doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{"type":"error","error":{"type":"invalid_request_error","message":"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"},"request_id":"req_vrtx_011CTyhuTXynwxFQeCCieTz7"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}]. Received Model Group=claude-4-5-sonnet-vertex Available Model Group Fallbacks=None Error doing the fallback: litellm.BadRequestError: Vertex_aiException BadRequestError - b'{"type":"error","error":{"type":"invalid_request_error","message":"messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `tool_use`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"},"request_id":"req_vrtx_011CTyhuTXynwxFQeCCieTz7"}'No fallback model group found for original model_group=claude-4-5-sonnet-vertex. Fallbacks=[{'claude-4-5-sonnet': ['claude-4-5-sonnet-vertex']}, {'claude-4-sonnet': ['claude-4-sonnet-vertex']}, {'claude-3-7-sonnet': ['claude-3-7-sonnet-vertex']}, {'claude-3-5-sonnet': ['claude-3-5-sonnet-vertex']}, {'claude-3-haiku': ['claude-3-haiku-vertex']}, {'gpt-4.1-mini': ['gpt-4.1-nano']}] LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 LiteLLM Retried: 1 times, LiteLLM Max Retries: 2 name=UnknownError Server error INFO 2025-10-10T14:51:38 +0ms service=server duration=0 response ``` </p> </details>
Author
Owner

@jessevdp commented on GitHub (Oct 11, 2025):

Instead of logging HTTP request/responses I decided to log the chunks just before where they're processed:

https://github.com/sst/opencode/blob/9d30bc692cb8854e6f37e9637de53c68a704852a/packages/opencode/src/session/prompt.ts#L900-L939

Log implementation

diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts
index 0ccb208c..6f762007 100644
--- a/packages/opencode/src/session/prompt.ts
+++ b/packages/opencode/src/session/prompt.ts
@@ -892,6 +892,7 @@ export namespace SessionPrompt {
             input.abort.throwIfAborted()
             log.info("part", {
               type: value.type,
+              data: value,
             })
             switch (value.type) {
               case "start":

Full log

{"type":"start"}
{"type":"reasoning-start","id":"reasoning-0"}
{"type":"reasoning-delta","id":"reasoning-0","text":"The user is asking me to think"}
{"type":"reasoning-delta","id":"reasoning-0","text":" of 2 different commands and run"}
{"type":"reasoning-delta","id":"reasoning-0","text":" them. They"}
{"type":"reasoning-delta","id":"reasoning-0","text":" haven"}
{"type":"reasoning-delta","id":"reasoning-0","text":"'t specified what"}
{"type":"reasoning-delta","id":"reasoning-0","text":" kin"}
{"type":"reasoning-delta","id":"reasoning-0","text":"d of commands,"}
{"type":"reasoning-delta","id":"reasoning-0","text":" so"}
{"type":"reasoning-delta","id":"reasoning-0","text":" I should choose"}
{"type":"reasoning-delta","id":"reasoning-0","text":" some"}
{"type":"reasoning-delta","id":"reasoning-0","text":" reasonable"}
{"type":"reasoning-delta","id":"reasoning-0","text":","}
{"type":"reasoning-delta","id":"reasoning-0","text":" safe"}
{"type":"reasoning-delta","id":"reasoning-0","text":" commands that will"}
{"type":"reasoning-delta","id":"reasoning-0","text":" demonstrate"}
{"type":"reasoning-delta","id":"reasoning-0","text":" my capability. I shoul"}
{"type":"reasoning-delta","id":"reasoning-0","text":"d run"}
{"type":"reasoning-delta","id":"reasoning-0","text":" them"}
{"type":"reasoning-delta","id":"reasoning-0","text":" in parallel since"}
{"type":"reasoning-delta","id":"reasoning-0","text":" they are"}
{"type":"reasoning-delta","id":"reasoning-0","text":" independent."}
{"type":"reasoning-delta","id":"reasoning-0","text":"\n\nI'll choose"}
{"type":"reasoning-delta","id":"reasoning-0","text":":"}
{"type":"reasoning-delta","id":"reasoning-0","text":"\n1. `"}
{"type":"reasoning-delta","id":"reasoning-0","text":"pw"}
{"type":"reasoning-delta","id":"reasoning-0","text":"d` - to show the"}
{"type":"reasoning-delta","id":"reasoning-0","text":" current working"}
{"type":"reasoning-delta","id":"reasoning-0","text":" directory\n2. `date"}
{"type":"reasoning-delta","id":"reasoning-0","text":"` - to show the current date an"}
{"type":"reasoning-delta","id":"reasoning-0","text":"d time\n\nThese are simple"}
{"type":"reasoning-delta","id":"reasoning-0","text":", safe"}
{"type":"reasoning-delta","id":"reasoning-0","text":" commands that don't modify"}
{"type":"reasoning-delta","id":"reasoning-0","text":" anything"}
{"type":"reasoning-delta","id":"reasoning-0","text":" an"}
{"type":"reasoning-delta","id":"reasoning-0","text":"d will"}
{"type":"reasoning-delta","id":"reasoning-0","text":" provide"}
{"type":"reasoning-delta","id":"reasoning-0","text":" useful"}
{"type":"reasoning-delta","id":"reasoning-0","text":" information."}
{"type":"tool-input-start","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","toolName":"bash","dynamic":false}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":""}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"{\"co"}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"mmand\": "}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"\"pwd\""}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":", \"d"}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"escrip"}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"ti"}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"on\": \""}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"Sho"}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"w c"}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"urrent work"}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"ing directo"}
{"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"ry\"}"}
{"type":"tool-input-end","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA"}
{"type":"tool-call","toolCallId":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","toolName":"bash","input":{"command":"pwd","description":"Show current working directory"}}
{"type":"tool-input-start","id":"tooluse_XTR012irSeWNkRiC_6AW1w","toolName":"bash","dynamic":false}
{"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":""}
{"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"{\"c"}
{"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"ommand\": "}
{"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"\"date\""}
{"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":", "}
{"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"\"description"}
{"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"\": \"Displa"}
{"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"y c"}
{"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"urrent date "}
{"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"and time"}
{"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"\"}"}
{"type":"tool-input-end","id":"tooluse_XTR012irSeWNkRiC_6AW1w"}
{"type":"tool-call","toolCallId":"tooluse_XTR012irSeWNkRiC_6AW1w","toolName":"bash","input":{"command":"date","description":"Display current date and time"}}
{"type":"reasoning-end","id":"reasoning-0"}
{"type":"tool-result","toolCallId":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","toolName":"bash","input":{"command":"pwd","description":"Show current working directory"},"output":{"title":"pwd","metadata":{"output":"/Users/jessevanderpluijm/Code/forks/opencode\n","exit":0,"description":"Show current working directory"},"output":"/Users/jessevanderpluijm/Code/forks/opencode\n"}}
{"type":"tool-result","toolCallId":"tooluse_XTR012irSeWNkRiC_6AW1w","toolName":"bash","input":{"command":"date","description":"Display current date and time"},"output":{"title":"date","metadata":{"output":"Sat Oct 11 07:31:36 CEST 2025\n","exit":0,"description":"Display current date and time"},"output":"Sat Oct 11 07:31:36 CEST 2025\n"}}
{"type":"finish-step","finishReason":"tool-calls","usage":{"inputTokens":12574,"outputTokens":237,"totalTokens":12811,"reasoningTokens":99,"cachedInputTokens":12565},"providerMetadata":{"bonzai":{}},"response":{"id":"chatcmpl-43062c80-cbc1-471c-a7da-9ea23c7961a7","timestamp":"2025-10-11T05:31:33.000Z","modelId":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","headers":{"connection":"keep-alive","content-type":"text/event-stream; charset=utf-8","date":"Sat, 11 Oct 2025 05:31:33 GMT","server":"uvicorn","transfer-encoding":"chunked","x-litellm-call-id":"1c4ec28b-b5f2-41d1-90c6-b0d15e79da55","x-litellm-key-spend":"31.235653150000022","x-litellm-model-api-base":"https://bedrock-runtime.eu-central-1.amazonaws.com/model/eu.anthropic.claude-sonnet-4-5-20250929-v1%3A0/converse-stream","x-litellm-model-id":"b13a5f4ec04005c9b991a3723cfa44a8e388fda30c782189d08741a1dbb3472d","x-litellm-version":"1.77.5"}}}
{"type":"finish","finishReason":"tool-calls","totalUsage":{"inputTokens":12574,"outputTokens":237,"totalTokens":12811,"reasoningTokens":99,"cachedInputTokens":12565}}

Just looking at reasoning related chunks:

{"type":"reasoning-start","id":"reasoning-0"}
{"type":"reasoning-delta","id":"reasoning-0","text":"The user is asking me to think"}
...
{"type":"reasoning-delta","id":"reasoning-0","text":" information."}
{"type":"reasoning-end","id":"reasoning-0"}

It doesn't seem like any providerMetadata is there... 🤔

The only providerMetadata is in the finish-step chunk:

{
  "type": "finish-step",
  "finishReason": "tool-calls",
  "usage": {
    // ...
  },
  "providerMetadata": {
    "bonzai": {} // name of my litellm provider
  },
  "response": {
     // ...
  }
}
@jessevdp commented on GitHub (Oct 11, 2025): Instead of logging HTTP request/responses I decided to log the chunks just before where they're processed: https://github.com/sst/opencode/blob/9d30bc692cb8854e6f37e9637de53c68a704852a/packages/opencode/src/session/prompt.ts#L900-L939 <details><summary>Log implementation</summary> <p> ```patch diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 0ccb208c..6f762007 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -892,6 +892,7 @@ export namespace SessionPrompt { input.abort.throwIfAborted() log.info("part", { type: value.type, + data: value, }) switch (value.type) { case "start": ``` </p> </details> <details><summary>Full log</summary> <p> ``` {"type":"start"} {"type":"reasoning-start","id":"reasoning-0"} {"type":"reasoning-delta","id":"reasoning-0","text":"The user is asking me to think"} {"type":"reasoning-delta","id":"reasoning-0","text":" of 2 different commands and run"} {"type":"reasoning-delta","id":"reasoning-0","text":" them. They"} {"type":"reasoning-delta","id":"reasoning-0","text":" haven"} {"type":"reasoning-delta","id":"reasoning-0","text":"'t specified what"} {"type":"reasoning-delta","id":"reasoning-0","text":" kin"} {"type":"reasoning-delta","id":"reasoning-0","text":"d of commands,"} {"type":"reasoning-delta","id":"reasoning-0","text":" so"} {"type":"reasoning-delta","id":"reasoning-0","text":" I should choose"} {"type":"reasoning-delta","id":"reasoning-0","text":" some"} {"type":"reasoning-delta","id":"reasoning-0","text":" reasonable"} {"type":"reasoning-delta","id":"reasoning-0","text":","} {"type":"reasoning-delta","id":"reasoning-0","text":" safe"} {"type":"reasoning-delta","id":"reasoning-0","text":" commands that will"} {"type":"reasoning-delta","id":"reasoning-0","text":" demonstrate"} {"type":"reasoning-delta","id":"reasoning-0","text":" my capability. I shoul"} {"type":"reasoning-delta","id":"reasoning-0","text":"d run"} {"type":"reasoning-delta","id":"reasoning-0","text":" them"} {"type":"reasoning-delta","id":"reasoning-0","text":" in parallel since"} {"type":"reasoning-delta","id":"reasoning-0","text":" they are"} {"type":"reasoning-delta","id":"reasoning-0","text":" independent."} {"type":"reasoning-delta","id":"reasoning-0","text":"\n\nI'll choose"} {"type":"reasoning-delta","id":"reasoning-0","text":":"} {"type":"reasoning-delta","id":"reasoning-0","text":"\n1. `"} {"type":"reasoning-delta","id":"reasoning-0","text":"pw"} {"type":"reasoning-delta","id":"reasoning-0","text":"d` - to show the"} {"type":"reasoning-delta","id":"reasoning-0","text":" current working"} {"type":"reasoning-delta","id":"reasoning-0","text":" directory\n2. `date"} {"type":"reasoning-delta","id":"reasoning-0","text":"` - to show the current date an"} {"type":"reasoning-delta","id":"reasoning-0","text":"d time\n\nThese are simple"} {"type":"reasoning-delta","id":"reasoning-0","text":", safe"} {"type":"reasoning-delta","id":"reasoning-0","text":" commands that don't modify"} {"type":"reasoning-delta","id":"reasoning-0","text":" anything"} {"type":"reasoning-delta","id":"reasoning-0","text":" an"} {"type":"reasoning-delta","id":"reasoning-0","text":"d will"} {"type":"reasoning-delta","id":"reasoning-0","text":" provide"} {"type":"reasoning-delta","id":"reasoning-0","text":" useful"} {"type":"reasoning-delta","id":"reasoning-0","text":" information."} {"type":"tool-input-start","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","toolName":"bash","dynamic":false} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":""} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"{\"co"} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"mmand\": "} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"\"pwd\""} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":", \"d"} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"escrip"} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"ti"} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"on\": \""} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"Sho"} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"w c"} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"urrent work"} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"ing directo"} {"type":"tool-input-delta","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","delta":"ry\"}"} {"type":"tool-input-end","id":"tooluse_-iPM9PVMQnehA0Ss7xnQJA"} {"type":"tool-call","toolCallId":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","toolName":"bash","input":{"command":"pwd","description":"Show current working directory"}} {"type":"tool-input-start","id":"tooluse_XTR012irSeWNkRiC_6AW1w","toolName":"bash","dynamic":false} {"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":""} {"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"{\"c"} {"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"ommand\": "} {"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"\"date\""} {"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":", "} {"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"\"description"} {"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"\": \"Displa"} {"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"y c"} {"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"urrent date "} {"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"and time"} {"type":"tool-input-delta","id":"tooluse_XTR012irSeWNkRiC_6AW1w","delta":"\"}"} {"type":"tool-input-end","id":"tooluse_XTR012irSeWNkRiC_6AW1w"} {"type":"tool-call","toolCallId":"tooluse_XTR012irSeWNkRiC_6AW1w","toolName":"bash","input":{"command":"date","description":"Display current date and time"}} {"type":"reasoning-end","id":"reasoning-0"} {"type":"tool-result","toolCallId":"tooluse_-iPM9PVMQnehA0Ss7xnQJA","toolName":"bash","input":{"command":"pwd","description":"Show current working directory"},"output":{"title":"pwd","metadata":{"output":"/Users/jessevanderpluijm/Code/forks/opencode\n","exit":0,"description":"Show current working directory"},"output":"/Users/jessevanderpluijm/Code/forks/opencode\n"}} {"type":"tool-result","toolCallId":"tooluse_XTR012irSeWNkRiC_6AW1w","toolName":"bash","input":{"command":"date","description":"Display current date and time"},"output":{"title":"date","metadata":{"output":"Sat Oct 11 07:31:36 CEST 2025\n","exit":0,"description":"Display current date and time"},"output":"Sat Oct 11 07:31:36 CEST 2025\n"}} {"type":"finish-step","finishReason":"tool-calls","usage":{"inputTokens":12574,"outputTokens":237,"totalTokens":12811,"reasoningTokens":99,"cachedInputTokens":12565},"providerMetadata":{"bonzai":{}},"response":{"id":"chatcmpl-43062c80-cbc1-471c-a7da-9ea23c7961a7","timestamp":"2025-10-11T05:31:33.000Z","modelId":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","headers":{"connection":"keep-alive","content-type":"text/event-stream; charset=utf-8","date":"Sat, 11 Oct 2025 05:31:33 GMT","server":"uvicorn","transfer-encoding":"chunked","x-litellm-call-id":"1c4ec28b-b5f2-41d1-90c6-b0d15e79da55","x-litellm-key-spend":"31.235653150000022","x-litellm-model-api-base":"https://bedrock-runtime.eu-central-1.amazonaws.com/model/eu.anthropic.claude-sonnet-4-5-20250929-v1%3A0/converse-stream","x-litellm-model-id":"b13a5f4ec04005c9b991a3723cfa44a8e388fda30c782189d08741a1dbb3472d","x-litellm-version":"1.77.5"}}} {"type":"finish","finishReason":"tool-calls","totalUsage":{"inputTokens":12574,"outputTokens":237,"totalTokens":12811,"reasoningTokens":99,"cachedInputTokens":12565}} ``` </p> </details> Just looking at reasoning related chunks: ``` {"type":"reasoning-start","id":"reasoning-0"} {"type":"reasoning-delta","id":"reasoning-0","text":"The user is asking me to think"} ... {"type":"reasoning-delta","id":"reasoning-0","text":" information."} {"type":"reasoning-end","id":"reasoning-0"} ``` It doesn't seem like any `providerMetadata` is there... 🤔 The only `providerMetadata` is in the finish-step chunk: ```jsonc { "type": "finish-step", "finishReason": "tool-calls", "usage": { // ... }, "providerMetadata": { "bonzai": {} // name of my litellm provider }, "response": { // ... } } ```
Author
Owner

@rekram1-node commented on GitHub (Oct 11, 2025):

@jessevdp are you saying we aren't parsing it correctly? Or that your proxy may be dropping information?

@rekram1-node commented on GitHub (Oct 11, 2025): @jessevdp are you saying we aren't parsing it correctly? Or that your proxy may be dropping information?
Author
Owner

@jessevdp commented on GitHub (Oct 11, 2025):

I’m unsure at this point. I’m assuming it’s either:

  • the server isn’t sending all the required metadata
  • the server is sending data correctly but @ai-sdk/openai-compatible (or opencode?) isn’t parsing it correctly.

I have a bit of trouble interpreting those streamed chunks at HTTP log level. I’m not entirely sure what I’m looking for.

I so something that looks vaguely like the signature metadata coming through in the HTTP stream.

data: {"id":"chatcmpl-92a96b72-6a53-45ca-bb3a-5e29ebc29ba6","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"","thinking_blocks":[{"type":"thinking","signature":"Et4FCkgICBABGAIqQFm+AC4NJF4/9kEyplZ9WB9i1vplCHJCTSVmWfOvoNZ/5ifWsh40lyc/NiFcEpt2wrHpaxCEencZdL9BWp5YbeMSDDNc6kP8/Ro71T9G6hoMltAMuQwesnxDk9x7IjBvqhVIo5bIBO7YvAbsDyABrDXCECEYJluW3cRpYj90VG0IirCBxfozHdmQVI6j87QqwwTyQ8ILIWStyDhCJXBmPQsI1lOhs0aFKEs4D+FeDkZPwo6lehfkZ9XDfdvlGpD7zoiSPp8OpmiZUqQoeGIgC+RPcq04JUind5raJOWMzxf4nM681Nqqe99tMQRrAP67h+7YEWrH0O/YTZ1VRJ4dGVJ3q82ABmFLJu/7DgmEATyhWxQ7IdmMik+YYTHiSMdURkSm6Jvp20QsYPMB84BEM3UHIJcGyQQmQZ0ibRvtho1oPQrZxpcnpPuO0LRl/1GTRR7xgP3n2zm2f5l4bL1dLxl3BQLBH9NNG8RoA3LjcZ4T1v4IGbOsuGJZD+AZVr1vT0ZnkShcF8S+vHfuP8Y25AaFFxIAhZn9vC/FfrDVreQSEiFgLqOEZe1EP77b12zC0mQAoLPfdQLjPihASwNLcmV++wEOEq6ziJcfFw0137BxGo6d/Y9cj0nvmIqCAkCHo5J85gGMJBjIbBwHdEhKth5iT6tRITIDyCGBuTg1rdYldMz7ofefZaYCq2QTt2JHFaTsdxc4tobZExVCSfgrOUFpfCgE/egnJEAVk9gXYqKDk+Fua2aBwjpVD2NhcKkBDAUSYrYYNWrsbLDGoCnBgorze8nDKfRI67vNxRnQQr1ONiPlcti8rS7d0Q/fxBJjDlwNN3IFiRtdE2quRzr4nfVSuoXw8UTawMwsTzaLRG0SkuF66ximFkl0DyYt1USxJBCUHt9gO2tq1WBo0BYFkTAygUN6GTMB0G2rvbLSig08f8PwH06eZ5hCOkmZtVuenmZ7PRcYAQ==","thinking":""}],"provider_specific_fields":{"reasoningContent":{"signature":"Et4FCkgICBABGAIqQFm+AC4NJF4/9kEyplZ9WB9i1vplCHJCTSVmWfOvoNZ/5ifWsh40lyc/NiFcEpt2wrHpaxCEencZdL9BWp5YbeMSDDNc6kP8/Ro71T9G6hoMltAMuQwesnxDk9x7IjBvqhVIo5bIBO7YvAbsDyABrDXCECEYJluW3cRpYj90VG0IirCBxfozHdmQVI6j87QqwwTyQ8ILIWStyDhCJXBmPQsI1lOhs0aFKEs4D+FeDkZPwo6lehfkZ9XDfdvlGpD7zoiSPp8OpmiZUqQoeGIgC+RPcq04JUind5raJOWMzxf4nM681Nqqe99tMQRrAP67h+7YEWrH0O/YTZ1VRJ4dGVJ3q82ABmFLJu/7DgmEATyhWxQ7IdmMik+YYTHiSMdURkSm6Jvp20QsYPMB84BEM3UHIJcGyQQmQZ0ibRvtho1oPQrZxpcnpPuO0LRl/1GTRR7xgP3n2zm2f5l4bL1dLxl3BQLBH9NNG8RoA3LjcZ4T1v4IGbOsuGJZD+AZVr1vT0ZnkShcF8S+vHfuP8Y25AaFFxIAhZn9vC/FfrDVreQSEiFgLqOEZe1EP77b12zC0mQAoLPfdQLjPihASwNLcmV++wEOEq6ziJcfFw0137BxGo6d/Y9cj0nvmIqCAkCHo5J85gGMJBjIbBwHdEhKth5iT6tRITIDyCGBuTg1rdYldMz7ofefZaYCq2QTt2JHFaTsdxc4tobZExVCSfgrOUFpfCgE/egnJEAVk9gXYqKDk+Fua2aBwjpVD2NhcKkBDAUSYrYYNWrsbLDGoCnBgorze8nDKfRI67vNxRnQQr1ONiPlcti8rS7d0Q/fxBJjDlwNN3IFiRtdE2quRzr4nfVSuoXw8UTawMwsTzaLRG0SkuF66ximFkl0DyYt1USxJBCUHt9gO2tq1WBo0BYFkTAygUN6GTMB0G2rvbLSig08f8PwH06eZ5hCOkmZtVuenmZ7PRcYAQ=="}},"content":""}}],"provider_specific_fields":{}}

That seems to be the final reasoning related HTTP chunk. The others just have incremental “actual content” / text.

Is this something that’s special cases for anthropic? Should I be looking at the adapter? Is using anthropic thinking mode via openAI compatible API the root of the problem here? Or something else?

Why is the missing metadata a problem? It seems that the chunks are correctly received as reasoning start/delta/finish etc.

@jessevdp commented on GitHub (Oct 11, 2025): I’m unsure at this point. I’m assuming it’s either: - the server isn’t sending all the required metadata - the server is sending data correctly but `@ai-sdk/openai-compatible` (or opencode?) isn’t parsing it correctly. I have a bit of trouble interpreting those streamed chunks at HTTP log level. I’m not entirely sure what I’m looking for. I so something that looks vaguely like the `signature` metadata coming through in the HTTP stream. ``` data: {"id":"chatcmpl-92a96b72-6a53-45ca-bb3a-5e29ebc29ba6","created":1760107884,"model":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"reasoning_content":"","thinking_blocks":[{"type":"thinking","signature":"Et4FCkgICBABGAIqQFm+AC4NJF4/9kEyplZ9WB9i1vplCHJCTSVmWfOvoNZ/5ifWsh40lyc/NiFcEpt2wrHpaxCEencZdL9BWp5YbeMSDDNc6kP8/Ro71T9G6hoMltAMuQwesnxDk9x7IjBvqhVIo5bIBO7YvAbsDyABrDXCECEYJluW3cRpYj90VG0IirCBxfozHdmQVI6j87QqwwTyQ8ILIWStyDhCJXBmPQsI1lOhs0aFKEs4D+FeDkZPwo6lehfkZ9XDfdvlGpD7zoiSPp8OpmiZUqQoeGIgC+RPcq04JUind5raJOWMzxf4nM681Nqqe99tMQRrAP67h+7YEWrH0O/YTZ1VRJ4dGVJ3q82ABmFLJu/7DgmEATyhWxQ7IdmMik+YYTHiSMdURkSm6Jvp20QsYPMB84BEM3UHIJcGyQQmQZ0ibRvtho1oPQrZxpcnpPuO0LRl/1GTRR7xgP3n2zm2f5l4bL1dLxl3BQLBH9NNG8RoA3LjcZ4T1v4IGbOsuGJZD+AZVr1vT0ZnkShcF8S+vHfuP8Y25AaFFxIAhZn9vC/FfrDVreQSEiFgLqOEZe1EP77b12zC0mQAoLPfdQLjPihASwNLcmV++wEOEq6ziJcfFw0137BxGo6d/Y9cj0nvmIqCAkCHo5J85gGMJBjIbBwHdEhKth5iT6tRITIDyCGBuTg1rdYldMz7ofefZaYCq2QTt2JHFaTsdxc4tobZExVCSfgrOUFpfCgE/egnJEAVk9gXYqKDk+Fua2aBwjpVD2NhcKkBDAUSYrYYNWrsbLDGoCnBgorze8nDKfRI67vNxRnQQr1ONiPlcti8rS7d0Q/fxBJjDlwNN3IFiRtdE2quRzr4nfVSuoXw8UTawMwsTzaLRG0SkuF66ximFkl0DyYt1USxJBCUHt9gO2tq1WBo0BYFkTAygUN6GTMB0G2rvbLSig08f8PwH06eZ5hCOkmZtVuenmZ7PRcYAQ==","thinking":""}],"provider_specific_fields":{"reasoningContent":{"signature":"Et4FCkgICBABGAIqQFm+AC4NJF4/9kEyplZ9WB9i1vplCHJCTSVmWfOvoNZ/5ifWsh40lyc/NiFcEpt2wrHpaxCEencZdL9BWp5YbeMSDDNc6kP8/Ro71T9G6hoMltAMuQwesnxDk9x7IjBvqhVIo5bIBO7YvAbsDyABrDXCECEYJluW3cRpYj90VG0IirCBxfozHdmQVI6j87QqwwTyQ8ILIWStyDhCJXBmPQsI1lOhs0aFKEs4D+FeDkZPwo6lehfkZ9XDfdvlGpD7zoiSPp8OpmiZUqQoeGIgC+RPcq04JUind5raJOWMzxf4nM681Nqqe99tMQRrAP67h+7YEWrH0O/YTZ1VRJ4dGVJ3q82ABmFLJu/7DgmEATyhWxQ7IdmMik+YYTHiSMdURkSm6Jvp20QsYPMB84BEM3UHIJcGyQQmQZ0ibRvtho1oPQrZxpcnpPuO0LRl/1GTRR7xgP3n2zm2f5l4bL1dLxl3BQLBH9NNG8RoA3LjcZ4T1v4IGbOsuGJZD+AZVr1vT0ZnkShcF8S+vHfuP8Y25AaFFxIAhZn9vC/FfrDVreQSEiFgLqOEZe1EP77b12zC0mQAoLPfdQLjPihASwNLcmV++wEOEq6ziJcfFw0137BxGo6d/Y9cj0nvmIqCAkCHo5J85gGMJBjIbBwHdEhKth5iT6tRITIDyCGBuTg1rdYldMz7ofefZaYCq2QTt2JHFaTsdxc4tobZExVCSfgrOUFpfCgE/egnJEAVk9gXYqKDk+Fua2aBwjpVD2NhcKkBDAUSYrYYNWrsbLDGoCnBgorze8nDKfRI67vNxRnQQr1ONiPlcti8rS7d0Q/fxBJjDlwNN3IFiRtdE2quRzr4nfVSuoXw8UTawMwsTzaLRG0SkuF66ximFkl0DyYt1USxJBCUHt9gO2tq1WBo0BYFkTAygUN6GTMB0G2rvbLSig08f8PwH06eZ5hCOkmZtVuenmZ7PRcYAQ=="}},"content":""}}],"provider_specific_fields":{}} ``` That seems to be the final `reasoning` related HTTP chunk. The others just have incremental “actual content” / text. Is this something that’s special cases for `anthropic`? Should I be looking at the adapter? Is using anthropic thinking mode via openAI compatible API the root of the problem here? Or something else? Why is the missing metadata a problem? It seems that the chunks are correctly received as reasoning start/delta/finish etc.
Author
Owner

@rekram1-node commented on GitHub (Oct 11, 2025):

The error that you reported for this issue is caused by missing metadata, if for whatever reason your proxy isnt properly transforming the chunks into openai compatible format, then opencode wont have 100% of the data it needs when sending requests to your proxy, so then it fails once it hits anthropic

@rekram1-node commented on GitHub (Oct 11, 2025): The error that you reported for this issue is caused by missing metadata, if for whatever reason your proxy isnt properly transforming the chunks into openai compatible format, then opencode wont have 100% of the data it needs when sending requests to your proxy, so then it fails once it hits anthropic
Author
Owner

@jessevdp commented on GitHub (Oct 13, 2025):

Related issues reported to LiteLLM

@jessevdp commented on GitHub (Oct 13, 2025): Related issues reported to LiteLLM - https://github.com/BerriAI/litellm/issues/14194 - https://github.com/BerriAI/litellm/issues/11302 - (seems to be "fixed" by patching the LiteLLM python client) - https://github.com/BerriAI/litellm/issues/9020
Author
Owner

@jessevdp commented on GitHub (Oct 13, 2025):

I'm investigating if this might be a problem in @ai-sdk/openai-compatible.

I added some middleware to streamText via wrapLanguageModel to log the params sent to doStream

diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts
index 6f762007..d2798bcc 100644
--- a/packages/opencode/src/session/prompt.ts
+++ b/packages/opencode/src/session/prompt.ts
@@ -315,6 +315,12 @@ export namespace SessionPrompt {
                 return args.params
               },
             },
+            {
+              async wrapStream(args) {
+                log.info("wrapStream", { params: args.params })
+                return args.doStream(args)
+              }
+            }
           ],
         }),
       })

doStream params

{
  "maxOutputTokens": 32000,
  "temperature": 1,
  "tools": [
    // ...
  ],
  "toolChoice": {
    "type": "auto"
  },
  "prompt": [
    {
      "role": "system",
      "content": "...",
      "providerOptions": {
        // ...
      }
    },
    {
      "role": "system",
      "content": "...",
      "providerOptions": {
        // ...
      }
    },
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Think of 2 different commands and run them"
        }
      ]
    },
    {
      "role": "assistant",
      "content": [
        {
          "type": "reasoning",
          "text": "The user wants me to think of 2 different commands and run them. They didn't specify what kind of commands, so I should choose some simple, harmless commands that would be informative or useful. Since I'm in a git repository according to the environment info, I could run git-related commands, or just general system commands.\n\nLet me pick two different commands:\n1. `pwd` - to show the current working directory\n2. `date` - to show the current date and time\n\nThese are simple, safe commands that don't modify anything. I can run them in parallel since they're independent."
        },
        {
          "type": "tool-call",
          "toolCallId": "toolu_vrtx_016xYpaUEa2znN1jYMrzrt9Z",
          "toolName": "bash",
          "input": {
            "command": "pwd",
            "description": "Print current working directory"
          }
        },
        {
          "type": "tool-call",
          "toolCallId": "toolu_vrtx_01CgPSgtTguW5DCsaYFJW6iq",
          "toolName": "bash",
          "input": {
            "command": "date",
            "description": "Show current date and time"
          },
          "providerOptions": {
            // ...
          }
        }
      ]
    },
    {
      "role": "tool",
      "content": [
        {
          "type": "tool-result",
          "toolCallId": "toolu_vrtx_016xYpaUEa2znN1jYMrzrt9Z",
          "toolName": "bash",
          "output": {
            "type": "text",
            "value": "/Users/jessevanderpluijm/Code/forks/opencode\n"
          }
        },
        {
          "type": "tool-result",
          "toolCallId": "toolu_vrtx_01CgPSgtTguW5DCsaYFJW6iq",
          "toolName": "bash",
          "output": {
            "type": "text",
            "value": "Mon Oct 13 15:05:08 CEST 2025\n"
          },
          "providerOptions": {
            // ...
          }
        }
      ]
    }
  ],
  "providerOptions": {
    "bonzai": {
      "thinking": {
        "type": "enabled",
        "budget_tokens": 16000
      }
    }
  },
  "abortSignal": {},
  "includeRawChunks": false
}

I then log the HTTP request sent by @ai-sdk/openai-compatible using the HTTP log implementation I provided earlier.

HTTP request body

{
  "model": "claude-sonnet-4-5-20250929",
  "max_tokens": 32000,
  "temperature": 1,
  "thinking": {
    "type": "enabled",
    "budget_tokens": 16000
  },
  "messages": [
    {
      "role": "system",
      "content": "...",
      "cache_control": {
        "type": "ephemeral"
      }
    },
    {
      "role": "system",
      "content": "...",
      "cache_control": {
        "type": "ephemeral"
      }
    },
    {
      "role": "user",
      "content": "Think of 2 different commands and run them"
    },
    {
      "role": "assistant",
      "content": "",
      "tool_calls": [
        {
          "id": "toolu_vrtx_016xYpaUEa2znN1jYMrzrt9Z",
          "type": "function",
          "function": {
            "name": "bash",
            "arguments": "{\"command\":\"pwd\",\"description\":\"Print current working directory\"}"
          }
        },
        {
          "id": "toolu_vrtx_01CgPSgtTguW5DCsaYFJW6iq",
          "type": "function",
          "function": {
            "name": "bash",
            "arguments": "{\"command\":\"date\",\"description\":\"Show current date and time\"}"
          },
          "cache_control": {
            "type": "ephemeral"
          }
        }
      ]
    },
    {
      "role": "tool",
      "tool_call_id": "toolu_vrtx_016xYpaUEa2znN1jYMrzrt9Z",
      "content": "/Users/jessevanderpluijm/Code/forks/opencode\n"
    },
    {
      "role": "tool",
      "tool_call_id": "toolu_vrtx_01CgPSgtTguW5DCsaYFJW6iq",
      "content": "Mon Oct 13 15:05:08 CEST 2025\n",
      "cache_control": {
        "type": "ephemeral"
      }
    }
  ],
  "tools": [
    // ...
  ],
  "tool_choice": "auto",
  "stream": true,
  "stream_options": {
    "include_usage": true
  }
}

Note how the reasoning content WAS present in the params sent to doStream but WASN'T in the HTTP request. I'm going to take a closer look at @ai-sdk/openai-compatible to see what's going on.

@jessevdp commented on GitHub (Oct 13, 2025): I'm investigating if this might be a problem in `@ai-sdk/openai-compatible`. <details><summary>I added some middleware to streamText via wrapLanguageModel to log the params sent to doStream</summary> <p> ```patch diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 6f762007..d2798bcc 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -315,6 +315,12 @@ export namespace SessionPrompt { return args.params }, }, + { + async wrapStream(args) { + log.info("wrapStream", { params: args.params }) + return args.doStream(args) + } + } ], }), }) ``` </p> </details> <details><summary>doStream params</summary> <p> ```jsonc { "maxOutputTokens": 32000, "temperature": 1, "tools": [ // ... ], "toolChoice": { "type": "auto" }, "prompt": [ { "role": "system", "content": "...", "providerOptions": { // ... } }, { "role": "system", "content": "...", "providerOptions": { // ... } }, { "role": "user", "content": [ { "type": "text", "text": "Think of 2 different commands and run them" } ] }, { "role": "assistant", "content": [ { "type": "reasoning", "text": "The user wants me to think of 2 different commands and run them. They didn't specify what kind of commands, so I should choose some simple, harmless commands that would be informative or useful. Since I'm in a git repository according to the environment info, I could run git-related commands, or just general system commands.\n\nLet me pick two different commands:\n1. `pwd` - to show the current working directory\n2. `date` - to show the current date and time\n\nThese are simple, safe commands that don't modify anything. I can run them in parallel since they're independent." }, { "type": "tool-call", "toolCallId": "toolu_vrtx_016xYpaUEa2znN1jYMrzrt9Z", "toolName": "bash", "input": { "command": "pwd", "description": "Print current working directory" } }, { "type": "tool-call", "toolCallId": "toolu_vrtx_01CgPSgtTguW5DCsaYFJW6iq", "toolName": "bash", "input": { "command": "date", "description": "Show current date and time" }, "providerOptions": { // ... } } ] }, { "role": "tool", "content": [ { "type": "tool-result", "toolCallId": "toolu_vrtx_016xYpaUEa2znN1jYMrzrt9Z", "toolName": "bash", "output": { "type": "text", "value": "/Users/jessevanderpluijm/Code/forks/opencode\n" } }, { "type": "tool-result", "toolCallId": "toolu_vrtx_01CgPSgtTguW5DCsaYFJW6iq", "toolName": "bash", "output": { "type": "text", "value": "Mon Oct 13 15:05:08 CEST 2025\n" }, "providerOptions": { // ... } } ] } ], "providerOptions": { "bonzai": { "thinking": { "type": "enabled", "budget_tokens": 16000 } } }, "abortSignal": {}, "includeRawChunks": false } ``` </p> </details> I then log the HTTP request sent by `@ai-sdk/openai-compatible` using the [HTTP log implementation I provided earlier](https://github.com/sst/opencode/issues/3077#issuecomment-3390560260). <details><summary>HTTP request body</summary> <p> ```jsonc { "model": "claude-sonnet-4-5-20250929", "max_tokens": 32000, "temperature": 1, "thinking": { "type": "enabled", "budget_tokens": 16000 }, "messages": [ { "role": "system", "content": "...", "cache_control": { "type": "ephemeral" } }, { "role": "system", "content": "...", "cache_control": { "type": "ephemeral" } }, { "role": "user", "content": "Think of 2 different commands and run them" }, { "role": "assistant", "content": "", "tool_calls": [ { "id": "toolu_vrtx_016xYpaUEa2znN1jYMrzrt9Z", "type": "function", "function": { "name": "bash", "arguments": "{\"command\":\"pwd\",\"description\":\"Print current working directory\"}" } }, { "id": "toolu_vrtx_01CgPSgtTguW5DCsaYFJW6iq", "type": "function", "function": { "name": "bash", "arguments": "{\"command\":\"date\",\"description\":\"Show current date and time\"}" }, "cache_control": { "type": "ephemeral" } } ] }, { "role": "tool", "tool_call_id": "toolu_vrtx_016xYpaUEa2znN1jYMrzrt9Z", "content": "/Users/jessevanderpluijm/Code/forks/opencode\n" }, { "role": "tool", "tool_call_id": "toolu_vrtx_01CgPSgtTguW5DCsaYFJW6iq", "content": "Mon Oct 13 15:05:08 CEST 2025\n", "cache_control": { "type": "ephemeral" } } ], "tools": [ // ... ], "tool_choice": "auto", "stream": true, "stream_options": { "include_usage": true } } ``` </p> </details> Note how the reasoning content WAS present in the `params` sent to `doStream` but WASN'T in the HTTP request. I'm going to take a closer look at `@ai-sdk/openai-compatible` to see what's going on.
Author
Owner

@rekram1-node commented on GitHub (Oct 13, 2025):

sounds good ty!

@rekram1-node commented on GitHub (Oct 13, 2025): sounds good ty!
Author
Owner

@jessevdp commented on GitHub (Oct 13, 2025):

I think / am afraid that using Anthropic thinking mode is fundamentally incompatible with using an OpenAI compatible API. The @ai-sdk/openai-compatible client just ignores the "reasoning" parts of "assistant" messages when making a request:

https://github.com/vercel/ai/blob/dfa8a1c9c8b16499f5d1992a675a1f7037ee9300/packages/openai-compatible/src/chat/openai-compatible-chat-language-model.ts#L214

https://github.com/vercel/ai/blob/dfa8a1c9c8b16499f5d1992a675a1f7037ee9300/packages/openai-compatible/src/chat/openai-compatible-chat-language-model.ts#L313

https://github.com/vercel/ai/blob/dfa8a1c9c8b16499f5d1992a675a1f7037ee9300/packages/openai-compatible/src/chat/openai-compatible-chat-language-model.ts#L201

https://github.com/vercel/ai/blob/e31be1cb65a9ab4e4938d61a56b17736df9dd335/packages/openai-compatible/src/chat/convert-to-openai-compatible-chat-messages.ts#L76-L104

This is makes it incompatible with Anthropic extended thinking mode because that requires perserving the thinking blocks.

I'm unsure if the "OpenAI compatible API" spec would allow for reasoning parts to be sent back (in which case we could add an option to the @ai-sdk/openai-compatible client to optionally include the reasoning parts, and then hope that the server [LiteLLM] could process that correctly...), or if this is just not permitted.

Sorry to have wasted your time :/

I hope this issue thread is at least helpful to others who are in the same situation as me. (There seem to be at least a couple of LiteLLM users out there.)

@jessevdp commented on GitHub (Oct 13, 2025): I think / am afraid that using Anthropic thinking mode is fundamentally incompatible with using an OpenAI compatible API. The `@ai-sdk/openai-compatible` client just ignores the "reasoning" parts of `"assistant"` messages when making a request: https://github.com/vercel/ai/blob/dfa8a1c9c8b16499f5d1992a675a1f7037ee9300/packages/openai-compatible/src/chat/openai-compatible-chat-language-model.ts#L214 https://github.com/vercel/ai/blob/dfa8a1c9c8b16499f5d1992a675a1f7037ee9300/packages/openai-compatible/src/chat/openai-compatible-chat-language-model.ts#L313 https://github.com/vercel/ai/blob/dfa8a1c9c8b16499f5d1992a675a1f7037ee9300/packages/openai-compatible/src/chat/openai-compatible-chat-language-model.ts#L201 https://github.com/vercel/ai/blob/e31be1cb65a9ab4e4938d61a56b17736df9dd335/packages/openai-compatible/src/chat/convert-to-openai-compatible-chat-messages.ts#L76-L104 This is makes it incompatible with [Anthropic extended thinking](https://docs.claude.com/en/docs/build-with-claude/extended-thinking) mode because that requires [perserving the thinking blocks](https://docs.claude.com/en/docs/build-with-claude/extended-thinking#preserving-thinking-blocks). I'm unsure if the "OpenAI compatible API" spec would allow for reasoning parts to be sent back (in which case we could add an option to the `@ai-sdk/openai-compatible` client to optionally include the reasoning parts, and then hope that the server [LiteLLM] could process that correctly...), or if this is just not permitted. Sorry to have wasted your time :/ I hope this issue thread is at least helpful to others who are in the same situation as me. (There seem to be at least a couple of LiteLLM users out there.)
Author
Owner

@rekram1-node commented on GitHub (Oct 13, 2025):

hey no problem dw about it

@rekram1-node commented on GitHub (Oct 13, 2025): hey no problem dw about it
Author
Owner

@highing666 commented on GitHub (Jan 7, 2026):

I ran into the same issue when using the Claude model via Open WebUI as a proxy

@highing666 commented on GitHub (Jan 7, 2026): I ran into the same issue when using the Claude model via Open WebUI as a proxy
Author
Owner

@themw123 commented on GitHub (Jan 7, 2026):

same problem with openwebui and claude models

@themw123 commented on GitHub (Jan 7, 2026): same problem with openwebui and claude models
Author
Owner

@rekram1-node commented on GitHub (Jan 7, 2026):

Sounds like potential bug w/ ur proxy?

@rekram1-node commented on GitHub (Jan 7, 2026): Sounds like potential bug w/ ur proxy?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#2032