instar 1.3.236 → 1.3.238

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 (62) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +35 -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 +8 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/ParallelActivityIndex.d.ts +62 -0
  8. package/dist/core/ParallelActivityIndex.d.ts.map +1 -0
  9. package/dist/core/ParallelActivityIndex.js +129 -0
  10. package/dist/core/ParallelActivityIndex.js.map +1 -0
  11. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  12. package/dist/core/PostUpdateMigrator.js +16 -0
  13. package/dist/core/PostUpdateMigrator.js.map +1 -1
  14. package/dist/core/types.d.ts +37 -0
  15. package/dist/core/types.d.ts.map +1 -1
  16. package/dist/core/types.js.map +1 -1
  17. package/dist/monitoring/GeminiLoopDriver.d.ts +112 -0
  18. package/dist/monitoring/GeminiLoopDriver.d.ts.map +1 -0
  19. package/dist/monitoring/GeminiLoopDriver.js +111 -0
  20. package/dist/monitoring/GeminiLoopDriver.js.map +1 -0
  21. package/dist/monitoring/GeminiLoopRunner.d.ts +93 -0
  22. package/dist/monitoring/GeminiLoopRunner.d.ts.map +1 -0
  23. package/dist/monitoring/GeminiLoopRunner.js +134 -0
  24. package/dist/monitoring/GeminiLoopRunner.js.map +1 -0
  25. package/dist/monitoring/ParallelWorkOverlap.d.ts +59 -0
  26. package/dist/monitoring/ParallelWorkOverlap.d.ts.map +1 -0
  27. package/dist/monitoring/ParallelWorkOverlap.js +86 -0
  28. package/dist/monitoring/ParallelWorkOverlap.js.map +1 -0
  29. package/dist/monitoring/ParallelWorkSentinel.d.ts +59 -0
  30. package/dist/monitoring/ParallelWorkSentinel.d.ts.map +1 -0
  31. package/dist/monitoring/ParallelWorkSentinel.js +79 -0
  32. package/dist/monitoring/ParallelWorkSentinel.js.map +1 -0
  33. package/dist/monitoring/geminiLoopProduction.d.ts +62 -0
  34. package/dist/monitoring/geminiLoopProduction.d.ts.map +1 -0
  35. package/dist/monitoring/geminiLoopProduction.js +124 -0
  36. package/dist/monitoring/geminiLoopProduction.js.map +1 -0
  37. package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.d.ts +14 -0
  38. package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.d.ts.map +1 -1
  39. package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.js +16 -0
  40. package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.js.map +1 -1
  41. package/dist/scaffold/templates.d.ts.map +1 -1
  42. package/dist/scaffold/templates.js +4 -0
  43. package/dist/scaffold/templates.js.map +1 -1
  44. package/dist/server/AgentServer.d.ts +9 -0
  45. package/dist/server/AgentServer.d.ts.map +1 -1
  46. package/dist/server/AgentServer.js +83 -0
  47. package/dist/server/AgentServer.js.map +1 -1
  48. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  49. package/dist/server/CapabilityIndex.js +10 -0
  50. package/dist/server/CapabilityIndex.js.map +1 -1
  51. package/dist/server/routes.d.ts +5 -0
  52. package/dist/server/routes.d.ts.map +1 -1
  53. package/dist/server/routes.js +62 -0
  54. package/dist/server/routes.js.map +1 -1
  55. package/package.json +1 -1
  56. package/src/data/builtin-manifest.json +64 -64
  57. package/src/scaffold/templates.ts +4 -0
  58. package/upgrades/1.3.237.md +82 -0
  59. package/upgrades/1.3.238.md +68 -0
  60. package/upgrades/side-effects/gemini-loop-driver-wiring.md +59 -0
  61. package/upgrades/side-effects/gemini-multi-turn-loop-driver.md +56 -0
  62. package/upgrades/side-effects/parallel-activity-coherence.md +94 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA0SH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+wDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqnQtE;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;AA0SH,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+wDD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwpQtE;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"}
@@ -14,7 +14,7 @@ import path from 'node:path';
14
14
  import { fileURLToPath } from 'node:url';
15
15
  import pc from 'picocolors';
16
16
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
17
- import { loadConfig, ensureStateDir, detectTmuxPath } from '../core/Config.js';
17
+ import { loadConfig, ensureStateDir, detectTmuxPath, detectGeminiPath } from '../core/Config.js';
18
18
  import { isNonFatalUncaught, shouldLogStackForUncaught } from '../core/uncaughtExceptionPolicy.js';
19
19
  import { closeAllSqlite } from '../core/SqliteRegistry.js';
20
20
  import { SessionManager } from '../core/SessionManager.js';
@@ -8552,6 +8552,39 @@ export async function startServer(options) {
8552
8552
  ? ' McpProcessReaper enabled (leaked-MCP reclaim — LIVE)'
8553
8553
  : ' McpProcessReaper enabled (leaked-MCP reclaim — dry-run, report only)'));
8554
8554
  }
8555
+ // ── GeminiLoopRunner (need-gem-002) — multi-turn gemini loop-driver ──────────
8556
+ // Lets the gemini mentee sustain a multi-turn task: turn 1 one-shot establishes
8557
+ // a session, later turns re-spawn `gemini -r <handle>` so context restores
8558
+ // natively (no transcript re-send → quota-efficient). Subscription-auth is
8559
+ // structural (the transport strips billing env). Ships DARK
8560
+ // (autonomousSessions.geminiLoopDriver.enabled); the developmentAgent gate turns
8561
+ // it on for dev agents only. Powers POST + GET /gemini-loop/runs.
8562
+ let geminiLoopRunner = null;
8563
+ {
8564
+ const gcfg = config.autonomousSessions?.geminiLoopDriver;
8565
+ const enabled = gcfg?.enabled ?? !!config.developmentAgent; // dark fleet-wide; live on dev agents
8566
+ if (enabled) {
8567
+ const { GeminiLoopRunner } = await import('../monitoring/GeminiLoopRunner.js');
8568
+ const { createGeminiLoopSpawn, createGeminiHandleCapture, createQuotaBudgetGate } = await import('../monitoring/geminiLoopProduction.js');
8569
+ const geminiPath = detectGeminiPath() ?? 'gemini';
8570
+ const turnTimeoutMs = gcfg?.turnTimeoutMs ?? 180_000;
8571
+ geminiLoopRunner = new GeminiLoopRunner({
8572
+ config: {
8573
+ enabled: true,
8574
+ model: gcfg?.model ?? 'gemini-2.5-flash',
8575
+ maxTurns: gcfg?.maxTurns ?? 12,
8576
+ minTurnIntervalMs: gcfg?.minTurnIntervalMs ?? 2_000,
8577
+ maxConcurrent: gcfg?.maxConcurrent ?? 1,
8578
+ maxRetainedRuns: gcfg?.maxRetainedRuns ?? 50,
8579
+ },
8580
+ spawn: createGeminiLoopSpawn(geminiPath, turnTimeoutMs),
8581
+ captureHandle: createGeminiHandleCapture(geminiPath),
8582
+ budgetGate: createQuotaBudgetGate(quotaTracker ?? null),
8583
+ log: (msg) => console.log(pc.dim(msg)),
8584
+ });
8585
+ console.log(pc.green(' GeminiLoopRunner enabled (multi-turn gemini mentee, subscription auth)'));
8586
+ }
8587
+ }
8555
8588
  // ── Agent hard-sleep — SleepController (RESPONSIBLE-RESOURCE-USAGE, Stage B) ──
8556
8589
  // Decides "is it safe for this idle agent to drop to near-zero footprint?" with
8557
8590
  // every safety guard. Ships OFF + dry-run: observes + audits to
@@ -9322,7 +9355,7 @@ export async function startServer(options) {
9322
9355
  catch (err) {
9323
9356
  console.log(pc.dim(` [session-pool] rollout gate not wired: ${err instanceof Error ? err.message : String(err)}`));
9324
9357
  }
9325
- 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, 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, 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, machinePoolRegistry, meshRpcDispatcher, sessionOwnershipRegistry, sessionPoolE2EResultStore, proxyCoordinator, topicIntentStore, topicIntentArcCheck, usherSignalStore, intelligence: sharedIntelligence ?? undefined, telegramBridgeConfig, telegramBridge: telegramBridge ?? undefined, threadlineObservability, briefDeps, workingMemory, taskFlowRegistry, threadlineFlowBridge, sessionReaper, agentWorktreeReaper, mcpProcessReaper, sleepController, agentActivityState, reapLog, sleepWakeDetector, unjustifiedStopGate, stopGateDb, stopNotifier });
9358
+ 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, 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, 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, machinePoolRegistry, meshRpcDispatcher, sessionOwnershipRegistry, sessionPoolE2EResultStore, proxyCoordinator, topicIntentStore, topicIntentArcCheck, usherSignalStore, intelligence: sharedIntelligence ?? undefined, telegramBridgeConfig, telegramBridge: telegramBridge ?? undefined, threadlineObservability, briefDeps, workingMemory, taskFlowRegistry, threadlineFlowBridge, sessionReaper, agentWorktreeReaper, mcpProcessReaper, geminiLoopRunner, sleepController, agentActivityState, reapLog, sleepWakeDetector, unjustifiedStopGate, stopGateDb, stopNotifier });
9326
9359
  // Boot-recovery (tunnel-failure-resilience spec Part 6): if the agent
9327
9360
  // died mid-relay-episode, the persisted tunnel.json carries
9328
9361
  // rotationPending=true. Rotate the dashboard PIN + authToken BEFORE