The load-time addressSpaceMb gate used a 1/8 fraction derived for ASCII, but the child ledgers trigger on character count against a serialized-byte budget: an astral character is one character yet ~4 bytes stored and ~4 encoded, live at once, so the true worst-case peak is ~8x the budget, not ~2x. Replace the fraction with an explicit OUTPUT_BUDGET_WORST_CASE_ADDRESS_SPACE_MULTIPLE (8) and a strict `>`, and gate maxValueBytes the same way as maxLogBytes — the value path builds and encodes a near-budget completion under the same RLIMIT_AS, so the incompatible pair was previously admitted there too. Slice the newline branch's unterminated tail to a budget-sized prefix: it buffered the whole text[pos:] before the flush trigger could bound it, so an early newline plus a huge tail made a second full copy of the model's string — an RLIMIT_AS death the config gate cannot cover since the tail can far exceed maxLogBytes. Disclose the cross-field constraint in the maxLogBytes/maxValueBytes/addressSpaceMb JSDoc (regenerating config-catalog); refresh the note's stale Buffer.byteLength(JSON.stringify) reference; reconcile the arrival-order rebuttal with the seam's "in order" logs JSDoc (within-stream, cross-stream best-effort). Extend the load-rejection test to both budgets and add a tail-copy regression; sync the zh pair.
description, kind
| description | kind |
|---|---|
| Package map for the code-execution capability family: what program execution does for you, and which package owns each part. | package-group |
code-runtime/ — code-execution capability family
English | 中文
Summary
The code-runtime/ group provides program execution: a model writes one program that calls host-provided functions as ordinary async calls, and a runtime executes it in isolation and returns only what the program printed and returned. One package defines the shared capability (ctx.codeRuntime), a second executes TypeScript programs in a fresh Node worker thread, and a third owns the wire protocol between a Node host and a CPython subprocess for the Python backend. Every run is independent — no state carries from one program to the next — and failures come back as part of the result, so the caller can see why a program failed and feed that back to the model.
Table of Contents
Packages
These three packages together provide program execution; each README describes what its part does.
| Package | Role | ctx key |
|---|---|---|
code-runtime/ |
Defines what a code runtime does: run one program against host-provided bindings and report what it printed and returned | ctx.codeRuntime |
code-runtime-worker-thread/ |
Executes TypeScript programs, each in a fresh Node worker thread | registers ctx.codeRuntime |
code-runtime-python/ |
Owns the fd-3 wire protocol between a Node host and a CPython subprocess, the Python backend's protocol layer | — |
Related documentation
Start with the subsystem reference for the service contract, then the PTC mode design that consumes this capability and the capability-seam model it follows.
- Code runtime subsystem reference — request/result vocabulary, bindings, and the
ctx.codeRuntimecordis surface. - PTC mode Agent Note — how the tool registry presents
run_codeto the model. - Capability seams — the Service Definition / Service Provider / Consumer split this family follows.
Dev Note
Working context for maintainers — click to expand
None.