@nexus-cortex/core 4.123.2 → 4.123.3

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/.env.defaults CHANGED
@@ -1146,6 +1146,8 @@ CORTEX_ENDTURN_GATE=true
1146
1146
  # [LEDGER 2026-09-21 @4.122.0] BUILT + unit-tested (7 tests). FIELD: pending (value-shaped cell after g2).
1147
1147
  # [LEDGER 2026-09-21 @4.123.2] FIELD (cell r176, first 2 rows): FIRED but the evidence was invalid — heredoc CHECKs truncated to their first line,
1148
1148
  # every check failed, the fallback read a shell diagnostic as the value (false agree + false hold). R176b fixes parser/fallback; cell relaunched (r176b).
1149
+ # [LEDGER 2026-09-21 @4.123.3] FIELD (cell r176b, first rows): heredoc checks now run whole and print real output, but the verdict marker sits
1150
+ # after the multi-line command text, so checksPassed read 0 → inconclusive everywhere. R176c locates the verdict by marker. Cell r176c relaunched.
1149
1151
  #CORTEX_JUDGE_INDEPENDENT_DERIVATION=
1150
1152
  #CORTEX_JUDGE_INDEPENDENT_DERIVATION_TOL=
1151
1153
  # (no lever) R169 HB-NEARDUP-SCRATCH-STEM — REFUTED before shipping (2026-09-17, pilot-12 trajectory replay). The distiller's 16
@@ -0,0 +1,89 @@
1
+ /**
2
+ * R178 typed chooser — the menu step's PURE policy (design: docs/R178_TYPED_CHOOSER_DESIGN.md; E0 results in
3
+ * omniclaude-v4/.cortex/research/jev-e0-2026-09-21/results.md).
4
+ *
5
+ * The reader (Jev today; an own readout or the j-space acceptor later) sees the RAW screen + the parsed state card + the candidates + the
6
+ * task — and NEVER the judge's verdict (E0: Jev echoed the judge, AUC up, calibration gone). It answers typed questions; this module turns
7
+ * the answers into one decision. Fail-open by construction: no answers → the escape (candidate[0]), the arm never does worse than the plain
8
+ * frame. The reader's probabilities never reach the writer — only consequences do.
9
+ */
10
+ import type { MenuItem } from './terminusFrame.js';
11
+ export interface ChooserThresholds {
12
+ pick: number;
13
+ unsafe: number;
14
+ repeat: number;
15
+ unaddressedError: number;
16
+ }
17
+ /** The measured Jev operating point on our evidence is ≈ 0.3 for "yes" decisions; the veto-class nouls use 0.7. */
18
+ export declare const CHOOSER_DEFAULTS: ChooserThresholds;
19
+ export interface ChooserStateInput {
20
+ task: string;
21
+ criteria?: string;
22
+ screen: string;
23
+ stateCard: string;
24
+ menu: MenuItem[];
25
+ /** the writer's own analysis/plan for this turn (its claim about the screen — evidence for the reader, not a verdict) */
26
+ writerAnalysis?: string;
27
+ }
28
+ /** The reader's state. By construction it takes NO judge verdict / plan / MEETS flag (gate independence). Pure. */
29
+ export declare function buildChooserState(input: ChooserStateInput): Record<string, unknown>;
30
+ export interface NoulQuestion {
31
+ type: 'noul';
32
+ instructions: string;
33
+ }
34
+ /** One question per candidate ("is this the best next action") + three gates. All answered in one Jev pass. Pure. */
35
+ export declare function buildChooserQuestions(menu: MenuItem[]): Record<string, NoulQuestion>;
36
+ export type ChooserAction = 'execute' | 'escape' | 'refuse' | 'restrict';
37
+ export interface ChooserDecision {
38
+ action: ChooserAction;
39
+ pick: MenuItem | null;
40
+ pickProbability: number | null;
41
+ /** consequences for the WRITER (plain language, no probabilities) */
42
+ consequences: string[];
43
+ /** true when the reader asked for the full screen tail to be shown to the writer next turn */
44
+ sendFullScreen: boolean;
45
+ reasons: string[];
46
+ }
47
+ /** Turn the reader's answers into one decision. Pure. */
48
+ export declare function decideChooser(input: {
49
+ answers: Record<string, number> | null;
50
+ menu: MenuItem[];
51
+ thresholds?: Partial<ChooserThresholds>;
52
+ }): ChooserDecision;
53
+ export type ChooserProvenance = 'none' | 'shown' | 'inserted';
54
+ export interface ChooserTurnRow {
55
+ record_id: string;
56
+ session_id: string;
57
+ turn_number: number;
58
+ predictor_model: string;
59
+ summary: string | null;
60
+ predicted_next: string;
61
+ actual_next: string;
62
+ predicted_at_ms: number;
63
+ scored_at_ms: number;
64
+ prefill_provenance: ChooserProvenance;
65
+ candidates: Array<{
66
+ id: string;
67
+ label: string;
68
+ keystrokes: string;
69
+ source: string;
70
+ }>;
71
+ pick_id: string | null;
72
+ pick_probability: number | null;
73
+ chooser_action: ChooserAction;
74
+ reasons: string[];
75
+ }
76
+ /** The turn-prediction-shaped row (Lens A on agent actions; the DPO source). `predicted_next` = the writer's first candidate (its ghost
77
+ * text), `actual_next` = what executed; provenance `inserted` when the reader's pick executed, `shown` when the escape ran the writer's own
78
+ * first candidate, `none` when nothing executed (refuse). Pure. */
79
+ export declare function buildChooserRow(input: {
80
+ sessionId: string;
81
+ turn: number;
82
+ predictorModel: string;
83
+ menu: MenuItem[];
84
+ decision: ChooserDecision;
85
+ executedKeys: string | null;
86
+ nowMs: number;
87
+ summary?: string | null;
88
+ }): ChooserTurnRow;
89
+ //# sourceMappingURL=chooser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chooser.d.ts","sourceRoot":"","sources":["../../src/frames/chooser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /** The measured Jev operating point on our evidence is ≈ 0.3 for "yes" decisions; the veto-class nouls use 0.7. */
2
+ export const CHOOSER_DEFAULTS = { pick: 0.3, unsafe: 0.7, repeat: 0.7, unaddressedError: 0.7 };
3
+ /** The reader's state. By construction it takes NO judge verdict / plan / MEETS flag (gate independence). Pure. */
4
+ export function buildChooserState(input) {
5
+ return {
6
+ task_instruction: String(input.task ?? '').slice(0, 7000),
7
+ ...(input.criteria ? { stated_criteria: input.criteria.slice(0, 1500) } : {}),
8
+ state: input.stateCard.slice(0, 1500),
9
+ screen: input.screen.slice(-8000),
10
+ ...(input.writerAnalysis ? { writer_analysis: input.writerAnalysis.slice(0, 1200) } : {}),
11
+ candidates: input.menu.map((m) => ({ id: m.id, label: m.label, keystrokes: m.keystrokes.slice(0, 300), duration_s: m.durationS, source: m.source, ...(m.why ? { note: m.why } : {}) })),
12
+ };
13
+ }
14
+ /** One question per candidate ("is this the best next action") + three gates. All answered in one Jev pass. Pure. */
15
+ export function buildChooserQuestions(menu) {
16
+ const q = {};
17
+ for (const m of menu)
18
+ q[`pick_${m.id}`] = { type: 'noul', instructions: `Judging from the screen, the state and the task, is candidate "${m.id}" (${m.label.slice(0, 80)}) the best next action right now?` };
19
+ q.repeat = { type: 'noul', instructions: 'Is the first generator candidate (c1) a repeat of a command already run according to the state\'s recent commands, without anything having changed?' };
20
+ q.unsafe = { type: 'noul', instructions: 'Would the first generator candidate (c1) delete or overwrite files outside the task\'s working directory, kill the shell, or otherwise be destructive or clearly outside the task?' };
21
+ q.unaddressed_error = { type: 'noul', instructions: 'Does the screen show an error, failure, or traceback that none of the generator candidates (c1..c3) addresses?' };
22
+ return q;
23
+ }
24
+ /** Turn the reader's answers into one decision. Pure. */
25
+ export function decideChooser(input) {
26
+ const th = { ...CHOOSER_DEFAULTS, ...(input.thresholds ?? {}) };
27
+ const gen = input.menu.filter((m) => m.source === 'generator');
28
+ const escape = gen[0] ?? input.menu[0] ?? null;
29
+ if (!input.answers)
30
+ return { action: 'escape', pick: escape, pickProbability: null, consequences: [], sendFullScreen: false, reasons: ['no reader answers (fail-open)'] };
31
+ const a = input.answers;
32
+ const reasons = [];
33
+ const consequences = [];
34
+ const sendFullScreen = (a.unaddressed_error ?? 0) >= th.unaddressedError;
35
+ if (sendFullScreen) {
36
+ reasons.push(`unaddressed error on screen (${a.unaddressed_error.toFixed(2)})`);
37
+ consequences.push('The screen shows an error none of your candidates addresses; the full recent output follows — re-plan from it.');
38
+ }
39
+ if ((a.unsafe ?? 0) >= th.unsafe && escape) {
40
+ reasons.push(`c1 judged unsafe (${a.unsafe.toFixed(2)})`);
41
+ consequences.push(`Candidate "${escape.label}" was refused: it looks destructive or outside the task. Choose a safer route.`);
42
+ return { action: 'refuse', pick: null, pickProbability: a.unsafe ?? null, consequences, sendFullScreen, reasons };
43
+ }
44
+ const scored = input.menu.map((m) => ({ m, p: a[`pick_${m.id}`] ?? -1 })).filter((x) => x.p >= 0);
45
+ const restrict = (a.repeat ?? 0) >= th.repeat;
46
+ const pool = restrict ? scored.filter((x) => x.m.source === 'template') : scored;
47
+ if (restrict) {
48
+ reasons.push(`c1 is a repeat (${a.repeat.toFixed(2)})`);
49
+ consequences.push('Your first candidate repeats a command already run with nothing changed; the harness took a template action instead. Do something different next.');
50
+ }
51
+ const best = pool.slice().sort((x, y) => y.p - x.p)[0];
52
+ if (best && best.p >= th.pick) {
53
+ reasons.push(`pick ${best.m.id} (${best.p.toFixed(2)})`);
54
+ if (best.m.id !== escape?.id)
55
+ consequences.push(`The harness chose "${best.m.label}" over your first candidate.`);
56
+ return { action: restrict ? 'restrict' : 'execute', pick: best.m, pickProbability: best.p, consequences, sendFullScreen, reasons };
57
+ }
58
+ reasons.push(`no candidate ≥ ${th.pick} — escape`);
59
+ return { action: restrict ? 'restrict' : 'escape', pick: restrict ? (best?.m ?? null) : escape, pickProbability: best?.p ?? null, consequences, sendFullScreen, reasons };
60
+ }
61
+ /** The turn-prediction-shaped row (Lens A on agent actions; the DPO source). `predicted_next` = the writer's first candidate (its ghost
62
+ * text), `actual_next` = what executed; provenance `inserted` when the reader's pick executed, `shown` when the escape ran the writer's own
63
+ * first candidate, `none` when nothing executed (refuse). Pure. */
64
+ export function buildChooserRow(input) {
65
+ const gen = input.menu.filter((m) => m.source === 'generator');
66
+ const first = gen[0]?.keystrokes ?? '';
67
+ const provenance = input.executedKeys === null ? 'none' : (input.decision.action === 'execute' || input.decision.action === 'restrict') && input.decision.pick && input.decision.pick.id !== gen[0]?.id ? 'inserted' : 'shown';
68
+ return {
69
+ record_id: `${input.sessionId}:${input.turn}`, session_id: input.sessionId, turn_number: input.turn, predictor_model: input.predictorModel,
70
+ summary: input.summary ?? null, predicted_next: first, actual_next: input.executedKeys ?? '', predicted_at_ms: input.nowMs, scored_at_ms: input.nowMs,
71
+ prefill_provenance: provenance,
72
+ candidates: input.menu.map((m) => ({ id: m.id, label: m.label, keystrokes: m.keystrokes.slice(0, 300), source: m.source })),
73
+ pick_id: input.decision.pick?.id ?? null, pick_probability: input.decision.pickProbability, chooser_action: input.decision.action, reasons: input.decision.reasons,
74
+ };
75
+ }
76
+ //# sourceMappingURL=chooser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chooser.js","sourceRoot":"","sources":["../../src/frames/chooser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * R179 HB-TERMINUS-FRAME — pure helpers for the Terminus-style action mode (design: docs/R179_TERMINUS_FRAME_PORT_DESIGN.md).
3
+ *
4
+ * The frame: one tmux pane is the only "tool". Each turn the writer (the generator) gets a FIXED prefix (system + task + lift plan + the
5
+ * frame contract) and a REBUILT suffix (the screen + a parsed STATE CARD + the MENU), and emits one JSON action: analysis, plan, up to k
6
+ * candidate keystroke actions (the ghost text), task_complete. Code templates (wait / interrupt / show more / run the task's test /
7
+ * re-read the task / finish) join the menu every turn. A chooser (frames/chooser.ts) picks; candidate[0] is the escape.
8
+ *
9
+ * Nothing here touches the orchestrator, tmux, or the network: every function is pure and unit-tested. We are not bound to the Terminus 2
10
+ * formula — the shapes below are the seams where later authors (helper model, apprentice, speculative drafts) and choosers (Jev, own readout,
11
+ * j-space acceptor) plug in without changing the frame.
12
+ */
13
+ export interface FrameCandidate {
14
+ /** short label the chooser sees ("run the test suite", "inspect config.json") */
15
+ label: string;
16
+ /** keystrokes sent verbatim to the pane; '' = no keys (a pure wait); tmux key names allowed (C-c, Enter) */
17
+ keystrokes: string;
18
+ /** seconds to wait before the next observation (bounded by the frame cap) */
19
+ durationS: number;
20
+ why?: string;
21
+ }
22
+ export interface FrameAction {
23
+ analysis: string;
24
+ plan: string;
25
+ candidates: FrameCandidate[];
26
+ taskComplete: boolean;
27
+ parsed: boolean;
28
+ error?: string;
29
+ }
30
+ export type MenuSource = 'generator' | 'template';
31
+ export type TemplateOp = 'wait' | 'interrupt' | 'show_more' | 'run_test' | 'reread_task' | 'finish';
32
+ export interface MenuItem extends FrameCandidate {
33
+ id: string;
34
+ source: MenuSource;
35
+ /** a harness operation for templates that are not keystrokes (show_more / reread_task / finish) */
36
+ op?: TemplateOp;
37
+ }
38
+ export declare const FRAME_DEFAULTS: {
39
+ readonly maxCandidates: 3;
40
+ readonly defaultDurationS: 5;
41
+ readonly maxDurationS: 300;
42
+ readonly waitExtendS: 30;
43
+ readonly stateCardMaxChars: 1500;
44
+ readonly screenMaxChars: 8000;
45
+ readonly digestLen: 12;
46
+ };
47
+ /** Strip ANSI escape sequences and bracketed-paste markers; normalize CRLF. Pure. */
48
+ export declare function stripAnsi(s: string): string;
49
+ /** The prompt hook prints `__RC=<n>` right before each prompt (PROMPT_COMMAND='echo __RC=$?'). Last one wins. Pure. */
50
+ export declare function parsePromptRc(screen: string): number | null;
51
+ /** Is the shell prompt back on the LAST non-empty line (a command finished)? Matches `user@host:path$ ` / `# ` / `$ ` / `> `. Pure. */
52
+ export declare function promptIsBack(screen: string): boolean;
53
+ /** Keep the tail of the screen (the pane is 40 rows; a capture with history can be longer). Pure. */
54
+ export declare function clipScreen(screen: string, maxChars?: 8000): {
55
+ text: string;
56
+ clipped: boolean;
57
+ };
58
+ export interface HistoryEntry {
59
+ keystrokes: string;
60
+ rc: number | null;
61
+ outcome: string;
62
+ elapsedS?: number;
63
+ }
64
+ export interface StateCardInput {
65
+ cwd: string;
66
+ turn: number;
67
+ budgetUsedFrac: number | null;
68
+ budgetLeftS: number | null;
69
+ history: HistoryEntry[];
70
+ lastElapsedS?: number | null;
71
+ openItems?: string;
72
+ planStep?: string;
73
+ commandStillRunning?: boolean;
74
+ }
75
+ export declare function normalizeKeys(k: string): string;
76
+ /** How many times the candidate's keystrokes were already sent (exact, whitespace-normalized). Pure. */
77
+ export declare function repeatCount(history: HistoryEntry[], keystrokes: string): number;
78
+ /** The parsed truth both the writer and the reader receive. Numbers are computed here, never inferred by a model. Pure. */
79
+ export declare function buildStateCard(input: StateCardInput, maxChars?: 1500): string;
80
+ /** Parse the writer's action. Accepts our shape ({analysis, plan, candidates, task_complete}) and Terminus 2's ({analysis, plan,
81
+ * commands:[{keystrokes, duration}], task_complete}); fenced or bare JSON. Strict on the essentials: no candidates and no finish → not
82
+ * parsed (the caller re-asks once, then falls back). Pure. */
83
+ export declare function parseFrameAction(text: string, opts?: {
84
+ maxCandidates?: number;
85
+ maxDurationS?: number;
86
+ }): FrameAction;
87
+ export interface MenuInput {
88
+ candidates: FrameCandidate[];
89
+ /** the task's own test/verification command when the task text names one (the harness extracts it; '' = none) */
90
+ taskTestCommand?: string;
91
+ commandStillRunning?: boolean;
92
+ screenClipped?: boolean;
93
+ history?: HistoryEntry[];
94
+ }
95
+ /** The Oregon Trail menu: the generator's candidates first (candidate[0] is the escape), then the code templates that apply. Pure. */
96
+ export declare function buildMenu(input: MenuInput): MenuItem[];
97
+ /** The per-turn suffix text the writer sees (the prefix is fixed; only this changes). Pure. */
98
+ export declare function buildFrameSuffix(input: {
99
+ screen: string;
100
+ stateCard: string;
101
+ menu: MenuItem[];
102
+ consequences?: string[];
103
+ }): string;
104
+ export type WaitDecision = 'done' | 'extend' | 'cap';
105
+ /** After the candidate's own duration: the command is done when the prompt is back; extend while the screen still changes; stop at the
106
+ * cap and hand the running command to the next turn's menu (WAIT / INTERRUPT). Pure. */
107
+ export declare function waitPolicy(input: {
108
+ promptBack: boolean;
109
+ screenChanged: boolean;
110
+ waitedS: number;
111
+ capS: number;
112
+ }): WaitDecision;
113
+ /** The task's own test command, when the task text states one (a fenced or backticked `make test` / `pytest …` / `npm test` / `./run_tests.sh`). Pure. */
114
+ export declare function extractTaskTestCommand(task: string): string;
115
+ //# sourceMappingURL=terminusFrame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminusFrame.d.ts","sourceRoot":"","sources":["../../src/frames/terminusFrame.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * R179 HB-TERMINUS-FRAME — pure helpers for the Terminus-style action mode (design: docs/R179_TERMINUS_FRAME_PORT_DESIGN.md).
3
+ *
4
+ * The frame: one tmux pane is the only "tool". Each turn the writer (the generator) gets a FIXED prefix (system + task + lift plan + the
5
+ * frame contract) and a REBUILT suffix (the screen + a parsed STATE CARD + the MENU), and emits one JSON action: analysis, plan, up to k
6
+ * candidate keystroke actions (the ghost text), task_complete. Code templates (wait / interrupt / show more / run the task's test /
7
+ * re-read the task / finish) join the menu every turn. A chooser (frames/chooser.ts) picks; candidate[0] is the escape.
8
+ *
9
+ * Nothing here touches the orchestrator, tmux, or the network: every function is pure and unit-tested. We are not bound to the Terminus 2
10
+ * formula — the shapes below are the seams where later authors (helper model, apprentice, speculative drafts) and choosers (Jev, own readout,
11
+ * j-space acceptor) plug in without changing the frame.
12
+ */
13
+ export const FRAME_DEFAULTS = { maxCandidates: 3, defaultDurationS: 5, maxDurationS: 300, waitExtendS: 30, stateCardMaxChars: 1500, screenMaxChars: 8000, digestLen: 12 };
14
+ /* ---------- screen ---------- */
15
+ /** Strip ANSI escape sequences and bracketed-paste markers; normalize CRLF. Pure. */
16
+ export function stripAnsi(s) {
17
+ return String(s ?? '')
18
+ .replace(/\x1b\[[0-9;?]*[ -/]*[@-~]/g, '') // CSI sequences (colors, cursor, ?2004h/l)
19
+ .replace(/\x1b\][^\x07]*(\x07|\x1b\\)/g, '') // OSC sequences (titles)
20
+ .replace(/\x1b[()][A-Za-z0-9]/g, '') // charset selection
21
+ .replace(/\r\n?/g, '\n');
22
+ }
23
+ /** The prompt hook prints `__RC=<n>` right before each prompt (PROMPT_COMMAND='echo __RC=$?'). Last one wins. Pure. */
24
+ export function parsePromptRc(screen) {
25
+ const m = [...String(screen ?? '').matchAll(/__RC=(\d+)/g)];
26
+ return m.length ? Number(m[m.length - 1][1]) : null;
27
+ }
28
+ /** Is the shell prompt back on the LAST non-empty line (a command finished)? Matches `user@host:path$ ` / `# ` / `$ ` / `> `. Pure. */
29
+ export function promptIsBack(screen) {
30
+ const lines = stripAnsi(screen).split('\n').map((l) => l.replace(/__RC=\d+/g, '').trimEnd()).filter((l) => l.trim().length > 0);
31
+ const last = lines[lines.length - 1] ?? '';
32
+ return /(^|\s)(\S+@\S+:[^\n$#]*)?[$#>]\s*$/.test(last);
33
+ }
34
+ /** Keep the tail of the screen (the pane is 40 rows; a capture with history can be longer). Pure. */
35
+ export function clipScreen(screen, maxChars = FRAME_DEFAULTS.screenMaxChars) {
36
+ const t = stripAnsi(screen).replace(/[ \t]+\n/g, '\n');
37
+ if (t.length <= maxChars)
38
+ return { text: t, clipped: false };
39
+ return { text: '…[earlier output hidden — the SHOW MORE OUTPUT template reveals it]\n' + t.slice(-maxChars), clipped: true };
40
+ }
41
+ export function normalizeKeys(k) {
42
+ return String(k ?? '').replace(/\s+/g, ' ').trim();
43
+ }
44
+ /** How many times the candidate's keystrokes were already sent (exact, whitespace-normalized). Pure. */
45
+ export function repeatCount(history, keystrokes) {
46
+ const n = normalizeKeys(keystrokes);
47
+ if (!n)
48
+ return 0;
49
+ return history.filter((h) => normalizeKeys(h.keystrokes) === n).length;
50
+ }
51
+ /** The parsed truth both the writer and the reader receive. Numbers are computed here, never inferred by a model. Pure. */
52
+ export function buildStateCard(input, maxChars = FRAME_DEFAULTS.stateCardMaxChars) {
53
+ const last = input.history[input.history.length - 1];
54
+ const repeats = input.history.filter((h, i) => input.history.slice(0, i).some((p) => normalizeKeys(p.keystrokes) === normalizeKeys(h.keystrokes))).length;
55
+ const lines = [
56
+ `turn ${input.turn} · commands run ${input.history.length} · repeated commands ${repeats}`,
57
+ `cwd ${input.cwd}`,
58
+ last ? `last command: ${normalizeKeys(last.keystrokes).slice(0, 120)} → rc ${last.rc === null ? '?' : last.rc}${input.lastElapsedS != null ? ` in ${Math.round(input.lastElapsedS)} s` : ''}${input.commandStillRunning ? ' (STILL RUNNING)' : ''}` : 'last command: (none yet)',
59
+ input.budgetUsedFrac !== null ? `budget used ${Math.round(input.budgetUsedFrac * 100)}%${input.budgetLeftS != null ? `, ${Math.round(input.budgetLeftS / 60)} min left` : ''}` : 'budget: unknown',
60
+ ];
61
+ if (input.planStep)
62
+ lines.push(`plan step: ${input.planStep.slice(0, 200)}`);
63
+ if (input.openItems)
64
+ lines.push(`open items from the last hold: ${input.openItems.slice(0, 400)}`);
65
+ const digest = input.history.slice(-FRAME_DEFAULTS.digestLen).map((h, i) => ` ${i + 1}. ${normalizeKeys(h.keystrokes).slice(0, 80) || '(wait)'} → rc ${h.rc === null ? '?' : h.rc}${h.outcome ? ` · ${h.outcome.slice(0, 60)}` : ''}`);
66
+ if (digest.length)
67
+ lines.push('recent commands:', ...digest);
68
+ let out = lines.join('\n');
69
+ if (out.length > maxChars)
70
+ out = out.slice(0, maxChars - 1) + '…';
71
+ return out;
72
+ }
73
+ /* ---------- action parsing ---------- */
74
+ function extractJson(text) {
75
+ const t = String(text ?? '').trim();
76
+ const fenced = t.match(/```(?:json)?\s*([\s\S]*?)```/i);
77
+ const body = (fenced?.[1] ?? t).trim();
78
+ try {
79
+ return JSON.parse(body);
80
+ }
81
+ catch { /* fall through */ }
82
+ const a = body.indexOf('{');
83
+ const b = body.lastIndexOf('}');
84
+ if (a >= 0 && b > a) {
85
+ try {
86
+ return JSON.parse(body.slice(a, b + 1));
87
+ }
88
+ catch { /* fall through */ }
89
+ }
90
+ return null;
91
+ }
92
+ function toCandidate(x, i, maxDurationS) {
93
+ if (!x || typeof x !== 'object')
94
+ return null;
95
+ const o = x;
96
+ const keys = typeof o.keystrokes === 'string' ? o.keystrokes : typeof o.command === 'string' ? `${o.command}\n` : null;
97
+ if (keys === null)
98
+ return null;
99
+ const durRaw = Number(o.durationS ?? o.duration_s ?? o.duration ?? FRAME_DEFAULTS.defaultDurationS);
100
+ const durationS = Number.isFinite(durRaw) && durRaw >= 0 ? Math.min(maxDurationS, durRaw) : FRAME_DEFAULTS.defaultDurationS;
101
+ const label = typeof o.label === 'string' && o.label.trim() ? o.label.trim().slice(0, 120) : normalizeKeys(keys).slice(0, 80) || (keys === '' ? 'wait' : `action ${i + 1}`);
102
+ return { label, keystrokes: keys, durationS, ...(typeof o.why === 'string' ? { why: o.why.slice(0, 300) } : {}) };
103
+ }
104
+ /** Parse the writer's action. Accepts our shape ({analysis, plan, candidates, task_complete}) and Terminus 2's ({analysis, plan,
105
+ * commands:[{keystrokes, duration}], task_complete}); fenced or bare JSON. Strict on the essentials: no candidates and no finish → not
106
+ * parsed (the caller re-asks once, then falls back). Pure. */
107
+ export function parseFrameAction(text, opts = {}) {
108
+ const maxC = opts.maxCandidates ?? FRAME_DEFAULTS.maxCandidates;
109
+ const maxD = opts.maxDurationS ?? FRAME_DEFAULTS.maxDurationS;
110
+ const j = extractJson(text);
111
+ if (!j)
112
+ return { analysis: '', plan: '', candidates: [], taskComplete: false, parsed: false, error: 'no JSON object found' };
113
+ const rawList = Array.isArray(j.candidates) ? j.candidates : Array.isArray(j.commands) ? j.commands : [];
114
+ const candidates = rawList.map((c, i) => toCandidate(c, i, maxD)).filter((c) => c !== null).slice(0, maxC);
115
+ const taskComplete = j.task_complete === true || j.taskComplete === true;
116
+ const analysis = typeof j.analysis === 'string' ? j.analysis.slice(0, 2000) : '';
117
+ const plan = typeof j.plan === 'string' ? j.plan.slice(0, 2000) : '';
118
+ if (!candidates.length && !taskComplete)
119
+ return { analysis, plan, candidates, taskComplete, parsed: false, error: 'no candidates and no task_complete' };
120
+ return { analysis, plan, candidates, taskComplete, parsed: true };
121
+ }
122
+ /** The Oregon Trail menu: the generator's candidates first (candidate[0] is the escape), then the code templates that apply. Pure. */
123
+ export function buildMenu(input) {
124
+ const items = input.candidates.map((c, i) => ({ ...c, id: `c${i + 1}`, source: 'generator' }));
125
+ const t = (id, label, keystrokes, durationS, op) => ({ id, label, keystrokes, durationS, source: 'template', op });
126
+ if (input.commandStillRunning) {
127
+ items.push(t('t_wait', `WAIT ${FRAME_DEFAULTS.waitExtendS}s more for the running command`, '', FRAME_DEFAULTS.waitExtendS, 'wait'));
128
+ items.push(t('t_interrupt', 'INTERRUPT the running command (C-c)', 'C-c', 2, 'interrupt'));
129
+ }
130
+ if (input.screenClipped)
131
+ items.push(t('t_more', 'SHOW MORE OUTPUT (earlier screen lines)', '', 0, 'show_more'));
132
+ if (input.taskTestCommand)
133
+ items.push(t('t_test', `RUN THE TASK'S OWN TEST: ${input.taskTestCommand.slice(0, 60)}`, `${input.taskTestCommand}\n`, 30, 'run_test'));
134
+ items.push(t('t_reread', 'RE-READ THE TASK TEXT', '', 0, 'reread_task'));
135
+ items.push(t('t_finish', 'FINISH (declare the task complete)', '', 0, 'finish'));
136
+ // annotate repeats so the chooser and the writer both see them as data
137
+ if (input.history)
138
+ for (const it of items) {
139
+ const n = repeatCount(input.history, it.keystrokes);
140
+ if (n > 0 && it.source === 'generator')
141
+ it.why = `${it.why ? it.why + ' · ' : ''}already run ${n}×`;
142
+ }
143
+ return items;
144
+ }
145
+ /** The per-turn suffix text the writer sees (the prefix is fixed; only this changes). Pure. */
146
+ export function buildFrameSuffix(input) {
147
+ const parts = [`STATE:\n${input.stateCard}`, `SCREEN (tmux pane, most recent at the bottom):\n${input.screen}`];
148
+ if (input.consequences?.length)
149
+ parts.push(`FROM THE HARNESS:\n${input.consequences.map((c) => `- ${c}`).join('\n')}`);
150
+ parts.push(`MENU (templates the harness can run for you; name one in a candidate's label to use it):\n${input.menu.filter((m) => m.source === 'template').map((m) => `- ${m.label}`).join('\n')}`);
151
+ return parts.join('\n\n');
152
+ }
153
+ /** After the candidate's own duration: the command is done when the prompt is back; extend while the screen still changes; stop at the
154
+ * cap and hand the running command to the next turn's menu (WAIT / INTERRUPT). Pure. */
155
+ export function waitPolicy(input) {
156
+ if (input.promptBack)
157
+ return 'done';
158
+ if (input.waitedS >= input.capS)
159
+ return 'cap';
160
+ return input.screenChanged ? 'extend' : (input.waitedS < Math.min(input.capS, 60) ? 'extend' : 'cap');
161
+ }
162
+ /** The task's own test command, when the task text states one (a fenced or backticked `make test` / `pytest …` / `npm test` / `./run_tests.sh`). Pure. */
163
+ export function extractTaskTestCommand(task) {
164
+ const t = String(task ?? '');
165
+ const m = t.match(/`((?:python3? -m pytest|pytest|make (?:test|check)|npm (?:run )?test|cargo test|go test|\.\/[\w./-]*test[\w./-]*\.sh|bash [\w./-]*test[\w./-]*\.sh)[^`\n]{0,80})`/i);
166
+ return m ? m[1].trim() : '';
167
+ }
168
+ //# sourceMappingURL=terminusFrame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminusFrame.js","sourceRoot":"","sources":["../../src/frames/terminusFrame.ts"],"names":[],"mappings":"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"}
@@ -27,9 +27,8 @@ export interface DerivationPlan {
27
27
  * the line-based v1 kept only `python3 -c "` of a heredoc, the check failed with a shell syntax error, and the printed-numbers fallback
28
28
  * read the "1" in `/bin/sh: 1: Syntax error` as the derived value. */
29
29
  export declare function parseDerivationReply(text: string, maxChecks?: number): DerivationPlan;
30
- /** Did a runCheck output come from a PASSED run? (its first line is the harness header `CHECK RUN: … → PASSED in …`). Pure. */
31
30
  export declare function checkRunPassed(output: string): boolean;
32
- /** The body of a runCheck output (everything after the harness header line). Pure. */
31
+ /** The body of a runCheck output (everything after the verdict line). Pure. */
33
32
  export declare function checkRunBody(output: string): string;
34
33
  /** Is the independent method actually different from the agent's? A cheap token-overlap test the orchestrator banks (the field read
35
34
  * grades a sample by hand). Pure. */
@@ -1 +1 @@
1
- {"version":3,"file":"independentDerivation.d.ts","sourceRoot":"","sources":["../../src/training/independentDerivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;wBACwB;AACxB,eAAO,MAAM,iBAAiB,QAS+B,CAAC;AAE9D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CAOtJ;AAED,MAAM,WAAW,cAAc;IAAG,WAAW,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE;AACpG;;;uEAGuE;AACvE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,cAAc,CAmBhF;AAED,+HAA+H;AAC/H,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;sCACsC;AACtC,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAMrF;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOtE;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,MAAM,EAAE,CAO/D;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;AAC9D,MAAM,WAAW,cAAc;IAAG,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CAAE;AAEzJ;;8CAE8C;AAC9C,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,SAAO,GAAG,cAAc,CAiC1G;AAED,2DAA2D;AAC3D,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,MAAM,CAS3J;AAWD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAgB7G;AAED;gGACgG;AAChG,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAQ7F"}
1
+ {"version":3,"file":"independentDerivation.d.ts","sourceRoot":"","sources":["../../src/training/independentDerivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;wBACwB;AACxB,eAAO,MAAM,iBAAiB,QAS+B,CAAC;AAE9D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CAOtJ;AAED,MAAM,WAAW,cAAc;IAAG,WAAW,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE;AACpG;;;uEAGuE;AACvE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,cAAc,CAmBhF;AAKD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;sCACsC;AACtC,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAMrF;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOtE;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,MAAM,EAAE,CAO/D;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;AAC9D,MAAM,WAAW,cAAc;IAAG,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CAAE;AAEzJ;;8CAE8C;AAC9C,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,SAAO,GAAG,cAAc,CAiC1G;AAED,2DAA2D;AAC3D,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,MAAM,CAS3J;AAWD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAgB7G;AAED;gGACgG;AAChG,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAQ7F"}
@@ -70,13 +70,18 @@ export function parseDerivationReply(text, maxChecks = 3) {
70
70
  flush();
71
71
  return { methodAgent, methodIndependent, checks };
72
72
  }
73
- /** Did a runCheck output come from a PASSED run? (its first line is the harness header `CHECK RUN: PASSED in …`). Pure. */
73
+ /** The harness header is `CHECK RUN: \`<cmd>\` <verdict> in <ms> ms\n<body>` and <cmd> may span lines (heredocs), so the verdict is
74
+ * found by its marker, not on line 1 (R176c: with the line-1 rule every multi-line check read as failed in cell r176b). Pure. */
75
+ const VERDICT_RE = /` → (PASSED in \d+ ms|FAILED \(exit -?\d+\) in \d+ ms|TIMED OUT[^\n]*)\n?/;
74
76
  export function checkRunPassed(output) {
75
- return /→ PASSED in/.test((output || '').split('\n')[0] ?? '');
77
+ const m = String(output || '').match(VERDICT_RE);
78
+ return !!m && m[1].startsWith('PASSED');
76
79
  }
77
- /** The body of a runCheck output (everything after the harness header line). Pure. */
80
+ /** The body of a runCheck output (everything after the verdict line). Pure. */
78
81
  export function checkRunBody(output) {
79
- return (output || '').split('\n').slice(1).join('\n');
82
+ const s = String(output || '');
83
+ const m = s.match(VERDICT_RE);
84
+ return m ? s.slice((m.index ?? 0) + m[0].length) : s.split('\n').slice(1).join('\n');
80
85
  }
81
86
  /** Is the independent method actually different from the agent's? A cheap token-overlap test the orchestrator banks (the field read
82
87
  * grades a sample by hand). Pure. */
@@ -1 +1 @@
1
- {"version":3,"file":"independentDerivation.js","sourceRoot":"","sources":["../../src/training/independentDerivation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"independentDerivation.js","sourceRoot":"","sources":["../../src/training/independentDerivation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexus-cortex/core",
3
- "version": "4.123.2",
3
+ "version": "4.123.3",
4
4
  "description": "Core orchestration library implementing Claude CLI architecture patterns",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -47,8 +47,8 @@
47
47
  "@google/generative-ai": "^0.2.1",
48
48
  "@gradio/client": "^2.3.1",
49
49
  "@modelcontextprotocol/sdk": "^1.20.2",
50
- "@nexus-cortex/executors": "4.123.2",
51
- "@nexus-cortex/types": "4.123.2",
50
+ "@nexus-cortex/executors": "4.123.3",
51
+ "@nexus-cortex/types": "4.123.3",
52
52
  "@types/uuid": "^10.0.0",
53
53
  "ajv": "^8.12.0",
54
54
  "chokidar": "^3.6.0",