instar 1.3.1630 → 1.3.1632

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 (93) hide show
  1. package/dashboard/phones.js +9 -2
  2. package/dist/commands/install.d.ts +36 -0
  3. package/dist/commands/install.d.ts.map +1 -1
  4. package/dist/commands/install.js +167 -7
  5. package/dist/commands/install.js.map +1 -1
  6. package/dist/commands/server.d.ts.map +1 -1
  7. package/dist/commands/server.js +13 -52
  8. package/dist/commands/server.js.map +1 -1
  9. package/dist/commands/setup.d.ts +20 -0
  10. package/dist/commands/setup.d.ts.map +1 -1
  11. package/dist/commands/setup.js +75 -63
  12. package/dist/commands/setup.js.map +1 -1
  13. package/dist/core/AppConversationService.d.ts +3 -1
  14. package/dist/core/AppConversationService.d.ts.map +1 -1
  15. package/dist/core/AppConversationService.js +5 -2
  16. package/dist/core/AppConversationService.js.map +1 -1
  17. package/dist/core/AppConversationStore.d.ts +17 -0
  18. package/dist/core/AppConversationStore.d.ts.map +1 -1
  19. package/dist/core/AppConversationStore.js +25 -2
  20. package/dist/core/AppConversationStore.js.map +1 -1
  21. package/dist/core/MobileDeviceKeys.d.ts +18 -0
  22. package/dist/core/MobileDeviceKeys.d.ts.map +1 -1
  23. package/dist/core/MobileDeviceKeys.js +25 -0
  24. package/dist/core/MobileDeviceKeys.js.map +1 -1
  25. package/dist/core/MobileMspGrants.d.ts +25 -0
  26. package/dist/core/MobileMspGrants.d.ts.map +1 -0
  27. package/dist/core/MobileMspGrants.js +68 -0
  28. package/dist/core/MobileMspGrants.js.map +1 -0
  29. package/dist/core/MobilePairing.d.ts +7 -1
  30. package/dist/core/MobilePairing.d.ts.map +1 -1
  31. package/dist/core/MobilePairing.js +3 -3
  32. package/dist/core/MobilePairing.js.map +1 -1
  33. package/dist/core/MobilePeople.d.ts +100 -0
  34. package/dist/core/MobilePeople.d.ts.map +1 -0
  35. package/dist/core/MobilePeople.js +124 -0
  36. package/dist/core/MobilePeople.js.map +1 -0
  37. package/dist/core/MobilePush.d.ts +6 -0
  38. package/dist/core/MobilePush.d.ts.map +1 -1
  39. package/dist/core/MobilePush.js +11 -0
  40. package/dist/core/MobilePush.js.map +1 -1
  41. package/dist/core/PostUpdateMigrator.d.ts +15 -0
  42. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  43. package/dist/core/PostUpdateMigrator.js +77 -2
  44. package/dist/core/PostUpdateMigrator.js.map +1 -1
  45. package/dist/core/ownershipFollowsLiveWork.d.ts +52 -0
  46. package/dist/core/ownershipFollowsLiveWork.d.ts.map +1 -1
  47. package/dist/core/ownershipFollowsLiveWork.js +51 -0
  48. package/dist/core/ownershipFollowsLiveWork.js.map +1 -1
  49. package/dist/data/standards-guard-index.json +1 -1
  50. package/dist/data/standards-guard-index.meta.json +2 -2
  51. package/dist/data/standards-registry.meta.json +1 -1
  52. package/dist/messaging/TelegramAdapter.d.ts +11 -0
  53. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  54. package/dist/messaging/TelegramAdapter.js +2 -0
  55. package/dist/messaging/TelegramAdapter.js.map +1 -1
  56. package/dist/native/InstarWedgeCanary.app/Contents/MacOS/InstarWedgeCanary +0 -0
  57. package/dist/native/instar-desktop-host +0 -0
  58. package/dist/scaffold/templates.d.ts.map +1 -1
  59. package/dist/scaffold/templates.js +2 -1
  60. package/dist/scaffold/templates.js.map +1 -1
  61. package/dist/server/AgentServer.d.ts +5 -0
  62. package/dist/server/AgentServer.d.ts.map +1 -1
  63. package/dist/server/AgentServer.js +9 -0
  64. package/dist/server/AgentServer.js.map +1 -1
  65. package/dist/server/mobileConversationRoutes.d.ts +3 -0
  66. package/dist/server/mobileConversationRoutes.d.ts.map +1 -1
  67. package/dist/server/mobileConversationRoutes.js +55 -7
  68. package/dist/server/mobileConversationRoutes.js.map +1 -1
  69. package/dist/server/mobileMediaRoutes.d.ts.map +1 -1
  70. package/dist/server/mobileMediaRoutes.js +16 -0
  71. package/dist/server/mobileMediaRoutes.js.map +1 -1
  72. package/dist/server/mobilePairingRoutes.d.ts +61 -1
  73. package/dist/server/mobilePairingRoutes.d.ts.map +1 -1
  74. package/dist/server/mobilePairingRoutes.js +328 -31
  75. package/dist/server/mobilePairingRoutes.js.map +1 -1
  76. package/dist/server/mobileSlackRoutes.d.ts.map +1 -1
  77. package/dist/server/mobileSlackRoutes.js +28 -6
  78. package/dist/server/mobileSlackRoutes.js.map +1 -1
  79. package/dist/server/routes.d.ts +14 -0
  80. package/dist/server/routes.d.ts.map +1 -1
  81. package/dist/server/routes.js +32 -3
  82. package/dist/server/routes.js.map +1 -1
  83. package/package.json +1 -1
  84. package/src/data/builtin-manifest.json +64 -64
  85. package/src/data/standards-guard-index.json +1 -1
  86. package/src/data/standards-guard-index.meta.json +2 -2
  87. package/src/data/standards-registry.meta.json +1 -1
  88. package/src/scaffold/templates.ts +2 -1
  89. package/upgrades/1.3.1631.md +43 -0
  90. package/upgrades/1.3.1632.md +24 -0
  91. package/upgrades/side-effects/install-stable-service-and-pairing.md +112 -0
  92. package/upgrades/side-effects/mobile-app-people-and-roles.md +124 -0
  93. package/upgrades/side-effects/spawn-claims-topic-ownership.md +88 -0
@@ -78,7 +78,7 @@ import { resolveEncryptToPinnedMode, encryptToPinnedModeName } from '../threadli
78
78
  import { resolveRefuseDowngradeMode } from '../threadline/refuseDowngrade.js';
79
79
  import { MarkedPairingInviteFlow } from '../threadline/PairingPendingAcceptMarkers.js';
80
80
  import { resolveAntiThrashKnobs, readingValidity } from '../core/SwapAntiThrash.js';
81
- import { shouldReleaseOnComplete, planClaimOnSpawn, ownershipNonce } from '../core/ownershipFollowsLiveWork.js';
81
+ import { shouldReleaseOnComplete, createClaimOwnershipOnSpawn, ownershipNonce } from '../core/ownershipFollowsLiveWork.js';
82
82
  import { PrHandLease } from '../core/PrHandLease.js';
83
83
  import { ConversationRegistry } from '../core/ConversationRegistry.js';
84
84
  import { slackReplyRelayReadiness } from '../core/SlackReplyRelayInstaller.js';
@@ -24532,56 +24532,17 @@ export async function startServer(options) {
24532
24532
  // reconciler already gates respawn on topicOwnerElsewhere, so the
24533
24533
  // owned-by-peer case should not reach here; if a post-gate race does, the
24534
24534
  // claim is withheld and ONE neutral audit row records the divergence.
24535
- _claimOwnershipForAutonomousSpawn = (topicId) => {
24536
- try {
24537
- if (!ownershipFollowsLiveWork || !_meshSelfId)
24538
- return; // single-machine / dark = no-op
24539
- const sk = String(topicId);
24540
- let cur;
24541
- try {
24542
- cur = ownReg.read(sk);
24543
- }
24544
- catch {
24545
- return; /* registry unreadable → withhold (fail-closed) */
24546
- }
24547
- const plan = planClaimOnSpawn({ enabled: ownershipFollowsLiveWork, selfMachineId: _meshSelfId, record: cur });
24548
- if (plan.action === 'noop')
24549
- return; // already ours / dark → nothing to do
24550
- if (plan.action === 'place-then-claim') {
24551
- // never-seen / released → place then claim onto self.
24552
- const prev0 = cur?.ownerMachineId;
24553
- const rp = ownReg.cas({ type: 'place', machineId: _meshSelfId }, { sessionKey: sk, sender: _meshSelfId, nonce: ownershipNonce(_meshSelfId, 'auto-place', sk) });
24554
- emitPlacement(sk, rp, 'placed', prev0);
24555
- if (rp.ok) {
24556
- const rc = ownReg.cas({ type: 'claim', machineId: _meshSelfId }, { sessionKey: sk, sender: _meshSelfId, nonce: ownershipNonce(_meshSelfId, 'auto-claim', sk) });
24557
- emitPlacement(sk, rc, 'placed', _meshSelfId);
24558
- }
24559
- // place lost (a peer advanced first) → claim NOT attempted; the
24560
- // session still runs locally and the reconciler/applier converge (FD11).
24561
- return;
24562
- }
24563
- // plan.action === 'audit-owned-elsewhere': owned by a PEER → do NOT
24564
- // force-claim (FD3, fail-closed). This should not occur on the
24565
- // reconciler path (its topicOwnerElsewhere gate already filters it); a
24566
- // post-gate race lands ONE neutral, non-directional audit row to the
24567
- // machine-local liveness log.
24568
- try {
24569
- const auditPath = path.join(config.stateDir, 'logs', 'autonomous-liveness.jsonl');
24570
- fs.appendFileSync(auditPath, JSON.stringify({
24571
- ts: new Date().toISOString(),
24572
- kind: 'auto-spawn-owned-elsewhere',
24573
- topicId,
24574
- owner: plan.owner,
24575
- status: plan.status,
24576
- }) + '\n');
24577
- }
24578
- catch { /* @silent-fallback-ok — observational audit; never break the spawn */ }
24579
- }
24580
- catch {
24581
- // @silent-fallback-ok — claim-on-spawn is best-effort (FD1/FD11); a throw
24582
- // must never undo the successful spawn (the run is alive, which is the goal).
24583
- }
24584
- };
24535
+ _claimOwnershipForAutonomousSpawn = createClaimOwnershipOnSpawn({
24536
+ enabled: ownershipFollowsLiveWork,
24537
+ selfMachineId: _meshSelfId,
24538
+ ownReg,
24539
+ emitPlacement,
24540
+ // Owned by a PEER (a post-gate race): ONE neutral, non-directional
24541
+ // audit row in the machine-local liveness log; never a force-claim.
24542
+ auditOwnedElsewhere: ({ topicId, owner, status }) => {
24543
+ fs.appendFileSync(path.join(config.stateDir, 'logs', 'autonomous-liveness.jsonl'), JSON.stringify({ ts: new Date().toISOString(), kind: 'auto-spawn-owned-elsewhere', topicId, owner, status }) + '\n');
24544
+ },
24545
+ });
24585
24546
  }
24586
24547
  // The §L3 ownership commands, routed from MeshRpc to the registry CAS.
24587
24548
  const ownAction = (cmd, sender, env) => {
@@ -29574,7 +29535,7 @@ export async function startServer(options) {
29574
29535
  const server = new AgentServer({ config, ecosystemLedger: _ecosystemLedger ?? undefined, singleInstanceLock, agentIdentity: _agentIdentityDeps, terminateSessionAuthority: terminateWithAuthority, subscriptionEmailBinding: credentialLocationLedger, subscriptionEmailBarrier, subscriptionIdentityOracle, sessionManager, llmQueue: sharedLlmQueue, state, scheduler, telegram, telegramOrigin: telegramOriginBoot?.runtime, relationships, feedback, feedbackAnomalyDetector, dispatches, updateChecker, autoUpdater, autoDispatcher, quotaTracker, quotaManager, publisher, viewer, jobAnomalySendAutomationReply: sendAutomationReply, tunnel, evolution, watchdog, topicMemory, triageNurse, projectMapper, cartographerRoots: cartographerRoots ?? undefined, coherenceGate: scopeVerifier, contextHierarchy, canonicalState, operationGate, sentinel, adaptiveTrust, memoryMonitor, orphanReaper, coherenceMonitor, commitmentTracker, subscriptionPool, accountFollowMePeerViews: async () => { const nickById = new Map((_listPoolMachines?.() ?? []).map((m) => [m.machineId, verifiedEntityName(m.machineId, m.nickname) ?? ''])); let peers = (_resolvePeerUrls?.() ?? []).map((p) => ({ machineId: p.machineId, nickname: nickById.get(p.machineId) ?? '', url: p.url })); if (peers.length === 0) {
29575
29536
  peers = (_listPoolMachines?.() ?? []).filter((m) => m.machineId !== _meshSelfId && !!m.lastKnownUrl).map((m) => ({ machineId: m.machineId, nickname: verifiedEntityName(m.machineId, m.nickname) ?? '', url: m.lastKnownUrl }));
29576
29537
  } if (peers.length === 0)
29577
- return []; const { fetchPeerSubscriptionViews } = await import('../core/fetchPeerSubscriptionViews.js'); return fetchPeerSubscriptionViews({ peers: () => peers, fetchImpl: fetch, authToken: config.authToken ?? '' }); }, quotaPoller, quotaAwareScheduler: _quotaAwareScheduler ?? undefined, proactiveSwapMonitor: _proactiveSwapMonitor ?? undefined, inUseAccountResolver, enrollmentWizard, accountFollowMeRevocation, credentialRepointing, semanticMemory, activitySentinel, rateLimitSentinel, releaseReadinessSentinel: releaseReadinessSentinel ?? undefined, greenPrAutoMerger: greenPrAutoMerger ?? undefined, localVerify: localVerifyService ?? undefined, localVerifyStatus: localVerifyStatus ?? 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, meshBindActive: coordinator.managers.identityManager.hasIdentity() && config.multiMachine?.meshTransport?.enabled !== false, localSigningKeyPem, leaseTransport, peerEndpointRecorder, getSelfMeshEndpoints, 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, conversationRegistry, conversationBindAuth, appConversations: _appConversationService ?? undefined, slackInboundDispatch: () => _slackInboundDispatch, conversationFollowThrough, whatsappBusinessBackend, messageBridge, hookEventReceiver, worktreeMonitor, subagentTracker, instructionsVerifier, handshakeManager: threadlineHandshake, threadlineRouter, conversationStore, threadLog, threadMessageRecorder, warrantsReplyGate, collaborationSurfacer, peerHomebaseRelay, threadResumeMap, topicLinkageHandler: topicLinkageHandler ?? undefined, threadlineRelayClient, pairingInvites: threadlinePairingInvites, getLastRelayEvent: threadlineGetLastRelayEvent, a2aRelayForward: _a2aRelayForwardCtx ?? undefined, threadlineReplyWaiters, threadlineMcpHttp, listenerManager: listenerManager ?? undefined, a2aDeliveryTracker: a2aDeliveryTracker ?? undefined, relayVerdictCounters: threadlineRelayClient ? (() => ({ ...threadlineRelayClient.relayVerdictCounters, expiredMismatchIgnored: a2aDeliveryTracker?.expiredMismatchIgnored ?? 0 })) : undefined, inboundIdLedger: _inboundIdLedger ?? undefined, inboundIdLedgerDaemonDeferred: () => _inboundIdLedgerDaemonDeferred, responseReviewGate, reviewCanaryBattery, messagingToneGate, outboundDedupGate, telemetryHeartbeat, pasteManager, featureRegistry, discoveryEvaluator, completionEvaluator, unifiedTrust, liveConfig, sharedStateLedger, ledgerSessionRegistry, worktreeManager, oidcEnrolledRepos: parallelDevConfig?.oidcEnrolledRepos, initiativeTracker, projectRoundRunner, projectDriftChecker, machineHeartbeat, machinePoolRegistry, ropeHealthMonitor, writeAdmission: writeAdmission ?? undefined, getInboundQueue: () => _inboundQueue, getMachineCoherence: () => _machineCoherenceSentinel, getSingleMachineFailoverGap: () => _singleMachineFailoverGap, getMissingLoginSession: () => _missingLoginSession, getSessionPoolFailoverRunner: () => _sessionPoolFailoverRunnerDriver?.status() ?? null, sessionPoolPromotionActivation: _sessionPoolPromotionActivation, meshRpcDispatcher, deliverA2aToMachine: _deliverA2aToMachine ?? undefined, workingSetPullCoordinator, workingSetArtifactManager, orchestratorPoller, commitmentReplicaStore, preferenceReplicaStore, replicatedRecordEmitter, replicatedStoreReconciler, conflictStore, rollbackUnmerge, droppedOriginRegistry, preferencesUnionReader, jevMemoryPicker, forwardCommitmentMutate, sessionOwnershipRegistry, sendDrain: _sendDrain ?? undefined, topicPinStore: _topicPinStore ?? undefined, topicPinSkewQuarantine: _topicPinSkewQuarantine ?? undefined, topicPinFoldView: _topicPinFoldView ?? undefined, ownershipReconciler: _ownershipReconciler ?? undefined, staleOwnerEngine: _staleOwnerEngine ?? undefined, duplicateReconciler: _duplicateReconciler ?? undefined, ownerDarkLadder: _ownerDarkLadder ?? undefined, spawnAdmission: _spawnAdmission ?? undefined, judgmentProvenance: _judgmentProvenance ?? undefined, leaseHandback: _leaseHandbackCtx ?? 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, recordRopeResult: _recordRopeResult ?? undefined, guardRegistry, listPoolMachines: _listPoolMachines ?? undefined, deliverMandateToMachine: _deliverMandateToMachine ?? undefined, passkeyRevokeOutbox: _passkeyRevokeOutbox ? () => _passkeyRevokeOutbox : undefined, passkeyPeerOnline: _passkeyPeerOnline, passkeyPoolReader: _passkeyPoolReader ? () => _passkeyPoolReader : undefined, passkeyProofBrowser: async (profileDir) => { const { ChromeCdpReloginBrowser } = await import('../core/ChromeCdpReloginBrowser.js'); return new ChromeCdpReloginBrowser({ userDataDir: profileDir, passkeyMode: true, headless: true, launchTimeoutMs: 30_000, operationTimeoutMs: 20_000 }); }, 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, externalHogSentinel, orphanedWorkSentinel, mcpProcessReaper, codexArmSessionSweeper, geminiLoopRunner, sleepController, agentActivityState, reapLog, resumeQueue, resumeDrainer, autonomousLivenessReconciler, enforcedTerminationStatus: () => enforcedTerminationWatchdog?.guardStatus() ?? null, prHandLease: prHandLease ?? undefined, standDownRegistry: _standDownRegistry ?? undefined, standDownAudit: _standDownAudit ?? undefined, operatorStopRecorder: recordOperatorStop, sleepWakeDetector, unjustifiedStopGate, stopGateDb, stopNotifier, liveTestGate, liveTestGateMode, liveTestRunnerCtx }); // Resolve the late-bound topic-operator getter (increment 2e): routing was
29538
+ return []; const { fetchPeerSubscriptionViews } = await import('../core/fetchPeerSubscriptionViews.js'); return fetchPeerSubscriptionViews({ peers: () => peers, fetchImpl: fetch, authToken: config.authToken ?? '' }); }, quotaPoller, quotaAwareScheduler: _quotaAwareScheduler ?? undefined, proactiveSwapMonitor: _proactiveSwapMonitor ?? undefined, inUseAccountResolver, enrollmentWizard, accountFollowMeRevocation, credentialRepointing, semanticMemory, activitySentinel, rateLimitSentinel, releaseReadinessSentinel: releaseReadinessSentinel ?? undefined, greenPrAutoMerger: greenPrAutoMerger ?? undefined, localVerify: localVerifyService ?? undefined, localVerifyStatus: localVerifyStatus ?? 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, meshBindActive: coordinator.managers.identityManager.hasIdentity() && config.multiMachine?.meshTransport?.enabled !== false, localSigningKeyPem, leaseTransport, peerEndpointRecorder, getSelfMeshEndpoints, 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, conversationRegistry, conversationBindAuth, appConversations: _appConversationService ?? undefined, slackInboundDispatch: () => _slackInboundDispatch, conversationFollowThrough, whatsappBusinessBackend, messageBridge, hookEventReceiver, worktreeMonitor, subagentTracker, instructionsVerifier, handshakeManager: threadlineHandshake, threadlineRouter, conversationStore, threadLog, threadMessageRecorder, warrantsReplyGate, collaborationSurfacer, peerHomebaseRelay, threadResumeMap, topicLinkageHandler: topicLinkageHandler ?? undefined, threadlineRelayClient, pairingInvites: threadlinePairingInvites, getLastRelayEvent: threadlineGetLastRelayEvent, a2aRelayForward: _a2aRelayForwardCtx ?? undefined, threadlineReplyWaiters, threadlineMcpHttp, listenerManager: listenerManager ?? undefined, a2aDeliveryTracker: a2aDeliveryTracker ?? undefined, relayVerdictCounters: threadlineRelayClient ? (() => ({ ...threadlineRelayClient.relayVerdictCounters, expiredMismatchIgnored: a2aDeliveryTracker?.expiredMismatchIgnored ?? 0 })) : undefined, inboundIdLedger: _inboundIdLedger ?? undefined, inboundIdLedgerDaemonDeferred: () => _inboundIdLedgerDaemonDeferred, responseReviewGate, reviewCanaryBattery, messagingToneGate, outboundDedupGate, telemetryHeartbeat, pasteManager, featureRegistry, discoveryEvaluator, completionEvaluator, unifiedTrust, liveConfig, sharedStateLedger, ledgerSessionRegistry, worktreeManager, oidcEnrolledRepos: parallelDevConfig?.oidcEnrolledRepos, initiativeTracker, projectRoundRunner, projectDriftChecker, machineHeartbeat, machinePoolRegistry, ropeHealthMonitor, writeAdmission: writeAdmission ?? undefined, getInboundQueue: () => _inboundQueue, getMachineCoherence: () => _machineCoherenceSentinel, getSingleMachineFailoverGap: () => _singleMachineFailoverGap, getMissingLoginSession: () => _missingLoginSession, getSessionPoolFailoverRunner: () => _sessionPoolFailoverRunnerDriver?.status() ?? null, sessionPoolPromotionActivation: _sessionPoolPromotionActivation, meshRpcDispatcher, deliverA2aToMachine: _deliverA2aToMachine ?? undefined, workingSetPullCoordinator, workingSetArtifactManager, orchestratorPoller, commitmentReplicaStore, preferenceReplicaStore, replicatedRecordEmitter, replicatedStoreReconciler, conflictStore, rollbackUnmerge, droppedOriginRegistry, preferencesUnionReader, jevMemoryPicker, forwardCommitmentMutate, sessionOwnershipRegistry, sendDrain: _sendDrain ?? undefined, claimTopicOwnershipOnSpawn: (topicId) => _claimOwnershipForAutonomousSpawn ? _claimOwnershipForAutonomousSpawn(topicId) : 'unwired', topicPinStore: _topicPinStore ?? undefined, topicPinSkewQuarantine: _topicPinSkewQuarantine ?? undefined, topicPinFoldView: _topicPinFoldView ?? undefined, ownershipReconciler: _ownershipReconciler ?? undefined, staleOwnerEngine: _staleOwnerEngine ?? undefined, duplicateReconciler: _duplicateReconciler ?? undefined, ownerDarkLadder: _ownerDarkLadder ?? undefined, spawnAdmission: _spawnAdmission ?? undefined, judgmentProvenance: _judgmentProvenance ?? undefined, leaseHandback: _leaseHandbackCtx ?? 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, recordRopeResult: _recordRopeResult ?? undefined, guardRegistry, listPoolMachines: _listPoolMachines ?? undefined, deliverMandateToMachine: _deliverMandateToMachine ?? undefined, passkeyRevokeOutbox: _passkeyRevokeOutbox ? () => _passkeyRevokeOutbox : undefined, passkeyPeerOnline: _passkeyPeerOnline, passkeyPoolReader: _passkeyPoolReader ? () => _passkeyPoolReader : undefined, passkeyProofBrowser: async (profileDir) => { const { ChromeCdpReloginBrowser } = await import('../core/ChromeCdpReloginBrowser.js'); return new ChromeCdpReloginBrowser({ userDataDir: profileDir, passkeyMode: true, headless: true, launchTimeoutMs: 30_000, operationTimeoutMs: 20_000 }); }, 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, externalHogSentinel, orphanedWorkSentinel, mcpProcessReaper, codexArmSessionSweeper, geminiLoopRunner, sleepController, agentActivityState, reapLog, resumeQueue, resumeDrainer, autonomousLivenessReconciler, enforcedTerminationStatus: () => enforcedTerminationWatchdog?.guardStatus() ?? null, prHandLease: prHandLease ?? undefined, standDownRegistry: _standDownRegistry ?? undefined, standDownAudit: _standDownAudit ?? undefined, operatorStopRecorder: recordOperatorStop, sleepWakeDetector, unjustifiedStopGate, stopGateDb, stopNotifier, liveTestGate, liveTestGateMode, liveTestRunnerCtx }); // Resolve the late-bound topic-operator getter (increment 2e): routing was
29578
29539
  const readIdentityProjectionPeerRows = async () => {
29579
29540
  const peers = _resolvePeerUrls?.() ?? [];
29580
29541
  const extra = config.multiMachine?.peerUrlAllowlist;