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
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2CH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAwBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAwH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA+EtD;;;;;;;;;;;;;;;;;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;AAy4CD,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,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAm8gBtE;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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2CH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAwBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAwH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA+EtD;;;;;;;;;;;;;;;;;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;AAy4CD,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,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0/gBtE;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"}
@@ -5175,6 +5175,58 @@ export async function startServer(options) {
5175
5175
  // their construction sites below; GET /guards reconciles registrations
5176
5176
  // against the declared manifest (missing = a state, never an omission).
5177
5177
  const guardRegistry = new GuardRegistry();
5178
+ // ── Permission-Prompt Auto-Resolver (always-on safety floor) ──────────────
5179
+ // Auto-answers a framework approval prompt Instar cannot otherwise clear (the
5180
+ // Claude Code 2.1.176-177 cd-redirection wedge). UNCONDITIONAL — there is NO
5181
+ // enable flag (a stale persisted `false` could re-disable the very safety it
5182
+ // provides; that exact trap is what caused this bug). The only opt-out is
5183
+ // monitoring.permissionPromptAutoResolver.emergencyDisable (absent ⇒ on).
5184
+ {
5185
+ const { PermissionPromptAutoResolver, toPaneTailLines } = await import('../monitoring/PermissionPromptAutoResolver.js');
5186
+ const { looksGeneratingNow } = await import('../monitoring/sentinelWiring.js');
5187
+ const pprAuditPath = path.join(config.sessions.projectDir, 'logs', 'permission-prompt-resolver.jsonl');
5188
+ const permissionPromptResolver = new PermissionPromptAutoResolver({
5189
+ sendKey: (s, k) => sessionManager.sendKey(s, k),
5190
+ reCaptureTail: async (s) => {
5191
+ const t = sessionManager.captureMeaningfulTail(s, 16);
5192
+ return t == null ? null : toPaneTailLines(t);
5193
+ },
5194
+ isGenerating: (text) => looksGeneratingNow(text, 'claude-code'),
5195
+ raiseDefect: (d) => {
5196
+ try {
5197
+ void telegram?.createAttentionItem({
5198
+ id: `perm-prompt:${d.dedupKey}`,
5199
+ title: 'Session wedged on an approval prompt I could not auto-clear',
5200
+ summary: d.reason,
5201
+ description: `Session ${d.sessionName} (${d.layer}) is parked on an approval prompt the ` +
5202
+ `auto-resolver could not clear (the host may have changed its prompt UI). It needs a look.`,
5203
+ category: 'session',
5204
+ priority: 'NORMAL',
5205
+ sourceContext: 'permission-prompt-auto-resolver',
5206
+ });
5207
+ }
5208
+ catch { /* observability must never throw into the floor */ }
5209
+ },
5210
+ appendAudit: (row) => {
5211
+ try {
5212
+ fs.mkdirSync(path.dirname(pprAuditPath), { recursive: true });
5213
+ try {
5214
+ const st = fs.statSync(pprAuditPath);
5215
+ if (st.size > 8 * 1024 * 1024)
5216
+ fs.renameSync(pprAuditPath, `${pprAuditPath}.1`);
5217
+ }
5218
+ catch { /* file may not exist yet */ }
5219
+ fs.appendFileSync(pprAuditPath, `${JSON.stringify(row)}\n`);
5220
+ }
5221
+ catch { /* audit is best-effort; never throw */ }
5222
+ },
5223
+ now: () => Date.now(),
5224
+ emergencyDisabled: () => config.monitoring?.permissionPromptAutoResolver?.emergencyDisable === true,
5225
+ });
5226
+ guardRegistry.register('monitoring.permissionPromptAutoResolver.enabled', () => permissionPromptResolver.guardStatus());
5227
+ sessionManager.setPermissionPromptResolver(permissionPromptResolver);
5228
+ console.log(pc.green(' Permission-Prompt Auto-Resolver: enabled (always-on safety floor)'));
5229
+ }
5178
5230
  let scheduler;
5179
5231
  if (config.scheduler.enabled && coordinator.isAwake) {
5180
5232
  scheduler = new JobScheduler(config.scheduler, sessionManager, state, config.stateDir);