@claudexor/harness-codex 3.1.0 → 3.1.1

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.
@@ -0,0 +1,61 @@
1
+ /**
2
+ * INV-105 version gate for the codex effort SNAPSHOT, plus the run's one
3
+ * effort-resolution seam. Split out of effort-probe.ts (discovery mechanics)
4
+ * so each file keeps a single altitude: the probe answers "what does the
5
+ * vendor advertise", this module answers "what may THIS run trust".
6
+ */
7
+ import type { HarnessEvent, HarnessRunSpec } from "@claudexor/schema";
8
+ import { type CodexEffortCatalog, type CodexEffortProbe } from "./effort-probe.js";
9
+ /**
10
+ * Whether the recorded snapshot may be TRUSTED for arg emission against the
11
+ * installed binary (INV-105). The snapshot is another CLI version's recorded
12
+ * `model/list` answer, so it is only that binary's truth on the exact version
13
+ * it was captured from: 0.144.1 advertises `ultra` on gpt-5.6-sol, an older
14
+ * codex may not, and an install whose live probe failed used to be handed the
15
+ * 0.144.1 catalog anyway — `model_reasoning_effort="ultra"` then went to a CLI
16
+ * that refuses the value. Mirrors `claudeSnapshotTrustedForVersion`.
17
+ *
18
+ * The installed version string is whatever `codex --version` printed
19
+ * (e.g. `codex-cli 0.144.1`), so the comparison extracts the full dotted
20
+ * numeric token and requires it to EQUAL the snapshot stamp exactly. An
21
+ * unknown or unparseable version can never vouch for the snapshot.
22
+ */
23
+ export declare function codexSnapshotTrustedForVersion(installedVersion: string | null): boolean;
24
+ /**
25
+ * The effort catalog the RUN may resolve `model_reasoning_effort` against,
26
+ * version-gating snapshot trust (INV-105) — the codex mirror of
27
+ * `claudeAdvertisedEffortsForRun`:
28
+ *
29
+ * - a LIVE `model/list` answer is the installed binary's own truth for the
30
+ * resolved env's account — trusted on any version;
31
+ * - the snapshot FALLBACK is trusted only when the installed version equals
32
+ * `CODEX_EFFORT_SNAPSHOT_VERIFIED_AGAINST` (same binary, same catalog);
33
+ * - a fallback on ANY OTHER version (mismatch, unknown, unparseable) yields an
34
+ * EMPTY catalog: the resolver then sends no effort flag at all, and the
35
+ * existing drop seam (`codexEffortIgnoredEvent`) discloses it — the run
36
+ * proceeds at the vendor default rather than forwarding a level another
37
+ * version's snapshot advertises to a binary that may reject it.
38
+ */
39
+ export declare function codexCatalogForRun(efforts: {
40
+ catalog: CodexEffortCatalog;
41
+ live: boolean;
42
+ }, installedVersion: string | null): CodexEffortCatalog;
43
+ /**
44
+ * The RUN's whole INV-105 effort seam in one place — the codex mirror of
45
+ * `claudeRunEffortResolution`: probe the catalog for THIS run's resolved env
46
+ * (profile / API-key `CODEX_HOME`s have their own accounts), version-gate
47
+ * snapshot-fallback trust (`codexCatalogForRun`), and derive the DROP/CLAMP
48
+ * disclosure on the SAME catalog the arg builder will resolve against — so the
49
+ * flag sent and the disclosure emitted can never disagree. The `--version`
50
+ * spawn happens only when it can matter (snapshot fallback AND an effort
51
+ * actually requested); a live probe or a hint-less run never pays for it.
52
+ */
53
+ export declare function codexRunEffortResolution(spec: Pick<HarnessRunSpec, "session_id" | "model_hint" | "effort_hint">, deps: {
54
+ probeEfforts: CodexEffortProbe;
55
+ nowMs: () => number;
56
+ detectVersion: (abortSignal?: AbortSignal, env?: Record<string, string | null | undefined>) => Promise<string | null>;
57
+ }, envPatch?: Record<string, string | null | undefined>, abortSignal?: AbortSignal): Promise<{
58
+ catalog: CodexEffortCatalog;
59
+ disclosure: HarnessEvent | null;
60
+ }>;
61
+ //# sourceMappingURL=effort-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effort-gate.d.ts","sourceRoot":"","sources":["../src/effort-gate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAIvF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EACvD,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAC9B,kBAAkB,CAKpB;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC,EACvE,IAAI,EAAE;IACJ,YAAY,EAAE,gBAAgB,CAAC;IAC/B,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,aAAa,EAAE,CACb,WAAW,CAAC,EAAE,WAAW,EACzB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,KAC5C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC7B,EACD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EACpD,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,CAAC,CAO3E"}
@@ -0,0 +1,61 @@
1
+ import { CODEX_EFFORT_SNAPSHOT_VERIFIED_AGAINST, codexEffortDisclosureEvent, codexEffortsForEnv, } from "./effort-probe.js";
2
+ /**
3
+ * Whether the recorded snapshot may be TRUSTED for arg emission against the
4
+ * installed binary (INV-105). The snapshot is another CLI version's recorded
5
+ * `model/list` answer, so it is only that binary's truth on the exact version
6
+ * it was captured from: 0.144.1 advertises `ultra` on gpt-5.6-sol, an older
7
+ * codex may not, and an install whose live probe failed used to be handed the
8
+ * 0.144.1 catalog anyway — `model_reasoning_effort="ultra"` then went to a CLI
9
+ * that refuses the value. Mirrors `claudeSnapshotTrustedForVersion`.
10
+ *
11
+ * The installed version string is whatever `codex --version` printed
12
+ * (e.g. `codex-cli 0.144.1`), so the comparison extracts the full dotted
13
+ * numeric token and requires it to EQUAL the snapshot stamp exactly. An
14
+ * unknown or unparseable version can never vouch for the snapshot.
15
+ */
16
+ export function codexSnapshotTrustedForVersion(installedVersion) {
17
+ if (installedVersion === null)
18
+ return false;
19
+ const token = installedVersion.match(/\d+(?:\.\d+)+/);
20
+ return token !== null && token[0] === CODEX_EFFORT_SNAPSHOT_VERIFIED_AGAINST;
21
+ }
22
+ /**
23
+ * The effort catalog the RUN may resolve `model_reasoning_effort` against,
24
+ * version-gating snapshot trust (INV-105) — the codex mirror of
25
+ * `claudeAdvertisedEffortsForRun`:
26
+ *
27
+ * - a LIVE `model/list` answer is the installed binary's own truth for the
28
+ * resolved env's account — trusted on any version;
29
+ * - the snapshot FALLBACK is trusted only when the installed version equals
30
+ * `CODEX_EFFORT_SNAPSHOT_VERIFIED_AGAINST` (same binary, same catalog);
31
+ * - a fallback on ANY OTHER version (mismatch, unknown, unparseable) yields an
32
+ * EMPTY catalog: the resolver then sends no effort flag at all, and the
33
+ * existing drop seam (`codexEffortIgnoredEvent`) discloses it — the run
34
+ * proceeds at the vendor default rather than forwarding a level another
35
+ * version's snapshot advertises to a binary that may reject it.
36
+ */
37
+ export function codexCatalogForRun(efforts, installedVersion) {
38
+ if (efforts.live)
39
+ return efforts.catalog;
40
+ return codexSnapshotTrustedForVersion(installedVersion)
41
+ ? efforts.catalog
42
+ : { models: {}, defaultModel: null };
43
+ }
44
+ /**
45
+ * The RUN's whole INV-105 effort seam in one place — the codex mirror of
46
+ * `claudeRunEffortResolution`: probe the catalog for THIS run's resolved env
47
+ * (profile / API-key `CODEX_HOME`s have their own accounts), version-gate
48
+ * snapshot-fallback trust (`codexCatalogForRun`), and derive the DROP/CLAMP
49
+ * disclosure on the SAME catalog the arg builder will resolve against — so the
50
+ * flag sent and the disclosure emitted can never disagree. The `--version`
51
+ * spawn happens only when it can matter (snapshot fallback AND an effort
52
+ * actually requested); a live probe or a hint-less run never pays for it.
53
+ */
54
+ export async function codexRunEffortResolution(spec, deps, envPatch, abortSignal) {
55
+ const efforts = await codexEffortsForEnv(deps, envPatch);
56
+ const catalog = efforts.live || !spec.effort_hint
57
+ ? efforts.catalog
58
+ : codexCatalogForRun(efforts, await deps.detectVersion(abortSignal, envPatch));
59
+ return { catalog, disclosure: codexEffortDisclosureEvent(catalog, spec) };
60
+ }
61
+ //# sourceMappingURL=effort-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effort-gate.js","sourceRoot":"","sources":["../src/effort-gate.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sCAAsC,EACtC,0BAA0B,EAC1B,kBAAkB,GAGnB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,8BAA8B,CAAC,gBAA+B;IAC5E,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,sCAAsC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAuD,EACvD,gBAA+B;IAE/B,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IACzC,OAAO,8BAA8B,CAAC,gBAAgB,CAAC;QACrD,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAuE,EACvE,IAOC,EACD,QAAoD,EACpD,WAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,OAAO,GACX,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;QAC/B,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,167 @@
1
+ import type { HarnessEvent, HarnessRunSpec, ModelEffortCapability } from "@claudexor/schema";
2
+ import { EffortHint } from "@claudexor/schema";
3
+ export type CodexEffortCapability = Record<string, ModelEffortCapability>;
4
+ /**
5
+ * One account's whole advertised effort surface: the per-model vocabularies
6
+ * PLUS which model codex itself runs when no `-m` is given (`model/list` marks
7
+ * it with `isDefault`). The default matters for effort resolution: a run with
8
+ * no model hint executes on the DEFAULT model, so its ladder — not the
9
+ * harness-wide union — is what a requested level must be held to.
10
+ */
11
+ export interface CodexEffortCatalog {
12
+ models: CodexEffortCapability;
13
+ /** `model/list` entry flagged `isDefault: true`; null when the vendor marked none. */
14
+ defaultModel: string | null;
15
+ }
16
+ /**
17
+ * Recorded fallback, captured from a live `model/list` on the CLI version
18
+ * stamped below. Used ONLY when the live probe cannot answer; it is a snapshot
19
+ * of vendor state, never an allow-list this repo maintains by hand.
20
+ * (`defaultModel` is the entry that carried `isDefault: true` in that capture.)
21
+ */
22
+ export declare const CODEX_EFFORT_SNAPSHOT: CodexEffortCatalog;
23
+ /** Vendor CLI version `CODEX_EFFORT_SNAPSHOT` was captured from. */
24
+ export declare const CODEX_EFFORT_SNAPSHOT_VERIFIED_AGAINST = "0.144.1";
25
+ /**
26
+ * Harness-wide merged ladder of an advertised catalog, weakest→strongest. Kept
27
+ * as the coarse `effort_levels` fallback so every existing reader (settings
28
+ * validation, the composer's picker, INV-105 disclosure) keeps working while
29
+ * per-model narrowing happens through `effortLevelsForModel`.
30
+ *
31
+ * Ordering authority is the VENDOR: `model/list` returns each model's
32
+ * `supportedReasoningEfforts` already ordered weakest→strongest, so the
33
+ * harness ladder is the positional merge of those lists (`mergeEffortLadders`)
34
+ * — never a table this repo maintains. The Swift composer merges the manifests'
35
+ * already-ordered arrays the same way, so both sides of the wire agree.
36
+ *
37
+ * A level NO model orders against the rest (`unconstrained`) still belongs to
38
+ * the advertised set — some model really accepts it — but has no honest rank,
39
+ * so it trails the ranked merge here (membership/display) while staying
40
+ * excluded from the clamping order (`mergeEffortLadders.order`).
41
+ */
42
+ export declare function unionEffortLevels(capability: CodexEffortCapability): EffortHint[];
43
+ /**
44
+ * The whole `model/list` payload as a capability map, or null for a FAILED probe.
45
+ *
46
+ * STRICT on purpose (the reviewed decision): ONE malformed value discards the
47
+ * ENTIRE live catalog and the caller degrades to the recorded snapshot, which is
48
+ * exactly what this module promises. Skipping the bad entry instead would publish
49
+ * a silently NARROWED ladder — a model advertising `["low", "HIGH!"]` would go out
50
+ * as `["low"]`, stamped with the installed CLI version, so a `high` request would
51
+ * clamp down to `low` and the freshness gate would call the ladder fresh. And a
52
+ * malformed value that reached the manifest would fail `HarnessManifest.parse`,
53
+ * breaking discovery rather than degrading it. The snapshot is a real, usable
54
+ * ladder, so strictness costs freshness and never capability.
55
+ *
56
+ * `defaultModel` is the entry the vendor flagged `isDefault: true`
57
+ * (live-verified on 0.144.1). Only a literal boolean true counts: the flag is
58
+ * model identity, not part of the effort wire contract, so an absent or odd
59
+ * value degrades the default to null rather than poisoning the catalog.
60
+ */
61
+ export declare function readModelListEfforts(data: unknown): CodexEffortCatalog | null;
62
+ /**
63
+ * Ask a live `codex app-server` what each model advertises. Resolves to null on
64
+ * ANY failure — the caller falls back to the snapshot.
65
+ */
66
+ export declare function probeCodexEfforts(bin: string, opts?: {
67
+ timeoutMs?: number;
68
+ env?: NodeJS.ProcessEnv;
69
+ }): Promise<CodexEffortCatalog | null>;
70
+ /** Drop the cached effort probe (tests; and the doctor's `fresh` path). */
71
+ export declare function clearCodexEffortCache(): void;
72
+ /** Live entry count. Exported so the bound above can be asserted, not assumed. */
73
+ export declare function codexEffortCacheSize(): number;
74
+ /** Live per-model discovery for one binary in one resolved environment. */
75
+ export type CodexEffortProbe = (bin: string, env?: NodeJS.ProcessEnv) => Promise<CodexEffortCatalog | null>;
76
+ /**
77
+ * The per-model effort vocabulary codex currently advertises FOR THIS ENV. Live
78
+ * when the app-server answers, the recorded snapshot otherwise — a probe failure
79
+ * degrades the ladder's freshness, never the run.
80
+ */
81
+ export declare function codexEffortCapability(probe: CodexEffortProbe, nowMs: () => number, bin: string, env?: NodeJS.ProcessEnv): Promise<{
82
+ catalog: CodexEffortCatalog;
83
+ live: boolean;
84
+ }>;
85
+ /**
86
+ * The catalog for the environment a codex child will ACTUALLY run in. ONE owner
87
+ * of that resolution: callers hand over their env PATCH (spec env + provider
88
+ * scrub + the resolved `CODEX_HOME`) and this resolves it exactly the way the
89
+ * spawn will, so the probe env and the cache identity can never disagree.
90
+ *
91
+ * An API-key route uses a fresh temporary `CODEX_HOME` per run, so it re-probes
92
+ * each time by construction. That is the correct trade: one bounded app-server
93
+ * spawn instead of a cross-account catalog served out of the cache.
94
+ */
95
+ export declare function codexEffortsForEnv(deps: {
96
+ probeEfforts: CodexEffortProbe;
97
+ nowMs: () => number;
98
+ }, envPatch?: Record<string, string | null | undefined>): Promise<{
99
+ catalog: CodexEffortCatalog;
100
+ live: boolean;
101
+ }>;
102
+ /**
103
+ * The full outcome of resolving one (model, requested) pair against a catalog:
104
+ * what to send, whether the merged vendor order MOVED it there, and which
105
+ * model's ladder decided. `codexEffortFor` keeps only the level for the arg
106
+ * builder; the disclosure seams need the other two facts, because a CLAMP is a
107
+ * changed setting the user asked for differently (INV-105) even though a flag
108
+ * is still sent.
109
+ */
110
+ export interface CodexEffortResolution {
111
+ /** The level to send, or null when no flag should be sent at all. */
112
+ effort: EffortHint | null;
113
+ /** True when `effort` differs from the request — the merged vendor order clamped it. */
114
+ clamped: boolean;
115
+ /** The model whose advertised ladder decided this (the hint, or the catalog default). */
116
+ effectiveModel: string | null;
117
+ }
118
+ /**
119
+ * The effort value to send for one (model, requested) pair: advertised passes
120
+ * through verbatim, a level a SIBLING model advertises clamps inside the merged
121
+ * vendor order (`ultra` on gpt-5.4 → `xhigh` because the merged codex ladder
122
+ * places it), anything else sends no flag at all.
123
+ *
124
+ * If a future catalog ever contains two models whose advertised orders
125
+ * genuinely contradict each other, there is no honest merged rank — so
126
+ * cross-model clamping is treated as IMPOSSIBLE (the ladder collapses to the
127
+ * model's own list) and an unadvertised level is refused rather than clamped
128
+ * along an order this repo would have had to invent.
129
+ */
130
+ export declare function codexEffortResolution(catalog: CodexEffortCatalog, model: string | null | undefined, requested: EffortHint | null | undefined): CodexEffortResolution;
131
+ /**
132
+ * The level the arg builder should emit for one (model, requested) pair, or
133
+ * null when no flag should be sent. Thin projection of
134
+ * `codexEffortResolution`; the run-side disclosure seams read the full
135
+ * resolution so a clamp or a drop is never silent.
136
+ */
137
+ export declare function codexEffortFor(catalog: CodexEffortCatalog, model: string | null | undefined, requested: EffortHint | null | undefined): EffortHint | null;
138
+ /**
139
+ * The INV-105 disclosure for an effort the RUN itself could not honor, or null
140
+ * when nothing was dropped. Preflight validates against the manifest — the
141
+ * DEFAULT account's catalog — but the adapter resolves against the catalog for
142
+ * the env the child actually runs in (profile / API-key homes have their own
143
+ * accounts), so a level can pass preflight and still resolve to "send no flag"
144
+ * here. Without this event that run silently executed at the vendor default;
145
+ * the payload rides the same `ignored_settings` channel governance uses, so
146
+ * the timeline renders the same warning either way.
147
+ */
148
+ export declare function codexEffortIgnoredEvent(catalog: CodexEffortCatalog, spec: Pick<HarnessRunSpec, "session_id" | "model_hint" | "effort_hint">): HarnessEvent | null;
149
+ /**
150
+ * The INV-105 disclosure for an effort the run CLAMPED, or null when the
151
+ * requested level rode through verbatim (or was dropped — that is
152
+ * `codexEffortIgnoredEvent`'s shape, and the two are mutually exclusive: a
153
+ * drop sends no level, a clamp sends a different one). A clamp is quieter than
154
+ * a drop but just as much a changed setting: `--effort ultra` on gpt-5.4 runs
155
+ * at `xhigh`, and without this event nothing in the timeline said so. The
156
+ * payload rides the same `ignored_settings` channel governance and the drop
157
+ * seam use, so every existing reader renders the same warning.
158
+ */
159
+ /**
160
+ * The one INV-105 seam the run yields: the DROP disclosure or the CLAMP
161
+ * disclosure, whichever applies (they are mutually exclusive by construction —
162
+ * a drop sends no flag, a clamp sends a different one), or null when the
163
+ * requested level rode through verbatim or nothing was requested.
164
+ */
165
+ export declare function codexEffortDisclosureEvent(catalog: CodexEffortCatalog, spec: Pick<HarnessRunSpec, "session_id" | "model_hint" | "effort_hint">): HarnessEvent | null;
166
+ export declare function codexEffortClampedEvent(catalog: CodexEffortCatalog, spec: Pick<HarnessRunSpec, "session_id" | "model_hint" | "effort_hint">): HarnessEvent | null;
167
+ //# sourceMappingURL=effort-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effort-probe.d.ts","sourceRoot":"","sources":["../src/effort-probe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,487 @@
1
+ /**
2
+ * Per-model effort discovery for codex.
3
+ *
4
+ * Codex advertises reasoning-effort vocabularies PER MODEL and exposes them
5
+ * machine-readably: `codex app-server --stdio` speaks JSON-RPC, and the v2
6
+ * `model/list` request answers with `data[].supportedReasoningEfforts` +
7
+ * `defaultReasoningEffort`. The ceiling is genuinely model-scoped — gpt-5.6-sol
8
+ * takes `ultra` while gpt-5.4 stops at `xhigh` — so a harness-wide ladder is
9
+ * always wrong for some model.
10
+ *
11
+ * The vendor's own generated schema types `ReasoningEffort` as "a non-empty
12
+ * reasoning effort value advertised by the model" (a bounded string, NOT an
13
+ * enum). We mirror that: whatever the probe reports is what we advertise, so a
14
+ * level newer than this repo starts working the moment codex ships it.
15
+ *
16
+ * A probe is never load-bearing. Missing binary, an older app-server without
17
+ * `model/list`, a timeout or malformed output all fall back to the recorded
18
+ * snapshot below and the run proceeds.
19
+ */
20
+ import { spawn } from "node:child_process";
21
+ import { EffortHint, effortLevelsForModel, mergeEffortLadders } from "@claudexor/schema";
22
+ import { resolveEffort } from "@claudexor/core";
23
+ import { nowIso } from "@claudexor/util";
24
+ import { BIN, probeEnv } from "./missing-cli.js";
25
+ /**
26
+ * Recorded fallback, captured from a live `model/list` on the CLI version
27
+ * stamped below. Used ONLY when the live probe cannot answer; it is a snapshot
28
+ * of vendor state, never an allow-list this repo maintains by hand.
29
+ * (`defaultModel` is the entry that carried `isDefault: true` in that capture.)
30
+ */
31
+ export const CODEX_EFFORT_SNAPSHOT = {
32
+ models: {
33
+ "gpt-5.6-sol": {
34
+ levels: ["low", "medium", "high", "xhigh", "max", "ultra"],
35
+ default: "low",
36
+ },
37
+ "gpt-5.6-terra": {
38
+ levels: ["low", "medium", "high", "xhigh", "max", "ultra"],
39
+ default: "medium",
40
+ },
41
+ "gpt-5.6-luna": { levels: ["low", "medium", "high", "xhigh", "max"], default: "medium" },
42
+ "gpt-5.5": { levels: ["low", "medium", "high", "xhigh"], default: "medium" },
43
+ "gpt-5.4": { levels: ["low", "medium", "high", "xhigh"], default: "medium" },
44
+ "gpt-5.4-mini": { levels: ["low", "medium", "high", "xhigh"], default: "medium" },
45
+ "gpt-5.3-codex-spark": { levels: ["low", "medium", "high", "xhigh"], default: "high" },
46
+ },
47
+ defaultModel: "gpt-5.6-sol",
48
+ };
49
+ /** Vendor CLI version `CODEX_EFFORT_SNAPSHOT` was captured from. */
50
+ export const CODEX_EFFORT_SNAPSHOT_VERIFIED_AGAINST = "0.144.1";
51
+ /**
52
+ * Harness-wide merged ladder of an advertised catalog, weakest→strongest. Kept
53
+ * as the coarse `effort_levels` fallback so every existing reader (settings
54
+ * validation, the composer's picker, INV-105 disclosure) keeps working while
55
+ * per-model narrowing happens through `effortLevelsForModel`.
56
+ *
57
+ * Ordering authority is the VENDOR: `model/list` returns each model's
58
+ * `supportedReasoningEfforts` already ordered weakest→strongest, so the
59
+ * harness ladder is the positional merge of those lists (`mergeEffortLadders`)
60
+ * — never a table this repo maintains. The Swift composer merges the manifests'
61
+ * already-ordered arrays the same way, so both sides of the wire agree.
62
+ *
63
+ * A level NO model orders against the rest (`unconstrained`) still belongs to
64
+ * the advertised set — some model really accepts it — but has no honest rank,
65
+ * so it trails the ranked merge here (membership/display) while staying
66
+ * excluded from the clamping order (`mergeEffortLadders.order`).
67
+ */
68
+ export function unionEffortLevels(capability) {
69
+ const merged = mergeEffortLadders(Object.values(capability).map((entry) => entry.levels));
70
+ return [...merged.order, ...merged.unconstrained];
71
+ }
72
+ /**
73
+ * A vendor VALUE that is not an effort level at all. Distinct from `null` (an
74
+ * entry that simply advertises no effort surface, which is normal and skipped):
75
+ * this poisons the whole probe. See `readModelListEfforts`.
76
+ */
77
+ const MALFORMED = Symbol("malformed-effort-entry");
78
+ /**
79
+ * Shape-check one `model/list` entry; never throws.
80
+ *
81
+ * ABSENCE is skipped (`null`): no id, no `supportedReasoningEfforts` array, an
82
+ * array member without the field, an empty list — a model with no effort surface
83
+ * is ordinary vendor output. A PRESENT value that is not an `EffortHint` is
84
+ * MALFORMED, because `EffortHint` is the wire contract every consumer downstream
85
+ * enforces, right up to `HarnessManifest.parse`.
86
+ */
87
+ function readEntry(raw) {
88
+ if (typeof raw.id !== "string" || raw.id.trim() === "")
89
+ return null;
90
+ if (!Array.isArray(raw.supportedReasoningEfforts))
91
+ return null;
92
+ const levels = [];
93
+ for (const item of raw.supportedReasoningEfforts) {
94
+ const level = item?.reasoningEffort;
95
+ if (level === undefined)
96
+ continue;
97
+ const parsed = EffortHint.safeParse(level);
98
+ if (!parsed.success)
99
+ return MALFORMED;
100
+ if (!levels.includes(parsed.data))
101
+ levels.push(parsed.data);
102
+ }
103
+ if (levels.length === 0)
104
+ return null;
105
+ // An absent default is normal (the vendor omits it, or sends an empty string);
106
+ // a present one must be a real level, since it is published as the manifest's
107
+ // per-model `default` and read back through the same schema.
108
+ const fallback = raw.defaultReasoningEffort;
109
+ if (fallback === undefined || fallback === null || fallback === "") {
110
+ return [raw.id, { levels, default: null }];
111
+ }
112
+ const parsedDefault = EffortHint.safeParse(fallback);
113
+ if (!parsedDefault.success)
114
+ return MALFORMED;
115
+ return [raw.id, { levels, default: parsedDefault.data }];
116
+ }
117
+ /**
118
+ * The whole `model/list` payload as a capability map, or null for a FAILED probe.
119
+ *
120
+ * STRICT on purpose (the reviewed decision): ONE malformed value discards the
121
+ * ENTIRE live catalog and the caller degrades to the recorded snapshot, which is
122
+ * exactly what this module promises. Skipping the bad entry instead would publish
123
+ * a silently NARROWED ladder — a model advertising `["low", "HIGH!"]` would go out
124
+ * as `["low"]`, stamped with the installed CLI version, so a `high` request would
125
+ * clamp down to `low` and the freshness gate would call the ladder fresh. And a
126
+ * malformed value that reached the manifest would fail `HarnessManifest.parse`,
127
+ * breaking discovery rather than degrading it. The snapshot is a real, usable
128
+ * ladder, so strictness costs freshness and never capability.
129
+ *
130
+ * `defaultModel` is the entry the vendor flagged `isDefault: true`
131
+ * (live-verified on 0.144.1). Only a literal boolean true counts: the flag is
132
+ * model identity, not part of the effort wire contract, so an absent or odd
133
+ * value degrades the default to null rather than poisoning the catalog.
134
+ */
135
+ export function readModelListEfforts(data) {
136
+ if (!Array.isArray(data))
137
+ return null;
138
+ const capability = {};
139
+ let defaultModel = null;
140
+ for (const raw of data) {
141
+ const listed = raw;
142
+ const entry = readEntry(listed);
143
+ if (entry === MALFORMED)
144
+ return null;
145
+ // TWO separate facts per entry. `isDefault` is model IDENTITY and is read
146
+ // even when the entry contributes no ladder: a default model that
147
+ // advertises no effort surface is still the model a hint-less run executes
148
+ // on, and dropping its identity with its (nonexistent) ladder silently
149
+ // re-validated hint-less runs against the harness-wide union — the exact
150
+ // bug the default-model narrowing exists to prevent.
151
+ if (listed.isDefault === true && typeof listed.id === "string" && listed.id.trim() !== "") {
152
+ defaultModel ??= listed.id;
153
+ }
154
+ if (!entry)
155
+ continue;
156
+ capability[entry[0]] = entry[1];
157
+ }
158
+ return Object.keys(capability).length > 0 ? { models: capability, defaultModel } : null;
159
+ }
160
+ /**
161
+ * Ask a live `codex app-server` what each model advertises. Resolves to null on
162
+ * ANY failure — the caller falls back to the snapshot.
163
+ */
164
+ export async function probeCodexEfforts(bin, opts = {}) {
165
+ const timeoutMs = opts.timeoutMs ?? 10_000;
166
+ return await new Promise((resolve) => {
167
+ let child;
168
+ try {
169
+ child = spawn(bin, ["app-server", "--stdio"], {
170
+ stdio: ["pipe", "pipe", "ignore"],
171
+ ...(opts.env ? { env: opts.env } : {}),
172
+ });
173
+ }
174
+ catch {
175
+ resolve(null);
176
+ return;
177
+ }
178
+ let settled = false;
179
+ const finish = (value) => {
180
+ if (settled)
181
+ return;
182
+ settled = true;
183
+ clearTimeout(timer);
184
+ try {
185
+ child.kill("SIGKILL");
186
+ }
187
+ catch {
188
+ /* the child is already gone; nothing to clean up */
189
+ }
190
+ resolve(value);
191
+ };
192
+ const timer = setTimeout(() => finish(null), timeoutMs);
193
+ child.on("error", () => finish(null));
194
+ // `close`, NOT `exit`: `exit` fires when the process is reaped, which can
195
+ // beat the buffered stdout reaching the `data` handler above. An app-server
196
+ // that answers `model/list` and exits promptly would then be recorded as a
197
+ // FAILED probe and silently degrade a perfectly good live catalog to the
198
+ // snapshot. `close` fires only once every stdio stream is done, so by the
199
+ // time it runs the answer has already been parsed and `settled` is true.
200
+ // This does not reintroduce the EPIPE hazard: the asynchronous stream break
201
+ // still lands on the stdin/stdout `error` listeners below.
202
+ child.on("close", () => finish(null));
203
+ // A pipe to a child that already died reports the break ASYNCHRONOUSLY, on
204
+ // the stream's `error` event — `write()` returns normally and the EPIPE
205
+ // arrives a tick later, so the try/catch in `send` can never see it. Left
206
+ // unhandled that event is an UNCAUGHT EXCEPTION: it took down whole test
207
+ // runs on machines with no codex installed while every dev box (codex
208
+ // present, handshake answered) stayed green. Both failure shapes have the
209
+ // same meaning here — no live catalog — so both land on `finish(null)` and
210
+ // the caller degrades to the recorded snapshot.
211
+ child.stdin?.on("error", () => finish(null));
212
+ child.stdout?.on("error", () => finish(null));
213
+ const send = (payload) => {
214
+ // The probe is over: the child has been killed, so a queued frame would
215
+ // only write into a destroyed stream to no purpose.
216
+ if (settled)
217
+ return;
218
+ try {
219
+ child.stdin?.write(`${JSON.stringify(payload)}\n`);
220
+ }
221
+ catch {
222
+ // Kept for the SYNCHRONOUS shapes (a destroyed stream, a serialization
223
+ // fault); the asynchronous shape arrives on the listener above.
224
+ finish(null);
225
+ }
226
+ };
227
+ let buffer = "";
228
+ child.stdout?.on("data", (chunk) => {
229
+ buffer += chunk.toString();
230
+ let newline;
231
+ while ((newline = buffer.indexOf("\n")) >= 0) {
232
+ const line = buffer.slice(0, newline).trim();
233
+ buffer = buffer.slice(newline + 1);
234
+ if (line === "")
235
+ continue;
236
+ let message;
237
+ try {
238
+ message = JSON.parse(line);
239
+ }
240
+ catch {
241
+ continue;
242
+ }
243
+ if (message.id === 1) {
244
+ // Handshake accepted: the notification, then the v2 model query.
245
+ send({ method: "initialized", params: null });
246
+ send({ jsonrpc: "2.0", id: 2, method: "model/list", params: {} });
247
+ continue;
248
+ }
249
+ if (message.id !== 2)
250
+ continue;
251
+ finish(readModelListEfforts(message.result?.data));
252
+ return;
253
+ }
254
+ });
255
+ send({
256
+ jsonrpc: "2.0",
257
+ id: 1,
258
+ method: "initialize",
259
+ params: { clientInfo: { name: "claudexor", version: "1" } },
260
+ });
261
+ });
262
+ }
263
+ // Codex advertises effort PER MODEL (`model/list`), so there is no single codex
264
+ // ladder to declare here — `codexEffortCapability()` below reads the live one and
265
+ // falls back to the recorded snapshot. Cached like cursor's api-key smoke: a
266
+ // bounded TTL map, so discovery and every run share one probe instead of
267
+ // re-spawning an app-server per call.
268
+ const CODEX_EFFORT_CACHE_TTL_MS = 10 * 60_000;
269
+ const CODEX_EFFORT_FAILURE_CACHE_TTL_MS = 60_000;
270
+ /**
271
+ * Hard ceiling on cached catalogs.
272
+ *
273
+ * The cache key is (resolved `CODEX_HOME`, binary), and an API-key route mints a
274
+ * FRESH `mkdtemp` home per run — so in a long-lived daemon every such run inserts
275
+ * a key that can never be read again. Expiry alone does not bound it: expiry is
276
+ * only consulted on a later read of the SAME key, which for an ephemeral home
277
+ * never comes, and `clearCodexEffortCache` is only reached from tests and the
278
+ * doctor's `fresh` path. The cap is what makes the map's size provably bounded
279
+ * regardless of run volume or uptime. Generous next to the real population
280
+ * (native home + one per credential profile, times installed binaries), so
281
+ * eviction only ever bites the ephemeral keys it exists for.
282
+ */
283
+ const CODEX_EFFORT_CACHE_MAX_ENTRIES = 64;
284
+ const codexEffortCache = new Map();
285
+ /** Drop the cached effort probe (tests; and the doctor's `fresh` path). */
286
+ export function clearCodexEffortCache() {
287
+ codexEffortCache.clear();
288
+ }
289
+ /** Live entry count. Exported so the bound above can be asserted, not assumed. */
290
+ export function codexEffortCacheSize() {
291
+ return codexEffortCache.size;
292
+ }
293
+ /**
294
+ * Insert under the bound: drop everything already expired, then evict
295
+ * oldest-first until there is room. `Map` iterates in insertion order, so the
296
+ * first surviving key is the least recently INSERTED one — good enough here,
297
+ * because entries are rewritten on every refresh and the keys this protects
298
+ * against are write-once by construction.
299
+ */
300
+ function storeCodexEfforts(key, entry, nowMs) {
301
+ for (const [k, v] of codexEffortCache) {
302
+ if (v.expiresAtMs <= nowMs)
303
+ codexEffortCache.delete(k);
304
+ }
305
+ codexEffortCache.delete(key);
306
+ while (codexEffortCache.size >= CODEX_EFFORT_CACHE_MAX_ENTRIES) {
307
+ const oldest = codexEffortCache.keys().next();
308
+ if (oldest.done)
309
+ break;
310
+ codexEffortCache.delete(oldest.value);
311
+ }
312
+ codexEffortCache.set(key, entry);
313
+ }
314
+ /**
315
+ * Cache identity of ONE codex effort catalog: the resolved `CODEX_HOME` plus the
316
+ * binary path.
317
+ *
318
+ * `model/list` answers for the ACCOUNT the resolved home is logged into, and
319
+ * every credential profile and API-key route gets its own `CODEX_HOME`. Keying by
320
+ * the binary alone therefore served one profile another account's models and
321
+ * ladders for the whole TTL — omitting levels the account really has, or sending
322
+ * levels it does not. The binary stays in the key because two codex versions
323
+ * advertise different catalogs from the same home.
324
+ */
325
+ function codexEffortCacheKey(bin, env) {
326
+ // A JSON-encoded pair, not a joined string: both halves are paths, so any
327
+ // printable separator would let two different (home, bin) pairs share a key.
328
+ return JSON.stringify([env?.["CODEX_HOME"] ?? "", bin]);
329
+ }
330
+ /**
331
+ * The per-model effort vocabulary codex currently advertises FOR THIS ENV. Live
332
+ * when the app-server answers, the recorded snapshot otherwise — a probe failure
333
+ * degrades the ladder's freshness, never the run.
334
+ */
335
+ export async function codexEffortCapability(probe, nowMs, bin, env) {
336
+ const now = nowMs();
337
+ const key = codexEffortCacheKey(bin, env);
338
+ const cached = codexEffortCache.get(key);
339
+ if (cached && cached.expiresAtMs > now) {
340
+ return { catalog: cached.catalog, live: cached.live };
341
+ }
342
+ const probed = await probe(bin, env);
343
+ const live = probed !== null;
344
+ const catalog = probed ?? CODEX_EFFORT_SNAPSHOT;
345
+ storeCodexEfforts(key, {
346
+ catalog,
347
+ live,
348
+ expiresAtMs: now + (live ? CODEX_EFFORT_CACHE_TTL_MS : CODEX_EFFORT_FAILURE_CACHE_TTL_MS),
349
+ }, now);
350
+ return { catalog, live };
351
+ }
352
+ /**
353
+ * The catalog for the environment a codex child will ACTUALLY run in. ONE owner
354
+ * of that resolution: callers hand over their env PATCH (spec env + provider
355
+ * scrub + the resolved `CODEX_HOME`) and this resolves it exactly the way the
356
+ * spawn will, so the probe env and the cache identity can never disagree.
357
+ *
358
+ * An API-key route uses a fresh temporary `CODEX_HOME` per run, so it re-probes
359
+ * each time by construction. That is the correct trade: one bounded app-server
360
+ * spawn instead of a cross-account catalog served out of the cache.
361
+ */
362
+ export async function codexEffortsForEnv(deps, envPatch) {
363
+ return await codexEffortCapability(deps.probeEfforts, deps.nowMs, BIN, probeEnv(envPatch));
364
+ }
365
+ /**
366
+ * The effort value to send for one (model, requested) pair: advertised passes
367
+ * through verbatim, a level a SIBLING model advertises clamps inside the merged
368
+ * vendor order (`ultra` on gpt-5.4 → `xhigh` because the merged codex ladder
369
+ * places it), anything else sends no flag at all.
370
+ *
371
+ * If a future catalog ever contains two models whose advertised orders
372
+ * genuinely contradict each other, there is no honest merged rank — so
373
+ * cross-model clamping is treated as IMPOSSIBLE (the ladder collapses to the
374
+ * model's own list) and an unadvertised level is refused rather than clamped
375
+ * along an order this repo would have had to invent.
376
+ */
377
+ export function codexEffortResolution(catalog, model, requested) {
378
+ const merged = mergeEffortLadders(Object.values(catalog.models).map((entry) => entry.levels));
379
+ // No model hint does NOT mean "any model": codex runs the catalog's DEFAULT
380
+ // model (`model/list` isDefault), so the requested level is held to THAT
381
+ // model's ladder. Validating a hint-less run against the harness-wide union
382
+ // let a sibling-only level (`ultra`) ride into a default model that rejects
383
+ // it. A catalog with no recorded default keeps the union fallback — the
384
+ // broadest honest set when the effective model is genuinely unknown.
385
+ //
386
+ // A default model the catalog recorded WITHOUT a ladder is different from an
387
+ // unknown model: the vendor listed it and advertised no effort surface, so
388
+ // its ladder is KNOWN-EMPTY, not unknown. `effortLevelsForModel`'s union
389
+ // fallback would clamp against sibling ladders the run never executes on;
390
+ // an empty advertised set instead sends no flag, and the caller's INV-105
391
+ // seam (`codexEffortIgnoredEvent`) discloses the dropped setting.
392
+ const effectiveModel = model ?? catalog.defaultModel;
393
+ const defaultKnownEffortless = effectiveModel != null &&
394
+ effectiveModel === catalog.defaultModel &&
395
+ !(effectiveModel in catalog.models);
396
+ const advertised = defaultKnownEffortless
397
+ ? []
398
+ : effortLevelsForModel({
399
+ effort_levels: [...merged.order, ...merged.unconstrained],
400
+ model_effort_levels: catalog.models,
401
+ }, effectiveModel);
402
+ const check = resolveEffort(requested, advertised, merged.consistent ? merged.order : advertised);
403
+ if (check.status !== "ok")
404
+ return { effort: null, clamped: false, effectiveModel };
405
+ return { effort: check.effort, clamped: check.clamped, effectiveModel };
406
+ }
407
+ /**
408
+ * The level the arg builder should emit for one (model, requested) pair, or
409
+ * null when no flag should be sent. Thin projection of
410
+ * `codexEffortResolution`; the run-side disclosure seams read the full
411
+ * resolution so a clamp or a drop is never silent.
412
+ */
413
+ export function codexEffortFor(catalog, model, requested) {
414
+ return codexEffortResolution(catalog, model, requested).effort;
415
+ }
416
+ /**
417
+ * The INV-105 disclosure for an effort the RUN itself could not honor, or null
418
+ * when nothing was dropped. Preflight validates against the manifest — the
419
+ * DEFAULT account's catalog — but the adapter resolves against the catalog for
420
+ * the env the child actually runs in (profile / API-key homes have their own
421
+ * accounts), so a level can pass preflight and still resolve to "send no flag"
422
+ * here. Without this event that run silently executed at the vendor default;
423
+ * the payload rides the same `ignored_settings` channel governance uses, so
424
+ * the timeline renders the same warning either way.
425
+ */
426
+ export function codexEffortIgnoredEvent(catalog, spec) {
427
+ if (!spec.effort_hint)
428
+ return null;
429
+ if (codexEffortFor(catalog, spec.model_hint, spec.effort_hint) !== null)
430
+ return null;
431
+ const target = spec.model_hint ?? catalog.defaultModel;
432
+ // An EMPTY catalog is the version-gated snapshot distrust case
433
+ // (`codexCatalogForRun`): the live probe could not answer and the recorded
434
+ // snapshot belongs to a different CLI version, so the honest statement is
435
+ // "unverifiable", not "not accepted".
436
+ const detail = Object.keys(catalog.models).length > 0
437
+ ? `effort=${spec.effort_hint} (not accepted by the codex catalog resolved for this run's ` +
438
+ `environment${target ? ` on model ${target}` : ""}; the run used the vendor default)`
439
+ : `effort=${spec.effort_hint} (could not be verified against the installed codex CLI: ` +
440
+ "the live model/list probe could not answer, and the recorded snapshot was captured " +
441
+ `from CLI ${CODEX_EFFORT_SNAPSHOT_VERIFIED_AGAINST}, a different version, ` +
442
+ "so no effort flag was sent; the run used the vendor default)";
443
+ return {
444
+ type: "message",
445
+ session_id: spec.session_id,
446
+ ts: nowIso(),
447
+ text: `[effort] ignored: ${detail}`,
448
+ payload: { ignored_settings: [detail] },
449
+ };
450
+ }
451
+ /**
452
+ * The INV-105 disclosure for an effort the run CLAMPED, or null when the
453
+ * requested level rode through verbatim (or was dropped — that is
454
+ * `codexEffortIgnoredEvent`'s shape, and the two are mutually exclusive: a
455
+ * drop sends no level, a clamp sends a different one). A clamp is quieter than
456
+ * a drop but just as much a changed setting: `--effort ultra` on gpt-5.4 runs
457
+ * at `xhigh`, and without this event nothing in the timeline said so. The
458
+ * payload rides the same `ignored_settings` channel governance and the drop
459
+ * seam use, so every existing reader renders the same warning.
460
+ */
461
+ /**
462
+ * The one INV-105 seam the run yields: the DROP disclosure or the CLAMP
463
+ * disclosure, whichever applies (they are mutually exclusive by construction —
464
+ * a drop sends no flag, a clamp sends a different one), or null when the
465
+ * requested level rode through verbatim or nothing was requested.
466
+ */
467
+ export function codexEffortDisclosureEvent(catalog, spec) {
468
+ return codexEffortIgnoredEvent(catalog, spec) ?? codexEffortClampedEvent(catalog, spec);
469
+ }
470
+ export function codexEffortClampedEvent(catalog, spec) {
471
+ if (!spec.effort_hint)
472
+ return null;
473
+ const resolved = codexEffortResolution(catalog, spec.model_hint, spec.effort_hint);
474
+ if (!resolved.clamped || resolved.effort === null)
475
+ return null;
476
+ const detail = `effort=${spec.effort_hint} (clamped to ${resolved.effort}: the requested level is not ` +
477
+ `advertised by${resolved.effectiveModel ? ` model ${resolved.effectiveModel}` : " the resolved model"}, ` +
478
+ `so the run sent ${resolved.effort}, the nearest level that model advertises)`;
479
+ return {
480
+ type: "message",
481
+ session_id: spec.session_id,
482
+ ts: nowIso(),
483
+ text: `[effort] clamped: ${detail}`,
484
+ payload: { ignored_settings: [detail] },
485
+ };
486
+ }
487
+ //# sourceMappingURL=effort-probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effort-probe.js","sourceRoot":"","sources":["../src/effort-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAiBjD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,MAAM,EAAE;QACN,aAAa,EAAE;YACb,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;YAC1D,OAAO,EAAE,KAAK;SACf;QACD,eAAe,EAAE;YACf,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;YAC1D,OAAO,EAAE,QAAQ;SAClB;QACD,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;QACxF,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC5E,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC5E,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;QACjF,qBAAqB,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;KACvF;IACD,YAAY,EAAE,aAAa;CAC5B,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,sCAAsC,GAAG,SAAS,CAAC;AAEhE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAiC;IACjE,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACpD,CAAC;AASD;;;;GAIG;AACH,MAAM,SAAS,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAEnD;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,GAAmB;IACpC,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,yBAAyB,EAAE,CAAC;QACjD,MAAM,KAAK,GAAI,IAAsC,EAAE,eAAe,CAAC;QACvE,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,+EAA+E;IAC/E,8EAA8E;IAC9E,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,GAAG,CAAC,sBAAsB,CAAC;IAC5C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,aAAa,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAa;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAqB,CAAC;QACrC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACrC,0EAA0E;QAC1E,kEAAkE;QAClE,2EAA2E;QAC3E,uEAAuE;QACvE,yEAAyE;QACzE,qDAAqD;QACrD,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1F,YAAY,KAAK,MAAM,CAAC,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1F,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,OAAwD,EAAE;IAE1D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;IAC3C,OAAO,MAAM,IAAI,OAAO,CAA4B,CAAC,OAAO,EAAE,EAAE;QAC9D,IAAI,KAA+B,CAAC;QACpC,IAAI,CAAC;YACH,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE;gBAC5C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;gBACjC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,KAAgC,EAAQ,EAAE;YACxD,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,oDAAoD;YACtD,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QAExD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,0EAA0E;QAC1E,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,4EAA4E;QAC5E,2DAA2D;QAC3D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtC,2EAA2E;QAC3E,wEAAwE;QACxE,0EAA0E;QAC1E,yEAAyE;QACzE,sEAAsE;QACtE,0EAA0E;QAC1E,2EAA2E;QAC3E,gDAAgD;QAChD,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9C,MAAM,IAAI,GAAG,CAAC,OAAgB,EAAQ,EAAE;YACtC,wEAAwE;YACxE,oDAAoD;YACpD,IAAI,OAAO;gBAAE,OAAO;YACpB,IAAI,CAAC;gBACH,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,uEAAuE;gBACvE,gEAAgE;gBAChE,MAAM,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,OAAe,CAAC;YACpB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACnC,IAAI,IAAI,KAAK,EAAE;oBAAE,SAAS;gBAC1B,IAAI,OAAsD,CAAC;gBAC3D,IAAI,CAAC;oBACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;gBAC/C,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;oBACrB,iEAAiE;oBACjE,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9C,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;oBAClE,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,CAAC,EAAE,KAAK,CAAC;oBAAE,SAAS;gBAC/B,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,CAAC;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;SAC5D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,kFAAkF;AAClF,6EAA6E;AAC7E,yEAAyE;AACzE,sCAAsC;AACtC,MAAM,yBAAyB,GAAG,EAAE,GAAG,MAAM,CAAC;AAC9C,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAQ1C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAiC,CAAC;AAElE,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB;IACnC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,oBAAoB;IAClC,OAAO,gBAAgB,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,GAAW,EAAE,KAA4B,EAAE,KAAa;IACjF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK;YAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,gBAAgB,CAAC,IAAI,IAAI,8BAA8B,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,IAAI;YAAE,MAAM;QACvB,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAQD;;;;;;;;;;GAUG;AACH,SAAS,mBAAmB,CAAC,GAAW,EAAE,GAAuB;IAC/D,0EAA0E;IAC1E,6EAA6E;IAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAuB,EACvB,KAAmB,EACnB,GAAW,EACX,GAAuB;IAEvB,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;IACpB,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC;QACvC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,qBAAqB,CAAC;IAChD,iBAAiB,CACf,GAAG,EACH;QACE,OAAO;QACP,IAAI;QACJ,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,iCAAiC,CAAC;KAC1F,EACD,GAAG,CACJ,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAA6D,EAC7D,QAAoD;IAEpD,OAAO,MAAM,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7F,CAAC;AAmBD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA2B,EAC3B,KAAgC,EAChC,SAAwC;IAExC,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9F,4EAA4E;IAC5E,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,qEAAqE;IACrE,EAAE;IACF,6EAA6E;IAC7E,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,kEAAkE;IAClE,MAAM,cAAc,GAAG,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;IACrD,MAAM,sBAAsB,GAC1B,cAAc,IAAI,IAAI;QACtB,cAAc,KAAK,OAAO,CAAC,YAAY;QACvC,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,sBAAsB;QACvC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,oBAAoB,CAClB;YACE,aAAa,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC;YACzD,mBAAmB,EAAE,OAAO,CAAC,MAAM;SACpC,EACD,cAAc,CACf,CAAC;IACN,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAClG,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IACnF,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAA2B,EAC3B,KAAgC,EAChC,SAAwC;IAExC,OAAO,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC;AACjE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAA2B,EAC3B,IAAuE;IAEvE,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IACvD,+DAA+D;IAC/D,2EAA2E;IAC3E,0EAA0E;IAC1E,sCAAsC;IACtC,MAAM,MAAM,GACV,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QACpC,CAAC,CAAC,UAAU,IAAI,CAAC,WAAW,8DAA8D;YACxF,cAAc,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,oCAAoC;QACvF,CAAC,CAAC,UAAU,IAAI,CAAC,WAAW,2DAA2D;YACrF,qFAAqF;YACrF,YAAY,sCAAsC,yBAAyB;YAC3E,8DAA8D,CAAC;IACrE,OAAO;QACL,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,EAAE,EAAE,MAAM,EAAE;QACZ,IAAI,EAAE,qBAAqB,MAAM,EAAE;QACnC,OAAO,EAAE,EAAE,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAE;KACxC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAA2B,EAC3B,IAAuE;IAEvE,OAAO,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAA2B,EAC3B,IAAuE;IAEvE,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACnF,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,MAAM,GACV,UAAU,IAAI,CAAC,WAAW,gBAAgB,QAAQ,CAAC,MAAM,+BAA+B;QACxF,gBAAgB,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,qBAAqB,IAAI;QACzG,mBAAmB,QAAQ,CAAC,MAAM,4CAA4C,CAAC;IACjF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,EAAE,EAAE,MAAM,EAAE;QACZ,IAAI,EAAE,qBAAqB,MAAM,EAAE;QACnC,OAAO,EAAE,EAAE,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAE;KACxC,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import type { HarnessRunSpec } from "@claudexor/schema";
2
+ import { type CodexEffortCatalog, type CodexEffortProbe } from "./effort-probe.js";
3
+ export { CODEX_EFFORT_SNAPSHOT, clearCodexEffortCache, unionEffortLevels } from "./effort-probe.js";
2
4
  import type { HarnessAdapter } from "@claudexor/core";
3
5
  import { brokenInstallAdvisory, runCliHarness, selectStrictAuthRoute } from "@claudexor/core";
4
6
  import { smokeIsolatedApiKey } from "./smoke.js";
@@ -7,7 +9,7 @@ import { detectVersion } from "./missing-cli.js";
7
9
  export { BIN } from "./missing-cli.js";
8
10
  /** Exported for focused route-policy tests; runtime uses this exact selector. */
9
11
  export declare const selectCodexRunAuthRoute: typeof selectStrictAuthRoute;
10
- export { CODEX_FILE_AUTH_ARGS, CODEX_FILE_AUTH_OVERRIDE, CODEX_PROJECT_DOC_FALLBACK_ARGS, CODEX_PROJECT_DOC_FALLBACK_OVERRIDE, codexApiKey, codexAuthModeAt, defaultNativeCodexHome, ensureCodexApiAuth, probeLogin, } from "./auth.js";
12
+ export { CODEX_FILE_AUTH_ARGS, CODEX_FILE_AUTH_OVERRIDE, codexAuthModeAt, defaultNativeCodexHome, ensureCodexApiAuth, probeLogin, } from "./auth.js";
11
13
  import { codexApiKey, hasApiKey, probeLogin } from "./auth.js";
12
14
  export declare function redactCodexDoctorDetail(text: string): string;
13
15
  export declare function codexNativeEnv(base?: Record<string, string | null | undefined>, codexHome?: string): Record<string, string | null | undefined>;
@@ -36,6 +38,8 @@ export declare function codexExecArgs(spec: Pick<HarnessRunSpec, "access" | "mod
36
38
  }, opts?: {
37
39
  suppressNodeRepl?: boolean;
38
40
  outputSchemaPath?: string | null;
41
+ /** The account's advertised effort catalog; the snapshot by default. */
42
+ effortCatalog?: CodexEffortCatalog;
39
43
  }): string[];
40
44
  /** The runtime surface the profile module needs (test-stubbable). */
41
45
  export type CodexProfileRuntimeDeps = Pick<CodexRuntimeDeps, "probeLogin" | "resolveProfileSecret">;
@@ -50,6 +54,9 @@ type CodexRuntimeDeps = {
50
54
  resolveProfileSecret: (ref: string) => string | null;
51
55
  smokeIsolatedApiKey: typeof smokeIsolatedApiKey;
52
56
  runCliHarness: typeof runCliHarness;
57
+ /** Live per-model effort discovery; null on any failure (caller falls back). */
58
+ probeEfforts: CodexEffortProbe;
59
+ nowMs: () => number;
53
60
  };
54
61
  export declare function createCodexAdapter(deps?: Partial<CodexRuntimeDeps>): HarnessAdapter;
55
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EASV,cAAc,EACf,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAEL,qBAAqB,EAKrB,aAAa,EACb,qBAAqB,EAItB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAI/E,OAAO,EAAO,aAAa,EAA+C,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAUvC,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,8BAAwB,CAAC;AAE7D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,+BAA+B,EAC/B,mCAAmC,EACnC,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EAGL,WAAW,EAIX,SAAS,EACT,UAAU,EAEX,MAAM,WAAW,CAAC;AA0CnB,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,cAAc,CAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAChD,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAM3C;AAmCD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,EAClC,qBAAqB,CAAC,EAAE,cAAc,CAAC,yBAAyB,CAAC,EACjE,eAAe,GAAE,cAAc,CAAC,mBAAmB,CAAM,GACxD,MAAM,EAAE,CA4CV;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAOpF;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,CACR,cAAc,EACZ,QAAQ,GACR,YAAY,GACZ,aAAa,GACb,yBAAyB,GACzB,QAAQ,GACR,cAAc,GACd,aAAa,GACb,SAAS,CACZ,GAAG;IACF,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iBAAiB,CAAC,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;CACzD,EACD,IAAI,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC1E,MAAM,EAAE,CAmEV;AA6BD,qEAAqE;AACrE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,sBAAsB,CAAC,CAAC;AAEpG,KAAK,gBAAgB,GAAG;IACtB,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,qBAAqB,EAAE,OAAO,qBAAqB,CAAC;IACpD,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC;0DACsD;IACtD,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACrD,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,aAAa,EAAE,OAAO,aAAa,CAAC;CACrC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAAG,cAAc,CA2QvF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,7 +4,11 @@ import { resolveSecret } from "@claudexor/secrets";
4
4
  import { tmpdir } from "node:os";
5
5
  import { join } from "node:path";
6
6
  import { ConformanceReport as ConformanceReportSchema, HarnessManifest as HarnessManifestSchema, } from "@claudexor/schema";
7
- import { abortSignalFromSpec, brokenInstallAdvisory, browserMcpCommand, normalizeEffort, providerScrubEnv, resolveHarnessBinary, runCliHarness, selectStrictAuthRoute, selectedAuthAvailable, selectedAuthReady, shouldVerifyApiKey, } from "@claudexor/core";
7
+ import { CODEX_EFFORT_SNAPSHOT, CODEX_EFFORT_SNAPSHOT_VERIFIED_AGAINST, codexEffortFor, codexEffortsForEnv, probeCodexEfforts, unionEffortLevels, } from "./effort-probe.js";
8
+ import { codexRunEffortResolution } from "./effort-gate.js";
9
+ import { tomlBasicString } from "./toml.js";
10
+ export { CODEX_EFFORT_SNAPSHOT, clearCodexEffortCache, unionEffortLevels } from "./effort-probe.js";
11
+ import { abortSignalFromSpec, brokenInstallAdvisory, browserMcpCommand, providerScrubEnv, resolveHarnessBinary, runCliHarness, selectStrictAuthRoute, selectedAuthAvailable, selectedAuthReady, shouldVerifyApiKey, } from "@claudexor/core";
8
12
  import { CLAUDEXOR_VERSION, nowIso, redactSecrets } from "@claudexor/util";
9
13
  import { parseCodexEvent } from "./parse.js";
10
14
  import { probeCodexCredentialProfile, resolveCodexProfileRoute } from "./profile.js";
@@ -14,49 +18,10 @@ import { estimateCodexCostUsd } from "./pricing.js";
14
18
  import { codexImageArgs } from "./attachments.js";
15
19
  import { BIN, detectVersion, missingCliError, missingCliReport, probeEnv } from "./missing-cli.js";
16
20
  export { BIN } from "./missing-cli.js";
17
- /**
18
- * Ordered (weakest→strongest) reasoning-effort levels codex's
19
- * `model_reasoning_effort` config accepts. SINGLE source: the manifest's
20
- * `effort_levels` and the run-time normalizer both read this. The cross-harness
21
- * `max` hint clamps to `xhigh` (the ceiling) via the shared normalizer.
22
- */
23
- const CODEX_EFFORT_LEVELS = ["low", "medium", "high", "xhigh"];
24
21
  /** Exported for focused route-policy tests; runtime uses this exact selector. */
25
22
  export const selectCodexRunAuthRoute = selectStrictAuthRoute;
26
- export { CODEX_FILE_AUTH_ARGS, CODEX_FILE_AUTH_OVERRIDE, CODEX_PROJECT_DOC_FALLBACK_ARGS, CODEX_PROJECT_DOC_FALLBACK_OVERRIDE, codexApiKey, codexAuthModeAt, defaultNativeCodexHome, ensureCodexApiAuth, probeLogin, } from "./auth.js";
23
+ export { CODEX_FILE_AUTH_ARGS, CODEX_FILE_AUTH_OVERRIDE, codexAuthModeAt, defaultNativeCodexHome, ensureCodexApiAuth, probeLogin, } from "./auth.js";
27
24
  import { CODEX_FILE_AUTH_ARGS, CODEX_PROJECT_DOC_FALLBACK_ARGS, codexApiKey, codexAuthModeAt, defaultNativeCodexHome, ensureCodexApiAuth, hasApiKey, probeLogin, } from "./auth.js";
28
- /**
29
- * A TOML basic-string literal for a `-c key=value` override. `developer_instructions`
30
- * is a documented additive Codex config key (layered as a developer block BEFORE
31
- * AGENTS.md, not a replacement); passing per-invocation `-c` keeps it isolated
32
- * to this run (never a shared-config mutation). Instructions may contain quotes
33
- * and newlines, so they are TOML-escaped.
34
- */
35
- function tomlBasicString(value) {
36
- // TOML basic-string escapes, built by code point so the SOURCE carries no
37
- // literal control characters: a backslash and quote are escaped, a literal
38
- // newline/tab/CR become their escapes (a raw newline is invalid in a basic
39
- // string), other control chars become \uXXXX, and everything else is literal.
40
- let out = '"';
41
- for (const ch of value) {
42
- const code = ch.charCodeAt(0);
43
- if (ch === "\\")
44
- out += "\\\\";
45
- else if (ch === '"')
46
- out += '\\"';
47
- else if (code === 10)
48
- out += "\\n";
49
- else if (code === 13)
50
- out += "\\r";
51
- else if (code === 9)
52
- out += "\\t";
53
- else if (code < 32 || code === 127)
54
- out += "\\u" + code.toString(16).padStart(4, "0");
55
- else
56
- out += ch;
57
- }
58
- return out + '"';
59
- }
60
25
  function sandboxArgs(access) {
61
26
  switch (access) {
62
27
  case "readonly":
@@ -176,10 +141,9 @@ export function codexExecArgs(spec, opts = {}) {
176
141
  // so a thread's later moves continue the same conversation instead of restarting.
177
142
  // LIVE-VERIFIED (codex 0.137): the resume subcommand does NOT accept --sandbox;
178
143
  // sandboxing must ride as `-c sandbox_mode="..."` config overrides there.
179
- // Clamp the requested effort onto codex's supported ladder via the shared
180
- // normalizer (single source: CODEX_EFFORT_LEVELS). Null = not requested OR
181
- // effort not tunable -> pass no flag.
182
- const effort = normalizeEffort(spec.effort_hint, CODEX_EFFORT_LEVELS);
144
+ // Effort is resolved against what THIS MODEL advertises, not a harness-wide
145
+ // ladder: gpt-5.6-sol takes `ultra`, gpt-5.4 stops at `xhigh`.
146
+ const effort = codexEffortFor(opts.effortCatalog ?? CODEX_EFFORT_SNAPSHOT, spec.model_hint, spec.effort_hint);
183
147
  if (spec.resume_session_id) {
184
148
  const args = [
185
149
  "exec",
@@ -272,6 +236,8 @@ export function createCodexAdapter(deps = {}) {
272
236
  resolveProfileSecret: (ref) => resolveSecret(ref),
273
237
  smokeIsolatedApiKey,
274
238
  runCliHarness,
239
+ probeEfforts: (bin, env) => probeCodexEfforts(bin, env ? { env } : {}),
240
+ nowMs: () => Date.now(),
275
241
  ...deps,
276
242
  };
277
243
  return {
@@ -285,6 +251,10 @@ export function createCodexAdapter(deps = {}) {
285
251
  const apiKey = runtime.hasApiKey();
286
252
  const login = await runtime.probeLogin(BIN, { env: codexNativeEnv() });
287
253
  const nativeSessionAvailable = login.method === "chatgpt";
254
+ // Per-model effort vocabulary from the vendor, probed in the SAME native env
255
+ // the login probe used (the catalog belongs to that CODEX_HOME's account). A
256
+ // failed probe falls back to the snapshot and stamps the version it came from.
257
+ const efforts = await codexEffortsForEnv(runtime, codexNativeEnv());
288
258
  const authModes = [
289
259
  ...(nativeSessionAvailable ? ["local_session"] : []),
290
260
  ...(apiKey ? ["api_key"] : []),
@@ -314,9 +284,14 @@ export function createCodexAdapter(deps = {}) {
314
284
  work_report_transport: "constrained",
315
285
  structured_output_channel: "final_message",
316
286
  web_policy: "native",
317
- // codex model_reasoning_effort accepts low|medium|high|xhigh (max clamps
318
- // to xhigh). Single source for the manifest AND the run-time normalizer.
319
- effort_levels: [...CODEX_EFFORT_LEVELS],
287
+ // Effort is per MODEL here (`model/list` → supportedReasoningEfforts),
288
+ // so the harness-wide list is the UNION and `model_effort_levels`
289
+ // carries the truth a specific model is held to.
290
+ effort_levels: unionEffortLevels(efforts.catalog.models),
291
+ model_effort_levels: efforts.catalog.models,
292
+ effort_levels_verified_against: efforts.live
293
+ ? version
294
+ : CODEX_EFFORT_SNAPSHOT_VERIFIED_AGAINST,
320
295
  // Manifest model truth source (strict model-truth validation: an explicit model outside
321
296
  // this list is refused, never forwarded to die as a native error).
322
297
  // Current + still-API-available ids per the vendor Codex models page,
@@ -622,9 +597,20 @@ async function* runCodex(spec, runtime) {
622
597
  throw new Error(`codex output-schema file could not be written (${err instanceof Error ? err.message : String(err)}); refusing to run unconstrained`);
623
598
  }
624
599
  }
600
+ // Probed in THIS run's resolved env, so a credential profile or API-key route
601
+ // gets its OWN account's catalog, not whichever one landed in the cache first.
602
+ // INV-105 on the RUN: version-gate snapshot-fallback trust (an installed
603
+ // codex that is not 0.144.1 is never sent the snapshot's levels), and
604
+ // disclose a DROP/CLAMP on the same catalog the args resolve with — preflight
605
+ // passed this level against the DEFAULT account's manifest, but THIS env's
606
+ // catalog may drop it or clamp it onto the routed model's ceiling.
607
+ const effort = await codexRunEffortResolution(spec, runtime, env, abortSignalFromSpec(spec));
608
+ if (effort.disclosure)
609
+ yield effort.disclosure;
625
610
  const args = codexExecArgs(spec, {
626
611
  suppressNodeRepl: codexConfigHasNodeRepl(env["CODEX_HOME"]),
627
612
  outputSchemaPath,
613
+ effortCatalog: effort.catalog,
628
614
  });
629
615
  // Route evidence: the auth mode this child ACTUALLY runs under, read from
630
616
  // the same auth.json codex loads (typed `auth_mode` field — chatgpt vs
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/toml.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * A TOML basic-string literal for a `-c key=value` override. `developer_instructions`
3
+ * is a documented additive Codex config key (layered as a developer block BEFORE
4
+ * AGENTS.md, not a replacement); passing per-invocation `-c` keeps it isolated
5
+ * to this run (never a shared-config mutation). Instructions may contain quotes
6
+ * and newlines, so they are TOML-escaped.
7
+ */
8
+ export declare function tomlBasicString(value: string): string;
9
+ //# sourceMappingURL=toml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toml.d.ts","sourceRoot":"","sources":["../src/toml.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBrD"}
package/dist/toml.js ADDED
@@ -0,0 +1,33 @@
1
+ /**
2
+ * A TOML basic-string literal for a `-c key=value` override. `developer_instructions`
3
+ * is a documented additive Codex config key (layered as a developer block BEFORE
4
+ * AGENTS.md, not a replacement); passing per-invocation `-c` keeps it isolated
5
+ * to this run (never a shared-config mutation). Instructions may contain quotes
6
+ * and newlines, so they are TOML-escaped.
7
+ */
8
+ export function tomlBasicString(value) {
9
+ // TOML basic-string escapes, built by code point so the SOURCE carries no
10
+ // literal control characters: a backslash and quote are escaped, a literal
11
+ // newline/tab/CR become their escapes (a raw newline is invalid in a basic
12
+ // string), other control chars become \uXXXX, and everything else is literal.
13
+ let out = '"';
14
+ for (const ch of value) {
15
+ const code = ch.charCodeAt(0);
16
+ if (ch === "\\")
17
+ out += "\\\\";
18
+ else if (ch === '"')
19
+ out += '\\"';
20
+ else if (code === 10)
21
+ out += "\\n";
22
+ else if (code === 13)
23
+ out += "\\r";
24
+ else if (code === 9)
25
+ out += "\\t";
26
+ else if (code < 32 || code === 127)
27
+ out += "\\u" + code.toString(16).padStart(4, "0");
28
+ else
29
+ out += ch;
30
+ }
31
+ return out + '"';
32
+ }
33
+ //# sourceMappingURL=toml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toml.js","sourceRoot":"","sources":["../src/toml.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,EAAE,KAAK,IAAI;YAAE,GAAG,IAAI,MAAM,CAAC;aAC1B,IAAI,EAAE,KAAK,GAAG;YAAE,GAAG,IAAI,KAAK,CAAC;aAC7B,IAAI,IAAI,KAAK,EAAE;YAAE,GAAG,IAAI,KAAK,CAAC;aAC9B,IAAI,IAAI,KAAK,EAAE;YAAE,GAAG,IAAI,KAAK,CAAC;aAC9B,IAAI,IAAI,KAAK,CAAC;YAAE,GAAG,IAAI,KAAK,CAAC;aAC7B,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,KAAK,GAAG;YAAE,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;;YACjF,GAAG,IAAI,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,GAAG,GAAG,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudexor/harness-codex",
3
- "version": "3.1.0",
3
+ "version": "3.1.1",
4
4
  "license": "MIT",
5
5
  "description": "Codex CLI adapter (codex exec --json).",
6
6
  "type": "module",
@@ -16,10 +16,10 @@
16
16
  "dist"
17
17
  ],
18
18
  "dependencies": {
19
- "@claudexor/core": "3.1.0",
20
- "@claudexor/schema": "3.1.0",
21
- "@claudexor/util": "3.1.0",
22
- "@claudexor/secrets": "3.1.0"
19
+ "@claudexor/core": "3.1.1",
20
+ "@claudexor/schema": "3.1.1",
21
+ "@claudexor/secrets": "3.1.1",
22
+ "@claudexor/util": "3.1.1"
23
23
  },
24
24
  "repository": {
25
25
  "type": "git",