instar 1.3.463 → 1.3.464
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/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +43 -2
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +10 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/types.d.ts +10 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/monitoring/ActiveWorkSilenceSentinel.d.ts +27 -2
- package/dist/monitoring/ActiveWorkSilenceSentinel.d.ts.map +1 -1
- package/dist/monitoring/ActiveWorkSilenceSentinel.js +50 -0
- package/dist/monitoring/ActiveWorkSilenceSentinel.js.map +1 -1
- package/dist/monitoring/SentinelNotifier.d.ts +1 -1
- package/dist/monitoring/SentinelNotifier.d.ts.map +1 -1
- package/dist/monitoring/SentinelNotifier.js.map +1 -1
- package/dist/monitoring/sentinelWiring.d.ts +8 -0
- package/dist/monitoring/sentinelWiring.d.ts.map +1 -1
- package/dist/monitoring/sentinelWiring.js +10 -0
- package/dist/monitoring/sentinelWiring.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.464.md +72 -0
- package/upgrades/side-effects/autoheal-silence-ladder.md +98 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAkG7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA65BD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CA0UN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAkG7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA65BD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CA0UN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAu8UtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
|
package/dist/commands/server.js
CHANGED
|
@@ -6469,18 +6469,59 @@ export async function startServer(options) {
|
|
|
6469
6469
|
const silenceCfg = config.monitoring?.activeWorkSilenceSentinel ?? { enabled: true };
|
|
6470
6470
|
if (silenceCfg.enabled !== false) {
|
|
6471
6471
|
const tracker = new OutputActivityTracker(sessionSurface);
|
|
6472
|
+
// Auto-heal ladder (DARK, off by default): when a confirmed-silent session
|
|
6473
|
+
// can't be nudged back, respawn it fresh (conversation preserved via
|
|
6474
|
+
// --resume) instead of only asking the user. Gated by autoRecover; the
|
|
6475
|
+
// respawn is loop-capped by maxAutoRecoveries inside the sentinel, and a
|
|
6476
|
+
// failed respawn leaves a recovery-failed state so it never re-fires.
|
|
6477
|
+
const silenceAutoRecover = silenceCfg.autoRecover === true;
|
|
6472
6478
|
const silenceSentinel = new ActiveWorkSilenceSentinel(buildActiveWorkSilenceDeps({
|
|
6473
6479
|
tracker, sessions: sessionSurface,
|
|
6474
6480
|
escalate: (name, text) => notifier.escalate('active-silence', name, text),
|
|
6481
|
+
// Operator ask (2026-06-09): silence/recovery notices land in the
|
|
6482
|
+
// STALLED session's OWN topic, not the consolidated lifeline feed.
|
|
6483
|
+
getTopicForSession: (name) => telegram?.getTopicForSession(name),
|
|
6484
|
+
deliverToTopic: async (topicId, text) => {
|
|
6485
|
+
try {
|
|
6486
|
+
const resp = await fetch(`http://localhost:${config.port}/telegram/reply/${topicId}`, {
|
|
6487
|
+
method: 'POST',
|
|
6488
|
+
headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${config.authToken}` },
|
|
6489
|
+
body: JSON.stringify({ text }),
|
|
6490
|
+
});
|
|
6491
|
+
return resp.ok;
|
|
6492
|
+
}
|
|
6493
|
+
catch {
|
|
6494
|
+
// @silent-fallback-ok: a failed per-topic delivery returns false so
|
|
6495
|
+
// notifyFn falls back to the consolidated `escalate` path (which is
|
|
6496
|
+
// the reported/audited route) — not a silent degradation.
|
|
6497
|
+
return false;
|
|
6498
|
+
}
|
|
6499
|
+
},
|
|
6500
|
+
recoverFn: silenceAutoRecover
|
|
6501
|
+
? async (name) => {
|
|
6502
|
+
if (!_sessionRefresh)
|
|
6503
|
+
return false;
|
|
6504
|
+
const result = await _sessionRefresh.refreshSession({
|
|
6505
|
+
sessionName: name,
|
|
6506
|
+
fresh: true,
|
|
6507
|
+
reason: 'active-silence-autoheal',
|
|
6508
|
+
});
|
|
6509
|
+
return result.ok;
|
|
6510
|
+
}
|
|
6511
|
+
: undefined,
|
|
6475
6512
|
}), silenceCfg);
|
|
6476
6513
|
silenceSentinel.on('silence', (e) => notifier.record('detected', 'active-silence', e.sessionName, `idleMs=${e.idleMs}`));
|
|
6477
6514
|
silenceSentinel.on('recovered', (n) => notifier.record('recovered', 'active-silence', n));
|
|
6515
|
+
silenceSentinel.on('recovering', (n) => notifier.record('recovering', 'active-silence', n));
|
|
6516
|
+
silenceSentinel.on('recovery-failed', (n) => notifier.record('escalated', 'active-silence', n, 'auto-recover failed — asked user'));
|
|
6517
|
+
silenceSentinel.on('recover-error', (e) => notifier.record('recovery-error', 'active-silence', e.sessionName, e.err instanceof Error ? e.err.message : String(e.err)));
|
|
6478
6518
|
silenceSentinel.on('nudge-error', (e) => notifier.record('nudge-error', 'active-silence', e.sessionName, e.err instanceof Error ? e.err.message : String(e.err)));
|
|
6479
6519
|
silenceSentinel.start();
|
|
6480
6520
|
silenceRecoveryActive = (s) => silenceSentinel.isRecoveryActive(s);
|
|
6521
|
+
const silenceMode = silenceAutoRecover ? ' — auto-heal LIVE' : '';
|
|
6481
6522
|
console.log(pc.green(telegramEscalation
|
|
6482
|
-
?
|
|
6483
|
-
:
|
|
6523
|
+
? ` ActiveWorkSilenceSentinel enabled (silent-freeze watchdog — Telegram escalation ON, consolidated${silenceMode})`
|
|
6524
|
+
: ` ActiveWorkSilenceSentinel enabled (silent-freeze watchdog — logs only, Telegram escalation OFF${silenceMode})`));
|
|
6484
6525
|
}
|
|
6485
6526
|
// ── ContextWedgeSentinel — transcript fast-fail wedges (thinking-block
|
|
6486
6527
|
// 400 + AUP-rejection loop) ──
|