instar 1.3.723 → 1.3.724
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/dist/core/SessionManager.d.ts +12 -0
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +22 -0
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/StuckInputSentinel.d.ts +83 -8
- package/dist/core/StuckInputSentinel.d.ts.map +1 -1
- package/dist/core/StuckInputSentinel.js +210 -10
- package/dist/core/StuckInputSentinel.js.map +1 -1
- package/dist/messaging/slack/SlackAdapter.d.ts +31 -0
- package/dist/messaging/slack/SlackAdapter.d.ts.map +1 -1
- package/dist/messaging/slack/SlackAdapter.js +56 -18
- package/dist/messaging/slack/SlackAdapter.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +3 -3
- package/upgrades/{1.3.723.md → 1.3.724.md} +56 -0
- package/upgrades/side-effects/p05-filesinfo-ghosttext.md +188 -0
|
@@ -27,8 +27,32 @@
|
|
|
27
27
|
* 4. Skip if the prompt text just appeared (give verifyInjection its 6.5s
|
|
28
28
|
* window to handle the common race first).
|
|
29
29
|
* 5. If the same prompt text persists across MIN_TICKS_BEFORE_FIRE ticks
|
|
30
|
-
* without changing AND no activity indicator,
|
|
31
|
-
*
|
|
30
|
+
* without changing AND no activity indicator, verify the text is REAL
|
|
31
|
+
* input (see the ghost-text exclusion below), then fire one recovery
|
|
32
|
+
* action, then escalate next tick if still stuck.
|
|
33
|
+
*
|
|
34
|
+
* Ghost-text exclusion (F2, live finding 2026-07-02): Claude Code renders a
|
|
35
|
+
* model-generated prompt SUGGESTION ("ghost text") in the composer — dim-styled
|
|
36
|
+
* (SGR 2, e.g. `ESC[0;2m`), never typed by anyone. In a plain capture-pane
|
|
37
|
+
* frame the dim attribute is stripped, so ghost text is byte-identical to real
|
|
38
|
+
* stuck input, and the sentinel fired 4 Enter presses at a fabricated
|
|
39
|
+
* instruction during the 2026-07-02 live run (harmless today only because
|
|
40
|
+
* Enter does not accept ghost text — one harness UX change away from a
|
|
41
|
+
* watchdog auto-submitting a model-fabricated instruction). The invariant this
|
|
42
|
+
* gate encodes: THE SENTINEL NEVER AUTO-SUBMITS TEXT THE USER (OR AN
|
|
43
|
+
* AUTHORIZED INJECTOR) DID NOT ACTUALLY TYPE. Before any keypress on the
|
|
44
|
+
* generic `❯`-prompt path, the sentinel re-captures the pane WITH ANSI escapes
|
|
45
|
+
* (`capture-pane -e`) and classifies the prompt text's presentation:
|
|
46
|
+
* - 'real' — rendered at normal intensity → proceed with recovery.
|
|
47
|
+
* - 'ghost' — rendered entirely dim → NEVER press keys at it; the
|
|
48
|
+
* record is exhausted until the prompt text changes.
|
|
49
|
+
* - 'inconclusive' — ANSI capture failed, frames raced, or mixed styling →
|
|
50
|
+
* fail toward NOT pressing keys this tick (log-only);
|
|
51
|
+
* re-assessed next tick.
|
|
52
|
+
* The codex marker path is NOT gated: it only ever fires when the exact marker
|
|
53
|
+
* text we ourselves injected is stuck at the prompt, so the invariant holds
|
|
54
|
+
* there by construction (and codex's dim placeholder-hint is already excluded
|
|
55
|
+
* by marker matching).
|
|
32
56
|
*
|
|
33
57
|
* Bounded escalation matches SessionManager.fireStuckInputRecovery:
|
|
34
58
|
* attempt 0,1 → Enter attempt 2 → C-m attempt 3 → Enter+sleep+Enter
|
|
@@ -87,9 +111,14 @@ interface SessionStuckRecord {
|
|
|
87
111
|
consecutiveTicks: number;
|
|
88
112
|
/** How many recovery actions have been fired so far for this text. */
|
|
89
113
|
attempts: number;
|
|
90
|
-
/** Whether this record is exhausted (max attempts reached
|
|
91
|
-
* again until the prompt text
|
|
114
|
+
/** Whether this record is exhausted (max attempts reached — or the text was
|
|
115
|
+
* classified as ghost text — won't fire again until the prompt text
|
|
116
|
+
* changes). */
|
|
92
117
|
exhausted: boolean;
|
|
118
|
+
/** Whether a ghost-text-skip / ghost-check-inconclusive event has already
|
|
119
|
+
* been logged for this record's text (one observability row per stuck
|
|
120
|
+
* text, not one per tick). */
|
|
121
|
+
ghostSkipLogged?: boolean;
|
|
93
122
|
/** Deeper-tier escalation phase (after the keypress ladder exhausts).
|
|
94
123
|
* - 'none': not escalating (keypress ladder still running or escalation off).
|
|
95
124
|
* - 'requested': a tier-C recovery request is in flight to the lifeline;
|
|
@@ -107,12 +136,38 @@ export interface StuckInputEvent {
|
|
|
107
136
|
session: string;
|
|
108
137
|
promptText: string;
|
|
109
138
|
attempt: number;
|
|
110
|
-
action: 'Enter' | 'C-m' | 'Enter-sleep-Enter' | 'escalate-request' | 'escalate-recovered' | 'escalate-failed' | 'escalate-timeout';
|
|
111
|
-
outcome: 'fired' | 'fire-error' | 'escalated' | 'recovered' | 'gave-up';
|
|
139
|
+
action: 'Enter' | 'C-m' | 'Enter-sleep-Enter' | 'escalate-request' | 'escalate-recovered' | 'escalate-failed' | 'escalate-timeout' | 'ghost-text-skip' | 'ghost-check-inconclusive';
|
|
140
|
+
outcome: 'fired' | 'fire-error' | 'escalated' | 'recovered' | 'gave-up' | 'skipped';
|
|
112
141
|
/** Recovery tier for escalation events (absent for keypress events). */
|
|
113
142
|
tier?: RecoveryTier;
|
|
114
143
|
error?: string;
|
|
115
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* How the stuck prompt text is RENDERED in the live pane (F2 ghost-text
|
|
147
|
+
* exclusion). Classified from an ANSI capture (`tmux capture-pane -e`):
|
|
148
|
+
* - 'real' — normal intensity: genuinely typed/injected input.
|
|
149
|
+
* - 'ghost' — entirely dim (SGR 2): the harness's model-generated
|
|
150
|
+
* composer suggestion; never actually typed by anyone.
|
|
151
|
+
* - 'inconclusive' — cannot prove either way (capture failed, frames raced,
|
|
152
|
+
* mixed styling). The sentinel fails toward NOT pressing.
|
|
153
|
+
*/
|
|
154
|
+
export type PromptTextPresentation = 'real' | 'ghost' | 'inconclusive';
|
|
155
|
+
/**
|
|
156
|
+
* Classify how the stuck prompt text is rendered, from an ANSI (`-e`) capture
|
|
157
|
+
* of the SAME pane. `expectedText` is the stuck text extracted from the plain
|
|
158
|
+
* capture; when the ANSI frame's own prompt extraction does not reproduce it
|
|
159
|
+
* exactly (the two captures raced, or the frame has no readable prompt), the
|
|
160
|
+
* verdict is 'inconclusive' — never a guess.
|
|
161
|
+
*
|
|
162
|
+
* Grounded in the 2026-07-02 live F2 evidence: Claude Code's ghost suggestion
|
|
163
|
+
* rendered with `ESC[0;2m` (dim). Real typed/injected input renders at normal
|
|
164
|
+
* intensity. Only the dim attribute (SGR 2) is used as the ghost tell —
|
|
165
|
+
* color-based heuristics were deliberately NOT added (a gray-but-normal-
|
|
166
|
+
* intensity theme must not disable genuine recovery).
|
|
167
|
+
*
|
|
168
|
+
* Exported for unit tests; the live path goes through evaluateSession.
|
|
169
|
+
*/
|
|
170
|
+
export declare function classifyPromptTextPresentation(ansiPane: string, expectedText: string): PromptTextPresentation;
|
|
116
171
|
export declare class StuckInputSentinel {
|
|
117
172
|
private readonly sessionManager;
|
|
118
173
|
private readonly tickMs;
|
|
@@ -149,6 +204,26 @@ export declare class StuckInputSentinel {
|
|
|
149
204
|
*
|
|
150
205
|
* Public for unit tests; the live tick goes through evaluateSession. */
|
|
151
206
|
extractPromptText(pane: string): string | null;
|
|
207
|
+
/**
|
|
208
|
+
* Locate the stuck prompt text within the pane's lines: which line holds it,
|
|
209
|
+
* the column it starts at, and the trimmed text. This is extractPromptText's
|
|
210
|
+
* engine, factored out so the ghost-text classifier can map the SAME
|
|
211
|
+
* located characters onto an ANSI capture's per-character dim mask —
|
|
212
|
+
* guaranteeing the styling verdict is about exactly the text the plain-frame
|
|
213
|
+
* extraction saw, never a different region of the pane.
|
|
214
|
+
*/
|
|
215
|
+
static locatePromptText(lines: string[]): {
|
|
216
|
+
lineIdx: number;
|
|
217
|
+
start: number;
|
|
218
|
+
text: string;
|
|
219
|
+
} | null;
|
|
220
|
+
/**
|
|
221
|
+
* F2 ghost-text gate: capture the SAME pane WITH ANSI escapes and classify
|
|
222
|
+
* how the stuck text is rendered. Every failure path — no ANSI capture
|
|
223
|
+
* support, capture returned null, capture threw — resolves to
|
|
224
|
+
* 'inconclusive', which the caller treats as "do NOT press keys this tick".
|
|
225
|
+
*/
|
|
226
|
+
private assessPromptTextPresentation;
|
|
152
227
|
/** True if the pane currently shows a Claude Code "working" indicator.
|
|
153
228
|
*
|
|
154
229
|
* We deliberately use ONLY the footer activity hints (`esc to interrupt`,
|
|
@@ -174,8 +249,8 @@ export declare class StuckInputSentinel {
|
|
|
174
249
|
isPaneActivelyWorking(pane: string): boolean;
|
|
175
250
|
/** Heuristic: lines that look like Claude Code status/separator content
|
|
176
251
|
* rather than wrapped input. Used to avoid mistaking a separator for
|
|
177
|
-
* wrapped prompt text in
|
|
178
|
-
private isStatusLine;
|
|
252
|
+
* wrapped prompt text in locatePromptText. */
|
|
253
|
+
private static isStatusLine;
|
|
179
254
|
/** Map attempt index → human-readable action name (matches
|
|
180
255
|
* SessionManager.fireStuckInputRecovery's escalation). */
|
|
181
256
|
static actionForAttempt(attempt: number): StuckInputEvent['action'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StuckInputSentinel.d.ts","sourceRoot":"","sources":["../../src/core/StuckInputSentinel.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"StuckInputSentinel.d.ts","sourceRoot":"","sources":["../../src/core/StuckInputSentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAExF,MAAM,WAAW,yBAAyB;IACxC,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;0CAEsC;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;wEACoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;0EAGsE;IACtE,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC;;4EAEwE;IACxE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;4DACwD;IACxD,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,0EAA0E;AAC1E,UAAU,kBAAkB;IAC1B,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB;;oBAEgB;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB;;mCAE+B;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;8CAI0C;IAC1C,aAAa,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9D,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,mBAAmB,GACzC,kBAAkB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,kBAAkB,GAClF,iBAAiB,GAAG,0BAA0B,CAAC;IACnD,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IACpF,wEAAwE;IACxE,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;AAkEvE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,sBAAsB,CAoB7G;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAEhD,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IAEtE,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,uBAAuB,CAAS;IACxC,mEAAmE;IACnE,OAAO,CAAC,WAAW,CAAK;gBAEZ,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,yBAAyB;IAa3E,KAAK,IAAI,IAAI;IAiBb,IAAI,IAAI,IAAI;IAOZ;;;;;;OAMG;IACH,IAAI,IAAI,IAAI;IA2BZ,+DAA+D;IAC/D,OAAO,CAAC,eAAe;IAqJvB;;;6EAGyE;IACzE,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI9C;;;;;;;OAOG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA2BjG;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAWpC;;;;;;;;;;;;;;;;;;;;;iCAqB6B;IAC7B,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK5C;;mDAE+C;IAC/C,OAAO,CAAC,MAAM,CAAC,YAAY;IAU3B;+DAC2D;IAC3D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC;IAMnE;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,gBAAgB;IAwExB,0DAA0D;IAC1D,OAAO,CAAC,WAAW;IAUnB,4DAA4D;IAC5D,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIrE,8CAA8C;IAC9C,YAAY,IAAI,IAAI;CAIrB"}
|
|
@@ -27,8 +27,32 @@
|
|
|
27
27
|
* 4. Skip if the prompt text just appeared (give verifyInjection its 6.5s
|
|
28
28
|
* window to handle the common race first).
|
|
29
29
|
* 5. If the same prompt text persists across MIN_TICKS_BEFORE_FIRE ticks
|
|
30
|
-
* without changing AND no activity indicator,
|
|
31
|
-
*
|
|
30
|
+
* without changing AND no activity indicator, verify the text is REAL
|
|
31
|
+
* input (see the ghost-text exclusion below), then fire one recovery
|
|
32
|
+
* action, then escalate next tick if still stuck.
|
|
33
|
+
*
|
|
34
|
+
* Ghost-text exclusion (F2, live finding 2026-07-02): Claude Code renders a
|
|
35
|
+
* model-generated prompt SUGGESTION ("ghost text") in the composer — dim-styled
|
|
36
|
+
* (SGR 2, e.g. `ESC[0;2m`), never typed by anyone. In a plain capture-pane
|
|
37
|
+
* frame the dim attribute is stripped, so ghost text is byte-identical to real
|
|
38
|
+
* stuck input, and the sentinel fired 4 Enter presses at a fabricated
|
|
39
|
+
* instruction during the 2026-07-02 live run (harmless today only because
|
|
40
|
+
* Enter does not accept ghost text — one harness UX change away from a
|
|
41
|
+
* watchdog auto-submitting a model-fabricated instruction). The invariant this
|
|
42
|
+
* gate encodes: THE SENTINEL NEVER AUTO-SUBMITS TEXT THE USER (OR AN
|
|
43
|
+
* AUTHORIZED INJECTOR) DID NOT ACTUALLY TYPE. Before any keypress on the
|
|
44
|
+
* generic `❯`-prompt path, the sentinel re-captures the pane WITH ANSI escapes
|
|
45
|
+
* (`capture-pane -e`) and classifies the prompt text's presentation:
|
|
46
|
+
* - 'real' — rendered at normal intensity → proceed with recovery.
|
|
47
|
+
* - 'ghost' — rendered entirely dim → NEVER press keys at it; the
|
|
48
|
+
* record is exhausted until the prompt text changes.
|
|
49
|
+
* - 'inconclusive' — ANSI capture failed, frames raced, or mixed styling →
|
|
50
|
+
* fail toward NOT pressing keys this tick (log-only);
|
|
51
|
+
* re-assessed next tick.
|
|
52
|
+
* The codex marker path is NOT gated: it only ever fires when the exact marker
|
|
53
|
+
* text we ourselves injected is stuck at the prompt, so the invariant holds
|
|
54
|
+
* there by construction (and codex's dim placeholder-hint is already excluded
|
|
55
|
+
* by marker matching).
|
|
32
56
|
*
|
|
33
57
|
* Bounded escalation matches SessionManager.fireStuckInputRecovery:
|
|
34
58
|
* attempt 0,1 → Enter attempt 2 → C-m attempt 3 → Enter+sleep+Enter
|
|
@@ -63,6 +87,116 @@ const DEFAULT_MAX_ATTEMPTS = 4;
|
|
|
63
87
|
* SessionManager.verifyInjection, and CompactionSentinel all agree on the
|
|
64
88
|
* single canonical "mid-turn footer" tell. */
|
|
65
89
|
const ACTIVITY_INDICATORS = CLAUDE_WORKING_INDICATORS;
|
|
90
|
+
/**
|
|
91
|
+
* Decode a `capture-pane -e` frame into visible lines plus a per-character
|
|
92
|
+
* dim-attribute mask. Tracks SGR state across the whole frame (tmux may or may
|
|
93
|
+
* not re-emit attributes at line starts). Handles the extended-color forms
|
|
94
|
+
* (`38;5;n`, `38;2;r;g;b` and their colon-subparam variants) so a truecolor
|
|
95
|
+
* component value of `2` is never misread as the dim attribute.
|
|
96
|
+
*/
|
|
97
|
+
function parseAnsiDimLines(ansi) {
|
|
98
|
+
const lines = [{ text: '', dim: [] }];
|
|
99
|
+
let dimActive = false;
|
|
100
|
+
let i = 0;
|
|
101
|
+
while (i < ansi.length) {
|
|
102
|
+
const ch = ansi[i];
|
|
103
|
+
if (ch === '\x1b') {
|
|
104
|
+
const csi = /^\x1b\[([0-9;:]*)([@-~])/.exec(ansi.slice(i, i + 64));
|
|
105
|
+
if (csi) {
|
|
106
|
+
if (csi[2] === 'm') {
|
|
107
|
+
const params = csi[1] === '' ? ['0'] : csi[1].split(';');
|
|
108
|
+
let j = 0;
|
|
109
|
+
while (j < params.length) {
|
|
110
|
+
const head = params[j].split(':')[0];
|
|
111
|
+
if (head === '38' || head === '48' || head === '58') {
|
|
112
|
+
// Extended color. Colon-subparam form (38:2:r:g:b) is fully
|
|
113
|
+
// contained in this token; semicolon form consumes the mode +
|
|
114
|
+
// component params (5;n or 2;r;g;b) without interpreting them.
|
|
115
|
+
if (!params[j].includes(':')) {
|
|
116
|
+
const mode = params[j + 1];
|
|
117
|
+
if (mode === '5')
|
|
118
|
+
j += 2;
|
|
119
|
+
else if (mode === '2')
|
|
120
|
+
j += 4;
|
|
121
|
+
}
|
|
122
|
+
j += 1;
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (head === '' || head === '0')
|
|
126
|
+
dimActive = false; // full reset
|
|
127
|
+
else if (head === '2')
|
|
128
|
+
dimActive = true; // dim/faint on
|
|
129
|
+
else if (head === '22')
|
|
130
|
+
dimActive = false; // normal intensity
|
|
131
|
+
j += 1;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
i += csi[0].length;
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
// Non-CSI escape — skip ESC + the next byte conservatively.
|
|
138
|
+
i += 2;
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (ch === '\n') {
|
|
142
|
+
lines.push({ text: '', dim: [] });
|
|
143
|
+
i += 1;
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
if (ch === '\r') {
|
|
147
|
+
i += 1;
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
const line = lines[lines.length - 1];
|
|
151
|
+
line.text += ch;
|
|
152
|
+
line.dim.push(dimActive);
|
|
153
|
+
i += 1;
|
|
154
|
+
}
|
|
155
|
+
return lines;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Classify how the stuck prompt text is rendered, from an ANSI (`-e`) capture
|
|
159
|
+
* of the SAME pane. `expectedText` is the stuck text extracted from the plain
|
|
160
|
+
* capture; when the ANSI frame's own prompt extraction does not reproduce it
|
|
161
|
+
* exactly (the two captures raced, or the frame has no readable prompt), the
|
|
162
|
+
* verdict is 'inconclusive' — never a guess.
|
|
163
|
+
*
|
|
164
|
+
* Grounded in the 2026-07-02 live F2 evidence: Claude Code's ghost suggestion
|
|
165
|
+
* rendered with `ESC[0;2m` (dim). Real typed/injected input renders at normal
|
|
166
|
+
* intensity. Only the dim attribute (SGR 2) is used as the ghost tell —
|
|
167
|
+
* color-based heuristics were deliberately NOT added (a gray-but-normal-
|
|
168
|
+
* intensity theme must not disable genuine recovery).
|
|
169
|
+
*
|
|
170
|
+
* Exported for unit tests; the live path goes through evaluateSession.
|
|
171
|
+
*/
|
|
172
|
+
export function classifyPromptTextPresentation(ansiPane, expectedText) {
|
|
173
|
+
try {
|
|
174
|
+
const parsed = parseAnsiDimLines(ansiPane);
|
|
175
|
+
const located = StuckInputSentinel.locatePromptText(parsed.map(l => l.text));
|
|
176
|
+
if (!located || located.text !== expectedText)
|
|
177
|
+
return 'inconclusive';
|
|
178
|
+
const dimMask = parsed[located.lineIdx].dim;
|
|
179
|
+
let sawDim = false;
|
|
180
|
+
let sawNormal = false;
|
|
181
|
+
for (let k = 0; k < located.text.length; k++) {
|
|
182
|
+
const ch = located.text[k];
|
|
183
|
+
if (ch === ' ' || ch === '\t')
|
|
184
|
+
continue; // whitespace carries no styling signal
|
|
185
|
+
if (dimMask[located.start + k])
|
|
186
|
+
sawDim = true;
|
|
187
|
+
else
|
|
188
|
+
sawNormal = true;
|
|
189
|
+
}
|
|
190
|
+
if (sawDim && !sawNormal)
|
|
191
|
+
return 'ghost';
|
|
192
|
+
if (sawNormal && !sawDim)
|
|
193
|
+
return 'real';
|
|
194
|
+
return 'inconclusive'; // mixed styling (or no styleable chars) — do not guess
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
return 'inconclusive'; // any parse failure fails toward NOT pressing keys
|
|
198
|
+
}
|
|
199
|
+
}
|
|
66
200
|
export class StuckInputSentinel {
|
|
67
201
|
sessionManager;
|
|
68
202
|
tickMs;
|
|
@@ -230,6 +364,37 @@ export class StuckInputSentinel {
|
|
|
230
364
|
this.handleEscalation(existing, tmuxSession, stuckText, now);
|
|
231
365
|
return;
|
|
232
366
|
}
|
|
367
|
+
// F2 ghost-text exclusion: before pressing ANY key on the generic
|
|
368
|
+
// `❯`-prompt path, verify the stuck text is REAL input (typed or injected)
|
|
369
|
+
// and not the harness's dim-rendered, model-generated composer suggestion.
|
|
370
|
+
// The codex marker path is exempt by construction — it only fires when the
|
|
371
|
+
// exact text WE injected is stuck at the prompt (see the file header).
|
|
372
|
+
// Escalation (the maxAttempts branch above) is unreachable for ghost text:
|
|
373
|
+
// attempts only accrue through this gate, so four 'real' verdicts must
|
|
374
|
+
// precede any tier-C request.
|
|
375
|
+
if (!codexMarker) {
|
|
376
|
+
const presentation = this.assessPromptTextPresentation(tmuxSession, stuckText);
|
|
377
|
+
if (presentation !== 'real') {
|
|
378
|
+
// 'ghost' is sticky: the suggestion is never pressable; a prompt-text
|
|
379
|
+
// change resets the record. 'inconclusive' is transient: re-assess
|
|
380
|
+
// next tick (a raced capture self-heals; a persistent failure keeps
|
|
381
|
+
// failing toward NOT pressing keys).
|
|
382
|
+
if (presentation === 'ghost')
|
|
383
|
+
existing.exhausted = true;
|
|
384
|
+
if (!existing.ghostSkipLogged) {
|
|
385
|
+
existing.ghostSkipLogged = true;
|
|
386
|
+
this.recordEvent({
|
|
387
|
+
ts: new Date(now).toISOString(),
|
|
388
|
+
session: tmuxSession,
|
|
389
|
+
promptText: stuckText.slice(0, 200),
|
|
390
|
+
attempt: existing.attempts,
|
|
391
|
+
action: presentation === 'ghost' ? 'ghost-text-skip' : 'ghost-check-inconclusive',
|
|
392
|
+
outcome: 'skipped',
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
233
398
|
// Fire one recovery action and record it.
|
|
234
399
|
const attempt = existing.attempts;
|
|
235
400
|
const action = StuckInputSentinel.actionForAttempt(attempt);
|
|
@@ -268,26 +433,61 @@ export class StuckInputSentinel {
|
|
|
268
433
|
*
|
|
269
434
|
* Public for unit tests; the live tick goes through evaluateSession. */
|
|
270
435
|
extractPromptText(pane) {
|
|
271
|
-
|
|
436
|
+
return StuckInputSentinel.locatePromptText(pane.split('\n'))?.text ?? null;
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Locate the stuck prompt text within the pane's lines: which line holds it,
|
|
440
|
+
* the column it starts at, and the trimmed text. This is extractPromptText's
|
|
441
|
+
* engine, factored out so the ghost-text classifier can map the SAME
|
|
442
|
+
* located characters onto an ANSI capture's per-character dim mask —
|
|
443
|
+
* guaranteeing the styling verdict is about exactly the text the plain-frame
|
|
444
|
+
* extraction saw, never a different region of the pane.
|
|
445
|
+
*/
|
|
446
|
+
static locatePromptText(lines) {
|
|
272
447
|
for (let i = lines.length - 1; i >= 0; i--) {
|
|
273
448
|
const line = lines[i];
|
|
274
449
|
if (!line || !line.includes('❯'))
|
|
275
450
|
continue;
|
|
276
451
|
// Take everything after the LAST ❯ on the line, trimmed.
|
|
277
452
|
const idx = line.lastIndexOf('❯');
|
|
278
|
-
const after = line.slice(idx + 1)
|
|
279
|
-
|
|
280
|
-
|
|
453
|
+
const after = line.slice(idx + 1);
|
|
454
|
+
const text = after.trim();
|
|
455
|
+
if (text.length > 0) {
|
|
456
|
+
const start = idx + 1 + (after.length - after.trimStart().length);
|
|
457
|
+
return { lineIdx: i, start, text };
|
|
458
|
+
}
|
|
281
459
|
// Empty prompt line — look at the immediately-following line for
|
|
282
460
|
// wrapped multi-line input. If that's also empty, no stuck text.
|
|
283
461
|
const next = lines[i + 1];
|
|
284
|
-
if (next && next.trim().length > 0 && !
|
|
285
|
-
return
|
|
462
|
+
if (next && next.trim().length > 0 && !StuckInputSentinel.isStatusLine(next)) {
|
|
463
|
+
return {
|
|
464
|
+
lineIdx: i + 1,
|
|
465
|
+
start: next.length - next.trimStart().length,
|
|
466
|
+
text: next.trim(),
|
|
467
|
+
};
|
|
286
468
|
}
|
|
287
469
|
return null;
|
|
288
470
|
}
|
|
289
471
|
return null;
|
|
290
472
|
}
|
|
473
|
+
/**
|
|
474
|
+
* F2 ghost-text gate: capture the SAME pane WITH ANSI escapes and classify
|
|
475
|
+
* how the stuck text is rendered. Every failure path — no ANSI capture
|
|
476
|
+
* support, capture returned null, capture threw — resolves to
|
|
477
|
+
* 'inconclusive', which the caller treats as "do NOT press keys this tick".
|
|
478
|
+
*/
|
|
479
|
+
assessPromptTextPresentation(tmuxSession, expectedText) {
|
|
480
|
+
let ansiPane;
|
|
481
|
+
try {
|
|
482
|
+
ansiPane = this.sessionManager.captureOutputAnsi(tmuxSession, 30);
|
|
483
|
+
}
|
|
484
|
+
catch {
|
|
485
|
+
return 'inconclusive';
|
|
486
|
+
}
|
|
487
|
+
if (!ansiPane)
|
|
488
|
+
return 'inconclusive';
|
|
489
|
+
return classifyPromptTextPresentation(ansiPane, expectedText);
|
|
490
|
+
}
|
|
291
491
|
/** True if the pane currently shows a Claude Code "working" indicator.
|
|
292
492
|
*
|
|
293
493
|
* We deliberately use ONLY the footer activity hints (`esc to interrupt`,
|
|
@@ -317,8 +517,8 @@ export class StuckInputSentinel {
|
|
|
317
517
|
}
|
|
318
518
|
/** Heuristic: lines that look like Claude Code status/separator content
|
|
319
519
|
* rather than wrapped input. Used to avoid mistaking a separator for
|
|
320
|
-
* wrapped prompt text in
|
|
321
|
-
isStatusLine(line) {
|
|
520
|
+
* wrapped prompt text in locatePromptText. */
|
|
521
|
+
static isStatusLine(line) {
|
|
322
522
|
const t = line.trim();
|
|
323
523
|
if (!t)
|
|
324
524
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StuckInputSentinel.js","sourceRoot":"","sources":["../../src/core/StuckInputSentinel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StuckInputSentinel.js","sourceRoot":"","sources":["../../src/core/StuckInputSentinel.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,37 @@ import { type LogEntry } from '../shared/MessageLogger.js';
|
|
|
23
23
|
import type { SlackMessage, InteractionPayload, SlackWorkspaceMode, SlackRespondMode } from './types.js';
|
|
24
24
|
import type { SlackPermissionObserver } from '../../permissions/SlackPermissionObserver.js';
|
|
25
25
|
import type { AmbientContributionGate } from '../../permissions/AmbientContributionGate.js';
|
|
26
|
+
/**
|
|
27
|
+
* Synthetic file id used by the startup self-verify's files.info probe.
|
|
28
|
+
* WELL-FORMED (Slack file ids are `F` + uppercase alphanumerics) but
|
|
29
|
+
* guaranteed nonexistent, so a healthy workspace answers `file_not_found`.
|
|
30
|
+
* The previous probe id (`F000SELFTEST`) tripped Slack's argument validation
|
|
31
|
+
* instead (`invalid_arguments`), which the old classification counted as an
|
|
32
|
+
* unexpected FAILURE — a healthy adapter red-flagged itself at every boot
|
|
33
|
+
* (live server.log 2026-07-02 18:12:27; slack-ai-employee-audit §1).
|
|
34
|
+
*/
|
|
35
|
+
export declare const FILES_INFO_PROBE_ID = "F0000000000";
|
|
36
|
+
/**
|
|
37
|
+
* Classify the outcome of the files.info self-verify probe.
|
|
38
|
+
*
|
|
39
|
+
* @param probeError null when the call succeeded (ok:true); otherwise the
|
|
40
|
+
* Slack error code (SlackApiError.slackError) or error message.
|
|
41
|
+
*
|
|
42
|
+
* The check's job is to prove the files.info METHOD — the one the snippet/Post
|
|
43
|
+
* content path depends on (Method 1) — is reachable and responsive with our
|
|
44
|
+
* token, beyond the scope header claiming files:read. Both `file_not_found`
|
|
45
|
+
* (the probe id passed argument validation and reached lookup) and
|
|
46
|
+
* `invalid_arguments` (Slack's server-side validator rejected the synthetic id
|
|
47
|
+
* before lookup) prove exactly that: transport, auth, and method dispatch all
|
|
48
|
+
* answered. Neither is a capability failure — a real file id can't produce
|
|
49
|
+
* either. `missing_scope` and anything else remain failures.
|
|
50
|
+
*
|
|
51
|
+
* Exported for unit tests; _selfVerify is the production caller.
|
|
52
|
+
*/
|
|
53
|
+
export declare function classifyFilesInfoSelfTest(probeError: string | null): {
|
|
54
|
+
status: 'pass' | 'fail';
|
|
55
|
+
detail: string;
|
|
56
|
+
};
|
|
26
57
|
export declare class SlackAdapter implements MessagingAdapter {
|
|
27
58
|
readonly platform = "slack";
|
|
28
59
|
private config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackAdapter.d.ts","sourceRoot":"","sources":["../../../src/messaging/slack/SlackAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"SlackAdapter.d.ts","sourceRoot":"","sources":["../../../src/messaging/slack/SlackAdapter.ts"],"names":[],"mappings":"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"}
|