feat(pi): add Codex fast mode extension
This commit is contained in:
parent
9fdb2d7b7d
commit
b9ab5a392e
5 changed files with 447 additions and 0 deletions
81
pi/extensions/openai-codex-fast/README.md
Normal file
81
pi/extensions/openai-codex-fast/README.md
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
# OpenAI Codex fast mode
|
||||
|
||||
Adds `/fast` for Pi's `openai-codex` provider and `openai-codex-responses` API.
|
||||
When enabled, the extension adds `service_tier: "priority"` to matching requests.
|
||||
It keeps the selected model, reasoning level, tools, and conversation input.
|
||||
|
||||
## Usage
|
||||
|
||||
- `/fast` toggles fast mode.
|
||||
- `/fast on` requests priority service. Usage may increase.
|
||||
- `/fast off` stops this extension's override and restores provider defaults.
|
||||
- `/fast status` reports the setting without changing it.
|
||||
|
||||
New sessions start with fast mode off. Changes are stored as custom session
|
||||
entries, outside model context. Resume and reload restore the active branch's
|
||||
setting. Forks inherit only settings before the fork point. Switching to another
|
||||
provider makes the setting inactive; switching back to Codex reactivates it.
|
||||
Changes require an idle session. Status reports remain available during a turn.
|
||||
|
||||
The footer shows `Codex fast: priority` while this extension requests priority
|
||||
service. This shows the requested tier, not confirmation from OpenAI.
|
||||
|
||||
## Availability and usage
|
||||
|
||||
OpenAI controls priority access for each model and account. Priority service can
|
||||
increase subscription usage or cost. The extension does not change reasoning
|
||||
settings, query Codex's model catalog, verify account eligibility, or guarantee
|
||||
faster responses. Unlike the Codex CLI, it does not hide the command for models
|
||||
without an advertised fast tier. API failures use Pi's normal error handling;
|
||||
the extension does not silently retry with another tier.
|
||||
|
||||
Other providers are untouched, including `openai`, OpenRouter, and providers
|
||||
that reuse the Codex API under another name. While enabled, this extension
|
||||
replaces any existing `service_tier` value with `priority`. Disabling it leaves
|
||||
native request settings and other extensions' overrides unchanged.
|
||||
|
||||
Your `openai-server-compaction` extension can remain enabled. Both request
|
||||
patches preserve unrelated fields. Fast mode applies to normal session requests,
|
||||
not the compaction extension's separate HTTP compaction or summary calls.
|
||||
|
||||
## Installation
|
||||
|
||||
Home Manager deploys this directory through `rsydn.aiTools.piExtensions` along
|
||||
with the other extensions. Apply your usual dotfiles rebuild, then run `/reload`.
|
||||
To test before deploying:
|
||||
|
||||
```sh
|
||||
pi -e ./pi/extensions/openai-codex-fast/index.ts
|
||||
```
|
||||
|
||||
## Codex implementation reference
|
||||
|
||||
Reviewed OpenAI Codex commit
|
||||
[`1a69ad3237fc`](https://github.com/openai/codex/tree/1a69ad3237fc485273ccfa9731239fdf789b43e4).
|
||||
|
||||
- [Service-tier UI](https://github.com/openai/codex/blob/1a69ad3237fc485273ccfa9731239fdf789b43e4/codex-rs/tui/src/chatwidget/service_tiers.rs)
|
||||
toggles the model's advertised Fast tier and persists the selection.
|
||||
- [Model catalog](https://github.com/openai/codex/blob/1a69ad3237fc485273ccfa9731239fdf789b43e4/codex-rs/models-manager/models.json)
|
||||
identifies Fast with the request value `priority`.
|
||||
- [Request builder](https://github.com/openai/codex/blob/1a69ad3237fc485273ccfa9731239fdf789b43e4/codex-rs/core/src/client.rs)
|
||||
sends the selected tier in `service_tier`.
|
||||
|
||||
Pi's `before_provider_request` hook changes the native payload. No provider
|
||||
replacement, custom transport, or additional runtime dependency is required.
|
||||
|
||||
## Tests
|
||||
|
||||
Requires Node.js 22.19 or newer and an installed `pi` executable. Tested with
|
||||
Pi 1.1.0.
|
||||
|
||||
```sh
|
||||
node --experimental-strip-types --test \
|
||||
pi/extensions/openai-codex-fast/tests/*.test.ts \
|
||||
pi/extensions/openai-codex-fast/tests/*.test.cjs
|
||||
```
|
||||
|
||||
Unit tests cover scope, payload preservation, branch state, and both compaction
|
||||
patch orders. The runtime test uses Pi's real loader and native providers with a
|
||||
local HTTP fixture. It checks outgoing payloads, commands, the idle guard,
|
||||
provider switching, resume, and forks. It sends no requests to OpenAI and uses no
|
||||
real credentials.
|
||||
Loading…
Add table
Add a link
Reference in a new issue