@ashlr/hub 3.8.0 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +201 -0
- package/dist/build-identity.json +2 -2
- package/dist/cli/resource-profile.js +95 -21
- package/dist/cli/resource-profile.js.map +1 -1
- package/dist/core/resources/native-profile.d.ts +56 -0
- package/dist/core/resources/native-profile.js +368 -6
- package/dist/core/resources/native-profile.js.map +1 -1
- package/dist/core/run/model-catalog.js +8 -1
- package/dist/core/run/model-catalog.js.map +1 -1
- package/dist/core/universe/builtins/preparation/manifest.json +1 -1
- package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +9 -2
- package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +8 -1
- package/dist/core/verse/adapters/claude.d.ts +49 -2
- package/dist/core/verse/adapters/claude.js +317 -56
- package/dist/core/verse/adapters/claude.js.map +1 -1
- package/dist/core/verse/adapters/codex.d.ts +81 -5
- package/dist/core/verse/adapters/codex.js +409 -47
- package/dist/core/verse/adapters/codex.js.map +1 -1
- package/dist/core/verse/adapters/grok.d.ts +13 -1
- package/dist/core/verse/adapters/grok.js +28 -2
- package/dist/core/verse/adapters/grok.js.map +1 -1
- package/dist/core/verse/adapters/index.d.ts +32 -0
- package/dist/core/verse/adapters/index.js +2 -0
- package/dist/core/verse/adapters/index.js.map +1 -1
- package/dist/core/verse/codex-rollout.d.ts +284 -0
- package/dist/core/verse/codex-rollout.js +786 -0
- package/dist/core/verse/codex-rollout.js.map +1 -0
- package/dist/core/verse/context-fit.d.ts +63 -0
- package/dist/core/verse/context-fit.js +355 -0
- package/dist/core/verse/context-fit.js.map +1 -0
- package/dist/core/verse/context-math.d.ts +215 -0
- package/dist/core/verse/context-math.js +365 -0
- package/dist/core/verse/context-math.js.map +1 -0
- package/dist/core/verse/local-models.d.ts +137 -1
- package/dist/core/verse/local-models.js +209 -5
- package/dist/core/verse/local-models.js.map +1 -1
- package/dist/core/verse/model-windows.d.ts +217 -0
- package/dist/core/verse/model-windows.js +616 -0
- package/dist/core/verse/model-windows.js.map +1 -0
- package/dist/core/verse/preferences.d.ts +123 -0
- package/dist/core/verse/preferences.js +403 -0
- package/dist/core/verse/preferences.js.map +1 -0
- package/dist/core/verse/project-memory.d.ts +112 -0
- package/dist/core/verse/project-memory.js +295 -0
- package/dist/core/verse/project-memory.js.map +1 -0
- package/dist/core/verse/seats.d.ts +106 -4
- package/dist/core/verse/seats.js +291 -89
- package/dist/core/verse/seats.js.map +1 -1
- package/dist/core/verse/session-engine.d.ts +76 -2
- package/dist/core/verse/session-engine.js +684 -63
- package/dist/core/verse/session-engine.js.map +1 -1
- package/dist/core/verse/session-handoff.d.ts +94 -0
- package/dist/core/verse/session-handoff.js +551 -0
- package/dist/core/verse/session-handoff.js.map +1 -0
- package/dist/core/verse/session-search.d.ts +63 -0
- package/dist/core/verse/session-search.js +213 -0
- package/dist/core/verse/session-search.js.map +1 -0
- package/dist/core/verse/session-store.d.ts +16 -2
- package/dist/core/verse/session-store.js +80 -6
- package/dist/core/verse/session-store.js.map +1 -1
- package/dist/core/verse/types.d.ts +333 -1
- package/dist/core/verse/types.js +54 -2
- package/dist/core/verse/types.js.map +1 -1
- package/dist/core/verse/verse-api.d.ts +40 -5
- package/dist/core/verse/verse-api.js +724 -25
- package/dist/core/verse/verse-api.js.map +1 -1
- package/dist/core/web/api.d.ts +14 -4
- package/dist/core/web/api.js +26 -11
- package/dist/core/web/api.js.map +1 -1
- package/dist/core/web/public/next/assets/{App-BsbJFA2j.js → App-XURmiAAp.js} +5 -5
- package/dist/core/web/public/next/assets/{App-BsbJFA2j.js.map → App-XURmiAAp.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ApprovalsSection-2CCSoBTJ.js → ApprovalsSection-BriUzoZc.js} +2 -2
- package/dist/core/web/public/next/assets/{ApprovalsSection-2CCSoBTJ.js.map → ApprovalsSection-BriUzoZc.js.map} +1 -1
- package/dist/core/web/public/next/assets/AutonomySection-C4GBsQVc.js +2 -0
- package/dist/core/web/public/next/assets/{AutonomySection-yeNNUPur.js.map → AutonomySection-C4GBsQVc.js.map} +1 -1
- package/dist/core/web/public/next/assets/ChatSection-BpOBOUvg.css +1 -0
- package/dist/core/web/public/next/assets/ChatSection-hlgPBRco.js +84 -0
- package/dist/core/web/public/next/assets/ChatSection-hlgPBRco.js.map +1 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-BdQYI-Ng.js +2 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-BdQYI-Ng.js.map +1 -0
- package/dist/core/web/public/next/assets/{Dialog-nK15L1M0.js → Dialog-BxdIfmFH.js} +2 -2
- package/dist/core/web/public/next/assets/{Dialog-nK15L1M0.js.map → Dialog-BxdIfmFH.js.map} +1 -1
- package/dist/core/web/public/next/assets/{DiffViewer-D369eZe8.js → DiffViewer-DmeRWuc4.js} +2 -2
- package/dist/core/web/public/next/assets/{DiffViewer-D369eZe8.js.map → DiffViewer-DmeRWuc4.js.map} +1 -1
- package/dist/core/web/public/next/assets/{McpSection-DVgiSYG1.js → McpSection-q34T7Tho.js} +2 -2
- package/dist/core/web/public/next/assets/{McpSection-DVgiSYG1.js.map → McpSection-q34T7Tho.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MutationTokenDialog-B9I4PAcp.js → MutationTokenDialog-CFAkwOEt.js} +2 -2
- package/dist/core/web/public/next/assets/{MutationTokenDialog-B9I4PAcp.js.map → MutationTokenDialog-CFAkwOEt.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-z6tJj3s9.js → ResourcePoolConsoleApp-DHc8GFOY.js} +4 -4
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-z6tJj3s9.js.map → ResourcePoolConsoleApp-DHc8GFOY.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-OSajL45F.js → RouteErrorBoundary-ZL9F4qUn.js} +2 -2
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-OSajL45F.js.map → RouteErrorBoundary-ZL9F4qUn.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Meter-CLcr-4wS.css → Segmented-8cf0Fypn.css} +1 -1
- package/dist/core/web/public/next/assets/{Meter-Cmo1pLbk.js → Segmented-DbRjVye3.js} +2 -2
- package/dist/core/web/public/next/assets/Segmented-DbRjVye3.js.map +1 -0
- package/dist/core/web/public/next/assets/SettingsSection-nJGGGYqv.js +2 -0
- package/dist/core/web/public/next/assets/{SettingsSection-B3YH2Npi.js.map → SettingsSection-nJGGGYqv.js.map} +1 -1
- package/dist/core/web/public/next/assets/UniverseConsoleApp-6GJydgo4.js +2 -0
- package/dist/core/web/public/next/assets/{UniverseConsoleApp-wEKIzl1M.js.map → UniverseConsoleApp-6GJydgo4.js.map} +1 -1
- package/dist/core/web/public/next/assets/{UniverseView-CQVpJqqI.js → UniverseView-DLDtNYL8.js} +2 -2
- package/dist/core/web/public/next/assets/{UniverseView-CQVpJqqI.js.map → UniverseView-DLDtNYL8.js.map} +1 -1
- package/dist/core/web/public/next/assets/UsageSection-Cf9d9iFH.js +2 -0
- package/dist/core/web/public/next/assets/UsageSection-Cf9d9iFH.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-DsdKQoTH.css +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-y0uOHixd.js +3 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-y0uOHixd.js.map +1 -0
- package/dist/core/web/public/next/assets/{charts-BopViIha.js → charts-CVooqJWN.js} +2 -2
- package/dist/core/web/public/next/assets/{charts-BopViIha.js.map → charts-CVooqJWN.js.map} +1 -1
- package/dist/core/web/public/next/assets/context-model-Bqv8DVuH.js +2 -0
- package/dist/core/web/public/next/assets/context-model-Bqv8DVuH.js.map +1 -0
- package/dist/core/web/public/next/assets/global-eaY9GyX3.js +2 -0
- package/dist/core/web/public/next/assets/global-eaY9GyX3.js.map +1 -0
- package/dist/core/web/public/next/assets/{icons-L06pQH6j.js → icons-vex8rclC.js} +2 -2
- package/dist/core/web/public/next/assets/{icons-L06pQH6j.js.map → icons-vex8rclC.js.map} +1 -1
- package/dist/core/web/public/next/assets/{index-CXgVQHek.js → index-D2Eik-zt.js} +3 -3
- package/dist/core/web/public/next/assets/{index-CXgVQHek.js.map → index-D2Eik-zt.js.map} +1 -1
- package/dist/core/web/public/next/assets/{queries-D3sSlan1.js → queries-bAYU0VNy.js} +2 -2
- package/dist/core/web/public/next/assets/{queries-D3sSlan1.js.map → queries-bAYU0VNy.js.map} +1 -1
- package/dist/core/web/public/next/assets/use-guarded-action-C7QrP7Yp.js +2 -0
- package/dist/core/web/public/next/assets/{use-guarded-action-BxfJ9E-n.js.map → use-guarded-action-C7QrP7Yp.js.map} +1 -1
- package/dist/core/web/public/next/assets/verse-model-TfDk9cky.js +2 -0
- package/dist/core/web/public/next/assets/verse-model-TfDk9cky.js.map +1 -0
- package/dist/core/web/public/next/assets/{workspace-model-v0a1gl-C.js → workspace-model-CHol5RVp.js} +2 -2
- package/dist/core/web/public/next/assets/{workspace-model-v0a1gl-C.js.map → workspace-model-CHol5RVp.js.map} +1 -1
- package/dist/core/web/public/next/index.html +1 -1
- package/dist/release-dependency-inventory.json +1 -1
- package/docs/README.md +1 -0
- package/package.json +1 -1
- package/dist/core/web/public/next/assets/AutonomySection-yeNNUPur.js +0 -2
- package/dist/core/web/public/next/assets/ChatSection-BfnLe5dT.css +0 -1
- package/dist/core/web/public/next/assets/ChatSection-DwDDnCZQ.js +0 -80
- package/dist/core/web/public/next/assets/ChatSection-DwDDnCZQ.js.map +0 -1
- package/dist/core/web/public/next/assets/ConfirmDialog-C363ty_c.js +0 -2
- package/dist/core/web/public/next/assets/ConfirmDialog-C363ty_c.js.map +0 -1
- package/dist/core/web/public/next/assets/Meter-Cmo1pLbk.js.map +0 -1
- package/dist/core/web/public/next/assets/SettingsSection-B3YH2Npi.js +0 -2
- package/dist/core/web/public/next/assets/UniverseConsoleApp-wEKIzl1M.js +0 -2
- package/dist/core/web/public/next/assets/UsageSection-dToBThXe.js +0 -2
- package/dist/core/web/public/next/assets/UsageSection-dToBThXe.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-CMkCizvL.css +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-DHU32JCQ.js +0 -3
- package/dist/core/web/public/next/assets/VerseConsoleApp-DHU32JCQ.js.map +0 -1
- package/dist/core/web/public/next/assets/global-DMWakEhP.js +0 -2
- package/dist/core/web/public/next/assets/global-DMWakEhP.js.map +0 -1
- package/dist/core/web/public/next/assets/use-guarded-action-BxfJ9E-n.js +0 -2
- package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js +0 -2
- package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js.map +0 -1
|
@@ -1,20 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Codex adapter.
|
|
3
3
|
*
|
|
4
|
-
* Launch: turn 1 is `codex exec --json --model <m> --cd <cwd> --sandbox
|
|
4
|
+
* Launch: turn 1 is `codex exec [-c …] --json --model <m> --cd <cwd> --sandbox
|
|
5
5
|
* workspace-write -` with the prompt on stdin; later turns are
|
|
6
|
-
* `codex exec resume <thread_id> --json -` (also stdin). The thread id is
|
|
7
|
-
* known until the first turn's `thread.started` line, so `nativeSessionId`
|
|
6
|
+
* `codex exec resume <thread_id> [-c …] --json -` (also stdin). The thread id is
|
|
7
|
+
* not known until the first turn's `thread.started` line, so `nativeSessionId`
|
|
8
8
|
* is null until then and the engine adopts it from `turn-done`.
|
|
9
9
|
*
|
|
10
|
+
* Every per-session setting rides on `-c key=value` config overrides, never on
|
|
11
|
+
* flags, because `exec resume` accepts `-c` but not `--add-dir`/`--cd`: turn 1
|
|
12
|
+
* and turn N of one chat must be launched with the SAME settings. Overrides:
|
|
13
|
+
* - `sandbox_workspace_write.writable_roots` — extra workspace roots, plus the
|
|
14
|
+
* shared project-memory directory when this session may write it;
|
|
15
|
+
* - `model_context_window` + `model_auto_compact_token_limit` — expansive
|
|
16
|
+
* mode only, ALWAYS as a pair (raising only the window breaks codex's
|
|
17
|
+
* auto-compaction, openai/codex#16068);
|
|
18
|
+
* - `developer_instructions` — the shared project-memory block.
|
|
19
|
+
* Each key was verified as a KNOWN, correctly typed config field on both
|
|
20
|
+
* pinned binaries (0.136.0 and 0.155.0-alpha.9.2), on `exec` and `exec
|
|
21
|
+
* resume`, with `--strict-config` and an empty scratch CODEX_HOME — see
|
|
22
|
+
* `strictConfigVerified` below for the no-spend method.
|
|
23
|
+
*
|
|
10
24
|
* Parse (codex JSONL; shapes as consumed by src/core/run/engines.ts
|
|
11
25
|
* normaliseEngineOutputLine and src/core/resources/worker.ts parseCodex):
|
|
12
26
|
* thread.started{thread_id}
|
|
13
27
|
* item.started/item.completed{item:{id,type:'agent_message'|'command_execution'|
|
|
14
28
|
* 'file_change'|'mcp_tool_call'|'reasoning', ...}}
|
|
15
|
-
* turn.completed{usage:{input_tokens,cached_input_tokens,output_tokens}}
|
|
29
|
+
* turn.completed{usage:{input_tokens,cached_input_tokens,[cache_write_input_tokens],output_tokens}}
|
|
16
30
|
* turn.failed{error:{message}} / error{message}
|
|
31
|
+
*
|
|
32
|
+
* Telemetry (V3.9): stdout never carries per-call context, so the exact meter,
|
|
33
|
+
* the window, compactions and the TRUE per-turn usage come from the thread's
|
|
34
|
+
* own rollout file (core/verse/codex-rollout.ts) via `pollTelemetry` (live)
|
|
35
|
+
* and `afterTurn` (final). See `afterCodexTurn` for why the turn's `usage`
|
|
36
|
+
* event is emitted there rather than from the parser.
|
|
17
37
|
*/
|
|
38
|
+
import { budgetFor, canonicalModelId, CODEX_EFFECTIVE_WINDOW_PERCENT, codexAutoCompactAt, } from '../context-math.js';
|
|
39
|
+
import { advanceCodexTurnTracker, codexNativeStatePath, codexTotals, codexTurnUsage, createCodexTurnTracker, isCodexThreadId, locateCodexRollout, } from '../codex-rollout.js';
|
|
40
|
+
import { legacyModelOptionFallback } from '../model-windows.js';
|
|
18
41
|
import { verseSessionRoots } from '../types.js';
|
|
19
42
|
import { parseJsonObjectLine } from './claude.js';
|
|
20
43
|
function isObject(value) {
|
|
@@ -23,9 +46,6 @@ function isObject(value) {
|
|
|
23
46
|
function str(value) {
|
|
24
47
|
return typeof value === 'string' ? value : '';
|
|
25
48
|
}
|
|
26
|
-
function num(value) {
|
|
27
|
-
return typeof value === 'number' && Number.isFinite(value) ? value : 0;
|
|
28
|
-
}
|
|
29
49
|
function safeJson(value) {
|
|
30
50
|
try {
|
|
31
51
|
return JSON.stringify(value) ?? '';
|
|
@@ -83,19 +103,152 @@ function tomlString(value) {
|
|
|
83
103
|
* zzz_bogus_subfield`", and `-c 'sandbox_workspace_write.writable_roots=
|
|
84
104
|
* ["/tmp"]'` passes config loading and starts the run.
|
|
85
105
|
*/
|
|
86
|
-
function writableRootsOverride(
|
|
87
|
-
|
|
106
|
+
function writableRootsOverride(roots) {
|
|
107
|
+
const unique = [...new Set(roots.filter((root) => typeof root === 'string' && root.length > 0))];
|
|
108
|
+
if (unique.length === 0)
|
|
88
109
|
return [];
|
|
89
|
-
const array =
|
|
110
|
+
const array = unique.map(tomlString).join(',');
|
|
90
111
|
return ['-c', `sandbox_workspace_write.writable_roots=[${array}]`];
|
|
91
112
|
}
|
|
113
|
+
function positiveInt(value) {
|
|
114
|
+
return typeof value === 'number' && Number.isFinite(value) && value > 0 ? Math.floor(value) : null;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* The seat option a session's model resolves to: the exact stored id first,
|
|
118
|
+
* then its canonical form — the same lookup the engine uses, so the flags the
|
|
119
|
+
* CLI is given and the budget the meter shows come from one option.
|
|
120
|
+
*
|
|
121
|
+
* A launch snapshot written before 3.9 lists `{id, label, contextWindow}` and
|
|
122
|
+
* no budgets, so it would deny an expansive mode the live seat (and so the
|
|
123
|
+
* UI) offers for the same model. `legacyModelOptionFallback` — the one rule the
|
|
124
|
+
* engine's `effectiveModelOption` also applies — borrows the documented
|
|
125
|
+
* budgets for such a snapshot, so a switch the engine accepts is a switch
|
|
126
|
+
* this adapter actually carries out.
|
|
127
|
+
*/
|
|
128
|
+
function modelOptionFor(launch, model) {
|
|
129
|
+
const models = Array.isArray(launch.seat?.models) ? launch.seat.models : [];
|
|
130
|
+
const wanted = canonicalModelId(model);
|
|
131
|
+
const snapshot = models.find((m) => m.id === model) ?? models.find((m) => canonicalModelId(m.id) === wanted) ?? null;
|
|
132
|
+
return legacyModelOptionFallback('codex', model, snapshot);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Expansive mode → the config pair that makes codex measure against, and
|
|
136
|
+
* compact inside, the model's catalog maximum. BOTH keys or neither: codex
|
|
137
|
+
* resets its token accounting when only `model_context_window` is set and
|
|
138
|
+
* then never auto-compacts (openai/codex#16068), so a half-applied override
|
|
139
|
+
* is worse than none.
|
|
140
|
+
*
|
|
141
|
+
* `providerWindow` is the RAW window codex must be told (872_000 for GPT-6 /
|
|
142
|
+
* GPT-5.6); codex itself then measures against 95% of it (828_400), which is
|
|
143
|
+
* the budget's `contextWindow`. An older option that carries only the
|
|
144
|
+
* effective window is inverted through the same 95% — never guessed upward.
|
|
145
|
+
*
|
|
146
|
+
* Standard mode passes nothing: codex's own catalog budget applies, and a
|
|
147
|
+
* session switched back from expansive simply stops sending the pair.
|
|
148
|
+
*/
|
|
149
|
+
export function codexContextOverrides(session, launch) {
|
|
150
|
+
if (session.contextMode !== 'expansive')
|
|
151
|
+
return [];
|
|
152
|
+
const budget = budgetFor(modelOptionFor(launch, session.model), 'expansive');
|
|
153
|
+
if (!budget)
|
|
154
|
+
return [];
|
|
155
|
+
const effective = positiveInt(budget.contextWindow);
|
|
156
|
+
const providerWindow = positiveInt(budget.providerWindow ?? null)
|
|
157
|
+
?? (effective !== null ? Math.round((effective * 100) / CODEX_EFFECTIVE_WINDOW_PERCENT) : null);
|
|
158
|
+
if (providerWindow === null)
|
|
159
|
+
return [];
|
|
160
|
+
const limit = Math.min(positiveInt(budget.autoCompactAt) ?? codexAutoCompactAt(providerWindow), providerWindow);
|
|
161
|
+
return ['-c', `model_context_window=${providerWindow}`, '-c', `model_auto_compact_token_limit=${limit}`];
|
|
162
|
+
}
|
|
163
|
+
/** The launch's pinned project memory, when it is well-formed. */
|
|
164
|
+
function memoryOf(launch) {
|
|
165
|
+
const memory = launch.memory;
|
|
166
|
+
if (!memory || typeof memory !== 'object')
|
|
167
|
+
return null;
|
|
168
|
+
const { dir, block, writable } = memory;
|
|
169
|
+
if (typeof dir !== 'string' || !dir.startsWith('/') || typeof block !== 'string' || block.trim().length === 0)
|
|
170
|
+
return null;
|
|
171
|
+
return { dir, block, writable: writable === true };
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Shared project memory → codex.
|
|
175
|
+
*
|
|
176
|
+
* - The block rides as `developer_instructions` on EVERY turn — `exec` AND
|
|
177
|
+
* every `exec resume` — byte-identical (it was snapshotted at
|
|
178
|
+
* createSession), so the prompt prefix — and with it the provider's prompt
|
|
179
|
+
* cache — is stable, and a compaction cannot summarise it away the way it
|
|
180
|
+
* would a first-turn stdin prefix.
|
|
181
|
+
* - The memory directory joins the sandbox's writable roots only when this
|
|
182
|
+
* session may write it (`writable === true` exactly; anything else is
|
|
183
|
+
* read-only). Reading needs no grant: workspace-write keeps the whole disk
|
|
184
|
+
* readable.
|
|
185
|
+
*
|
|
186
|
+
* WHY resending does not append the block to the thread every turn, and why
|
|
187
|
+
* sending it on turn 1 only would be WRONG (checked 2026-09-23 without a model
|
|
188
|
+
* call, against this machine's ~4,000 real rollouts and both pinned binaries):
|
|
189
|
+
* - Codex persists a context BASELINE in the rollout and diffs each new turn
|
|
190
|
+
* against it; resume restores the baseline from the file. 0.136 (codex-a)
|
|
191
|
+
* documents its TurnContextItem as "persist once per real user turn after
|
|
192
|
+
* computing that turn's model-visible context updates … so resume/fork
|
|
193
|
+
* replay can recover the latest durable baseline". 0.142+ (codex-b's
|
|
194
|
+
* 0.155) writes `world_state` records instead — one `full` snapshot, then
|
|
195
|
+
* `full:false` records carrying ONLY the sections that changed — and
|
|
196
|
+
* `managed_developer_instructions` (this config key) is one of those
|
|
197
|
+
* sections ("failed to restore world-state section snapshot" in 0.155).
|
|
198
|
+
* - Observed: an unchanged fragment is never re-sent mid-thread. In main
|
|
199
|
+
* threads, `<skills_instructions>` was re-emitted 53 times — all with a
|
|
200
|
+
* CHANGED text, 0 identical — and `<permissions instructions>` 6 times, 5
|
|
201
|
+
* changed plus 1 forced by a model switch; 72 turns resumed after >6 h idle
|
|
202
|
+
* (process restarts) re-emitted nothing. So an identical block is a no-op.
|
|
203
|
+
* - Compaction rebuilds the full developer context from the CURRENT
|
|
204
|
+
* process's settings (526 of 537 compacted records carry the permissions
|
|
205
|
+
* and skills blocks in `replacement_history`). A resume launched WITHOUT
|
|
206
|
+
* the key would therefore lose the memory block at its first compaction
|
|
207
|
+
* (and on 0.142+ record the section as changed to empty).
|
|
208
|
+
* Honest gap: no rollout here has ever carried a non-empty
|
|
209
|
+
* developer_instructions (all 1,351 `managed_developer_instructions`
|
|
210
|
+
* snapshots are `{}`), and no `codex exec resume` thread exists locally, so
|
|
211
|
+
* the no-duplication claim rests on the sibling sections above. If a real
|
|
212
|
+
* multi-turn rollout ever shows the block repeating, the fix is NOT turn-1
|
|
213
|
+
* only (see compaction) but upstream.
|
|
214
|
+
*/
|
|
215
|
+
function memoryOverrides(launch) {
|
|
216
|
+
const memory = memoryOf(launch);
|
|
217
|
+
if (!memory)
|
|
218
|
+
return { writableRoots: [], config: [] };
|
|
219
|
+
return {
|
|
220
|
+
writableRoots: memory.writable ? [memory.dir] : [],
|
|
221
|
+
config: ['-c', `developer_instructions=${tomlString(memory.block)}`],
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* How the config keys above were verified WITHOUT a model call (2026-09-23):
|
|
226
|
+
* `CODEX_HOME=<empty scratch dir> codex exec [resume <id>] --strict-config
|
|
227
|
+
* -c <key>=<value> -c 'model_instructions_file="/nonexistent"' --json -`.
|
|
228
|
+
* An unknown key fails config loading ("unknown configuration field"); a
|
|
229
|
+
* known one gets past it and stops at the missing instructions file — before
|
|
230
|
+
* authentication, so nothing can reach a provider. Kept as data so the method
|
|
231
|
+
* travels with the keys it vouches for.
|
|
232
|
+
*/
|
|
233
|
+
export const strictConfigVerified = [
|
|
234
|
+
'sandbox_workspace_write.writable_roots',
|
|
235
|
+
'model_context_window',
|
|
236
|
+
'model_auto_compact_token_limit',
|
|
237
|
+
'developer_instructions',
|
|
238
|
+
];
|
|
92
239
|
function buildCodexLaunch(session, text, launch) {
|
|
93
240
|
const prefix = launch.launcher ? [...launch.launcher] : ['codex'];
|
|
94
|
-
const
|
|
95
|
-
const
|
|
241
|
+
const memory = memoryOverrides(launch);
|
|
242
|
+
const config = [
|
|
243
|
+
...writableRootsOverride([...verseSessionRoots(session).slice(1), ...memory.writableRoots]),
|
|
244
|
+
...codexContextOverrides(session, launch),
|
|
245
|
+
...memory.config,
|
|
246
|
+
];
|
|
96
247
|
const argv = session.turnCount > 0 && session.nativeSessionId
|
|
97
|
-
? [...prefix, 'exec', 'resume', session.nativeSessionId, ...
|
|
98
|
-
|
|
248
|
+
? [...prefix, 'exec', 'resume', session.nativeSessionId, ...config, '--json', '-']
|
|
249
|
+
// Always the CANONICAL id: a stored alias (e.g. a pre-3.9 record) must
|
|
250
|
+
// reach the CLI as the model the label promised.
|
|
251
|
+
: [...prefix, 'exec', ...config, '--json', '--model', canonicalModelId(session.model), '--cd', session.projectPath, '--sandbox', 'workspace-write', '-'];
|
|
99
252
|
return { argv, cwd: session.projectPath, env: {}, stdin: text };
|
|
100
253
|
}
|
|
101
254
|
/** Describe a tool-like codex item for the `tool-use` event. */
|
|
@@ -149,8 +302,7 @@ export function createCodexParser(turnId) {
|
|
|
149
302
|
const startedTools = new Set();
|
|
150
303
|
const completedTools = new Set();
|
|
151
304
|
const emittedMessages = new Set();
|
|
152
|
-
let
|
|
153
|
-
let usageEmitted = false;
|
|
305
|
+
let reported = null;
|
|
154
306
|
function handleItem(out, phase, item) {
|
|
155
307
|
const type = str(item['type']);
|
|
156
308
|
const id = str(item['id']);
|
|
@@ -203,29 +355,12 @@ export function createCodexParser(turnId) {
|
|
|
203
355
|
return;
|
|
204
356
|
}
|
|
205
357
|
case 'turn.completed': {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
turnId,
|
|
213
|
-
usage: {
|
|
214
|
-
// codex's input_tokens already includes the cached portion, so
|
|
215
|
-
// split it: the session totals (engine sums input + cache read)
|
|
216
|
-
// must count each token once.
|
|
217
|
-
inputTokens: Math.max(0, input - cached),
|
|
218
|
-
outputTokens: num(u['output_tokens']),
|
|
219
|
-
cacheReadTokens: Math.min(cached, input),
|
|
220
|
-
cacheCreationTokens: 0,
|
|
221
|
-
// `exec --json` has no per-call prompt size — only the turn
|
|
222
|
-
// total across every model call — so the codex context meter is
|
|
223
|
-
// a per-turn UPPER BOUND; the engine clamps it to the window.
|
|
224
|
-
contextTokens: input,
|
|
225
|
-
contextWindow: null,
|
|
226
|
-
},
|
|
227
|
-
};
|
|
228
|
-
}
|
|
358
|
+
// Held, not emitted: see `afterCodexTurn`. On `exec resume` this figure
|
|
359
|
+
// is the THREAD's running total, so only the rollout can say what this
|
|
360
|
+
// turn used; the printed figure is the fallback when it cannot.
|
|
361
|
+
const usage = codexTotals(ev['usage']);
|
|
362
|
+
if (usage)
|
|
363
|
+
reported = usage;
|
|
229
364
|
return;
|
|
230
365
|
}
|
|
231
366
|
case 'turn.failed':
|
|
@@ -239,7 +374,7 @@ export function createCodexParser(turnId) {
|
|
|
239
374
|
return;
|
|
240
375
|
}
|
|
241
376
|
}
|
|
242
|
-
|
|
377
|
+
const parser = {
|
|
243
378
|
push(line) {
|
|
244
379
|
const ev = parseJsonObjectLine(line);
|
|
245
380
|
if (!ev)
|
|
@@ -252,21 +387,248 @@ export function createCodexParser(turnId) {
|
|
|
252
387
|
return out;
|
|
253
388
|
},
|
|
254
389
|
finish(_exitCode) {
|
|
255
|
-
// Exit-code errors are the engine's to report (it also has the stderr
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
usageEmitted = true;
|
|
259
|
-
out.push(usage);
|
|
260
|
-
}
|
|
261
|
-
return out;
|
|
390
|
+
// Exit-code errors are the engine's to report (it also has the stderr
|
|
391
|
+
// tail); this turn's `usage` is emitted by `afterTurn`, which runs next.
|
|
392
|
+
return [];
|
|
262
393
|
},
|
|
263
394
|
nativeSessionId() {
|
|
264
395
|
return threadId;
|
|
265
396
|
},
|
|
266
397
|
};
|
|
398
|
+
const read = () => reported;
|
|
399
|
+
reportedUsage.set(parser, read);
|
|
400
|
+
rememberByTurn(turnId, read);
|
|
401
|
+
return parser;
|
|
402
|
+
}
|
|
403
|
+
// ---------------------------------------------------------------------------
|
|
404
|
+
// Telemetry hooks (V3.9)
|
|
405
|
+
// ---------------------------------------------------------------------------
|
|
406
|
+
/**
|
|
407
|
+
* `turn.completed.usage` as the CLI printed it, per parser. A WeakMap rather
|
|
408
|
+
* than a method so the frozen `VerseTurnParser` interface is untouched and
|
|
409
|
+
* the figure dies with its parser.
|
|
410
|
+
*/
|
|
411
|
+
const reportedUsage = new WeakMap();
|
|
412
|
+
/**
|
|
413
|
+
* The same getters keyed by turn id, for a hook context whose `parser` is a
|
|
414
|
+
* WRAPPER around the codex parser (an engine or test that decorates parser
|
|
415
|
+
* output). Bounded, and each entry is dropped once `afterTurn` has read it.
|
|
416
|
+
*/
|
|
417
|
+
const reportedByTurn = new Map();
|
|
418
|
+
const MAX_TRACKED_TURNS = 64;
|
|
419
|
+
function rememberByTurn(turnId, read) {
|
|
420
|
+
if (typeof turnId !== 'string' || turnId.length === 0)
|
|
421
|
+
return;
|
|
422
|
+
reportedByTurn.delete(turnId);
|
|
423
|
+
if (reportedByTurn.size >= MAX_TRACKED_TURNS) {
|
|
424
|
+
const oldest = reportedByTurn.keys().next().value;
|
|
425
|
+
if (oldest !== undefined)
|
|
426
|
+
reportedByTurn.delete(oldest);
|
|
427
|
+
}
|
|
428
|
+
reportedByTurn.set(turnId, read);
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* What the codex parser captured from `turn.completed`, or null (none printed
|
|
432
|
+
* / not a codex parser). Looked up by parser identity, then by `turnId`.
|
|
433
|
+
*/
|
|
434
|
+
export function codexReportedUsage(parser, turnId) {
|
|
435
|
+
try {
|
|
436
|
+
const read = reportedUsage.get(parser) ?? (turnId !== undefined ? reportedByTurn.get(turnId) : undefined);
|
|
437
|
+
return read?.() ?? null;
|
|
438
|
+
}
|
|
439
|
+
catch {
|
|
440
|
+
return null;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
/** Per-turn hook scratch, kept in `ctx.state` under this key. */
|
|
444
|
+
const STATE_KEY = 'codexRollout';
|
|
445
|
+
function hookState(ctx) {
|
|
446
|
+
const existing = ctx.state[STATE_KEY];
|
|
447
|
+
if (existing && typeof existing === 'object' && existing.tracker)
|
|
448
|
+
return existing;
|
|
449
|
+
const fresh = {
|
|
450
|
+
tracker: createCodexTurnTracker(),
|
|
451
|
+
file: null,
|
|
452
|
+
searched: false,
|
|
453
|
+
emittedReading: null,
|
|
454
|
+
emittedCompactions: 0,
|
|
455
|
+
};
|
|
456
|
+
ctx.state[STATE_KEY] = fresh;
|
|
457
|
+
return fresh;
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Read whatever the thread's rollout gained since the last call. False when
|
|
461
|
+
* there is nothing to read yet (no thread id, no pinned CODEX_HOME, no file).
|
|
462
|
+
*/
|
|
463
|
+
function observe(ctx, state) {
|
|
464
|
+
const threadId = ctx.nativeSessionId;
|
|
465
|
+
if (!isCodexThreadId(threadId))
|
|
466
|
+
return false;
|
|
467
|
+
const nativeState = codexNativeStatePath(ctx.launch?.launcher ?? null);
|
|
468
|
+
if (!nativeState)
|
|
469
|
+
return false;
|
|
470
|
+
if (!state.file) {
|
|
471
|
+
state.file = locateCodexRollout(nativeState, threadId, { fullScan: !state.searched });
|
|
472
|
+
state.searched = true;
|
|
473
|
+
if (!state.file)
|
|
474
|
+
return false;
|
|
475
|
+
}
|
|
476
|
+
if (advanceCodexTurnTracker(state.tracker, state.file, ctx.startedAt, threadId))
|
|
477
|
+
return true;
|
|
478
|
+
// Pruned or replaced mid-turn: look it up again next time.
|
|
479
|
+
state.file = null;
|
|
480
|
+
return false;
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Whether the tracker's latest reading describes the context NOW. A reading
|
|
484
|
+
* this turn produced always does. One left over from the previous turn does
|
|
485
|
+
* only when this turn demonstrably made no model call — otherwise the prompt
|
|
486
|
+
* has grown past it and presenting it as exact would understate occupancy.
|
|
487
|
+
*/
|
|
488
|
+
function currentReading(state, reported) {
|
|
489
|
+
const reading = state.tracker.initialized ? state.tracker.reading : null;
|
|
490
|
+
if (!reading)
|
|
491
|
+
return null;
|
|
492
|
+
if (reading.inTurn)
|
|
493
|
+
return reading;
|
|
494
|
+
const noCallsThisTurn = state.tracker.calls === 0 && (!reported || reported.inputTokens === 0);
|
|
495
|
+
return noCallsThisTurn ? reading : null;
|
|
496
|
+
}
|
|
497
|
+
function compactionEvents(ctx, state, final) {
|
|
498
|
+
const out = [];
|
|
499
|
+
const all = state.tracker.compactions;
|
|
500
|
+
while (state.emittedCompactions < all.length) {
|
|
501
|
+
const compaction = all[state.emittedCompactions];
|
|
502
|
+
// Mid-turn, wait for the post-compaction reading so the divider can say
|
|
503
|
+
// "240k → 35k"; after the turn, emit what is known.
|
|
504
|
+
if (!final && compaction.postTokens === null)
|
|
505
|
+
break;
|
|
506
|
+
state.emittedCompactions += 1;
|
|
507
|
+
out.push({
|
|
508
|
+
type: 'compaction',
|
|
509
|
+
turnId: ctx.turnId,
|
|
510
|
+
// `exec` has no manual compact verb; every rollout compaction is codex's own.
|
|
511
|
+
trigger: 'auto',
|
|
512
|
+
preTokens: compaction.preTokens,
|
|
513
|
+
postTokens: compaction.postTokens,
|
|
514
|
+
durationMs: null,
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
return out;
|
|
518
|
+
}
|
|
519
|
+
function contextEvent(ctx, reading) {
|
|
520
|
+
return { type: 'context', turnId: ctx.turnId, contextTokens: reading.tokens, contextWindow: reading.window, exact: true };
|
|
521
|
+
}
|
|
522
|
+
/** Codex usage totals → Verse's disjoint buckets (codex's input INCLUDES cached and cache-write tokens). */
|
|
523
|
+
function verseUsageFrom(totals) {
|
|
524
|
+
const input = totals.inputTokens;
|
|
525
|
+
const cacheRead = Math.min(totals.cachedInputTokens, input);
|
|
526
|
+
const cacheWrite = Math.min(totals.cacheWriteInputTokens, input - cacheRead);
|
|
527
|
+
return {
|
|
528
|
+
inputTokens: input - cacheRead - cacheWrite,
|
|
529
|
+
outputTokens: totals.outputTokens,
|
|
530
|
+
cacheReadTokens: cacheRead,
|
|
531
|
+
cacheCreationTokens: cacheWrite,
|
|
532
|
+
};
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Live meter: while the turn runs, every new `token_count` becomes an exact
|
|
536
|
+
* `context` reading, and a compaction becomes a divider as soon as the
|
|
537
|
+
* reading after it lands. Never emits usage (that is `afterTurn`'s, once).
|
|
538
|
+
*/
|
|
539
|
+
export function pollCodexTelemetry(ctx) {
|
|
540
|
+
try {
|
|
541
|
+
const state = hookState(ctx);
|
|
542
|
+
if (!observe(ctx, state))
|
|
543
|
+
return [];
|
|
544
|
+
const out = compactionEvents(ctx, state, false);
|
|
545
|
+
const reading = state.tracker.reading;
|
|
546
|
+
if (reading?.inTurn) {
|
|
547
|
+
const key = `${reading.offset}:${reading.tokens}:${reading.window ?? ''}`;
|
|
548
|
+
if (key !== state.emittedReading) {
|
|
549
|
+
state.emittedReading = key;
|
|
550
|
+
out.push(contextEvent(ctx, reading));
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
return out;
|
|
554
|
+
}
|
|
555
|
+
catch {
|
|
556
|
+
return [];
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* After the process exits: any compactions not yet shown, then THE turn's
|
|
561
|
+
* `usage` event, then the final exact `context` reading.
|
|
562
|
+
*
|
|
563
|
+
* WHY USAGE IS EMITTED HERE AND NOT BY THE PARSER. The engine SUMS `usage`
|
|
564
|
+
* events into the session's totals, and codex's `turn.completed.usage` on
|
|
565
|
+
* `exec resume` is the thread's running total (codex seeds its token counter
|
|
566
|
+
* from the rollout on resume). Emitted from the parser, turn N would add turns
|
|
567
|
+
* 1…N again. The parser runs before this hook and cannot read files, so it
|
|
568
|
+
* holds the printed figure and this hook emits exactly one `usage` per turn
|
|
569
|
+
* from the best evidence (`codexTurnUsage`): the CLI's own per-turn record,
|
|
570
|
+
* else the sum of this turn's calls, else the printed figure — converted to a
|
|
571
|
+
* delta when it matches the rollout's running total. With no readable rollout
|
|
572
|
+
* the printed figure is used as-is, marked as an upper-bound reading.
|
|
573
|
+
*/
|
|
574
|
+
export function afterCodexTurn(ctx) {
|
|
575
|
+
const out = [];
|
|
576
|
+
let reported = null;
|
|
577
|
+
try {
|
|
578
|
+
reported = codexReportedUsage(ctx.parser, ctx.turnId);
|
|
579
|
+
}
|
|
580
|
+
catch {
|
|
581
|
+
reported = null;
|
|
582
|
+
}
|
|
583
|
+
reportedByTurn.delete(ctx.turnId);
|
|
584
|
+
let state = null;
|
|
585
|
+
try {
|
|
586
|
+
state = hookState(ctx);
|
|
587
|
+
observe(ctx, state);
|
|
588
|
+
out.push(...compactionEvents(ctx, state, true));
|
|
589
|
+
}
|
|
590
|
+
catch {
|
|
591
|
+
// Telemetry is best effort; the usage below still falls back to stdout.
|
|
592
|
+
}
|
|
593
|
+
try {
|
|
594
|
+
const tracker = state?.tracker.initialized ? state.tracker : null;
|
|
595
|
+
const firstTurn = !(ctx.session.turnCount > 0 && ctx.session.nativeSessionId);
|
|
596
|
+
const turn = codexTurnUsage(tracker, reported, firstTurn);
|
|
597
|
+
const reading = state ? currentReading(state, reported) : null;
|
|
598
|
+
if (turn) {
|
|
599
|
+
const buckets = verseUsageFrom(turn.totals);
|
|
600
|
+
out.push({
|
|
601
|
+
type: 'usage',
|
|
602
|
+
turnId: ctx.turnId,
|
|
603
|
+
usage: {
|
|
604
|
+
...buckets,
|
|
605
|
+
// Exact when the rollout says what is in context now; otherwise the
|
|
606
|
+
// turn's own prompt total, an UPPER BOUND (it sums every call).
|
|
607
|
+
contextTokens: reading ? reading.tokens : turn.totals.inputTokens,
|
|
608
|
+
contextWindow: reading ? reading.window : tracker?.taskStartedWindow ?? null,
|
|
609
|
+
contextTokensExact: reading !== null,
|
|
610
|
+
},
|
|
611
|
+
});
|
|
612
|
+
}
|
|
613
|
+
if (reading)
|
|
614
|
+
out.push(contextEvent(ctx, reading));
|
|
615
|
+
}
|
|
616
|
+
catch {
|
|
617
|
+
// Never let a telemetry failure take the turn's usage with it.
|
|
618
|
+
if (reported && !out.some((event) => event.type === 'usage')) {
|
|
619
|
+
out.push({
|
|
620
|
+
type: 'usage',
|
|
621
|
+
turnId: ctx.turnId,
|
|
622
|
+
usage: { ...verseUsageFrom(reported), contextTokens: reported.inputTokens, contextWindow: null, contextTokensExact: false },
|
|
623
|
+
});
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
return out;
|
|
267
627
|
}
|
|
268
628
|
export const codexAdapter = {
|
|
269
629
|
buildLaunch: buildCodexLaunch,
|
|
270
630
|
createParser: createCodexParser,
|
|
631
|
+
pollTelemetry: pollCodexTelemetry,
|
|
632
|
+
afterTurn: afterCodexTurn,
|
|
271
633
|
};
|
|
272
634
|
//# sourceMappingURL=codex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/core/verse/adapters/codex.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/core/verse/adapters/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,19 @@
|
|
|
11
11
|
* Parse: NDJSON in the Anthropic Messages API wire format (message_start,
|
|
12
12
|
* content_block_start/delta/stop, message_delta{usage}, message_stop). The
|
|
13
13
|
* parser is the shared Anthropic-stream parser, which also accepts claude's
|
|
14
|
-
* `stream_event` wrapper and whole-message envelopes.
|
|
14
|
+
* `stream_event` wrapper and whole-message envelopes. Grok's terminal `result`
|
|
15
|
+
* carries `modelUsage.<key>.contextWindow` on the current model's row only
|
|
16
|
+
* (the key can differ from the CLI id — `grok-4.6-build` for `grok-4.6`), and
|
|
17
|
+
* a `system/compact_boundary` line marks an auto-compaction; the shared parser
|
|
18
|
+
* turns both into the usage event's window and a `compaction` event.
|
|
19
|
+
*
|
|
20
|
+
* V3.9 context. Grok has no per-invocation compaction budget flag, so there
|
|
21
|
+
* are no mode flags: it always runs its catalog budget (80% of 500k). Shared
|
|
22
|
+
* project memory reaches it as `--rules=<block>` — `--rules <RULES>` "Extra
|
|
23
|
+
* rules to append to the system prompt" (alias `--append-system-prompt`) is in
|
|
24
|
+
* `grok --help` on the pinned 0.2.118 binary. Grok can reach only `--cwd`, so
|
|
25
|
+
* the memory directory itself is never granted; the block carries the file's
|
|
26
|
+
* contents and says this seat may only read it (`writable: false`).
|
|
15
27
|
*/
|
|
16
28
|
import type { VerseAdapter } from './index.js';
|
|
17
29
|
export declare const grokAdapter: VerseAdapter;
|