instar 0.17.4 → 0.17.6

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 (127) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +56 -1
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/ClaudeCliIntelligenceProvider.d.ts.map +1 -1
  5. package/dist/core/ClaudeCliIntelligenceProvider.js +3 -0
  6. package/dist/core/ClaudeCliIntelligenceProvider.js.map +1 -1
  7. package/dist/core/Config.d.ts.map +1 -1
  8. package/dist/core/Config.js +4 -1
  9. package/dist/core/Config.js.map +1 -1
  10. package/dist/core/types.d.ts +13 -0
  11. package/dist/core/types.d.ts.map +1 -1
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  17. package/dist/messaging/TelegramAdapter.js +10 -2
  18. package/dist/messaging/TelegramAdapter.js.map +1 -1
  19. package/dist/monitoring/TelemetryHeartbeat.d.ts +99 -0
  20. package/dist/monitoring/TelemetryHeartbeat.d.ts.map +1 -0
  21. package/dist/monitoring/TelemetryHeartbeat.js +216 -0
  22. package/dist/monitoring/TelemetryHeartbeat.js.map +1 -0
  23. package/dist/server/AgentServer.d.ts +1 -0
  24. package/dist/server/AgentServer.d.ts.map +1 -1
  25. package/dist/server/AgentServer.js +1 -0
  26. package/dist/server/AgentServer.js.map +1 -1
  27. package/dist/server/routes.d.ts +1 -0
  28. package/dist/server/routes.d.ts.map +1 -1
  29. package/dist/server/routes.js +52 -0
  30. package/dist/server/routes.js.map +1 -1
  31. package/dist/threadline/adapters/AutoGenTool.d.ts +42 -0
  32. package/dist/threadline/adapters/AutoGenTool.d.ts.map +1 -0
  33. package/dist/threadline/adapters/AutoGenTool.js +145 -0
  34. package/dist/threadline/adapters/AutoGenTool.js.map +1 -0
  35. package/dist/threadline/adapters/CrewAITool.d.ts +31 -0
  36. package/dist/threadline/adapters/CrewAITool.d.ts.map +1 -0
  37. package/dist/threadline/adapters/CrewAITool.js +112 -0
  38. package/dist/threadline/adapters/CrewAITool.js.map +1 -0
  39. package/dist/threadline/adapters/LangGraphTool.d.ts +48 -0
  40. package/dist/threadline/adapters/LangGraphTool.d.ts.map +1 -0
  41. package/dist/threadline/adapters/LangGraphTool.js +153 -0
  42. package/dist/threadline/adapters/LangGraphTool.js.map +1 -0
  43. package/dist/threadline/adapters/RESTServer.d.ts +74 -0
  44. package/dist/threadline/adapters/RESTServer.d.ts.map +1 -0
  45. package/dist/threadline/adapters/RESTServer.js +291 -0
  46. package/dist/threadline/adapters/RESTServer.js.map +1 -0
  47. package/dist/threadline/adapters/index.d.ts +14 -0
  48. package/dist/threadline/adapters/index.d.ts.map +1 -0
  49. package/dist/threadline/adapters/index.js +10 -0
  50. package/dist/threadline/adapters/index.js.map +1 -0
  51. package/dist/threadline/client/IdentityManager.d.ts +40 -0
  52. package/dist/threadline/client/IdentityManager.d.ts.map +1 -0
  53. package/dist/threadline/client/IdentityManager.js +106 -0
  54. package/dist/threadline/client/IdentityManager.js.map +1 -0
  55. package/dist/threadline/client/MessageEncryptor.d.ts +63 -0
  56. package/dist/threadline/client/MessageEncryptor.d.ts.map +1 -0
  57. package/dist/threadline/client/MessageEncryptor.js +195 -0
  58. package/dist/threadline/client/MessageEncryptor.js.map +1 -0
  59. package/dist/threadline/client/RelayClient.d.ts +77 -0
  60. package/dist/threadline/client/RelayClient.d.ts.map +1 -0
  61. package/dist/threadline/client/RelayClient.js +245 -0
  62. package/dist/threadline/client/RelayClient.js.map +1 -0
  63. package/dist/threadline/client/ThreadlineClient.d.ts +89 -0
  64. package/dist/threadline/client/ThreadlineClient.d.ts.map +1 -0
  65. package/dist/threadline/client/ThreadlineClient.js +182 -0
  66. package/dist/threadline/client/ThreadlineClient.js.map +1 -0
  67. package/dist/threadline/client/index.d.ts +12 -0
  68. package/dist/threadline/client/index.d.ts.map +1 -0
  69. package/dist/threadline/client/index.js +8 -0
  70. package/dist/threadline/client/index.js.map +1 -0
  71. package/dist/threadline/index.d.ts +14 -0
  72. package/dist/threadline/index.d.ts.map +1 -1
  73. package/dist/threadline/index.js +12 -0
  74. package/dist/threadline/index.js.map +1 -1
  75. package/dist/threadline/relay/A2ABridge.d.ts +91 -0
  76. package/dist/threadline/relay/A2ABridge.d.ts.map +1 -0
  77. package/dist/threadline/relay/A2ABridge.js +457 -0
  78. package/dist/threadline/relay/A2ABridge.js.map +1 -0
  79. package/dist/threadline/relay/AbuseDetector.d.ts +131 -0
  80. package/dist/threadline/relay/AbuseDetector.d.ts.map +1 -0
  81. package/dist/threadline/relay/AbuseDetector.js +358 -0
  82. package/dist/threadline/relay/AbuseDetector.js.map +1 -0
  83. package/dist/threadline/relay/AdminServer.d.ts +55 -0
  84. package/dist/threadline/relay/AdminServer.d.ts.map +1 -0
  85. package/dist/threadline/relay/AdminServer.js +215 -0
  86. package/dist/threadline/relay/AdminServer.js.map +1 -0
  87. package/dist/threadline/relay/ConnectionManager.d.ts +76 -0
  88. package/dist/threadline/relay/ConnectionManager.d.ts.map +1 -0
  89. package/dist/threadline/relay/ConnectionManager.js +287 -0
  90. package/dist/threadline/relay/ConnectionManager.js.map +1 -0
  91. package/dist/threadline/relay/MessageRouter.d.ts +46 -0
  92. package/dist/threadline/relay/MessageRouter.d.ts.map +1 -0
  93. package/dist/threadline/relay/MessageRouter.js +138 -0
  94. package/dist/threadline/relay/MessageRouter.js.map +1 -0
  95. package/dist/threadline/relay/OfflineQueue.d.ts +87 -0
  96. package/dist/threadline/relay/OfflineQueue.d.ts.map +1 -0
  97. package/dist/threadline/relay/OfflineQueue.js +137 -0
  98. package/dist/threadline/relay/OfflineQueue.js.map +1 -0
  99. package/dist/threadline/relay/PresenceRegistry.d.ts +62 -0
  100. package/dist/threadline/relay/PresenceRegistry.d.ts.map +1 -0
  101. package/dist/threadline/relay/PresenceRegistry.js +148 -0
  102. package/dist/threadline/relay/PresenceRegistry.js.map +1 -0
  103. package/dist/threadline/relay/RelayMetrics.d.ts +62 -0
  104. package/dist/threadline/relay/RelayMetrics.d.ts.map +1 -0
  105. package/dist/threadline/relay/RelayMetrics.js +149 -0
  106. package/dist/threadline/relay/RelayMetrics.js.map +1 -0
  107. package/dist/threadline/relay/RelayRateLimiter.d.ts +58 -0
  108. package/dist/threadline/relay/RelayRateLimiter.d.ts.map +1 -0
  109. package/dist/threadline/relay/RelayRateLimiter.js +116 -0
  110. package/dist/threadline/relay/RelayRateLimiter.js.map +1 -0
  111. package/dist/threadline/relay/RelayServer.d.ts +68 -0
  112. package/dist/threadline/relay/RelayServer.d.ts.map +1 -0
  113. package/dist/threadline/relay/RelayServer.js +487 -0
  114. package/dist/threadline/relay/RelayServer.js.map +1 -0
  115. package/dist/threadline/relay/index.d.ts +24 -0
  116. package/dist/threadline/relay/index.d.ts.map +1 -0
  117. package/dist/threadline/relay/index.js +15 -0
  118. package/dist/threadline/relay/index.js.map +1 -0
  119. package/dist/threadline/relay/types.d.ts +197 -0
  120. package/dist/threadline/relay/types.d.ts.map +1 -0
  121. package/dist/threadline/relay/types.js +21 -0
  122. package/dist/threadline/relay/types.js.map +1 -0
  123. package/package.json +2 -1
  124. package/src/data/builtin-manifest.json +47 -47
  125. package/src/templates/hooks/session-start.sh +30 -0
  126. package/upgrades/0.17.5.md +32 -0
  127. package/upgrades/0.17.6.md +32 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+OH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+7BD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAw9DtE;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;AA+OH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+7BD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAohEtE;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"}
@@ -1433,6 +1433,14 @@ export async function startServer(options) {
1433
1433
  });
1434
1434
  console.log(pc.green(` Quota tracking enabled (${quotaFile})`));
1435
1435
  }
1436
+ // Set up opt-in telemetry heartbeat
1437
+ let telemetryHeartbeat;
1438
+ if (config.monitoring?.telemetry?.enabled) {
1439
+ const { TelemetryHeartbeat } = await import('../monitoring/TelemetryHeartbeat.js');
1440
+ telemetryHeartbeat = new TelemetryHeartbeat(config.monitoring.telemetry, config.stateDir, config.projectDir, config.version || 'unknown');
1441
+ telemetryHeartbeat.start();
1442
+ console.log(pc.green(` Telemetry: enabled (${config.monitoring.telemetry.level || 'basic'} level, every ${Math.round((config.monitoring.telemetry.intervalMs || 21600000) / 3600000)}h)`));
1443
+ }
1436
1444
  let scheduler;
1437
1445
  if (config.scheduler.enabled && coordinator.isAwake) {
1438
1446
  scheduler = new JobScheduler(config.scheduler, sessionManager, state, config.stateDir);
@@ -1863,6 +1871,16 @@ export async function startServer(options) {
1863
1871
  sessionManager.on('sessionComplete', (session) => {
1864
1872
  scheduler.processQueue();
1865
1873
  scheduler.notifyJobComplete(session.id, session.tmuxSession);
1874
+ // Record telemetry events
1875
+ if (telemetryHeartbeat && session.jobSlug) {
1876
+ telemetryHeartbeat.recordJobRun();
1877
+ }
1878
+ });
1879
+ }
1880
+ // Wire telemetry counters
1881
+ if (telemetryHeartbeat) {
1882
+ sessionManager.on('sessionStart', () => {
1883
+ telemetryHeartbeat.recordSessionSpawned();
1866
1884
  });
1867
1885
  }
1868
1886
  // Auto-summarize topics on session completion.
@@ -2427,8 +2445,45 @@ export async function startServer(options) {
2427
2445
  return null; // Normal messages pass through
2428
2446
  };
2429
2447
  telegram.onSentinelKillSession = (sessionName) => {
2448
+ // Save resume UUID before killing so respawn can --resume
2449
+ if (_topicResumeMap) {
2450
+ try {
2451
+ const uuid = _topicResumeMap.findUuidForSession(sessionName);
2452
+ if (uuid) {
2453
+ // Find the topic ID for this session
2454
+ const topicSessions = telegram.getAllTopicSessions();
2455
+ for (const [topicId, sessName] of topicSessions) {
2456
+ if (sessName === sessionName) {
2457
+ _topicResumeMap.save(topicId, uuid, sessionName);
2458
+ console.log(`[sentinel] Saved resume UUID ${uuid} for topic ${topicId} before kill`);
2459
+ break;
2460
+ }
2461
+ }
2462
+ }
2463
+ }
2464
+ catch { /* best effort */ }
2465
+ }
2430
2466
  return sessionManager.killSession(sessionName);
2431
2467
  };
2468
+ telegram.onSentinelPauseSession = (sessionName) => {
2469
+ // Save resume UUID so if the session dies during pause, respawn can --resume
2470
+ if (_topicResumeMap) {
2471
+ try {
2472
+ const uuid = _topicResumeMap.findUuidForSession(sessionName);
2473
+ if (uuid) {
2474
+ const topicSessions = telegram.getAllTopicSessions();
2475
+ for (const [topicId, sessName] of topicSessions) {
2476
+ if (sessName === sessionName) {
2477
+ _topicResumeMap.save(topicId, uuid, sessionName);
2478
+ console.log(`[sentinel] Saved resume UUID ${uuid} for topic ${topicId} on pause`);
2479
+ break;
2480
+ }
2481
+ }
2482
+ }
2483
+ }
2484
+ catch { /* best effort */ }
2485
+ }
2486
+ };
2432
2487
  console.log(pc.green(' Sentinel wired into Telegram message flow'));
2433
2488
  }
2434
2489
  // Inter-Agent Messaging — structured communication between sessions
@@ -2677,7 +2732,7 @@ export async function startServer(options) {
2677
2732
  console.warn(pc.yellow(` Response review pipeline: configured but ANTHROPIC_API_KEY not set`));
2678
2733
  }
2679
2734
  }
2680
- const server = new AgentServer({ config, sessionManager, state, scheduler, telegram, relationships, feedback, feedbackAnomalyDetector, dispatches, updateChecker, autoUpdater, autoDispatcher, quotaTracker, quotaManager, publisher, viewer, tunnel, evolution, watchdog, topicMemory, triageNurse, projectMapper, coherenceGate: scopeVerifier, contextHierarchy, canonicalState, operationGate, sentinel, adaptiveTrust, memoryMonitor, orphanReaper, coherenceMonitor, commitmentTracker, semanticMemory, activitySentinel, messageRouter, summarySentinel, spawnManager, systemReviewer, capabilityMapper, topicResumeMap: _topicResumeMap ?? undefined, autonomyManager, trustElevationTracker, autonomousEvolution, coordinator: coordinator.enabled ? coordinator : undefined, localSigningKeyPem, whatsapp: whatsappAdapter, whatsappBusinessBackend, messageBridge, hookEventReceiver, worktreeMonitor, subagentTracker, instructionsVerifier, handshakeManager: threadlineHandshake, responseReviewGate });
2735
+ const server = new AgentServer({ config, sessionManager, state, scheduler, telegram, relationships, feedback, feedbackAnomalyDetector, dispatches, updateChecker, autoUpdater, autoDispatcher, quotaTracker, quotaManager, publisher, viewer, tunnel, evolution, watchdog, topicMemory, triageNurse, projectMapper, coherenceGate: scopeVerifier, contextHierarchy, canonicalState, operationGate, sentinel, adaptiveTrust, memoryMonitor, orphanReaper, coherenceMonitor, commitmentTracker, semanticMemory, activitySentinel, messageRouter, summarySentinel, spawnManager, systemReviewer, capabilityMapper, topicResumeMap: _topicResumeMap ?? undefined, autonomyManager, trustElevationTracker, autonomousEvolution, coordinator: coordinator.enabled ? coordinator : undefined, localSigningKeyPem, whatsapp: whatsappAdapter, whatsappBusinessBackend, messageBridge, hookEventReceiver, worktreeMonitor, subagentTracker, instructionsVerifier, handshakeManager: threadlineHandshake, responseReviewGate, telemetryHeartbeat });
2681
2736
  await server.start();
2682
2737
  // Connect DegradationReporter downstream systems now that everything is initialized.
2683
2738
  // Any degradation events queued during startup will drain to feedback + telegram.