instar 1.3.58 → 1.3.59

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 (33) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +28 -1
  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 +8 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/MessagingToneGate.d.ts +20 -0
  8. package/dist/core/MessagingToneGate.d.ts.map +1 -1
  9. package/dist/core/MessagingToneGate.js +12 -1
  10. package/dist/core/MessagingToneGate.js.map +1 -1
  11. package/dist/core/TopicIntentArcCheck.d.ts +15 -0
  12. package/dist/core/TopicIntentArcCheck.d.ts.map +1 -1
  13. package/dist/core/TopicIntentArcCheck.js +41 -0
  14. package/dist/core/TopicIntentArcCheck.js.map +1 -1
  15. package/dist/core/types.d.ts +10 -0
  16. package/dist/core/types.d.ts.map +1 -1
  17. package/dist/core/types.js.map +1 -1
  18. package/dist/server/AgentServer.d.ts +3 -0
  19. package/dist/server/AgentServer.d.ts.map +1 -1
  20. package/dist/server/AgentServer.js +2 -0
  21. package/dist/server/AgentServer.js.map +1 -1
  22. package/dist/server/routes.d.ts +5 -0
  23. package/dist/server/routes.d.ts.map +1 -1
  24. package/dist/server/routes.js +26 -0
  25. package/dist/server/routes.js.map +1 -1
  26. package/dist/server/topicIntentRoutes.d.ts +10 -4
  27. package/dist/server/topicIntentRoutes.d.ts.map +1 -1
  28. package/dist/server/topicIntentRoutes.js +3 -1
  29. package/dist/server/topicIntentRoutes.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/data/builtin-manifest.json +47 -47
  32. package/upgrades/1.3.59.md +71 -0
  33. package/upgrades/side-effects/topic-intent-arccheck-wiring.md +101 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+RH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAksDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA2sNtE;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+RH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAksDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0uNtE;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"}
@@ -3252,6 +3252,10 @@ export async function startServer(options) {
3252
3252
  catch (err) {
3253
3253
  console.log(pc.yellow(` Worktree detector: skipped (${err instanceof Error ? err.message : String(err)})`));
3254
3254
  }
3255
+ // ArcCheck (Layer 3) — declared at outer scope so the instance built inside
3256
+ // the telegram block is visible at AgentServer construction below. The same
3257
+ // instance backs the HTTP route and the in-process checkOutboundMessage caller.
3258
+ let topicIntentArcCheck;
3255
3259
  // Initialize TopicMemory whenever Telegram is configured (any mode).
3256
3260
  // TopicMemory provides session context — needed even when lifeline owns polling.
3257
3261
  if (telegram) {
@@ -5737,6 +5741,29 @@ export async function startServer(options) {
5737
5741
  beforeHadCallback(entry);
5738
5742
  observeInboundMessage(humanAsDetectorLog, entry);
5739
5743
  };
5744
+ // ── Topic-Intent ArcCheck (rung 3 / Layer 3) ────────────────────
5745
+ // Pre-send classifier that scans agent drafts against the topic's
5746
+ // tracked refs and emits a signal (never blocks) when the draft
5747
+ // would contradict a settled item / drift from the active frame /
5748
+ // act on an unconfirmed tentative item. Same instance is exposed
5749
+ // behind the HTTP route AND consumed in-process by
5750
+ // checkOutboundMessage so the MessagingToneGate sees ArcCheck as
5751
+ // one more entry in its existing signals fan-in.
5752
+ // Spec: docs/specs/topic-intent-arccheck-wiring.md.
5753
+ if (sharedIntelligence && (config.topicIntent?.arccheck?.enabled ?? true)) {
5754
+ try {
5755
+ const { ArcCheck, createArcCheckClassifyFn } = await import('../core/TopicIntentArcCheck.js');
5756
+ const { createQueuedIntelligence } = await import('../core/TopicIntentCapture.js');
5757
+ const arcCheckIntelligence = createQueuedIntelligence(sharedIntelligence, (lane, fn, costCents) => sharedLlmQueue.enqueue(lane, fn, costCents));
5758
+ const arcCheckClassify = createArcCheckClassifyFn(arcCheckIntelligence);
5759
+ topicIntentArcCheck = new ArcCheck(topicIntentStore, arcCheckClassify);
5760
+ globalThis.__instarTopicIntentArcCheckWired = true;
5761
+ console.log(pc.green(' Topic-intent ArcCheck wired (pre-send classifier → tone gate)'));
5762
+ }
5763
+ catch (err) {
5764
+ console.warn('[TopicIntentArcCheck] init failed:', err.message);
5765
+ }
5766
+ }
5740
5767
  // ── Topic-Intent capture loop (rung 0 of continuous-working-awareness) ─
5741
5768
  // The "clerk" that fills the topic-intent store from live conversation so
5742
5769
  // the per-topic briefing + ArcCheck have real material (closes the
@@ -7861,7 +7888,7 @@ export async function startServer(options) {
7861
7888
  }
7862
7889
  }
7863
7890
  }
7864
- 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, rateLimitSentinel, releaseReadinessSentinel: releaseReadinessSentinel ?? undefined, messageRouter, summarySentinel, spawnManager, systemReviewer, capabilityMapper, selfKnowledgeTree, coverageAuditor, topicResumeMap: _topicResumeMap ?? undefined, sessionRefresh: _sessionRefresh ?? undefined, autonomyManager, trustElevationTracker, autonomousEvolution, coordinator: coordinator.enabled ? coordinator : undefined, localSigningKeyPem, leaseTransport, liveTailReceiver, handoffWireTransport, onHandoffBegin, onHandoffInitiate: handoffInitiate, handoffInProgress: handoffSentinelInProgress, messageLedger, currentInboundByTopic, replyMarkerTransport, onReplyMarker: messageLedger ? (marker) => { const m = marker; messageLedger.applyRemoteReplyMarker(m.dedupeKey, { platform: m.platform, replyIdempotencyKey: m.replyIdempotencyKey, epoch: m.epoch, topic: m.topic ?? null }); } : undefined, whatsapp: whatsappAdapter, slack: slackAdapter, imessage: imessageAdapter, whatsappBusinessBackend, messageBridge, hookEventReceiver, worktreeMonitor, subagentTracker, instructionsVerifier, handshakeManager: threadlineHandshake, threadlineRouter, conversationStore, warrantsReplyGate, collaborationSurfacer, threadResumeMap, topicLinkageHandler: topicLinkageHandler ?? undefined, threadlineRelayClient, threadlineReplyWaiters, listenerManager: listenerManager ?? undefined, responseReviewGate, messagingToneGate, outboundDedupGate, telemetryHeartbeat, pasteManager, featureRegistry, discoveryEvaluator, completionEvaluator, unifiedTrust, liveConfig, sharedStateLedger, ledgerSessionRegistry, worktreeManager, oidcEnrolledRepos: parallelDevConfig?.oidcEnrolledRepos, initiativeTracker, projectRoundRunner, projectDriftChecker, machineHeartbeat, proxyCoordinator, topicIntentStore, usherSignalStore, intelligence: sharedIntelligence ?? undefined, telegramBridgeConfig, telegramBridge: telegramBridge ?? undefined, threadlineObservability, briefDeps, workingMemory, taskFlowRegistry, threadlineFlowBridge, sessionReaper, unjustifiedStopGate, stopGateDb, stopNotifier });
7891
+ 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, rateLimitSentinel, releaseReadinessSentinel: releaseReadinessSentinel ?? undefined, messageRouter, summarySentinel, spawnManager, systemReviewer, capabilityMapper, selfKnowledgeTree, coverageAuditor, topicResumeMap: _topicResumeMap ?? undefined, sessionRefresh: _sessionRefresh ?? undefined, autonomyManager, trustElevationTracker, autonomousEvolution, coordinator: coordinator.enabled ? coordinator : undefined, localSigningKeyPem, leaseTransport, liveTailReceiver, handoffWireTransport, onHandoffBegin, onHandoffInitiate: handoffInitiate, handoffInProgress: handoffSentinelInProgress, messageLedger, currentInboundByTopic, replyMarkerTransport, onReplyMarker: messageLedger ? (marker) => { const m = marker; messageLedger.applyRemoteReplyMarker(m.dedupeKey, { platform: m.platform, replyIdempotencyKey: m.replyIdempotencyKey, epoch: m.epoch, topic: m.topic ?? null }); } : undefined, whatsapp: whatsappAdapter, slack: slackAdapter, imessage: imessageAdapter, whatsappBusinessBackend, messageBridge, hookEventReceiver, worktreeMonitor, subagentTracker, instructionsVerifier, handshakeManager: threadlineHandshake, threadlineRouter, conversationStore, warrantsReplyGate, collaborationSurfacer, threadResumeMap, topicLinkageHandler: topicLinkageHandler ?? undefined, threadlineRelayClient, threadlineReplyWaiters, listenerManager: listenerManager ?? undefined, responseReviewGate, messagingToneGate, outboundDedupGate, telemetryHeartbeat, pasteManager, featureRegistry, discoveryEvaluator, completionEvaluator, unifiedTrust, liveConfig, sharedStateLedger, ledgerSessionRegistry, worktreeManager, oidcEnrolledRepos: parallelDevConfig?.oidcEnrolledRepos, initiativeTracker, projectRoundRunner, projectDriftChecker, machineHeartbeat, proxyCoordinator, topicIntentStore, topicIntentArcCheck, usherSignalStore, intelligence: sharedIntelligence ?? undefined, telegramBridgeConfig, telegramBridge: telegramBridge ?? undefined, threadlineObservability, briefDeps, workingMemory, taskFlowRegistry, threadlineFlowBridge, sessionReaper, unjustifiedStopGate, stopGateDb, stopNotifier });
7865
7892
  // Boot-recovery (tunnel-failure-resilience spec Part 6): if the agent
7866
7893
  // died mid-relay-episode, the persisted tunnel.json carries
7867
7894
  // rotationPending=true. Rotate the dashboard PIN + authToken BEFORE