Curtis 'Fjord' Hawthorne
|
42e22f3bde
|
Add feature-gated freeform js_repl core runtime (#10674)
## Summary
This PR adds an **experimental, feature-gated `js_repl` core runtime**
so models can execute JavaScript in a persistent REPL context across
tool calls.
The implementation integrates with existing feature gating, tool
registration, prompt composition, config/schema docs, and tests.
## What changed
- Added new experimental feature flag: `features.js_repl`.
- Added freeform `js_repl` tool and companion `js_repl_reset` tool.
- Gated tool availability behind `Feature::JsRepl`.
- Added conditional prompt-section injection for JS REPL instructions
via marker-based prompt processing.
- Implemented JS REPL handlers, including freeform parsing and pragma
support (timeout/reset controls).
- Added runtime resolution order for Node:
1. `CODEX_JS_REPL_NODE_PATH`
2. `js_repl_node_path` in config
3. `PATH`
- Added JS runtime assets/version files and updated docs/schema.
## Why
This enables richer agent workflows that require incremental JavaScript
execution with preserved state, while keeping rollout safe behind an
explicit feature flag.
## Testing
Coverage includes:
- Feature-flag gating behavior for tool exposure.
- Freeform parser/pragma handling edge cases.
- Runtime behavior (state persistence across calls and top-level `await`
support).
## Usage
```toml
[features]
js_repl = true
```
Optional runtime override:
- `CODEX_JS_REPL_NODE_PATH`, or
- `js_repl_node_path` in config.
#### [git stack](https://github.com/magus/git-stack-cli)
- 👉 `1` https://github.com/openai/codex/pull/10674
- ⏳ `2` https://github.com/openai/codex/pull/10672
- ⏳ `3` https://github.com/openai/codex/pull/10671
- ⏳ `4` https://github.com/openai/codex/pull/10673
- ⏳ `5` https://github.com/openai/codex/pull/10670
|
2026-02-11 12:05:02 -08:00 |
|