@cloudflare/codemode@0.5.2
Osmantic/ODS@cloudflare/codemode@0.5.2Sep 11, 2026by github-actions[bot]
Upgrading?
AI Summary
This patch refines how oversized structured results are handled to ensure valid JSON output for models. It introduces a `toModelOutput` projection for Code Mode tools and applies strict response budgets to MCP servers to prevent oversized context issues.
Key Highlights
- Structural truncation of oversized JSON objects (strings, arrays, objects) instead of slicing, ensuring valid output.
- Introduction of `toModelOutput` in Code Mode tools to project `calls` and bound sandbox `logs`.
- Response budget application to MCP servers for pretty-printing text.
- Fixes for issues #2009, #2143, and #2182 regarding oversized value rendering.
New Features
- Structural truncation logic for oversized values
- Projection of tool calls and logs for model output
Full Release Notes
### Patch Changes
- [#2224](https://github.com/cloudflare/agents/pull/2224) [`dcca089`](https://github.com/cloudflare/agents/commit/dcca0896cc829e4a602a1feb47466ac79d1ca096) Thanks [@mattzcarey](https://github.com/mattzcarey)! - Truncate structured results structurally instead of slicing their JSON.
`truncateResult` (the default `transformResult` in Think's execute tool and the browser tools) and the `codeMcpServer` / `openApiMcpServer` response path used to pretty-print an oversized object and cut it at a character count, leaving the model with half a JSON document. Oversized values are now shrunk in place, largest values first: strings are clipped with a `--- TRUNCATED --- <n> chars` suffix, arrays keep their leading items and end with a `--- TRUNCATED --- <n> more items` element, and an object only loses entries (largest first, named in a `"--- TRUNCATED ---"` entry) when its values cannot share the budget. The output is always valid JSON of the original shape and small values pass through untouched.
The Code Mode tool now carries a `toModelOutput` that projects `calls` out of what the model sees and bounds the sandbox `logs` the same way a result is bounded. The durable call log — every connector call's args and result — stays on the persisted tool part for UIs and audit, but no longer rides into the model's context uncapped alongside the transformed `result`. The projection never throws: a BigInt or cyclic value is rendered rather than failing a completed run at model assembly.
The MCP servers apply the response budget to the text they emit, pretty-printing only while that still fits.
Fixes [#2009](https://github.com/cloudflare/agents/issues/2009), [#2143](https://github.com/cloudflare/agents/issues/2143) and [#2182](https://github.com/cloudflare/agents/issues/2182).
Related Repositories
public-apis/public-apis★ 491,138
A collective list of free APIs
NousResearch/hermes-agent★ 255,978
The agent that grows with you
yt-dlp/yt-dlp★ 200,072
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,496
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,704
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.