migration-guide changedmodels/opus-5-5/migration-guide
Recorded here
Lines+59added
Lines−61removed
From line
16
where the diff opens
First seen
23 Sep 2026
this site's first read of the page
Recorded edits31to this page, all time
The whole hunk
from line 16, old and new numbered
/
from line 16
1616
1717This page lists the code changes for moving to Claude Opus 5.5 from [Claude Opus 5](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#migrating-from-claude-opus-5), [Claude Opus 4.8](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#migrating-from-claude-opus-4-8), [Claude Opus 4.7](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#migrating-from-claude-opus-47), [Claude Opus 4.6 and earlier Opus models](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#migrating-from-claude-opus-46), or [Claude Sonnet 5](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#migrating-from-claude-sonnet-5). Every reader needs [What every request to Claude Opus 5.5 must satisfy](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#request-requirements) and [Handle thinking in every response](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#thinking-in-every-response). Then go to the section for your current model: its first sentence names the other sections that apply to you. The [migration checklist](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#migration-checklist) lists every change by starting model.
1818
19Claude Opus 5.5 costs less than Claude Opus 5 ($4 / $20 USD per million input / output tokens, compared with $5 / $25 USD; see [Claude pricing](https://platform.claude.com/docs/en/about-claude/pricing)). For feature support, see [What’s new in Claude Opus 5.5](https://platform.claude.com/docs/en/models/opus-5-5/whats-new-opus-5-5#feature-support). For behavioral differences and model-specific prompting patterns, see [Prompting Claude Opus 5.5](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5-5).
19Claude Opus 5.5 costs less than Claude Opus 5 ($4 / $20 USD per million input / output tokens, compared with $5 / $25 USD; see [Pricing](https://platform.claude.com/docs/en/about-claude/pricing)). For feature support, see [What’s new in Claude Opus 5.5](https://platform.claude.com/docs/en/models/opus-5-5/whats-new-opus-5-5#feature-support). For behavioral differences and model-specific prompting patterns, see [Prompting Claude Opus 5.5](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5-5).
2020
2121## What every request to Claude Opus 5.5 must satisfy
2222
from line 29
2929* **Sampling parameters:** Omit `temperature`, `top_p`, and `top_k`. Use prompting to guide the model’s behavior.
3030* **Prefill:** Don’t end `messages` with a prefilled assistant turn: it is rejected. Use [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) or system prompt instructions instead.
3131* **Computer use:** Declare computer use as the `computer_toolset_20260801` toolset. On Amazon Bedrock, `computer_20251124` also works. See the [computer use breaking change](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#computer-use-toolset).
32* **Context window:** No context-window beta header is needed. The [1M token context window](https://platform.claude.com/docs/en/build-with-claude/context-windows) is the default, and a header sent for older models has no effect.
32* **Context window:** The [1M token context window](https://platform.claude.com/docs/en/build-with-claude/context-windows) is the default. A context-window beta header sent for older models has no effect.
3333
3434The following request satisfies every item in the list: effort is set, and there is no `thinking` field. Where the example prints text, it finds the text block by its type, because `thinking` blocks come first.
3535
from line 148
148148 ```
149149
150150 ```java Java
151 import com.anthropic.models.messages.OutputConfig;
151 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
152152
153 void main() {
154 AnthropicClient client = AnthropicOkHttpClient.fromEnv();
153 MessageCreateParams params = MessageCreateParams.builder()
154 .model(Model.CLAUDE_OPUS_5_5)
155 .maxTokens(4096L)
156 .addUserMessage("Analyze the trade-offs between microservices and monolithic architectures")
157 .outputConfig(OutputConfig.builder()
158 .effort(OutputConfig.Effort.MEDIUM)
159 .build())
160 .build();
155161
156 MessageCreateParams params = MessageCreateParams.builder()
157 .model(Model.CLAUDE_OPUS_5_5)
158 .maxTokens(4096L)
159 .addUserMessage("Analyze the trade-offs between microservices and monolithic architectures")
160 .outputConfig(OutputConfig.builder()
161 .effort(OutputConfig.Effort.MEDIUM)
162 .build())
163 .build();
164
165 Message response = client.messages().create(params);
166 response.content().stream()
167 .flatMap(block -> block.text().stream())
168 .forEach(textBlock -> IO.println(textBlock.text()));
169 }
162 Message response = client.messages().create(params);
163 response.content().stream()
164 .flatMap(block -> block.text().stream())
165 .forEach(textBlock -> IO.println(textBlock.text()));
170166 ```
171167
172168 ```php PHP
from line 173
177173 messages: [
178174 ['role' => 'user', 'content' => 'Analyze the trade-offs between microservices and monolithic architectures']
179175 ],
180 model: 'claude-opus-5-5',
176 model: Model::CLAUDE_OPUS_5_5,
181177 outputConfig: ['effort' => 'medium'],
182178 );
183179
184180 foreach ($message->content as $block) {
185 if ($block->type === 'text') {
181 if ($block instanceof \Anthropic\Messages\TextBlock) {
186182 echo $block->text, PHP_EOL;
187183 }
188184 }
from line 199
203199 )
204200
205201 message.content.each do |block|
206 puts block.text if block.type == :text
202 puts block.text if block.is_a?(Anthropic::Models::TextBlock)
207203 end
208204 ```
209205</CodeGroup>
from line 275
279275* Remove `thinking: {"type": "disabled"}` and `thinking: {"type": "enabled", ...}`; choose an effort level instead.
280276* Set `effort` explicitly: the default is `medium`, where Claude Opus 5’s is `high`.
281277* Replace `tool_choice` types `any` and `tool` with `auto` plus strict tool use or structured outputs.
282* If you use an earlier computer use tool version, declare `computer_toolset_20260801` (no beta header) instead and update your agent loop for the toolset. On Amazon Bedrock, `computer_20251124` also works.
283* If a router or fallback can move a conversation from Claude Opus 5.5 to another model, expect that model to run without Claude Opus 5.5’s thinking blocks. Claude Fable 5.1 and Claude Mythos 5.1 on the Claude API are the exception and keep them. So do Claude Fable 5.2 and Claude Mythos 5.2 there. On Claude Models on Google Cloud (Google managed), Claude Fable 5.2 and Claude Mythos 5.2 read the same blocks as on the Claude API. Claude Opus 5.5 itself reads thinking from Claude Opus 5 and from earlier Opus, Sonnet, and Haiku models. On the Claude API and Claude Models on Google Cloud (Google managed), it also reads thinking from Claude Sonnet 5.5 and Claude Haiku 5.5. It doesn’t read thinking from Claude Fable or Claude Mythos models.
278* If you use an earlier computer use tool version, declare `computer_toolset_20260801` instead, drop that version’s beta header, and update your agent loop for the toolset. On Amazon Bedrock, `computer_20251124` also works. See the [computer use breaking change](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#computer-use-toolset).
279* If a router or fallback can move a conversation off Claude Opus 5.5, expect the new model to run without Claude Opus 5.5’s thinking blocks. Claude Fable 5.1 and Claude Mythos 5.1 keep them on the Claude API. Claude Fable 5.2 and Claude Mythos 5.2 keep them on the Claude API and Claude Models on Google Cloud (Google managed). Claude Opus 5.5 itself reads thinking from Claude Opus 5 and from earlier Opus, Sonnet, and Haiku models. On the Claude API and Claude Models on Google Cloud (Google managed), it also reads thinking from Claude Sonnet 5.5 and Claude Haiku 5.5. It doesn’t read thinking from Claude Fable or Claude Mythos models.
284280* Read content blocks by `type`, and pass `thinking` blocks back unmodified in tool-use loops.
285* If your interface renders text between tool calls, set `display: "updates"` (beta) or `"summarized"` and render the non-empty `thinking` blocks.
281* If your interface renders text between tool calls, set `display: "updates"` (in beta) or `"summarized"` and render the non-empty `thinking` blocks.
286282* If your code edits earlier turns, the `system` prompt, or `tools` mid-conversation, follow [Preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking).
287283* Handle `stop_reason: "refusal"` and configure fallback.
288284* Re-baseline cost and latency at your chosen effort level.
from line 291
295291* Review prompts near the caching minimum: prompts of 512 tokens or more can create cache entries.
296292* If your organization has a [Priority Tier](https://platform.claude.com/docs/en/api/service-tiers#supported-models) commitment, plan capacity separately: Priority Tier is not supported on Claude Opus 5.5.
297293* If you run at `xhigh` or `max` effort, raise `max_tokens` to at least 64k as a starting point.
298* For agentic workloads, consider [task budgets](https://platform.claude.com/docs/en/build-with-claude/task-budgets) (beta) and mid-conversation tool changes (beta).
294* For agentic workloads, consider [task budgets](https://platform.claude.com/docs/en/build-with-claude/task-budgets) and mid-conversation tool changes. Both are in beta.
299295
300296### Claude Opus 4.7 or earlier
301297
from line 299
303299* Remove any context-window beta header.
304300* If you rebuild conversation history to update instructions, consider switching to a mid-conversation system message to preserve prompt cache hits.
305301* Verify your stop-reason handling reads `stop_details` on refusals.
306* If you want fast mode, which Claude Opus 4.7 rejects, set `speed: "fast"` on your Claude API requests. Claude Opus 5.5 doesn’t need a beta header.
302* If you want fast mode, which Claude Opus 4.7 rejects, set `speed: "fast"` on your Claude API requests.
307303
308304### Claude Opus 4.6 or earlier
309305
from line 587
591587 }
592588 }],
593589 "tool_choice": {"type": "tool", "name": "get_weather"},
594 "messages": [{"role": "user", "content": "What'\''s the weather in Paris?"}]
590 "messages": [{"role": "user", "content": "What is the weather in Paris?"}]
595591 }'
596592 ```
597593
from line 722
726722 "tool_choice": {"type": "auto"},
727723 "messages": [{
728724 "role": "user",
729 "content": "What'\''s the weather in Paris? Use the get_weather tool."
725 "content": "What is the weather in Paris? Use the get_weather tool."
730726 }]
731727 }'
732728 ```
from line 872
876872
877873#### Thinking blocks are tied to the model and the conversation
878874
879On the Claude API, Claude Fable 5.1 and Claude Mythos 5.1 read Claude Opus 5.5 thinking blocks. So do Claude Fable 5.2 and Claude Mythos 5.2 on the Claude API. On Claude Models on Google Cloud (Google managed), Claude Fable 5.2 and Claude Mythos 5.2 read the same blocks as on the Claude API. No other model does. A router or fallback that moves a conversation from Claude Opus 5.5 to any other model runs those turns without them. In the other direction, Claude Opus 5.5 reads thinking blocks from Claude Opus 5 and from earlier Opus, Sonnet, and Haiku models. On the Claude API and Claude Models on Google Cloud (Google managed), it also reads them from Claude Sonnet 5.5 and Claude Haiku 5.5. It doesn’t read them from Claude Fable or Claude Mythos models. Keep the conversation append-only (no edits to the `system` prompt, `tools`, or earlier messages mid-conversation) so the blocks stay valid; Claude Code, claude.ai, Claude Managed Agents, and the Claude Agent SDK already do. On accounts created on or after August 31, 2026, 00:00 UTC, on the Claude API and on cloud platforms, a request that replays a thinking block after such an edit and leaves `thinking.block_binding.prefix_mismatch_behavior` unset gets a 400 error. There is no code change for append-only integrations. See [Thinking blocks are tied to the model and the conversation](https://platform.claude.com/docs/en/models/opus-5-5/whats-new-opus-5-5#thinking-blocks-are-tied-to-the-model-that-produced-them) and [Preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking).
875Claude Fable 5.1 and Claude Mythos 5.1 read Claude Opus 5.5 thinking blocks on the Claude API. Claude Fable 5.2 and Claude Mythos 5.2 read them on the Claude API and Claude Models on Google Cloud (Google managed). No other model does. A router or fallback that moves a conversation from Claude Opus 5.5 to any other model runs those turns without them.
880876
877In the other direction, Claude Opus 5.5 reads thinking blocks from Claude Opus 5 and from earlier Opus, Sonnet, and Haiku models. On the Claude API and Claude Models on Google Cloud (Google managed), it also reads them from Claude Sonnet 5.5 and Claude Haiku 5.5. It doesn’t read them from Claude Fable or Claude Mythos models.
878
879Keep the conversation append-only (no edits to the `system` prompt, `tools`, or earlier messages mid-conversation) so the blocks stay valid. Claude Code, claude.ai, Claude Managed Agents, and the Claude Agent SDK already do. If a request replays a thinking block after such an edit, with `thinking.block_binding.prefix_mismatch_behavior` unset, it gets a 400 error. This applies to accounts created on or after August 31, 2026, 00:00 UTC. [Preserved thinking availability](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#feature-availability) lists the platforms where this applies. There is no code change for append-only integrations. See [Thinking blocks are tied to the model and the conversation](https://platform.claude.com/docs/en/models/opus-5-5/whats-new-opus-5-5#thinking-blocks-are-tied-to-the-model-that-produced-them) and [Preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking).
880
881881#### Some computer use tool versions are not supported
882882
883883Claude Opus 5.5 supports computer use through the `computer_toolset_20260801` toolset. On Amazon Bedrock, Claude Opus 5.5 also accepts the `computer_20251124` tool with the `computer-use-2025-11-24` beta header. Claude Opus 5.5 returns a 400 error for any computer use tool version it doesn’t accept, such as `computer_20251124` on the Claude API. It doesn’t accept `computer_20250124` on any platform. On the Claude API, the error message begins `'claude-opus-5-5' does not support tool types: computer_20251124.` and then lists the tool types the model accepts.
from line 907
907907 ```
908908
909909 ```bash CLI
910 ant beta:messages create \
911 --model claude-opus-5 \
912 --max-tokens 4096 \
913 --beta computer-use-2025-11-24 \
914 --tool '{
915 type: computer_20251124,
916 name: computer,
917 display_width_px: 1024,
910 ant beta:messages create --beta computer-use-2025-11-24 <<'YAML'
911 model: claude-opus-5
912 max_tokens: 4096
913 tools:
914 - type: computer_20251124
915 name: computer
916 display_width_px: 1024
918917 display_height_px: 768
919 }' \
920 --message '{role: user, content: "Open the display settings."}'
918 messages:
919 - role: user
920 content: Open the display settings.
921 YAML
921922 ```
922923
923924 ```python Python
from line 1151
11501151
11511152### Recommended changes
11521153
11531. **Re-run your effort sweep.** Effort is the only thinking control on Claude Opus 5.5, and its default is `medium` where Claude Opus 5’s is `high`, so a request that omits `effort` now runs at `medium`. Step down where quality holds, and step up for the most demanding work. See [Effort](https://platform.claude.com/docs/en/build-with-claude/effort).
11541. **Re-run your effort sweep.** Effort is the only thinking control on Claude Opus 5.5, and its default is `medium` where Claude Opus 5’s is `high`, so a request that omits `effort` runs at `medium`. Step down where quality holds, and step up for the most demanding work. See [Effort](https://platform.claude.com/docs/en/build-with-claude/effort).
115411552. **Re-evaluate model-specific prompt instructions.** Instructions tuned for Claude Opus 5’s behavior might no longer be needed; see [Prompting Claude Opus 5.5](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5-5). If you ran with thinking disabled, also see [Prompts written for thinking disabled](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5-5#prompts-written-for-thinking-disabled).
115511563. **Test in a development environment** before switching production traffic.
11561157
from line 1175
11741175
11751176### Recommended changes
11761177
1177These are not required but will improve your experience:
1178These changes are optional, and they can improve your experience:
11781179
117911801. **Consider task budgets (beta):** For agentic workloads, [task budgets](https://platform.claude.com/docs/en/build-with-claude/task-budgets) tell the model how many tokens it has for a full agentic loop. They require the `task-budgets-2026-03-13` beta header.
11801181
from line 1193
11921193
119311941. **Effort levels recalibrated:** The token allocation behind each effort level changes on Claude Opus 5.5 compared to Claude Opus 4.7. The default is `medium`, where Claude Opus 4.7’s is `high`. Run a fresh effort sweep on your own evals rather than carrying over a setting tuned for Claude Opus 4.7. See [Effort](https://platform.claude.com/docs/en/build-with-claude/effort).
11941195
11952. **1M context window is the default:** Claude Opus 5.5 serves the full 1M token [context window](https://platform.claude.com/docs/en/build-with-claude/context-windows) by default with no beta header. If your client passes a context-window beta header for compatibility with older models, remove it.
11962. **1M context window is the default:** Claude Opus 5.5 serves the full 1M token [context window](https://platform.claude.com/docs/en/build-with-claude/context-windows) by default. If your client passes a context-window beta header for compatibility with older models, remove it.
11961197
119711983. **Mid-conversation system messages:** On the Claude API, Amazon Bedrock, Claude Platform on AWS, Claude Models on Google Cloud (Anthropic managed), and Claude Models on Google Cloud (Google managed), Claude Opus 5.5 accepts `role: "system"` messages immediately after a user turn in the `messages` array (subject to [placement rules](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages#limitations)). Use the top-level `system` field for instructions that apply from the start. Claude Opus 4.7 rejects `role: "system"` in `messages` with a 400 error. If you maintain code paths that rebuild the full message history to update instructions, you can simplify them and preserve [prompt cache](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) hits on earlier turns.
11981199
11994. **Refusal stop details:** When the model declines a request, Claude Opus 5.5 returns a `stop_details` object that names the category of refusal, alongside the `refusal` stop reason. Claude Opus 4.7 returns the same object, so this matters only if your stop-reason handling does not read it yet. No beta header is required, and there is no opt-out. If your stop-reason handling doesn’t read it yet, see [Handling stop reasons](https://platform.claude.com/docs/en/build-with-claude/handling-stop-reasons). Claude Opus 5.5 declines in more categories; see [Safety classifiers and fallback](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#safety-classifiers-and-fallback).
12004. **Refusal stop details:** When the model declines a request, Claude Opus 5.5 returns a `stop_details` object that names the category of refusal, alongside the `refusal` stop reason. Claude Opus 4.7 returns the same object, so this matters only if your stop-reason handling does not read it yet; if so, see [Stop reasons and fallback](https://platform.claude.com/docs/en/build-with-claude/handling-stop-reasons). There is no opt-out. Claude Opus 5.5 declines in more categories; see [Safety classifiers and fallback](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#safety-classifiers-and-fallback).
12001201
12015. **Fast mode:** Claude Opus 5.5 supports [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode) on the Claude API. Fast mode is not available on Claude Opus 4.7, where requests with `speed: "fast"` return an error. Set `speed: "fast"` on your requests. Claude Opus 5.5 doesn’t need a beta header.
12025. **Fast mode:** Claude Opus 5.5 supports [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode) on the Claude API. Fast mode is not available on Claude Opus 4.7, where requests with `speed: "fast"` return an error. Set `speed: "fast"` on your requests.
12021203
120312046. **Computer use toolset and browser use tool:** Claude Opus 5.5 supports [computer use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool) as the `computer_toolset_20260801` toolset and the [browser use tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/browser-use-tool) for tasks inside webpages. Claude Opus 4.7 supports neither. To move a `computer_20251124` integration to the toolset, see the [computer use breaking change](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#computer-use-toolset).
12041205
from line 1269
12681269 ```
12691270
12701271 ```csharp C#
1271 using Anthropic;
1272 using Anthropic.Models.Messages;
1273
12741272 AnthropicClient client = new();
12751273
12761274 var parameters = new MessageCreateParams
from line 1320
13221320 $message = $client->messages->create(
13231321 maxTokens: 16000,
13241322 messages: [['role' => 'user', 'content' => '...']],
1325 model: 'claude-opus-4-6',
1326 thinking: ['type' => 'enabled', 'budget_tokens' => 10000],
1323 model: Model::CLAUDE_OPUS_4_6,
1324 thinking: ['type' => 'enabled', 'budgetTokens' => 10000],
13271325 );
13281326 ```
13291327
from line 1329
13311329 client = Anthropic::Client.new
13321330
13331331 message = client.messages.create(
1334 model: "claude-opus-4-6",
1332 model: Anthropic::Model::CLAUDE_OPUS_4_6,
13351333 max_tokens: 16000,
13361334 thinking: {
13371335 type: "enabled",
from line 1403
14051403 ```
14061404
14071405 ```csharp C#
1408 using Anthropic;
1409 using Anthropic.Models.Messages;
1410
14111406 AnthropicClient client = new();
14121407
14131408 var parameters = new MessageCreateParams
from line 1512
15171512
151815133. **High-resolution image support:** Claude Opus 4.7 is the first Claude model with high-resolution image support. Maximum image resolution is 2,576 pixels on the long edge, up from 1,568 pixels on prior models. This unlocks gains on vision-heavy workloads and is particularly valuable for computer use, screenshot understanding, and document analysis.
15191514
1520 High-resolution support is automatic and requires no beta header or client-side opt-in. Two things to plan for:
1515 High-resolution support is automatic. Plan for two things:
15211516
15221517 * Full-resolution images can use up to approximately 3x more image tokens than on prior models (up to 4,784 tokens for each image, compared to the previous cap of roughly 1,600 tokens). Re-budget `max_tokens` and cost expectations for image-heavy workloads, or downsample before sending if you do not need the additional fidelity.
15231518 * Pointing and bounding-box coordinates returned by the model are 1:1 with actual image pixels on Claude Opus 4.7, so no scale-factor conversion is required.
from line 1547
15521547
15531548### Migrating from Claude 4.1 or earlier
15541549
1555If you’re migrating from Claude Opus 4.1 or earlier models directly to Claude Opus 5.5, first apply everything in [Migrating from Claude Opus 4.5 or earlier](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#migrating-from-claude-opus-45). That subsection starts with every earlier section, so in effect you read this page from the top. Then apply the additional changes in this subsection.
1550To migrate from Claude Opus 4.1 or earlier models directly to Claude Opus 5.5:
15561551
15521. Work through this page from the top, in page order, up to and including [Migrating from Claude Opus 4.5 or earlier](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#migrating-from-claude-opus-45).
15532. Apply the additional changes in this subsection.
1554
15571555#### Additional breaking changes
15581556
155915571. **Remove sampling parameters:** Covered in [Sampling parameters removed](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide#opus-46-breaking-changes).
from line 1622
16241622
16251623 ```ruby Ruby
16261624 # Before
1627 legacy_tools = [{type: "text_editor_20250124", name: "str_replace_editor"}]
1625 legacy_tools = [{ type: "text_editor_20250124", name: "str_replace_editor" }]
16281626
16291627 # After
1630 tools = [{type: "text_editor_20250728", name: "str_replace_based_edit_tool"}]
1628 tools = [{ type: "text_editor_20250728", name: "str_replace_based_edit_tool" }]
16311629 ```
16321630 </CodeGroup>
16331631
No line in this hunk matches that.