instar 1.3.664 → 1.3.666

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.
Files changed (43) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +52 -0
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/IdleErrorClassifier.d.ts +44 -0
  5. package/dist/core/IdleErrorClassifier.d.ts.map +1 -0
  6. package/dist/core/IdleErrorClassifier.js +87 -0
  7. package/dist/core/IdleErrorClassifier.js.map +1 -0
  8. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  9. package/dist/core/PostUpdateMigrator.js +9 -0
  10. package/dist/core/PostUpdateMigrator.js.map +1 -1
  11. package/dist/core/SessionManager.d.ts +19 -0
  12. package/dist/core/SessionManager.d.ts.map +1 -1
  13. package/dist/core/SessionManager.js +71 -3
  14. package/dist/core/SessionManager.js.map +1 -1
  15. package/dist/core/paneTail.d.ts +38 -0
  16. package/dist/core/paneTail.d.ts.map +1 -0
  17. package/dist/core/paneTail.js +64 -0
  18. package/dist/core/paneTail.js.map +1 -0
  19. package/dist/core/types.d.ts +11 -0
  20. package/dist/core/types.d.ts.map +1 -1
  21. package/dist/core/types.js.map +1 -1
  22. package/dist/monitoring/PermissionPromptAutoResolver.d.ts +215 -0
  23. package/dist/monitoring/PermissionPromptAutoResolver.d.ts.map +1 -0
  24. package/dist/monitoring/PermissionPromptAutoResolver.js +475 -0
  25. package/dist/monitoring/PermissionPromptAutoResolver.js.map +1 -0
  26. package/dist/monitoring/PresenceProxy.d.ts.map +1 -1
  27. package/dist/monitoring/PresenceProxy.js +18 -0
  28. package/dist/monitoring/PresenceProxy.js.map +1 -1
  29. package/dist/monitoring/StuckSignatureClassifier.d.ts +1 -1
  30. package/dist/monitoring/StuckSignatureClassifier.d.ts.map +1 -1
  31. package/dist/monitoring/StuckSignatureClassifier.js +29 -3
  32. package/dist/monitoring/StuckSignatureClassifier.js.map +1 -1
  33. package/dist/monitoring/guardManifest.d.ts.map +1 -1
  34. package/dist/monitoring/guardManifest.js +15 -0
  35. package/dist/monitoring/guardManifest.js.map +1 -1
  36. package/dist/monitoring/guardPosture.d.ts.map +1 -1
  37. package/dist/monitoring/guardPosture.js +19 -0
  38. package/dist/monitoring/guardPosture.js.map +1 -1
  39. package/package.json +1 -1
  40. package/scripts/lint-guard-manifest.js +1 -0
  41. package/src/data/builtin-manifest.json +20 -20
  42. package/upgrades/1.3.666.md +131 -0
  43. package/upgrades/side-effects/idle-error-tailgate-corroboration.md +65 -0
@@ -0,0 +1,475 @@
1
+ /**
2
+ * PermissionPromptAutoResolver — the always-on, unconditional SAFETY FLOOR that
3
+ * keeps Instar from being silently wedged on an agent-framework approval prompt.
4
+ *
5
+ * Spec: docs/specs/framework-permission-prompt-robustness.md
6
+ * Convergence: docs/specs/reports/framework-permission-prompt-robustness-convergence.md
7
+ *
8
+ * The bug it closes (Claude Code 2.1.176–177): a hardcoded Bash safety classifier
9
+ * pauses a session on a terminal Y/N approval prompt (e.g. "Compound command
10
+ * contains cd with output redirection — manual approval required … Do you want to
11
+ * proceed? ❯ 1. Yes / 2. No"). It runs BEFORE all permission rules and hooks, so
12
+ * `--dangerously-skip-permissions` cannot pre-answer it. A remote agent (Telegram /
13
+ * dashboard) cannot press a terminal key, so the session freezes forever while still
14
+ * LOOKING busy — a third liveness state every existing watcher mis-reads.
15
+ *
16
+ * The operator directive that governs the design: a low-level command/tool approval
17
+ * prompt is NEVER a user decision — the agent runs operator-owned sessions with full
18
+ * machine access. So a prompt-parked session is a DEFECT to auto-clear and detect,
19
+ * never a "waiting for operator" state.
20
+ *
21
+ * TWO PURE DETECTORS + a stateful driver:
22
+ * - Layer 2 (`detectApprovalPrompt`, LOAD-BEARING): matches a registered approval
23
+ * signature with the ❯ selector cursor sitting on an approve option, at the
24
+ * genuine bottom of a non-generating pane → the driver sends `Enter` (confirm the
25
+ * highlighted default). Bar-raising MITIGATION, not closure — a text capture
26
+ * cannot perfectly tell TUI chrome from displayed content, so the residual is
27
+ * bounded by Enter-only + re-capture-before-send + a per-episode attempt cap + a
28
+ * terminal defect.
29
+ * - Layer 3 (`detectPersistingMenu`, prose-AGNOSTIC observability): matches ANY
30
+ * persisting glyph-led numbered menu the resolver did NOT auto-clear (❯-not-on-
31
+ * approve, prose-drift, an open non-approval picker) → after a persistence
32
+ * threshold it raises the SAME terminal defect. This is what makes "never
33
+ * silently stranded" TRUE for the cases Layer 2 declines, and doubles as the
34
+ * prompt-string drift detector.
35
+ *
36
+ * Signal-vs-authority: the detectors are pure. The ONLY actuation is `sendKey(…,
37
+ * 'Enter')` (a benign empty submit on a false match) and `raiseDefect` (an Attention
38
+ * item). No new blocking authority. All I/O is injected (DI), so the detectors +
39
+ * state machine are fully unit-testable.
40
+ *
41
+ * Privacy: the audit logs only the STATIC registry pattern NAMES and a one-way
42
+ * fingerprint — never the raw tail. Layer 3's dedup key is a one-way digest of the
43
+ * option labels — the labels themselves are never logged.
44
+ */
45
+ import { createHash } from 'node:crypto';
46
+ import { leadGlyphsOf, stripLineLead } from '../core/paneTail.js';
47
+ // ─── Constants (exported per spec — the bounded-state + anti-hammer dials) ───────
48
+ /** Per-episode consecutive un-cleared sends before Layer 2 declares Terminal. */
49
+ export const MAX_ATTEMPTS = 3;
50
+ /** Layer-3 consecutive matched ticks before the persisting-menu Terminal defect. */
51
+ export const LAYER3_PERSIST_TICKS = 4;
52
+ /** Per-entry staleness TTL — neither state map can grow with uptime (Bounded Accumulation). */
53
+ export const STATE_TTL_MS = 30 * 60 * 1000;
54
+ /** How many trailing non-empty lines count as "the genuine bottom" of the menu. */
55
+ const MENU_BOTTOM_WINDOW = 6;
56
+ /** The U+276F selector cursor glyph (❯) Claude Code paints on the focused option. */
57
+ const SELECTOR_GLYPH = '❯';
58
+ /**
59
+ * Split a raw tmux tail capture into `PaneTailLine`s — dropping whitespace-only
60
+ * lines (like `liveTail`), mapping each remaining RAW line → its lead-stripped
61
+ * `text` + its `leadGlyphs`. Pure.
62
+ */
63
+ export function toPaneTailLines(rawTail) {
64
+ if (!rawTail)
65
+ return [];
66
+ const out = [];
67
+ for (const line of rawTail.split('\n')) {
68
+ if (!line.trim())
69
+ continue; // drop empties like liveTail
70
+ out.push({ text: stripLineLead(line), leadGlyphs: leadGlyphsOf(line) });
71
+ }
72
+ return out;
73
+ }
74
+ /**
75
+ * Approval-prompt signatures, keyed by framework. Only `claude-code` is VERIFIED at
76
+ * ship; codex/gemini entries are deliberately OMITTED — off until a live prompt is
77
+ * characterized (Decision 10). The resolver tries EVERY registered signature each
78
+ * tick (it does not depend on a session's framework field, undefined on legacy
79
+ * records); a Claude prompt won't match a Codex pattern, so trying all is safe.
80
+ *
81
+ * `matchedPatternNames` (what the audit + fingerprint use) are these STATIC `name`s —
82
+ * never matched tail text — so neither artifact can ever carry pane-derived bytes.
83
+ */
84
+ export const APPROVAL_PROMPT_SIGNATURES = {
85
+ 'claude-code': {
86
+ prosePatterns: [
87
+ { name: 'manual-approval', pattern: /manual approval required/i },
88
+ { name: 'path-resolution-bypass', pattern: /path resolution bypass/i },
89
+ {
90
+ name: 'compound-cd-redirect',
91
+ pattern: /Compound command contains cd with output redirection/i,
92
+ },
93
+ { name: 'do-you-want-to-proceed', pattern: /Do you want to proceed\?/i },
94
+ ],
95
+ approveLabels: /^(yes|proceed|allow|continue)\b/i,
96
+ },
97
+ // 'codex-cli': { prosePatterns: [ /* off until a live prompt is characterized */ ], approveLabels: /…/ },
98
+ // 'gemini-cli': { prosePatterns: [ /* off until a live prompt is characterized */ ], approveLabels: /…/ },
99
+ };
100
+ // ─── Pure structural helpers ─────────────────────────────────────────────────────
101
+ const NUMBERED_OPTION_RE = /^\s*\d+\.\s/;
102
+ const OPTION_PREFIX_RE = /^\s*\d+\.\s*/;
103
+ const AFFORDANCE_ESC_RE = /Esc to cancel/i;
104
+ const AFFORDANCE_PROCEED_RE = /Do you want to proceed/i;
105
+ const ANSI_SGR_RE = /\x1b\[[0-9;]*m/g;
106
+ function sha256(input) {
107
+ return createHash('sha256').update(input, 'utf8').digest('hex');
108
+ }
109
+ /** True iff the leadGlyphs run contains the ❯ selector cursor specifically. */
110
+ function hasSelectorGlyph(leadGlyphs) {
111
+ return leadGlyphs.includes(SELECTOR_GLYPH);
112
+ }
113
+ /**
114
+ * True iff the leadGlyphs run contains ANY TUI lead glyph. `leadGlyphs` is the
115
+ * `LEAD_RE` run (ANSI-SGR | whitespace | lead-glyph); strip the ANSI + whitespace
116
+ * and anything remaining must be a lead glyph. (Avoids depending on paneTail's
117
+ * private glyph class.)
118
+ */
119
+ function hasAnyLeadGlyph(leadGlyphs) {
120
+ return leadGlyphs.replace(ANSI_SGR_RE, '').replace(/\s+/g, '').length > 0;
121
+ }
122
+ /** A line that is part of a menu's bottom structure (option line OR affordance). */
123
+ function isMenuStructureLine(l) {
124
+ return (NUMBERED_OPTION_RE.test(l.text) ||
125
+ AFFORDANCE_ESC_RE.test(l.text) ||
126
+ AFFORDANCE_PROCEED_RE.test(l.text));
127
+ }
128
+ function joinedText(tail) {
129
+ return tail.map((l) => l.text).join('\n');
130
+ }
131
+ /**
132
+ * "Genuine bottom" gate shared by both detectors: the LAST non-empty line is itself
133
+ * a menu-structure line (so there is no live idle input box rendered BELOW the menu),
134
+ * and the triggering option line sits within the last `MENU_BOTTOM_WINDOW` lines.
135
+ */
136
+ function lastLineIsMenuStructure(tail) {
137
+ const last = tail[tail.length - 1];
138
+ return !!last && isMenuStructureLine(last);
139
+ }
140
+ function withinBottomWindow(tail, index) {
141
+ return index >= tail.length - MENU_BOTTOM_WINDOW;
142
+ }
143
+ // ─── Layer 2 — load-bearing approval detector ────────────────────────────────────
144
+ /**
145
+ * Pure Layer-2 detector. Returns a match ONLY when ALL hold:
146
+ * 1. ≥2 DISTINCT named prose patterns from the framework's registry matched;
147
+ * 2. a line whose `leadGlyphs` contains ❯ AND whose `text` is `N.` followed by an
148
+ * approve label (the selector cursor is ON an approve option);
149
+ * 3. the menu is at the genuine bottom (no idle input box below, option line within
150
+ * the bottom window) AND the session is not generating.
151
+ *
152
+ * Honest residual (spec security#1): a tmux text capture cannot perfectly prove a
153
+ * `❯ 1. Yes` is TUI chrome vs displayed content. Requirements 1–3 substantially raise
154
+ * the bar; the residual is bounded by the Enter-only keystroke + re-capture + attempt
155
+ * cap + Terminal defect in the driver, never by this detector pretending closure.
156
+ */
157
+ export function detectApprovalPrompt(tail, framework, isGenerating) {
158
+ if (isGenerating)
159
+ return null;
160
+ if (!tail.length)
161
+ return null;
162
+ const sig = APPROVAL_PROMPT_SIGNATURES[framework];
163
+ if (!sig)
164
+ return null;
165
+ // (1) ≥2 DISTINCT named prose patterns.
166
+ const joined = joinedText(tail);
167
+ const matched = new Set();
168
+ for (const p of sig.prosePatterns) {
169
+ if (p.pattern.test(joined))
170
+ matched.add(p.name);
171
+ }
172
+ if (matched.size < 2)
173
+ return null;
174
+ // (2) ❯ selector cursor on an approve option.
175
+ let approveIndex = -1;
176
+ for (let i = 0; i < tail.length; i++) {
177
+ const l = tail[i];
178
+ if (!hasSelectorGlyph(l.leadGlyphs))
179
+ continue;
180
+ const m = OPTION_PREFIX_RE.exec(l.text);
181
+ if (!m)
182
+ continue;
183
+ const rest = l.text.slice(m[0].length);
184
+ if (sig.approveLabels.test(rest)) {
185
+ approveIndex = i;
186
+ break;
187
+ }
188
+ }
189
+ if (approveIndex < 0)
190
+ return null;
191
+ // (3) genuine bottom + not generating (generating handled at the top).
192
+ if (!withinBottomWindow(tail, approveIndex))
193
+ return null;
194
+ if (!lastLineIsMenuStructure(tail))
195
+ return null;
196
+ const matchedPatternNames = [...matched].sort();
197
+ const stableFingerprint = sha256(framework + '|' + matchedPatternNames.join(','));
198
+ return { framework, matchedPatternNames, approveKey: 'Enter', stableFingerprint };
199
+ }
200
+ // ─── Layer 3 — prose-AGNOSTIC persisting-menu detector ───────────────────────────
201
+ /**
202
+ * Pure Layer-3 detector. Prose-agnostic by design (so it catches drift): matches
203
+ * purely on STRUCTURE — (i) a glyph-led numbered option line, (ii) a generic
204
+ * blocking affordance (`Esc to cancel` / `Do you want to proceed` / ≥2 numbered
205
+ * options), (iii) genuine bottom, (iv) not generating. Deliberately matches the
206
+ * cases Layer 2 declines (❯ not on an approve option, prose-drift) AS WELL AS a
207
+ * genuinely open non-approval picker (an accepted, benign surface — something IS
208
+ * waiting for input the agent cannot self-answer, worth one notice).
209
+ */
210
+ export function detectPersistingMenu(tail, isGenerating) {
211
+ if (isGenerating)
212
+ return null;
213
+ if (!tail.length)
214
+ return null;
215
+ // The full option set (for the structure key) + the glyph-led subset (the trigger).
216
+ const numberedLines = [];
217
+ let glyphLedNumberedInWindow = false;
218
+ for (let i = 0; i < tail.length; i++) {
219
+ const l = tail[i];
220
+ if (!NUMBERED_OPTION_RE.test(l.text))
221
+ continue;
222
+ numberedLines.push(l);
223
+ if (hasAnyLeadGlyph(l.leadGlyphs) && withinBottomWindow(tail, i)) {
224
+ glyphLedNumberedInWindow = true;
225
+ }
226
+ }
227
+ // (i) at least one glyph-led numbered option line near the bottom.
228
+ if (!glyphLedNumberedInWindow)
229
+ return null;
230
+ // (ii) a generic blocking affordance.
231
+ const joined = joinedText(tail);
232
+ const hasAffordance = AFFORDANCE_ESC_RE.test(joined) ||
233
+ AFFORDANCE_PROCEED_RE.test(joined) ||
234
+ numberedLines.length >= 2;
235
+ if (!hasAffordance)
236
+ return null;
237
+ // (iii) genuine bottom.
238
+ if (!lastLineIsMenuStructure(tail))
239
+ return null;
240
+ const optionLabels = numberedLines.map((l) => l.text).sort();
241
+ return { optionLabels };
242
+ }
243
+ const KEY_SEP = '';
244
+ // ─── The driver ──────────────────────────────────────────────────────────────────
245
+ export class PermissionPromptAutoResolver {
246
+ deps;
247
+ /** Layer-2 episode state, keyed (session, stableFingerprint). */
248
+ episodes = new Map();
249
+ /** Layer-3 persistence state, keyed (session, menuStructureKey). */
250
+ persistMenus = new Map();
251
+ /** Last evaluate/sweep wall-clock — the GuardRegistry liveness read. */
252
+ lastTickAt = 0;
253
+ constructor(deps) {
254
+ this.deps = deps;
255
+ }
256
+ /**
257
+ * Per-candidate tick logic for one running session. Captures nothing of its own —
258
+ * the caller passes the already-in-hand fuller tail. Layer 2 owns a tick it
259
+ * matched (returns before Layer 3), so the two can never double-raise one wedge.
260
+ */
261
+ async evaluate(session, fullTail) {
262
+ this.lastTickAt = this.deps.now();
263
+ if (this.deps.emergencyDisabled())
264
+ return;
265
+ const now = this.deps.now();
266
+ const generating = this.deps.isGenerating(joinedText(fullTail));
267
+ // Layer 2 — try every registered framework signature.
268
+ let approval = null;
269
+ for (const fw of Object.keys(APPROVAL_PROMPT_SIGNATURES)) {
270
+ const m = detectApprovalPrompt(fullTail, fw, generating);
271
+ if (m) {
272
+ approval = m;
273
+ break;
274
+ }
275
+ }
276
+ if (approval) {
277
+ const keepL2 = this.l2Key(session, approval.stableFingerprint);
278
+ this.reconcileSession(session, keepL2, null, now);
279
+ await this.handleLayer2(session, approval, now);
280
+ return; // Layer 2 owns this tick.
281
+ }
282
+ // Layer 3 — prose-agnostic persisting-menu detection.
283
+ const menu = detectPersistingMenu(fullTail, generating);
284
+ if (menu) {
285
+ const mk = this.menuStructureKey(session, menu.optionLabels);
286
+ const keepL3 = this.l3Key(session, mk);
287
+ this.reconcileSession(session, null, keepL3, now);
288
+ this.handleLayer3(session, mk, now);
289
+ return;
290
+ }
291
+ // Nothing matched → every prompt for this session cleared.
292
+ this.reconcileSession(session, null, null, now);
293
+ }
294
+ /**
295
+ * Evict every state entry for `session` EXCEPT the one active this tick (the
296
+ * reset-on-clear rule). An evicted Layer-2 entry that had un-cleared sends and was
297
+ * not already terminal audits `cleared` (the episode's prompt was answered/gone).
298
+ */
299
+ reconcileSession(session, keepL2Key, keepL3Key, now) {
300
+ const sessionPrefix = session + KEY_SEP;
301
+ for (const [k, st] of this.episodes) {
302
+ if (!k.startsWith(sessionPrefix))
303
+ continue;
304
+ if (k === keepL2Key)
305
+ continue;
306
+ if (st.consecutiveUnclearedSends > 0 && !st.terminalRaised) {
307
+ this.audit(now, st.session, st.framework, st.matchedPatternNames, null, st.fingerprint, st.consecutiveUnclearedSends, 'cleared');
308
+ }
309
+ this.episodes.delete(k);
310
+ }
311
+ for (const [k, st] of this.persistMenus) {
312
+ if (!k.startsWith(sessionPrefix))
313
+ continue;
314
+ if (k === keepL3Key)
315
+ continue;
316
+ this.persistMenus.delete(k);
317
+ }
318
+ }
319
+ async handleLayer2(session, approval, now) {
320
+ const key = this.l2Key(session, approval.stableFingerprint);
321
+ let st = this.episodes.get(key);
322
+ if (!st) {
323
+ st = {
324
+ session,
325
+ fingerprint: approval.stableFingerprint,
326
+ framework: approval.framework,
327
+ matchedPatternNames: approval.matchedPatternNames,
328
+ consecutiveUnclearedSends: 0,
329
+ createdAt: now,
330
+ lastTick: now,
331
+ terminalRaised: false,
332
+ };
333
+ this.episodes.set(key, st);
334
+ }
335
+ st.lastTick = now;
336
+ // Already surfaced as un-clearable → stop sending this episode.
337
+ if (st.terminalRaised)
338
+ return;
339
+ // MAX_ATTEMPTS consecutive un-cleared sends and the menu is STILL present → Terminal.
340
+ if (st.consecutiveUnclearedSends >= MAX_ATTEMPTS) {
341
+ st.terminalRaised = true;
342
+ this.deps.raiseDefect({
343
+ sessionName: session,
344
+ layer: 'layer2',
345
+ dedupKey: session + '|' + approval.stableFingerprint,
346
+ fingerprint: approval.stableFingerprint,
347
+ matchedPatternNames: approval.matchedPatternNames,
348
+ reason: 'a session is wedged on an approval prompt I could not auto-clear (the host may have changed its prompt UI) — it needs a look',
349
+ });
350
+ this.audit(now, session, approval.framework, approval.matchedPatternNames, null, approval.stableFingerprint, st.consecutiveUnclearedSends, 'persisted-terminal');
351
+ return;
352
+ }
353
+ // Re-capture-before-send (closes the capture→send race). Only send if the SAME
354
+ // fingerprint is still the live focused menu.
355
+ let recap = null;
356
+ try {
357
+ recap = await this.deps.reCaptureTail(session);
358
+ }
359
+ catch {
360
+ // @silent-fallback-ok — a re-capture failure is NOT a silent degradation: the
361
+ // send is aborted and the outcome is recorded as 'race-aborted' in the resolver
362
+ // audit (logs/permission-prompt-resolver.jsonl) below, not swallowed.
363
+ recap = null;
364
+ }
365
+ if (!recap) {
366
+ this.audit(now, session, approval.framework, approval.matchedPatternNames, null, approval.stableFingerprint, st.consecutiveUnclearedSends, 'race-aborted');
367
+ return;
368
+ }
369
+ const reGen = this.deps.isGenerating(joinedText(recap));
370
+ const reMatch = detectApprovalPrompt(recap, approval.framework, reGen);
371
+ if (!reMatch || reMatch.stableFingerprint !== approval.stableFingerprint) {
372
+ this.audit(now, session, approval.framework, approval.matchedPatternNames, null, approval.stableFingerprint, st.consecutiveUnclearedSends, 'race-aborted');
373
+ return;
374
+ }
375
+ // Send the (only) approve key.
376
+ let ok = false;
377
+ try {
378
+ ok = await Promise.resolve(this.deps.sendKey(session, 'Enter'));
379
+ }
380
+ catch {
381
+ ok = false;
382
+ }
383
+ if (!ok) {
384
+ this.audit(now, session, approval.framework, approval.matchedPatternNames, 'Enter', approval.stableFingerprint, st.consecutiveUnclearedSends, 'send-failed');
385
+ return;
386
+ }
387
+ st.consecutiveUnclearedSends += 1;
388
+ const outcome = st.consecutiveUnclearedSends === 1 ? 'answered' : 'retried';
389
+ this.audit(now, session, approval.framework, approval.matchedPatternNames, 'Enter', approval.stableFingerprint, st.consecutiveUnclearedSends, outcome);
390
+ }
391
+ handleLayer3(session, menuStructureKey, now) {
392
+ const key = this.l3Key(session, menuStructureKey);
393
+ let st = this.persistMenus.get(key);
394
+ if (!st) {
395
+ st = {
396
+ session,
397
+ menuStructureKey,
398
+ persistTicks: 0,
399
+ createdAt: now,
400
+ lastTick: now,
401
+ terminalRaised: false,
402
+ };
403
+ this.persistMenus.set(key, st);
404
+ }
405
+ st.lastTick = now;
406
+ if (st.terminalRaised)
407
+ return;
408
+ st.persistTicks += 1;
409
+ if (st.persistTicks >= LAYER3_PERSIST_TICKS) {
410
+ st.terminalRaised = true;
411
+ this.deps.raiseDefect({
412
+ sessionName: session,
413
+ layer: 'layer3',
414
+ dedupKey: session + '|' + menuStructureKey,
415
+ menuStructureKey,
416
+ reason: 'a session is wedged on a menu I could not auto-clear (an unrecognized or drifted prompt) — it needs a look',
417
+ });
418
+ }
419
+ }
420
+ /**
421
+ * Evict BOTH maps' entries for sessions no longer running, and any entry older
422
+ * than the per-entry TTL (stale lastTick). Neither map can grow with uptime.
423
+ * Called each tick.
424
+ */
425
+ sweep(runningSessions) {
426
+ const now = this.deps.now();
427
+ this.lastTickAt = now;
428
+ for (const [k, st] of this.episodes) {
429
+ if (!runningSessions.has(st.session) || now - st.lastTick > STATE_TTL_MS) {
430
+ this.episodes.delete(k);
431
+ }
432
+ }
433
+ for (const [k, st] of this.persistMenus) {
434
+ if (!runningSessions.has(st.session) || now - st.lastTick > STATE_TTL_MS) {
435
+ this.persistMenus.delete(k);
436
+ }
437
+ }
438
+ }
439
+ /** Cheap, no-I/O runtime liveness read for the GuardRegistry (GET /guards). */
440
+ guardStatus() {
441
+ return { enabled: !this.deps.emergencyDisabled(), lastTickAt: this.lastTickAt };
442
+ }
443
+ /** Current live state-map sizes (both are provably bounded by the eviction triple). */
444
+ stateSizes() {
445
+ return { episodes: this.episodes.size, persistMenus: this.persistMenus.size };
446
+ }
447
+ // ─── internals ─────────────────────────────────────────────────────────────────
448
+ l2Key(session, fingerprint) {
449
+ return session + KEY_SEP + fingerprint;
450
+ }
451
+ l3Key(session, menuStructureKey) {
452
+ return session + KEY_SEP + menuStructureKey;
453
+ }
454
+ menuStructureKey(session, optionLabels) {
455
+ return sha256(session + '|' + optionLabels.join(','));
456
+ }
457
+ audit(ts, sessionName, framework, matchedPatternNames, keySent, fingerprint, attempt, outcome) {
458
+ try {
459
+ this.deps.appendAudit({
460
+ ts,
461
+ sessionName,
462
+ framework,
463
+ matchedPatternNames,
464
+ keySent,
465
+ fingerprint,
466
+ attempt,
467
+ outcome,
468
+ });
469
+ }
470
+ catch {
471
+ // Observability must never throw into the monitor loop.
472
+ }
473
+ }
474
+ }
475
+ //# sourceMappingURL=PermissionPromptAutoResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionPromptAutoResolver.js","sourceRoot":"","sources":["../../src/monitoring/PermissionPromptAutoResolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PresenceProxy.d.ts","sourceRoot":"","sources":["../../src/monitoring/PresenceProxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PresenceProxy.d.ts","sourceRoot":"","sources":["../../src/monitoring/PresenceProxy.ts"],"names":[],"mappings":"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"}
@@ -818,6 +818,13 @@ export class PresenceProxy {
818
818
  }
819
819
  if (!stuck)
820
820
  return null;
821
+ // The framework approval-prompt class is NEVER surfaced to the user — the
822
+ // PermissionPromptAutoResolver auto-clears it, and only if it genuinely
823
+ // cannot does it raise a Terminal Attention defect (the sole surface).
824
+ // Suppress here UNCONDITIONALLY (a consumer policy, not a classifier
825
+ // contract inversion), with no lifecycle gap.
826
+ if (stuck.kind === 'approval-prompt-waiting')
827
+ return PRESENCE_SUPPRESS;
821
828
  // A recovery sentinel already messaging about this stuck state owns the
822
829
  // voice — mirror Tier 3's silent return (suppress, do NOT fall through to
823
830
  // the "actively working" fallback, which would re-introduce the lie).
@@ -1140,6 +1147,17 @@ export class PresenceProxy {
1140
1147
  if (snapshot) {
1141
1148
  const stuck = classifyStuckSignature(snapshot);
1142
1149
  if (stuck) {
1150
+ // Framework approval-prompt: NEVER surfaced to the user, NEVER 'dead'
1151
+ // (so it is not respawned). The PermissionPromptAutoResolver owns
1152
+ // clearing it; the only user-facing surface is its Terminal defect.
1153
+ // Unconditional suppression (consumer policy), with no lifecycle gap.
1154
+ if (stuck.kind === 'approval-prompt-waiting') {
1155
+ state.tier3Assessment = 'waiting';
1156
+ state.tier3Summary = 'approval-prompt (auto-clearing)';
1157
+ this.config.releaseTriageMutex?.(state.sessionName, 'presence-proxy');
1158
+ this.persistState(topicId, state);
1159
+ return;
1160
+ }
1143
1161
  if (state.cancelled) {
1144
1162
  this.config.releaseTriageMutex?.(state.sessionName, 'presence-proxy');
1145
1163
  return;