instar 1.2.81 → 1.2.83

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 (53) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +110 -11
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  5. package/dist/config/ConfigDefaults.js +23 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/PostUpdateMigrator.d.ts +7 -0
  8. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  9. package/dist/core/PostUpdateMigrator.js +59 -75
  10. package/dist/core/PostUpdateMigrator.js.map +1 -1
  11. package/dist/core/SessionManager.d.ts +43 -0
  12. package/dist/core/SessionManager.d.ts.map +1 -1
  13. package/dist/core/SessionManager.js +123 -24
  14. package/dist/core/SessionManager.js.map +1 -1
  15. package/dist/core/types.d.ts +26 -0
  16. package/dist/core/types.d.ts.map +1 -1
  17. package/dist/core/types.js.map +1 -1
  18. package/dist/monitoring/SessionReaper.d.ts +153 -0
  19. package/dist/monitoring/SessionReaper.d.ts.map +1 -0
  20. package/dist/monitoring/SessionReaper.js +376 -0
  21. package/dist/monitoring/SessionReaper.js.map +1 -0
  22. package/dist/monitoring/TokenLedger.d.ts +12 -0
  23. package/dist/monitoring/TokenLedger.d.ts.map +1 -1
  24. package/dist/monitoring/TokenLedger.js +22 -0
  25. package/dist/monitoring/TokenLedger.js.map +1 -1
  26. package/dist/monitoring/transcriptProber.d.ts +44 -0
  27. package/dist/monitoring/transcriptProber.d.ts.map +1 -0
  28. package/dist/monitoring/transcriptProber.js +57 -0
  29. package/dist/monitoring/transcriptProber.js.map +1 -0
  30. package/dist/scaffold/templates.d.ts.map +1 -1
  31. package/dist/scaffold/templates.js +21 -0
  32. package/dist/scaffold/templates.js.map +1 -1
  33. package/dist/server/AgentServer.d.ts +3 -0
  34. package/dist/server/AgentServer.d.ts.map +1 -1
  35. package/dist/server/AgentServer.js +1 -0
  36. package/dist/server/AgentServer.js.map +1 -1
  37. package/dist/server/routes.d.ts +3 -0
  38. package/dist/server/routes.d.ts.map +1 -1
  39. package/dist/server/routes.js +108 -0
  40. package/dist/server/routes.js.map +1 -1
  41. package/dist/threadline/CollaborationSurfacer.d.ts +67 -18
  42. package/dist/threadline/CollaborationSurfacer.d.ts.map +1 -1
  43. package/dist/threadline/CollaborationSurfacer.js +132 -37
  44. package/dist/threadline/CollaborationSurfacer.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/data/builtin-manifest.json +63 -63
  47. package/src/scaffold/templates.ts +21 -0
  48. package/upgrades/1.2.81.md +13 -0
  49. package/upgrades/1.2.82.md +26 -0
  50. package/upgrades/1.2.83.md +26 -0
  51. package/upgrades/side-effects/1.2.81.md +127 -0
  52. package/upgrades/side-effects/session-reaper.md +42 -0
  53. package/upgrades/side-effects/threadline-notification-routing.md +46 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigDefaults.d.ts","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmNH,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIlF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAuC5D"}
1
+ {"version":3,"file":"ConfigDefaults.d.ts","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA0OH,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIlF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAuC5D"}
@@ -39,6 +39,29 @@ const SHARED_DEFAULTS = {
39
39
  activeWorkSilenceSentinel: {
40
40
  enabled: true,
41
41
  },
42
+ // SessionReaper — pressure-aware reaper of idle-but-alive sessions.
43
+ // UNLIKE the sentinels above, default OFF + dry-run: it is the only monitor
44
+ // that *kills* sessions on a heuristic, so it ships dark and must be flipped
45
+ // on by an operator after validating the dry-run log over a real pressure
46
+ // event. enabled:false → never runs; dryRun:true → logs would-reap, kills
47
+ // nothing. See docs/specs/SESSION-REAPER-SPEC.md.
48
+ sessionReaper: {
49
+ enabled: false,
50
+ dryRun: true,
51
+ tickIntervalSec: 120,
52
+ minAgeMinutes: 30,
53
+ confirmObservations: 3,
54
+ confirmWindowMinutes: 10,
55
+ paneCaptureLines: 200,
56
+ recentUserWindowMinutes: 30,
57
+ idleThresholdModerateMinutes: 45,
58
+ idleThresholdCriticalMinutes: 15,
59
+ normalTierReaps: false,
60
+ maxReapsPerTick: 3,
61
+ maxReapsPerHour: 12,
62
+ finalGraceSec: 60,
63
+ protectOpenCommitments: true,
64
+ },
42
65
  // Master gate for Telegram delivery of silently-stopped-sentinel
43
66
  // escalations. Default false → sentinel notices are housekeeping and stay
44
67
  // in the logs (server.log + sentinel-events.jsonl). Set true to receive
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigDefaults.js","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigDefaults.js","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"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"}
@@ -83,6 +83,13 @@ export declare class PostUpdateMigrator {
83
83
  */
84
84
  runPendingSteps(fromVersion: string, toVersion: string): Promise<RunPendingStepsResult>;
85
85
  private getStepEngine;
86
+ private templateCandidates;
87
+ /**
88
+ * Read a built-in template from the compiled layout when templates have
89
+ * been copied to dist, or from the packaged source-template layout used by
90
+ * current npm publishes.
91
+ */
92
+ private loadTemplate;
86
93
  /**
87
94
  * Run all post-update migrations. Safe to call multiple times —
88
95
  * each migration is idempotent.
@@ -1 +1 @@
1
- {"version":3,"file":"PostUpdateMigrator.d.ts","sourceRoot":"","sources":["../../src/core/PostUpdateMigrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostUpdateMigrator.d.ts","sourceRoot":"","sources":["../../src/core/PostUpdateMigrator.ts"],"names":[],"mappings":"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"}
@@ -120,6 +120,25 @@ export class PostUpdateMigrator {
120
120
  }
121
121
  return this.stepEngine;
122
122
  }
123
+ templateCandidates(subdir, filename) {
124
+ return [
125
+ path.resolve(__dirname, '..', 'templates', subdir, filename),
126
+ path.resolve(__dirname, '..', '..', 'src', 'templates', subdir, filename),
127
+ ];
128
+ }
129
+ /**
130
+ * Read a built-in template from the compiled layout when templates have
131
+ * been copied to dist, or from the packaged source-template layout used by
132
+ * current npm publishes.
133
+ */
134
+ loadTemplate(subdir, filename) {
135
+ for (const candidate of this.templateCandidates(subdir, filename)) {
136
+ if (fs.existsSync(candidate)) {
137
+ return fs.readFileSync(candidate, 'utf-8');
138
+ }
139
+ }
140
+ return null;
141
+ }
123
142
  /**
124
143
  * Run all post-update migrations. Safe to call multiple times —
125
144
  * each migration is idempotent.
@@ -493,36 +512,13 @@ export class PostUpdateMigrator {
493
512
  migrateConversationalCatalogPlaybookManifest(result) {
494
513
  const builtinDir = path.join(this.config.stateDir, 'playbook', 'builtin-manifests');
495
514
  const targetPath = path.join(builtinDir, 'conversational-catalog.json');
496
- // Resolve template path via module-local __dirname (from
497
- // fileURLToPath(import.meta.url)). Two candidates: dist install layout
498
- // (dist/core/ → ../templates/...) and dev source layout
499
- // (src/core/ → ../templates/... already, but tsc may resolve __dirname
500
- // to dist; src fallback added for robustness in dev runs).
501
- const candidates = [
502
- path.resolve(__dirname, '..', 'templates', 'playbook', 'conversational-catalog-manifest.json'),
503
- path.resolve(__dirname, '..', '..', 'src', 'templates', 'playbook', 'conversational-catalog-manifest.json'),
504
- ];
505
- let templatePath = '';
506
- for (const cand of candidates) {
507
- if (fs.existsSync(cand)) {
508
- templatePath = cand;
509
- break;
510
- }
511
- }
512
- if (!templatePath) {
515
+ const templateContent = this.loadTemplate('playbook', 'conversational-catalog-manifest.json');
516
+ if (templateContent === null) {
513
517
  // Built-in template missing — should never happen post-install, but
514
518
  // don't error out the update; just skip.
515
519
  result.skipped.push('conversational-catalog-playbook: template not found in package install');
516
520
  return;
517
521
  }
518
- let templateContent;
519
- try {
520
- templateContent = fs.readFileSync(templatePath, 'utf-8');
521
- }
522
- catch (err) {
523
- result.errors.push(`conversational-catalog-playbook: template read failed: ${err instanceof Error ? err.message : String(err)}`);
524
- return;
525
- }
526
522
  if (fs.existsSync(targetPath)) {
527
523
  const existing = fs.readFileSync(targetPath, 'utf-8');
528
524
  if (existing === templateContent) {
@@ -593,23 +589,12 @@ export class PostUpdateMigrator {
593
589
  // Always-overwrite the wrapper (Migration Parity Standard for hook
594
590
  // scripts: built-in templates are authoritative).
595
591
  const wrapperTargetPath = path.join(binDir, 'instar-worktree-create.sh');
596
- const templateCandidates = [
597
- path.resolve(__dirname, '..', 'templates', 'scripts', 'instar-worktree-create.sh'),
598
- path.resolve(__dirname, '..', '..', 'src', 'templates', 'scripts', 'instar-worktree-create.sh'),
599
- ];
600
- let templatePath = '';
601
- for (const cand of templateCandidates) {
602
- if (fs.existsSync(cand)) {
603
- templatePath = cand;
604
- break;
605
- }
606
- }
607
- if (!templatePath) {
592
+ const templateContent = this.loadTemplate('scripts', 'instar-worktree-create.sh');
593
+ if (templateContent === null) {
608
594
  result.skipped.push('worktree-convention: wrapper template not found in package install');
609
595
  return;
610
596
  }
611
597
  try {
612
- const templateContent = fs.readFileSync(templatePath, 'utf-8');
613
598
  const existing = fs.existsSync(wrapperTargetPath)
614
599
  ? fs.readFileSync(wrapperTargetPath, 'utf-8')
615
600
  : null;
@@ -957,20 +942,8 @@ export class PostUpdateMigrator {
957
942
  }
958
943
  const scriptPath = path.join(os.homedir(), '.instar', 'instar-watchdog.sh');
959
944
  const plistPath = path.join(os.homedir(), 'Library', 'LaunchAgents', 'ai.instar.watchdog.plist');
960
- // Locate the template (dev: src/core/ → ../../src/templates/...
961
- // dist: dist/core/ ../templates/...)
962
- const candidates = [
963
- path.resolve(__dirname, '..', 'templates', 'scripts', 'instar-watchdog.sh'),
964
- path.resolve(__dirname, '..', '..', 'src', 'templates', 'scripts', 'instar-watchdog.sh'),
965
- ];
966
- let scriptBody = '';
967
- for (const cand of candidates) {
968
- if (fs.existsSync(cand)) {
969
- scriptBody = fs.readFileSync(cand, 'utf-8');
970
- break;
971
- }
972
- }
973
- if (!scriptBody) {
945
+ const scriptBody = this.loadTemplate('scripts', 'instar-watchdog.sh');
946
+ if (scriptBody === null) {
974
947
  result.skipped.push('fleet-watchdog: template not found in dist or src');
975
948
  return;
976
949
  }
@@ -2322,6 +2295,31 @@ Rule: I do not state that work landed inside another agent's state unless I have
2322
2295
  patched = true;
2323
2296
  result.upgraded.push('CLAUDE.md: added Cross-Agent Communication Discipline (anti-confabulation) section');
2324
2297
  }
2298
+ // CMT-519 — Threadline hub topic + "open this"/bind guidance. Existing agents
2299
+ // need to know threadline notices route parent-or-hub (never per-event topics)
2300
+ // and that "open this" / "tie this to X" in the hub means calling the bind
2301
+ // endpoint, not replying inline. Content-sniffed on a distinctive marker.
2302
+ if (!content.includes('The "Threadline" hub topic — notifications')) {
2303
+ const hubSection = `
2304
+ ### The "Threadline" hub topic — notifications + "open this"
2305
+
2306
+ Threadline activity NEVER spawns a new Telegram topic per event. Notices route one of two ways:
2307
+ - A conversation **bound to a parent topic** → its real replies surface THERE (handled automatically).
2308
+ - A **parentless** conversation + any **status/housekeeping** notice → a single, SILENT **"Threadline" hub topic**. It does not buzz the user — agent-to-agent chatter isn't the user's job by default; the hub is a calm, browsable record.
2309
+
2310
+ When the user is reading the Threadline hub topic and says **"open this"** or **"tie this to &lt;an existing topic&gt;"**, act on it by calling the bind endpoint — do NOT just reply inline:
2311
+ \`\`\`bash
2312
+ # open this → create a fresh topic and bind the conversation (most-recent unbound, or pass threadId)
2313
+ curl -X POST -H "Authorization: Bearer $AUTH" -H 'Content-Type: application/json' http://localhost:${port}/threadline/hub/bind -d '{"action":"open"}'
2314
+ # tie this to an existing topic
2315
+ curl -X POST -H "Authorization: Bearer $AUTH" -H 'Content-Type: application/json' http://localhost:${port}/threadline/hub/bind -d '{"action":"tie","targetTopicId":1234}'
2316
+ \`\`\`
2317
+ After binding, that conversation's future updates flow to the bound topic automatically. If more than one conversation is unbound, the endpoint returns 409 — ask the user which one (pass its \`threadId\`).
2318
+ `;
2319
+ content += '\n' + hubSection;
2320
+ patched = true;
2321
+ result.upgraded.push('CLAUDE.md: added Threadline hub + "open this"/bind guidance (CMT-519)');
2322
+ }
2325
2323
  // Multi-Session Autonomy awareness (Agent Awareness Standard). Existing
2326
2324
  // agents need to know they can run concurrent per-topic autonomous jobs and
2327
2325
  // how to list/stop them, even if initialized before this capability existed.
@@ -6016,17 +6014,7 @@ process.stdin.on('end', async () => {
6016
6014
  * a healthy install). The caller is responsible for handling the null case.
6017
6015
  */
6018
6016
  loadRelayTemplate(filename) {
6019
- const modDir = __dirname;
6020
- const candidates = [
6021
- path.resolve(modDir, '..', 'templates', 'scripts', filename),
6022
- path.resolve(modDir, '..', '..', 'src', 'templates', 'scripts', filename),
6023
- ];
6024
- for (const candidate of candidates) {
6025
- if (fs.existsSync(candidate)) {
6026
- return fs.readFileSync(candidate, 'utf-8');
6027
- }
6028
- }
6029
- return null;
6017
+ return this.loadTemplate('scripts', filename);
6030
6018
  }
6031
6019
  getTelegramReplyScript() {
6032
6020
  // Read the canonical template from the templates directory. Keeping this
@@ -6093,16 +6081,9 @@ echo "[\$(date -Iseconds)] Server restart initiated"
6093
6081
  getConvergenceCheck() {
6094
6082
  // Read the convergence check template from the templates directory.
6095
6083
  // This file is the heuristic quality gate that runs before external messaging.
6096
- // In dev: src/core/ → ../../src/templates/scripts/convergence-check.sh
6097
- // In dist: dist/core/ → ../templates/scripts/convergence-check.sh
6098
- const candidates = [
6099
- path.resolve(__dirname, '..', 'templates', 'scripts', 'convergence-check.sh'),
6100
- path.resolve(__dirname, '..', '..', 'src', 'templates', 'scripts', 'convergence-check.sh'),
6101
- ];
6102
- for (const candidate of candidates) {
6103
- if (fs.existsSync(candidate)) {
6104
- return fs.readFileSync(candidate, 'utf-8');
6105
- }
6084
+ const template = this.loadTemplate('scripts', 'convergence-check.sh');
6085
+ if (template !== null) {
6086
+ return template;
6106
6087
  }
6107
6088
  // Fallback: use inline version so migration doesn't fail
6108
6089
  return this.getConvergenceCheckInline();
@@ -6384,8 +6365,11 @@ process.stdin.on('end', async () => {
6384
6365
  getFreeTextGuardHook() {
6385
6366
  // Read the hook from the templates directory instead of inline generation.
6386
6367
  // This avoids multi-layer escaping issues (TypeScript -> bash -> Python -> regex).
6387
- const hookPath = path.join(__dirname, '..', 'templates', 'hooks', 'free-text-guard.sh');
6388
- return fs.readFileSync(hookPath, 'utf-8');
6368
+ const template = this.loadTemplate('hooks', 'free-text-guard.sh');
6369
+ if (template !== null) {
6370
+ return template;
6371
+ }
6372
+ throw new Error(`free-text-guard.sh template not found; checked ${this.templateCandidates('hooks', 'free-text-guard.sh').join(', ')}`);
6389
6373
  }
6390
6374
  getClaimInterceptHook() {
6391
6375
  return `#!/usr/bin/env node