instar 1.3.552 → 1.3.554

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 (50) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +71 -2
  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 +35 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/PostUpdateMigrator.d.ts +10 -0
  8. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  9. package/dist/core/PostUpdateMigrator.js +60 -0
  10. package/dist/core/PostUpdateMigrator.js.map +1 -1
  11. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  12. package/dist/core/devGatedFeatures.js +6 -0
  13. package/dist/core/devGatedFeatures.js.map +1 -1
  14. package/dist/core/types.d.ts +50 -0
  15. package/dist/core/types.d.ts.map +1 -1
  16. package/dist/core/types.js.map +1 -1
  17. package/dist/scaffold/templates.d.ts.map +1 -1
  18. package/dist/scaffold/templates.js +4 -0
  19. package/dist/scaffold/templates.js.map +1 -1
  20. package/dist/scheduler/JobLeaseClaimStore.d.ts +105 -0
  21. package/dist/scheduler/JobLeaseClaimStore.d.ts.map +1 -0
  22. package/dist/scheduler/JobLeaseClaimStore.js +165 -0
  23. package/dist/scheduler/JobLeaseClaimStore.js.map +1 -0
  24. package/dist/scheduler/JobLeaseCutoverGate.d.ts +73 -0
  25. package/dist/scheduler/JobLeaseCutoverGate.d.ts.map +1 -0
  26. package/dist/scheduler/JobLeaseCutoverGate.js +66 -0
  27. package/dist/scheduler/JobLeaseCutoverGate.js.map +1 -0
  28. package/dist/scheduler/JobScheduler.d.ts +53 -0
  29. package/dist/scheduler/JobScheduler.d.ts.map +1 -1
  30. package/dist/scheduler/JobScheduler.js +136 -20
  31. package/dist/scheduler/JobScheduler.js.map +1 -1
  32. package/dist/server/AgentServer.d.ts +3 -0
  33. package/dist/server/AgentServer.d.ts.map +1 -1
  34. package/dist/server/AgentServer.js +3 -0
  35. package/dist/server/AgentServer.js.map +1 -1
  36. package/dist/server/PoolPollCache.d.ts +136 -0
  37. package/dist/server/PoolPollCache.d.ts.map +1 -0
  38. package/dist/server/PoolPollCache.js +163 -0
  39. package/dist/server/PoolPollCache.js.map +1 -0
  40. package/dist/server/routes.d.ts +9 -0
  41. package/dist/server/routes.d.ts.map +1 -1
  42. package/dist/server/routes.js +51 -8
  43. package/dist/server/routes.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/data/builtin-manifest.json +65 -65
  46. package/src/scaffold/templates.ts +4 -0
  47. package/upgrades/1.3.553.md +63 -0
  48. package/upgrades/1.3.554.md +79 -0
  49. package/upgrades/side-effects/multi-machine-seamlessness-ws44-pool-cache.md +115 -0
  50. package/upgrades/side-effects/ws43-journal-lease-cutover.md +132 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgCH,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;AAiH7D,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;AAm3CD,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,CAgvbtE;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;AAgCH,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;AAiH7D,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;AAy3CD,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,CAmzbtE;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"}
@@ -429,6 +429,12 @@ let _poolStreamConnector = null;
429
429
  * ctx. Constructed in the mesh-setup block (needs meshSelfId + identity manager);
430
430
  * null on single-machine or when the dark flag is off. */
431
431
  let _poolLink = null;
432
+ /** WS4.4(f) global pool-cache unification (MULTI-MACHINE-SEAMLESSNESS-SPEC
433
+ * §WS4.4 clause (f)): the ONE shared per-peer poll cache every pool-scope
434
+ * surface routes its per-peer fan-out through. Constructed in the mesh-setup
435
+ * block ONLY when the dark `ws44PoolCache` flag resolves on; null on
436
+ * single-machine / dark (surfaces keep their direct per-peer fetch). */
437
+ let _poolPollCache = null;
432
438
  /** Recognize + apply a "move/run this on <nickname>" relocation on inbound; returns handled=true when the message WAS a relocation command (so it must not also be dispatched). */
433
439
  let _tryNicknameRelocation = null;
434
440
  /** Per-topic framework override (claude-code | codex-cli). Populated from
@@ -12992,6 +12998,42 @@ export async function startServer(options) {
12992
12998
  });
12993
12999
  const poolSelfId = machineHeartbeat?.config?.machineId ??
12994
13000
  (poolIdMgr.hasIdentity() ? poolIdMgr.loadIdentity().machineId : null);
13001
+ // WS4.3 journal-lease cutover (MULTI-MACHINE-SEAMLESSNESS-SPEC §WS4.3,
13002
+ // "Cutover discipline"). Wired HERE (not at setRoleGuard) because the
13003
+ // gate needs the machinePoolRegistry — declared after the scheduler is
13004
+ // built. The gate-input is read LIVE at each claim boundary: the flag +
13005
+ // dry-run from config, this machine's lease epoch from the coordinator,
13006
+ // and the pool peers' advertised ws43JournalLease capability from their
13007
+ // last heartbeat (absent = older peer = non-participant → the whole pool
13008
+ // stays on the bus). Single-machine (no peers) is a strict no-op inside
13009
+ // the gate. The cutover guarantees the journal-lease and the legacy bus
13010
+ // broadcast are NEVER both live for a job set (the named migration hazard).
13011
+ if (poolSelfId && scheduler) {
13012
+ const leaseMod = await import('../scheduler/JobLeaseClaimStore.js');
13013
+ const leaseStore = new leaseMod.JobLeaseClaimStore({
13014
+ machineId: poolSelfId,
13015
+ stateDir: config.stateDir,
13016
+ });
13017
+ const registryForCutover = machinePoolRegistry;
13018
+ scheduler.setJournalLeaseCutover(leaseStore, () => ({
13019
+ enabled: config.multiMachine?.seamlessness?.ws43JournalLease === true,
13020
+ dryRun: config.multiMachine?.seamlessness?.ws43JournalLeaseDryRun !== false,
13021
+ epoch: coordinator.getLeaseEpoch(),
13022
+ peers: registryForCutover
13023
+ .getCapacities()
13024
+ .filter((c) => c.machineId !== poolSelfId)
13025
+ .map((c) => ({
13026
+ machineId: c.machineId,
13027
+ online: c.online,
13028
+ ws43JournalLease: c.seamlessnessFlags?.ws43JournalLease === true,
13029
+ })),
13030
+ }), (slug, decision) => {
13031
+ if (decision.reason === 'peers-incoherent' && decision.incoherentPeers.length > 0) {
13032
+ console.log(pc.dim(` [scheduler] WS4.3 cutover withheld for "${slug}" — pool not flag-coherent (peers without ws43JournalLease: ${decision.incoherentPeers.join(', ')}); staying on the legacy bus path.`));
13033
+ }
13034
+ });
13035
+ console.log(pc.dim(' [scheduler] WS4.3 journal-lease cutover wired (engages only when flag on + pool coherent).'));
13036
+ }
12995
13037
  if (poolSelfId) {
12996
13038
  try {
12997
13039
  poolIdMgr.recordSelfHardware(poolSelfId, poolMod.captureHardware());
@@ -13075,7 +13117,7 @@ export async function startServer(options) {
13075
13117
  // WS1.1 capability advertisement (spec invariant 5): a bounded
13076
13118
  // fixed-size summary, never an inventory. Reported live each
13077
13119
  // heartbeat so a queue going dark withdraws the capability.
13078
- seamlessnessFlags: { ws11DeliverReceive: !!_inboundQueue, ws12DrainReceive: !!_drainRunner, ws44PoolLinks: !!_poolLink, stateSyncReceive: selfStateSyncReceive() },
13120
+ seamlessnessFlags: { ws11DeliverReceive: !!_inboundQueue, ws12DrainReceive: !!_drainRunner, ws44PoolLinks: !!_poolLink, ws44PoolCache: !!_poolPollCache, ws43JournalLease: config.multiMachine?.seamlessness?.ws43JournalLease === true && config.multiMachine?.seamlessness?.ws43JournalLeaseDryRun !== true, stateSyncReceive: selfStateSyncReceive() },
13079
13121
  // Durable Inbound Message Queue §5.1: depth + oldest + tenure +
13080
13122
  // bounded top-K — the survivor's loss-SUSPECTED item, capped
13081
13123
  // re-placement arm, and supersede-dedupe key all read these.
@@ -13291,6 +13333,33 @@ export async function startServer(options) {
13291
13333
  }
13292
13334
  }
13293
13335
  }
13336
+ // WS4.4(f) global pool-cache unification (MULTI-MACHINE-SEAMLESSNESS-SPEC
13337
+ // §WS4.4 clause (f)). Ships DARK behind multiMachine.seamlessness.
13338
+ // ws44PoolCache (dev-agent gated, sibling of ws44PoolLinks). When on,
13339
+ // construct the ONE shared per-peer poll cache and pass it to the routes
13340
+ // ctx; every pool-scope surface routes its per-peer fan-out through it so
13341
+ // a dashboard polling several tabs hits each peer ONCE per interval, and
13342
+ // over the load-shed threshold serves last-cached (stale-tagged) instead
13343
+ // of re-fanning. When off (or single-machine), it stays null and the
13344
+ // surfaces keep their direct per-peer fetch (byte-for-byte today's
13345
+ // behavior).
13346
+ {
13347
+ const ws44CacheCfg = config.multiMachine?.seamlessness;
13348
+ if (resolveDevAgentGate(ws44CacheCfg?.ws44PoolCache, config)) {
13349
+ try {
13350
+ const cacheMod = await import('../server/PoolPollCache.js');
13351
+ _poolPollCache = new cacheMod.PoolPollCache({
13352
+ ttlMs: ws44CacheCfg?.ws44PoolCacheTtlMs,
13353
+ loadShedPerCore: ws44CacheCfg?.ws44LoadShedLoadPerCore,
13354
+ });
13355
+ console.log(pc.green(' WS4.4(f) pool-cache unification enabled (shared per-peer poll cache)'));
13356
+ }
13357
+ catch (err) {
13358
+ // @silent-fallback-ok — pool-cache stays null; surfaces keep their direct per-peer fetch (today's behavior). Logged with context.
13359
+ console.log(pc.dim(` [ws44-pool-cache] not wired: ${err instanceof Error ? err.message : String(err)}`));
13360
+ }
13361
+ }
13362
+ }
13294
13363
  const seenMeshNonces = new Map(); // `${sender}:${nonce}` → ts, age-pruned
13295
13364
  const meshPruneMs = Math.max(meshClockToleranceMs * 4, 120_000);
13296
13365
  // SessionOwnership registry (§L3) — in-memory store (single-machine correct;
@@ -15479,7 +15548,7 @@ export async function startServer(options) {
15479
15548
  carrier: _topicProfileCarrier,
15480
15549
  }
15481
15550
  : null;
15482
- 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, cartographer: cartographer ?? undefined, coherenceGate: scopeVerifier, contextHierarchy, canonicalState, operationGate, sentinel, adaptiveTrust, memoryMonitor, orphanReaper, coherenceMonitor, commitmentTracker, subscriptionPool, quotaPoller, quotaAwareScheduler: _quotaAwareScheduler ?? undefined, proactiveSwapMonitor: _proactiveSwapMonitor ?? undefined, inUseAccountResolver, enrollmentWizard, credentialRepointing, semanticMemory, activitySentinel, rateLimitSentinel, releaseReadinessSentinel: releaseReadinessSentinel ?? undefined, greenPrAutoMerger: greenPrAutoMerger ?? undefined, guardLatchStore: guardLatchStore ?? undefined, messageRouter, summarySentinel, spawnManager, systemReviewer, capabilityMapper, selfKnowledgeTree, coverageAuditor, topicResumeMap: _topicResumeMap ?? undefined, topicProfile: _topicProfileCtx ?? undefined, sessionRefresh: _sessionRefresh ?? undefined, autonomyManager, trustElevationTracker, autonomousEvolution, coordinator: coordinator.enabled ? coordinator : undefined, localSigningKeyPem, leaseTransport, onLeasePullRequest: () => leaseCoordinatorRef?.currentLease() ?? null, 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, threadLog, threadMessageRecorder, warrantsReplyGate, collaborationSurfacer, threadResumeMap, topicLinkageHandler: topicLinkageHandler ?? undefined, threadlineRelayClient, threadlineReplyWaiters, listenerManager: listenerManager ?? undefined, a2aDeliveryTracker: a2aDeliveryTracker ?? undefined, responseReviewGate, messagingToneGate, outboundDedupGate, telemetryHeartbeat, pasteManager, featureRegistry, discoveryEvaluator, completionEvaluator, unifiedTrust, liveConfig, sharedStateLedger, ledgerSessionRegistry, worktreeManager, oidcEnrolledRepos: parallelDevConfig?.oidcEnrolledRepos, initiativeTracker, projectRoundRunner, projectDriftChecker, machineHeartbeat, machinePoolRegistry, getInboundQueue: () => _inboundQueue, meshRpcDispatcher, workingSetPullCoordinator, commitmentReplicaStore, preferenceReplicaStore, conflictStore, rollbackUnmerge, droppedOriginRegistry, preferencesUnionReader, forwardCommitmentMutate, sessionOwnershipRegistry, topicPinStore: _topicPinStore ?? undefined, streamTicketStore: _streamTicketStore ?? undefined, poolStreamAllowRemoteInput: config.dashboard?.poolStream?.allowRemoteInput ?? false, poolStreamConnector: _poolStreamConnector ?? undefined, secretSync: _secretSyncHandle ?? undefined, meshSelfId: _meshSelfId ?? undefined, resolveRouterUrl: _resolveRouterUrl ?? undefined, resolvePeerUrls: _resolvePeerUrls ?? undefined, guardRegistry, listPoolMachines: _listPoolMachines ?? undefined, poolLink: _poolLink ?? undefined, sessionPoolE2EResultStore, proxyCoordinator, topicIntentStore, topicIntentArcCheck, usherSignalStore, intelligence: sharedIntelligence ?? undefined, telegramBridgeConfig, telegramBridge: telegramBridge ?? undefined, threadlineObservability, briefDeps, workingMemory, taskFlowRegistry, threadlineFlowBridge, sessionReaper, agentWorktreeReaper, orphanedWorkSentinel, mcpProcessReaper, geminiLoopRunner, sleepController, agentActivityState, reapLog, resumeQueue, resumeDrainer, operatorStopRecorder: recordOperatorStop, sleepWakeDetector, unjustifiedStopGate, stopGateDb, stopNotifier }); // Resolve the late-bound topic-operator getter (increment 2e): routing was
15551
+ 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, cartographer: cartographer ?? undefined, coherenceGate: scopeVerifier, contextHierarchy, canonicalState, operationGate, sentinel, adaptiveTrust, memoryMonitor, orphanReaper, coherenceMonitor, commitmentTracker, subscriptionPool, quotaPoller, quotaAwareScheduler: _quotaAwareScheduler ?? undefined, proactiveSwapMonitor: _proactiveSwapMonitor ?? undefined, inUseAccountResolver, enrollmentWizard, credentialRepointing, semanticMemory, activitySentinel, rateLimitSentinel, releaseReadinessSentinel: releaseReadinessSentinel ?? undefined, greenPrAutoMerger: greenPrAutoMerger ?? undefined, guardLatchStore: guardLatchStore ?? undefined, messageRouter, summarySentinel, spawnManager, systemReviewer, capabilityMapper, selfKnowledgeTree, coverageAuditor, topicResumeMap: _topicResumeMap ?? undefined, topicProfile: _topicProfileCtx ?? undefined, sessionRefresh: _sessionRefresh ?? undefined, autonomyManager, trustElevationTracker, autonomousEvolution, coordinator: coordinator.enabled ? coordinator : undefined, localSigningKeyPem, leaseTransport, onLeasePullRequest: () => leaseCoordinatorRef?.currentLease() ?? null, 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, threadLog, threadMessageRecorder, warrantsReplyGate, collaborationSurfacer, threadResumeMap, topicLinkageHandler: topicLinkageHandler ?? undefined, threadlineRelayClient, threadlineReplyWaiters, listenerManager: listenerManager ?? undefined, a2aDeliveryTracker: a2aDeliveryTracker ?? undefined, responseReviewGate, messagingToneGate, outboundDedupGate, telemetryHeartbeat, pasteManager, featureRegistry, discoveryEvaluator, completionEvaluator, unifiedTrust, liveConfig, sharedStateLedger, ledgerSessionRegistry, worktreeManager, oidcEnrolledRepos: parallelDevConfig?.oidcEnrolledRepos, initiativeTracker, projectRoundRunner, projectDriftChecker, machineHeartbeat, machinePoolRegistry, getInboundQueue: () => _inboundQueue, meshRpcDispatcher, workingSetPullCoordinator, commitmentReplicaStore, preferenceReplicaStore, conflictStore, rollbackUnmerge, droppedOriginRegistry, preferencesUnionReader, forwardCommitmentMutate, sessionOwnershipRegistry, topicPinStore: _topicPinStore ?? undefined, streamTicketStore: _streamTicketStore ?? undefined, poolStreamAllowRemoteInput: config.dashboard?.poolStream?.allowRemoteInput ?? false, poolStreamConnector: _poolStreamConnector ?? undefined, secretSync: _secretSyncHandle ?? undefined, meshSelfId: _meshSelfId ?? undefined, resolveRouterUrl: _resolveRouterUrl ?? undefined, resolvePeerUrls: _resolvePeerUrls ?? undefined, guardRegistry, listPoolMachines: _listPoolMachines ?? undefined, poolLink: _poolLink ?? undefined, poolPollCache: _poolPollCache ?? undefined, sessionPoolE2EResultStore, proxyCoordinator, topicIntentStore, topicIntentArcCheck, usherSignalStore, intelligence: sharedIntelligence ?? undefined, telegramBridgeConfig, telegramBridge: telegramBridge ?? undefined, threadlineObservability, briefDeps, workingMemory, taskFlowRegistry, threadlineFlowBridge, sessionReaper, agentWorktreeReaper, orphanedWorkSentinel, mcpProcessReaper, geminiLoopRunner, sleepController, agentActivityState, reapLog, resumeQueue, resumeDrainer, operatorStopRecorder: recordOperatorStop, sleepWakeDetector, unjustifiedStopGate, stopGateDb, stopNotifier }); // Resolve the late-bound topic-operator getter (increment 2e): routing was
15483
15552
  // wired before the server existed; from here on inbound binds use the
15484
15553
  // server's own store instance.
15485
15554
  _agentServerRef = server;