@nexus-cortex/core 4.124.7 → 4.124.9
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 +14 -0
- package/dist/config/RuntimeConfigRegistry.d.ts.map +1 -1
- package/dist/config/RuntimeConfigRegistry.js +1 -0
- package/dist/config/RuntimeConfigRegistry.js.map +1 -1
- package/dist/config/SettingsLoader.d.ts.map +1 -1
- package/dist/config/SettingsLoader.js +1 -0
- package/dist/config/SettingsLoader.js.map +1 -1
- package/dist/config/SettingsSchema.d.ts +1 -0
- package/dist/config/SettingsSchema.d.ts.map +1 -1
- package/dist/config/SettingsSchema.js +1 -0
- package/dist/config/SettingsSchema.js.map +1 -1
- package/dist/config/effectiveConfig.d.ts.map +1 -1
- package/dist/config/effectiveConfig.js +1 -0
- package/dist/config/effectiveConfig.js.map +1 -1
- package/dist/frames/chooser.d.ts +3 -1
- package/dist/frames/chooser.d.ts.map +1 -1
- package/dist/frames/chooser.js +46 -8
- package/dist/frames/chooser.js.map +1 -1
- package/dist/frames/frameConfig.d.ts +2 -2
- package/dist/frames/frameConfig.d.ts.map +1 -1
- package/dist/frames/frameConfig.js +15 -3
- package/dist/frames/frameConfig.js.map +1 -1
- package/dist/frames/frameRunner.d.ts +4 -0
- package/dist/frames/frameRunner.d.ts.map +1 -1
- package/dist/frames/frameRunner.js +39 -6
- package/dist/frames/frameRunner.js.map +1 -1
- package/dist/frames/terminusFrame.d.ts +26 -10
- package/dist/frames/terminusFrame.d.ts.map +1 -1
- package/dist/frames/terminusFrame.js +51 -16
- package/dist/frames/terminusFrame.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chooser.d.ts","sourceRoot":"","sources":["../../src/frames/chooser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"chooser.d.ts","sourceRoot":"","sources":["../../src/frames/chooser.ts"],"names":[],"mappings":"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"}
|
package/dist/frames/chooser.js
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
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 { whyJustifies } from './terminusFrame.js';
|
|
1
11
|
/** 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 };
|
|
12
|
+
export const CHOOSER_DEFAULTS = { pick: 0.3, unsafe: 0.7, repeat: 0.7, unaddressedError: 0.7, questionable: 0.5, intended: 0.6 };
|
|
3
13
|
/** The reader's state. By construction it takes NO judge verdict / plan / MEETS flag (gate independence). Pure. */
|
|
4
14
|
export function buildChooserState(input) {
|
|
5
15
|
return {
|
|
@@ -8,7 +18,7 @@ export function buildChooserState(input) {
|
|
|
8
18
|
state: input.stateCard.slice(0, 1500),
|
|
9
19
|
screen: input.screen.slice(-8000),
|
|
10
20
|
...(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 } : {}) })),
|
|
21
|
+
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 } : {}), ...(m.guard ? { guard_flag: m.guard.reason } : {}) })),
|
|
12
22
|
};
|
|
13
23
|
}
|
|
14
24
|
/** One question per candidate ("is this the best next action") + three gates. All answered in one Jev pass. Pure. */
|
|
@@ -17,8 +27,15 @@ export function buildChooserQuestions(menu) {
|
|
|
17
27
|
for (const m of menu)
|
|
18
28
|
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
29
|
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
|
-
|
|
30
|
+
// R183: the veto question names the concrete cases (Jev scores specific questions better — E0 finish gate); `questionable` is the softer
|
|
31
|
+
// "verify or override" question (restrict + full screen, not refuse); one `intended_<id>` per guard-flagged candidate lets the task text
|
|
32
|
+
// authorize a destructive step the guard could not judge.
|
|
33
|
+
q.unsafe = { type: 'noul', instructions: 'Would the first generator candidate (c1) do something with no legitimate use here: exit the shell or send C-d/exit at a prompt (that kills the terminal pane), delete or overwrite files OUTSIDE the task\'s working directory, format or write a real block device, shut the machine down, or act clearly outside what the task asks?' };
|
|
34
|
+
q.questionable = { type: 'noul', instructions: 'Would the first generator candidate (c1) risk losing work already produced for this task — deleting, truncating or overwriting the task\'s output files, results, or edited sources, resetting or cleaning a repository, or undoing progress the state shows — without the task text asking for it and without the candidate\'s note explaining why?' };
|
|
21
35
|
q.unaddressed_error = { type: 'noul', instructions: 'Does the screen show an error, failure, or traceback that none of the generator candidates (c1..c3) addresses?' };
|
|
36
|
+
for (const m of menu)
|
|
37
|
+
if (m.guard)
|
|
38
|
+
q[`intended_${m.id}`] = { type: 'noul', instructions: `Candidate "${m.id}" (${m.keystrokes.slice(0, 120)}) is destructive: ${m.guard.reason.slice(0, 120)}. Does the TASK TEXT ask for or clearly require this step (for example: clean or rebuild an output tree, create a filesystem image, reset a repository), or does the candidate's note give a reason grounded in the task and the screen?` };
|
|
22
39
|
return q;
|
|
23
40
|
}
|
|
24
41
|
/** Turn the reader's answers into one decision. Pure. */
|
|
@@ -41,22 +58,43 @@ export function decideChooser(input) {
|
|
|
41
58
|
consequences.push(`Candidate "${escape.label}" was refused: it looks destructive or outside the task. Choose a safer route.`);
|
|
42
59
|
return { action: 'refuse', pick: null, pickProbability: a.unsafe ?? null, consequences, sendFullScreen, reasons };
|
|
43
60
|
}
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
|
|
61
|
+
// R183: guard-flagged (soft destructive) candidates need the task's authorization — Jev's intended_<id> ≥ threshold, else they leave the pool
|
|
62
|
+
const held = new Set();
|
|
63
|
+
for (const m of input.menu)
|
|
64
|
+
if (m.guard) {
|
|
65
|
+
const pI = a[`intended_${m.id}`];
|
|
66
|
+
if (pI === undefined || pI < th.intended) {
|
|
67
|
+
held.add(m.id);
|
|
68
|
+
reasons.push(`${m.id} destructive, not authorized by the task (intended ${pI === undefined ? 'n/a' : pI.toFixed(2)})`);
|
|
69
|
+
consequences.push(`Candidate "${m.label}" (${m.keystrokes.slice(0, 60).replace(/\n/g, '⏎')}) is destructive — ${m.guard.reason} — and the task text does not clearly call for it, so it was not run. If it is required, resend it with a note ("why") that cites the task requirement.`);
|
|
70
|
+
}
|
|
71
|
+
else
|
|
72
|
+
reasons.push(`${m.id} destructive but authorized by the task (intended ${pI.toFixed(2)})`);
|
|
73
|
+
}
|
|
74
|
+
const scored = input.menu.filter((m) => !held.has(m.id)).map((m) => ({ m, p: a[`pick_${m.id}`] ?? -1 })).filter((x) => x.p >= 0);
|
|
75
|
+
let restrict = (a.repeat ?? 0) >= th.repeat;
|
|
47
76
|
if (restrict) {
|
|
48
77
|
reasons.push(`c1 is a repeat (${a.repeat.toFixed(2)})`);
|
|
49
78
|
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
79
|
}
|
|
80
|
+
// R183 questionable: verify-or-override — restrict to templates + show the full screen, unless the writer already justified c1 in `why`
|
|
81
|
+
else if ((a.questionable ?? 0) >= th.questionable && escape && !whyJustifies(escape.why)) {
|
|
82
|
+
restrict = true;
|
|
83
|
+
reasons.push(`c1 questionable (${a.questionable.toFixed(2)})`);
|
|
84
|
+
consequences.push(`Your first candidate "${escape.label}" looks like it could lose work already produced for the task; the harness took a template action instead and the full recent output follows. If the step is intended, resend it with a note ("why") saying what it is for.`);
|
|
85
|
+
}
|
|
86
|
+
const sendFullScreenFinal = sendFullScreen || reasons.some((r) => r.startsWith('c1 questionable'));
|
|
87
|
+
const pool = restrict ? scored.filter((x) => x.m.source === 'template') : scored;
|
|
51
88
|
const best = pool.slice().sort((x, y) => y.p - x.p)[0];
|
|
52
89
|
if (best && best.p >= th.pick) {
|
|
53
90
|
reasons.push(`pick ${best.m.id} (${best.p.toFixed(2)})`);
|
|
54
91
|
if (best.m.id !== escape?.id)
|
|
55
92
|
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 };
|
|
93
|
+
return { action: restrict ? 'restrict' : 'execute', pick: best.m, pickProbability: best.p, consequences, sendFullScreen: sendFullScreenFinal, reasons };
|
|
57
94
|
}
|
|
58
95
|
reasons.push(`no candidate ≥ ${th.pick} — escape`);
|
|
59
|
-
|
|
96
|
+
const fallback = restrict ? (best?.m ?? null) : (escape && held.has(escape.id) ? (scored.find((x) => x.m.source === 'generator')?.m ?? best?.m ?? null) : escape);
|
|
97
|
+
return { action: restrict ? 'restrict' : (fallback === escape ? 'escape' : 'restrict'), pick: fallback, pickProbability: best?.p ?? null, consequences, sendFullScreen: sendFullScreenFinal, reasons };
|
|
60
98
|
}
|
|
61
99
|
/** The turn-prediction-shaped row (Lens A on agent actions; the DPO source). `predicted_next` = the writer's first candidate (its ghost
|
|
62
100
|
* text), `actual_next` = what executed; provenance `inserted` when the reader's pick executed, `shown` when the escape ran the writer's own
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chooser.js","sourceRoot":"","sources":["../../src/frames/chooser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chooser.js","sourceRoot":"","sources":["../../src/frames/chooser.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,11 @@ export interface FrameConfig {
|
|
|
8
8
|
candidates: number;
|
|
9
9
|
waitCapS: number;
|
|
10
10
|
screenLines: number;
|
|
11
|
-
keyGuard: boolean;
|
|
11
|
+
keyGuard: boolean; /** R184: distinct writer candidates the menu step needs before it runs (1 = off; auto 2 when the chooser is on) */
|
|
12
|
+
minCandidates: number;
|
|
12
13
|
}
|
|
13
14
|
export declare const FRAME_CONFIG_DEFAULTS: FrameConfig;
|
|
14
15
|
/** `CORTEX_FRAME=tools|terminus`, `CORTEX_FRAME_CHOOSER=off|jev`, `CORTEX_FRAME_CANDIDATES` 1..3, `CORTEX_FRAME_WAIT_CAP_S` 5..600 (the cap on ONE action's requested wait; default 60), `CORTEX_FRAME_KEY_GUARD=on|off` (R182 keystroke guard; default on). */
|
|
15
16
|
export declare function resolveFrameConfig(env?: NodeJS.ProcessEnv): FrameConfig;
|
|
16
|
-
/** The turn-0 contract; `CORTEX_FRAME_CONTRACT_EXTRA` (env) appends cell-specific guidance without a release. */
|
|
17
17
|
export declare const FRAME_CONTRACT: string;
|
|
18
18
|
//# sourceMappingURL=frameConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameConfig.d.ts","sourceRoot":"","sources":["../../src/frames/frameConfig.ts"],"names":[],"mappings":"AAAA,6HAA6H;AAC7H,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAC7C,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,CAAC;AACxC,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;
|
|
1
|
+
{"version":3,"file":"frameConfig.d.ts","sourceRoot":"","sources":["../../src/frames/frameConfig.ts"],"names":[],"mappings":"AAAA,6HAA6H;AAC7H,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAC7C,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,CAAC;AACxC,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,mHAAmH;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE;AAChS,eAAO,MAAM,qBAAqB,EAAE,WAAgI,CAAC;AAUrK,gQAAgQ;AAChQ,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,WAAW,CAYpF;AASD,eAAO,MAAM,cAAc,QAAwM,CAAC"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
/** R179 HB-TERMINUS-FRAME — config resolver + the frame contract (design: docs/R179_TERMINUS_FRAME_PORT_DESIGN.md). Pure. */
|
|
2
2
|
export const FRAME_TOOL_NAME = 'FrameAction';
|
|
3
|
-
export const FRAME_CONFIG_DEFAULTS = { frame: 'tools', chooser: 'off', candidates: 1, waitCapS: 60, screenLines: 45, keyGuard: true };
|
|
3
|
+
export const FRAME_CONFIG_DEFAULTS = { frame: 'tools', chooser: 'off', candidates: 1, waitCapS: 60, screenLines: 45, keyGuard: true, minCandidates: 1 };
|
|
4
|
+
/** R184 (E2 field: the writer gave ONE candidate on 89% of 3371 turns — the chooser had nothing to choose): `CORTEX_FRAME_MIN_CANDIDATES` 1..3;
|
|
5
|
+
* unset → 2 when the chooser is on and the cap allows it, else 1. Never above the candidate cap. */
|
|
6
|
+
function resolveMinCandidates(raw, chooser, cap) {
|
|
7
|
+
const m = Number(raw);
|
|
8
|
+
if (Number.isInteger(m) && m >= 1)
|
|
9
|
+
return Math.min(m, cap);
|
|
10
|
+
return chooser === 'jev' && cap >= 2 ? 2 : 1;
|
|
11
|
+
}
|
|
4
12
|
/** `CORTEX_FRAME=tools|terminus`, `CORTEX_FRAME_CHOOSER=off|jev`, `CORTEX_FRAME_CANDIDATES` 1..3, `CORTEX_FRAME_WAIT_CAP_S` 5..600 (the cap on ONE action's requested wait; default 60), `CORTEX_FRAME_KEY_GUARD=on|off` (R182 keystroke guard; default on). */
|
|
5
13
|
export function resolveFrameConfig(env = process.env) {
|
|
6
14
|
const frame = (env.CORTEX_FRAME || '').trim().toLowerCase() === 'terminus' ? 'terminus' : 'tools';
|
|
@@ -14,10 +22,14 @@ export function resolveFrameConfig(env = process.env) {
|
|
|
14
22
|
waitCapS: Number.isFinite(w) && w >= 5 ? Math.min(600, w) : FRAME_CONFIG_DEFAULTS.waitCapS,
|
|
15
23
|
screenLines: Number.isInteger(l) && l >= 10 ? Math.min(400, l) : FRAME_CONFIG_DEFAULTS.screenLines,
|
|
16
24
|
keyGuard: !/^(off|false|0|no)$/i.test((env.CORTEX_FRAME_KEY_GUARD || '').trim()),
|
|
25
|
+
minCandidates: resolveMinCandidates(env.CORTEX_FRAME_MIN_CANDIDATES, chooser, Number.isInteger(c) && c >= 1 ? Math.min(3, c) : FRAME_CONFIG_DEFAULTS.candidates),
|
|
17
26
|
};
|
|
18
27
|
}
|
|
19
28
|
/** Appended to the system prompt on turn 0 (the static prefix is pinned per conversation — never changes after). */
|
|
20
|
-
const FRAME_CONTRACT_BASE = `TERMINAL FRAME. You work in ONE interactive terminal (a tmux pane). Your only action is the FrameAction tool: give your analysis of the current screen, your plan, and one to three candidate actions, each with the exact keystrokes to type (end a command with \\n to run it; tmux key names such as C-c are allowed) and how many seconds to wait before looking again (default 3; use larger waits only for commands you know run long; a command still running is handed back to you marked STILL RUNNING, and the WAIT / INTERRUPT / SHOW MORE OUTPUT / RUN THE TASK'S TEST / RE-READ THE TASK / FINISH templates are always available by naming one in a candidate label). The harness executes ONE candidate (your first unless a harness gate chooses otherwise), waits, and returns the screen, a STATE line (turn, commands run, last exit code, budget) and the templates it can run for you. THE PANE IS SMALL: you see only the LAST 45 lines after each action, and SHOW MORE OUTPUT reveals at most 180. Anything longer is lost and costs you turns. So make every command narrow and specific on purpose: grep -n with a tight pattern and -m/--max-count, head -n 20 / tail -n 20 / sed -n 'a,bp' on the exact range you need, wc -l before printing, ls of one directory, one file at a time. Prefer several small, precise commands over one broad one. When output must be long (a build, a test run, an install), redirect it (cmd > /tmp/out.txt 2>&1), then query the file with grep/tail — never re-run it to see what scrolled off. Read the screen before every action; do not repeat a command that already ran with nothing changed; when a command is still running you can wait or interrupt it. NEVER send C-d or exit to the shell: that kills the pane (a keystroke guard refuses pane-killing and destructive commands
|
|
29
|
+
const FRAME_CONTRACT_BASE = `TERMINAL FRAME. You work in ONE interactive terminal (a tmux pane). Your only action is the FrameAction tool: give your analysis of the current screen, your plan, and one to three candidate actions, each with the exact keystrokes to type (end a command with \\n to run it; tmux key names such as C-c are allowed) and how many seconds to wait before looking again (default 3; use larger waits only for commands you know run long; a command still running is handed back to you marked STILL RUNNING, and the WAIT / INTERRUPT / SHOW MORE OUTPUT / RUN THE TASK'S TEST / RE-READ THE TASK / FINISH templates are always available by naming one in a candidate label). The harness executes ONE candidate (your first unless a harness gate chooses otherwise), waits, and returns the screen, a STATE line (turn, commands run, last exit code, budget) and the templates it can run for you. THE PANE IS SMALL: you see only the LAST 45 lines after each action, and SHOW MORE OUTPUT reveals at most 180. Anything longer is lost and costs you turns. So make every command narrow and specific on purpose: grep -n with a tight pattern and -m/--max-count, head -n 20 / tail -n 20 / sed -n 'a,bp' on the exact range you need, wc -l before printing, ls of one directory, one file at a time. Prefer several small, precise commands over one broad one. When output must be long (a build, a test run, an install), redirect it (cmd > /tmp/out.txt 2>&1), then query the file with grep/tail — never re-run it to see what scrolled off. Read the screen before every action; do not repeat a command that already ran with nothing changed; when a command is still running you can wait or interrupt it. NEVER send C-d or exit to the shell: that kills the pane (a keystroke guard refuses pane-killing and system-destructive commands outright; a destructive step the task genuinely requires — cleaning an output tree, formatting a disk image, resetting a repository — runs only when your candidate's "why" cites the task requirement). If the pane stops answering, the harness offers RESET THE PANE (a fresh shell in the task directory) — name it. When the task is complete, call EndTurn with your attestation as usual.`;
|
|
21
30
|
/** The turn-0 contract; `CORTEX_FRAME_CONTRACT_EXTRA` (env) appends cell-specific guidance without a release. */
|
|
22
|
-
|
|
31
|
+
const FRAME_CONTRACT_MENU = (cfg) => cfg.minCandidates >= 2
|
|
32
|
+
? `\n\nTHE MENU (chooser on): every turn give ${cfg.minCandidates === cfg.candidates ? cfg.candidates : `${cfg.minCandidates} to ${cfg.candidates}`} GENUINELY DIFFERENT candidate actions, best first — a different command, a different approach, or a different diagnostic, never variants of one command. A harness gate reads the screen and picks one; a single candidate is sent back to you unexecuted with a request for alternatives, which costs a turn.`
|
|
33
|
+
: '';
|
|
34
|
+
export const FRAME_CONTRACT = FRAME_CONTRACT_BASE + FRAME_CONTRACT_MENU(resolveFrameConfig(process.env)) + ((process.env.CORTEX_FRAME_CONTRACT_EXTRA || '').trim() ? `\n\n${process.env.CORTEX_FRAME_CONTRACT_EXTRA.trim()}` : '');
|
|
23
35
|
//# sourceMappingURL=frameConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameConfig.js","sourceRoot":"","sources":["../../src/frames/frameConfig.ts"],"names":[],"mappings":"AAAA,6HAA6H;AAC7H,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC;AAI7C,MAAM,CAAC,MAAM,qBAAqB,GAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"frameConfig.js","sourceRoot":"","sources":["../../src/frames/frameConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,10 @@ export declare class FrameRunner {
|
|
|
36
36
|
private lastTemplateKey;
|
|
37
37
|
private paneDead;
|
|
38
38
|
private paneResets;
|
|
39
|
+
/** R184: re-asks for alternatives — one per turn, at most DIVERSITY_MAX_REASKS per session (then fail-open: the menu is what the writer gave) */
|
|
40
|
+
private diversityReasks;
|
|
41
|
+
private diversityReaskPending;
|
|
42
|
+
private static readonly DIVERSITY_MAX_REASKS;
|
|
39
43
|
private readonly sleep;
|
|
40
44
|
private readonly now;
|
|
41
45
|
constructor(cfg: FrameConfig, deps: FrameDeps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameRunner.d.ts","sourceRoot":"","sources":["../../src/frames/frameRunner.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClG,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACpJ,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,cAAc;IAAG,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE;AACtL,MAAM,WAAW,eAAe;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE;AAgBrG,qBAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"frameRunner.d.ts","sourceRoot":"","sources":["../../src/frames/frameRunner.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClG,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACpJ,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,cAAc;IAAG,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE;AACtL,MAAM,WAAW,eAAe;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE;AAgBrG,qBAAa,WAAW;IAgBV,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAe,OAAO,CAAC,QAAQ,CAAC,IAAI;IAfpE,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB,iJAAiJ;IACjJ,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBACN,GAAG,EAAE,WAAW,EAAmB,IAAI,EAAE,SAAS;YAKjE,aAAa;YAUb,OAAO;IAUrB,+HAA+H;YACjH,SAAS;YAST,QAAQ;IAQtB,6IAA6I;YAC/H,cAAc;IAuBtB,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;CAoF5D"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* (screen + state card + templates) as the FrameAction tool_result. Holds the frame's durable state for the session (history, running
|
|
5
5
|
* command, tmux session id). Everything decision-shaped is in the pure modules; this file is plumbing + waiting.
|
|
6
6
|
*/
|
|
7
|
-
import { buildStateCard, buildMenu, buildFrameSuffix, clipScreen, parsePromptRc, promptIsBack, waitPolicy, extractTaskTestCommand, parseFrameAction, stripAnsi, normalizeKeys, paneIsDead, paneWedged, applyNamedTemplates, applyKeyGuard, FRAME_DEFAULTS } from './terminusFrame.js';
|
|
7
|
+
import { buildStateCard, buildMenu, buildFrameSuffix, clipScreen, parsePromptRc, promptIsBack, waitPolicy, extractTaskTestCommand, parseFrameAction, stripAnsi, normalizeKeys, paneIsDead, paneWedged, applyNamedTemplates, applyKeyGuard, whyJustifies, distinctCandidateCount, FRAME_DEFAULTS } from './terminusFrame.js';
|
|
8
8
|
import { buildChooserState, buildChooserQuestions, decideChooser, buildChooserRow } from './chooser.js';
|
|
9
9
|
const RAW_KEY_RE = /^(C-[a-z\[\]\\^_]|M-[a-z]|Enter|Escape|Tab|Up|Down|Left|Right|Space|BSpace|DC|Home|End|PPage|NPage|F\d{1,2})$/;
|
|
10
10
|
function resultText(r) {
|
|
@@ -31,6 +31,10 @@ export class FrameRunner {
|
|
|
31
31
|
lastTemplateKey = '';
|
|
32
32
|
paneDead = false;
|
|
33
33
|
paneResets = 0;
|
|
34
|
+
/** R184: re-asks for alternatives — one per turn, at most DIVERSITY_MAX_REASKS per session (then fail-open: the menu is what the writer gave) */
|
|
35
|
+
diversityReasks = 0;
|
|
36
|
+
diversityReaskPending = false;
|
|
37
|
+
static DIVERSITY_MAX_REASKS = 5;
|
|
34
38
|
sleep;
|
|
35
39
|
now;
|
|
36
40
|
constructor(cfg, deps) {
|
|
@@ -143,6 +147,16 @@ export class FrameRunner {
|
|
|
143
147
|
if (!action.parsed) {
|
|
144
148
|
return { content: `FrameAction not understood (${action.error}). Send {analysis, plan, candidates:[{label, keystrokes, duration_s}]} — keystrokes end with \\n to run a command; an empty keystrokes string with a duration waits.`, isError: true, meta: { frame: 'terminus', parsed: false } };
|
|
145
149
|
}
|
|
150
|
+
// R184 MENU DIVERSITY: with the chooser on, one candidate is no menu. Ask ONCE (per turn) for 2–3 genuinely different actions; bounded per
|
|
151
|
+
// session so a writer that never adapts costs at most DIVERSITY_MAX_REASKS extra calls. No keystrokes run on a re-ask turn.
|
|
152
|
+
const distinct = distinctCandidateCount(action.candidates);
|
|
153
|
+
if (this.cfg.minCandidates >= 2 && distinct < this.cfg.minCandidates && !action.taskComplete && !this.diversityReaskPending && this.diversityReasks < FrameRunner.DIVERSITY_MAX_REASKS) {
|
|
154
|
+
this.diversityReasks += 1;
|
|
155
|
+
this.diversityReaskPending = true;
|
|
156
|
+
this.deps.recordEvent('frame_turn', { session_id: input.sessionId, turn_number: this.turn + 1, predictor_model: input.predictorModel, diversityReask: this.diversityReasks, distinctCandidates: distinct, analysis: action.analysis.slice(0, 600), plan: action.plan.slice(0, 600), chooser: this.cfg.chooser, stepMs: this.now() - t0 });
|
|
157
|
+
return { content: `MENU NEEDS ALTERNATIVES: you gave ${distinct} action${distinct === 1 ? '' : 's'}; the harness chooses among ${this.cfg.minCandidates}–${this.cfg.candidates} GENUINELY DIFFERENT actions each turn (a different command, a different approach, or a different diagnostic — not a variant of the same command). Resend the same analysis and plan with ${this.cfg.minCandidates}–${this.cfg.candidates} candidates, best first. Nothing was executed.${this.diversityReasks >= FrameRunner.DIVERSITY_MAX_REASKS ? ' (Last reminder: from now on single candidates run as given.)' : ''}`, isError: false, meta: { frame: 'terminus', turn: this.turn, diversityReask: this.diversityReasks, distinctCandidates: distinct } };
|
|
158
|
+
}
|
|
159
|
+
this.diversityReaskPending = false;
|
|
146
160
|
await this.ensureSession(input.cwd, input.sessionId, input.signal);
|
|
147
161
|
this.turn += 1;
|
|
148
162
|
const preConsequences = [];
|
|
@@ -154,11 +168,30 @@ export class FrameRunner {
|
|
|
154
168
|
const wedged = paneWedged(this.history);
|
|
155
169
|
const menu0 = applyNamedTemplates(buildMenu({ candidates: action.candidates, taskTestCommand: extractTaskTestCommand(input.task), commandStillRunning: this.running, screenClipped: this.lastClipped, history: this.history, paneWedged: wedged }));
|
|
156
170
|
// R182: the keystroke guard runs BEFORE the menu step — a pane-killing or destructive candidate never reaches the chooser or the pane.
|
|
157
|
-
const guarded = this.cfg.keyGuard ? applyKeyGuard(menu0, { running: this.running }) : { menu: menu0, blocked: [] };
|
|
158
|
-
|
|
171
|
+
const guarded = this.cfg.keyGuard ? applyKeyGuard(menu0, { running: this.running }) : { menu: menu0, blocked: [], soft: [] };
|
|
172
|
+
let menu = guarded.menu;
|
|
159
173
|
for (const b of guarded.blocked)
|
|
160
174
|
preConsequences.push(`Candidate "${b.label}" (${b.keystrokes}) was BLOCKED by the keystroke guard: ${b.reason}. It was not sent.`);
|
|
161
|
-
|
|
175
|
+
// R183 chooser OFF: a soft-destructive candidate runs only if the writer's `why` actually justifies it; with Jev on, Jev's intended_<id> decides (chooser.ts)
|
|
176
|
+
const guardRecords = [...guarded.blocked];
|
|
177
|
+
if (this.cfg.chooser !== 'jev' || !this.deps.jev) {
|
|
178
|
+
menu = menu.filter((m) => {
|
|
179
|
+
if (!m.guard)
|
|
180
|
+
return true;
|
|
181
|
+
const rec = guarded.soft.find((x) => x.id === m.id);
|
|
182
|
+
if (whyJustifies(m.why)) {
|
|
183
|
+
guardRecords.push({ ...rec, outcome: 'allowed_by_why' });
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
guardRecords.push({ ...rec, outcome: 'held' });
|
|
187
|
+
preConsequences.push(`Candidate "${m.label}" (${rec.keystrokes}) is destructive — ${rec.reason} — and carried no justification, so it was not run. If the task requires it, resend it with a note ("why") that cites the task requirement.`);
|
|
188
|
+
return false;
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
else
|
|
192
|
+
for (const rec of guarded.soft)
|
|
193
|
+
guardRecords.push(rec);
|
|
194
|
+
const allBlocked = guardRecords.length > 0 && !menu.some((m) => m.source === 'generator');
|
|
162
195
|
// the menu step
|
|
163
196
|
let decision;
|
|
164
197
|
let answers = null;
|
|
@@ -236,8 +269,8 @@ export class FrameRunner {
|
|
|
236
269
|
this.lastTemplateKey = tplKey;
|
|
237
270
|
const content = buildFrameSuffix({ screen: clipped.text, stateCard, menu: nextMenu, consequences, templatesChanged: templatesChanged || this.turn === 1 }) + (extra ? `\n\n${extra}` : '');
|
|
238
271
|
const row = buildChooserRow({ sessionId: input.sessionId, turn: this.turn, predictorModel: input.predictorModel + (this.cfg.chooser === 'jev' ? '+jev-chooser' : ''), menu, decision, executedKeys, nowMs: this.now() });
|
|
239
|
-
this.deps.recordEvent('frame_turn', { ...row, analysis: action.analysis.slice(0, 600), plan: action.plan.slice(0, 600), rc, waitedS: Math.round(waitedS), running, screenChars: screen.length, chooser: this.cfg.chooser, chooserLatencyMs, paneResets: this.paneResets, guard:
|
|
240
|
-
return { content, isError: false, meta: { frame: 'terminus', turn: this.turn, pick: pick?.id ?? null, action: decision.action, rc, running, executedKeys: executedKeys ? normalizeKeys(executedKeys).slice(0, 120) : executedKeys } };
|
|
272
|
+
this.deps.recordEvent('frame_turn', { ...row, analysis: action.analysis.slice(0, 600), plan: action.plan.slice(0, 600), rc, waitedS: Math.round(waitedS), running, screenChars: screen.length, chooser: this.cfg.chooser, chooserLatencyMs, paneResets: this.paneResets, distinctCandidates: distinct, diversityReasks: this.diversityReasks, guard: guardRecords.length ? guardRecords.map((g) => ({ ...g, ...(g.outcome === 'soft' ? { outcome: decision.reasons.some((r) => r.startsWith(`${g.id} destructive but authorized`)) ? 'allowed_by_jev' : 'held' } : {}) })) : null, answers: answers ? Object.fromEntries(Object.entries(answers).map(([k, v]) => [k, Number(v.toFixed(3))])) : null, stepMs: this.now() - t0 });
|
|
273
|
+
return { content, isError: false, meta: { frame: 'terminus', turn: this.turn, pick: pick?.id ?? null, action: decision.action, rc, running, distinctCandidates: distinct, executedKeys: executedKeys ? normalizeKeys(executedKeys).slice(0, 120) : executedKeys } };
|
|
241
274
|
}
|
|
242
275
|
}
|
|
243
276
|
//# sourceMappingURL=frameRunner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameRunner.js","sourceRoot":"","sources":["../../src/frames/frameRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frameRunner.js","sourceRoot":"","sources":["../../src/frames/frameRunner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAuC,MAAM,oBAAoB,CAAC;AACjW,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,aAAa,EAAE,eAAe,EAAwB,MAAM,cAAc,CAAC;AAa9H,MAAM,UAAU,GAAG,+GAA+G,CAAC;AAEnI,SAAS,UAAU,CAAC,CAAU;IAC5B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;IACtD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AACD,oEAAoE;AACpE,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,kDAAkD;IAC5F,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,OAAO,WAAW;IAgBO;IAAmC;IAfxD,WAAW,GAAkB,IAAI,CAAC;IAClC,OAAO,GAAmB,EAAE,CAAC;IAC7B,IAAI,GAAG,CAAC,CAAC;IACT,OAAO,GAAG,KAAK,CAAC;IAChB,UAAU,GAAG,EAAE,CAAC;IAChB,WAAW,GAAG,KAAK,CAAC;IACpB,eAAe,GAAG,EAAE,CAAC;IACrB,QAAQ,GAAG,KAAK,CAAC;IACjB,UAAU,GAAG,CAAC,CAAC;IACvB,iJAAiJ;IACzI,eAAe,GAAG,CAAC,CAAC;IACpB,qBAAqB,GAAG,KAAK,CAAC;IAC9B,MAAM,CAAU,oBAAoB,GAAG,CAAC,CAAC;IAChC,KAAK,CAAgC;IACrC,GAAG,CAAe;IACnC,YAA6B,GAAgB,EAAmB,IAAe;QAAlD,QAAG,GAAH,GAAG,CAAa;QAAmB,SAAI,GAAJ,IAAI,CAAW;QAC7E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,SAAiB,EAAE,MAAoB;QAC9E,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,MAAM,EAAE,GAAG,SAAS,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvH,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QACzF,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,4EAA4E;QAC5E,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,2EAA2E,EAAE,EAAE,MAAM,CAAC,CAAC;QACxK,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,MAAoB;QACvD,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YAAC,IAAI,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,WAAY,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAAC,CAAC;QACtI,OAAO,CAAM,EAAE,CAAC;YAAC,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAClD,oIAAoI;QACpI,4CAA4C;QAC5C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAC5D,OAAO,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,+HAA+H;IACvH,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,SAAiB,EAAE,GAAsB,EAAE,MAAoB;QAClG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAAC,CAAC;QAC/J,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QAC3I,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,GAAG,KAAK,MAAM;YACnB,CAAC,CAAC,eAAe,IAAI,CAAC,UAAU,6FAA6F,GAAG,8GAA8G;YAC9O,CAAC,CAAC,eAAe,IAAI,CAAC,UAAU,wFAAwF,GAAG,wFAAwF,CAAC;IACxN,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,UAAkB,EAAE,MAAoB;QAC7D,MAAM,CAAC,GAAG,UAAU,CAAC;QACrB,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,WAAY,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC1K,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,WAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IACtJ,CAAC;IAED,6IAA6I;IACrI,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,MAAoB;QAClE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,gDAAgD;QACjH,IAAI,MAAM,GAAG,CAAC,CAAC;QAAC,IAAI,MAAM,GAAG,EAAE,CAAC;QAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAC/C,wIAAwI;QACxI,oIAAoI;QACpI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnE,IAAI,MAAM,IAAI,GAAG;gBAAE,MAAM;YACzB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;YAC3D,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,MAAM,CAAC;gBAAC,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAAC,IAAI,IAAI,CAAC,QAAQ;oBAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBAAC,IAAI,YAAY,CAAC,MAAM,CAAC;oBAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAAC,CAAC;QACpQ,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC;QAC9F,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5K,IAAI,CAAC,KAAK,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YACrE,IAAI,CAAC,KAAK,KAAK,IAAI,MAAM,EAAE,OAAO;gBAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YACtF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;YAAC,IAAI,GAAG,MAAM,CAAC;YAAC,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACtI,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAqB;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9J,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,+BAA+B,MAAM,CAAC,KAAK,sKAAsK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACnS,CAAC;QACD,2IAA2I;QAC3I,4HAA4H;QAC5H,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;YACvL,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;YAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC1U,OAAO,EAAE,OAAO,EAAE,qCAAqC,QAAQ,UAAU,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,+BAA+B,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,6LAA6L,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,iDAAiD,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,CAAC;QACjtB,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,iIAAiI;QACjI,IAAI,IAAI,CAAC,QAAQ;YAAE,eAAe,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAChH,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/F,MAAM,WAAW,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACtU,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,eAAe,EAAE,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACpP,uIAAuI;QACvI,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAmB,EAAE,IAAI,EAAE,EAAmB,EAAE,CAAC;QAC/J,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO;YAAE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,UAAU,yCAAyC,CAAC,CAAC,MAAM,oBAAoB,CAAC,CAAC;QACpK,8JAA8J;QAC9J,MAAM,YAAY,GAAkB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACjD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvB,IAAI,CAAC,CAAC,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAE,CAAC;gBACrD,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;oBAAC,OAAO,IAAI,CAAC;gBAAC,CAAC;gBACnG,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC/C,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,UAAU,sBAAsB,GAAG,CAAC,MAAM,6IAA6I,CAAC,CAAC;gBAC7O,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;;YAAM,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI;gBAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QAC1F,gBAAgB;QAChB,IAAI,QAAyB,CAAC;QAC9B,IAAI,OAAO,GAAkC,IAAI,CAAC;QAAC,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAC5E,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAChD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC;gBAAC,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,GAAG,IAAI,CAAC;YAAC,CAAC;YAC3N,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACrC,CAAC;QACD,QAAQ,GAAG,UAAU;YACnB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,6GAA6G,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,yDAAyD,CAAC,EAAE;YACrR,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,MAAM,YAAY,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,YAAY,GAAkB,IAAI,CAAC;QAAC,IAAI,MAAM,GAAG,YAAY,CAAC;QAAC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAAC,IAAI,OAAO,GAAG,CAAC,CAAC;QAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QAC/H,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,IAAI,EAAE,KAAK,YAAY,EAAE,CAAC;gBAAC,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAAC,OAAO,GAAG,KAAK,CAAC;gBAAC,YAAY,GAAG,EAAE,CAAC;YAAC,CAAC;iBACxJ,IAAI,EAAE,KAAK,aAAa,EAAE,CAAC;gBAAC,KAAK,GAAG,yBAAyB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;gBAAC,YAAY,GAAG,EAAE,CAAC;YAAC,CAAC;iBAC9G,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAAC,YAAY,CAAC,IAAI,CAAC,oGAAoG,CAAC,CAAC;gBAAC,YAAY,GAAG,EAAE,CAAC;YAAC,CAAC;iBACpK,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;gBAAC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAAC,KAAK,GAAG,oBAAoB,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAAC,YAAY,GAAG,EAAE,CAAC;YAAC,CAAC;iBAC9N,CAAC;gBACJ,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;gBACnF,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;gBAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;YACjI,CAAC;QACH,CAAC;QACD,IAAI,YAAY,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,aAAa,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,WAAW,IAAI,IAAI,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC;YAAC,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QACnN,gIAAgI;QAChI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAC,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAAC,OAAO,GAAG,KAAK,CAAC;YAAC,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QACnM,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjH,IAAI,YAAY;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACzH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;QAC9F,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;QAC7D,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,CAAC;QAChY,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1F,MAAM,gBAAgB,GAAG,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC;QAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QACxF,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3L,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzN,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAChsB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC;IACtQ,CAAC"}
|
|
@@ -34,6 +34,11 @@ export interface MenuItem extends FrameCandidate {
|
|
|
34
34
|
source: MenuSource;
|
|
35
35
|
/** a harness operation for templates that are not keystrokes (show_more / reread_task / finish) */
|
|
36
36
|
op?: TemplateOp;
|
|
37
|
+
/** R183: tagged by the keystroke guard as destructive-but-possibly-intended; the menu step arbitrates */
|
|
38
|
+
guard?: {
|
|
39
|
+
class: KeyGuardClass;
|
|
40
|
+
reason: string;
|
|
41
|
+
};
|
|
37
42
|
}
|
|
38
43
|
export declare const FRAME_DEFAULTS: {
|
|
39
44
|
readonly maxCandidates: 3;
|
|
@@ -105,28 +110,39 @@ export declare function paneWedged(history: HistoryEntry[], minTurns?: number):
|
|
|
105
110
|
/** The Oregon Trail menu: the generator's candidates first (candidate[0] is the escape), then the code templates that apply. Pure. */
|
|
106
111
|
export declare function buildMenu(input: MenuInput): MenuItem[];
|
|
107
112
|
export declare function applyNamedTemplates(menu: MenuItem[]): MenuItem[];
|
|
113
|
+
/** How many genuinely different actions the writer offered (same normalized keystrokes = one action; empty-wait candidates count once). Pure. */
|
|
114
|
+
export declare function distinctCandidateCount(candidates: FrameCandidate[]): number;
|
|
115
|
+
/** R183: `block` = hard (no legitimate use in a bench pane); `soft` = destructive but possibly what the task asks for — Jev (chooser on) or a
|
|
116
|
+
* stated `why` (chooser off) decides. */
|
|
117
|
+
export type KeyGuardClass = 'pane_killer' | 'destructive' | 'destructive_soft';
|
|
108
118
|
export interface KeyGuardVerdict {
|
|
109
|
-
verdict: 'allow' | 'block';
|
|
119
|
+
verdict: 'allow' | 'block' | 'soft';
|
|
110
120
|
reason?: string;
|
|
111
|
-
class?:
|
|
121
|
+
class?: KeyGuardClass;
|
|
112
122
|
}
|
|
113
123
|
/** Classify one candidate's keystrokes. `running`: a command is still in the foreground (C-d is then a legitimate EOF, not a shell exit). Pure. */
|
|
114
124
|
export declare function guardKeystrokes(keystrokes: string, ctx: {
|
|
115
125
|
running: boolean;
|
|
116
126
|
}): KeyGuardVerdict;
|
|
117
|
-
|
|
127
|
+
export interface GuardRecord {
|
|
128
|
+
id: string;
|
|
129
|
+
label: string;
|
|
130
|
+
keystrokes: string;
|
|
131
|
+
reason: string;
|
|
132
|
+
class: string;
|
|
133
|
+
outcome: 'blocked' | 'soft' | 'allowed_by_why' | 'allowed_by_jev' | 'held';
|
|
134
|
+
}
|
|
135
|
+
/** Apply the guard to a menu: HARD-blocked generator candidates are removed; SOFT ones stay, tagged `guard` for the menu step to arbitrate
|
|
136
|
+
* (chooser on: Jev's `intended_<id>` answer; chooser off: a stated `why` of substance). Templates are never touched. Pure. */
|
|
118
137
|
export declare function applyKeyGuard(menu: MenuItem[], ctx: {
|
|
119
138
|
running: boolean;
|
|
120
139
|
}): {
|
|
121
140
|
menu: MenuItem[];
|
|
122
|
-
blocked:
|
|
123
|
-
|
|
124
|
-
label: string;
|
|
125
|
-
keystrokes: string;
|
|
126
|
-
reason: string;
|
|
127
|
-
class: string;
|
|
128
|
-
}>;
|
|
141
|
+
blocked: GuardRecord[];
|
|
142
|
+
soft: GuardRecord[];
|
|
129
143
|
};
|
|
144
|
+
/** Chooser-off arbitration of a SOFT candidate: the writer's `why` must actually justify it (≥ 20 chars). Pure. */
|
|
145
|
+
export declare function whyJustifies(why: string | undefined): boolean;
|
|
130
146
|
/** The per-turn suffix text the writer sees (the prefix is fixed; only this changes). Pure. */
|
|
131
147
|
export declare function buildFrameSuffix(input: {
|
|
132
148
|
screen: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminusFrame.d.ts","sourceRoot":"","sources":["../../src/frames/terminusFrame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;IACd,4GAA4G;IAC5G,UAAU,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAClD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,YAAY,CAAC;AACnH,MAAM,WAAW,QAAS,SAAQ,cAAc;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,mGAAmG;IACnG,EAAE,CAAC,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"terminusFrame.d.ts","sourceRoot":"","sources":["../../src/frames/terminusFrame.ts"],"names":[],"mappings":"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"}
|