@integrity-labs/agt-cli 0.28.1151 → 0.28.1153

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 (24) hide show
  1. package/dist/bin/agt.js +6 -6
  2. package/dist/{chunk-AJ2Z3VSN.js → chunk-E5BVBODT.js} +2 -2
  3. package/dist/{chunk-OISSVMYG.js → chunk-OGEAF6HE.js} +3 -3
  4. package/dist/{chunk-TLDY7AE4.js → chunk-PQ6K7IGT.js} +1 -1
  5. package/dist/{chunk-TLDY7AE4.js.map → chunk-PQ6K7IGT.js.map} +1 -1
  6. package/dist/{chunk-MVZDF2MR.js → chunk-ZC7SC63V.js} +5 -5
  7. package/dist/{chunk-NSX27ZTP.js → chunk-ZW6MEVUD.js} +2 -2
  8. package/dist/{claude-code-updater-JXL4CM2V.js → claude-code-updater-54ZISKTQ.js} +3 -3
  9. package/dist/{claude-pair-runtime-7QPXNON3.js → claude-pair-runtime-OKT66D2H.js} +3 -3
  10. package/dist/lib/manager-worker.js +19 -85
  11. package/dist/lib/manager-worker.js.map +1 -1
  12. package/dist/{persistent-session-YKRO5RLK.js → persistent-session-JRNQ3OMQ.js} +4 -4
  13. package/dist/{responsiveness-probe-LVRBC2AA.js → responsiveness-probe-KQSVBU2O.js} +4 -4
  14. package/dist/{session-auth-dead-FREXPXHN.js → session-auth-dead-MSTRS7FK.js} +3 -3
  15. package/package.json +1 -1
  16. /package/dist/{chunk-AJ2Z3VSN.js.map → chunk-E5BVBODT.js.map} +0 -0
  17. /package/dist/{chunk-OISSVMYG.js.map → chunk-OGEAF6HE.js.map} +0 -0
  18. /package/dist/{chunk-MVZDF2MR.js.map → chunk-ZC7SC63V.js.map} +0 -0
  19. /package/dist/{chunk-NSX27ZTP.js.map → chunk-ZW6MEVUD.js.map} +0 -0
  20. /package/dist/{claude-code-updater-JXL4CM2V.js.map → claude-code-updater-54ZISKTQ.js.map} +0 -0
  21. /package/dist/{claude-pair-runtime-7QPXNON3.js.map → claude-pair-runtime-OKT66D2H.js.map} +0 -0
  22. /package/dist/{persistent-session-YKRO5RLK.js.map → persistent-session-JRNQ3OMQ.js.map} +0 -0
  23. /package/dist/{responsiveness-probe-LVRBC2AA.js.map → responsiveness-probe-KQSVBU2O.js.map} +0 -0
  24. /package/dist/{session-auth-dead-FREXPXHN.js.map → session-auth-dead-MSTRS7FK.js.map} +0 -0
@@ -16,11 +16,11 @@ import {
16
16
  parseEnvFileEntries,
17
17
  parseEnvIntegrations,
18
18
  shellQuote
19
- } from "./chunk-OISSVMYG.js";
19
+ } from "./chunk-OGEAF6HE.js";
20
20
  import {
21
21
  readDailySessionPin,
22
22
  sessionTranscriptDir
23
- } from "./chunk-AJ2Z3VSN.js";
23
+ } from "./chunk-E5BVBODT.js";
24
24
  import {
25
25
  classifyUnanswerablePane,
26
26
  isConsumerTermsDialogVisible,
@@ -95,7 +95,7 @@ import {
95
95
  scanConfigForLiteralSecrets,
96
96
  worseConnectivityOutcome,
97
97
  wrapScheduledTaskPrompt
98
- } from "./chunk-TLDY7AE4.js";
98
+ } from "./chunk-PQ6K7IGT.js";
99
99
 
100
100
  // ../../packages/core/dist/provisioning/mcp-config-guards.js
101
101
  import { chmodSync, existsSync, readFileSync, renameSync, writeFileSync, unlinkSync } from "fs";
@@ -8078,7 +8078,7 @@ function exchangeFailureKind(err) {
8078
8078
  }
8079
8079
 
8080
8080
  // src/lib/api-client.ts
8081
- var agtCliVersion = true ? "0.28.1151" : "dev";
8081
+ var agtCliVersion = true ? "0.28.1153" : "dev";
8082
8082
  var lastConfigHash = null;
8083
8083
  function setConfigHash(hash) {
8084
8084
  lastConfigHash = hash && hash.length > 0 ? hash : null;
@@ -13235,4 +13235,4 @@ export {
13235
13235
  managerInstallSystemUnitCommand,
13236
13236
  managerUninstallSystemUnitCommand
13237
13237
  };
13238
- //# sourceMappingURL=chunk-MVZDF2MR.js.map
13238
+ //# sourceMappingURL=chunk-ZC7SC63V.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-EL5MWGGH.js";
8
8
  import {
9
9
  FORCED_UPDATE_HARD_DEADLINE_MS
10
- } from "./chunk-TLDY7AE4.js";
10
+ } from "./chunk-PQ6K7IGT.js";
11
11
 
12
12
  // src/lib/claude-code-updater.ts
13
13
  import { execFile, execFileSync } from "child_process";
@@ -339,4 +339,4 @@ export {
339
339
  probeClaudeInstalls,
340
340
  maybeUpdateClaudeCode
341
341
  };
342
- //# sourceMappingURL=chunk-NSX27ZTP.js.map
342
+ //# sourceMappingURL=chunk-ZW6MEVUD.js.map
@@ -12,10 +12,10 @@ import {
12
12
  probeClaudeInstalls,
13
13
  readsAsNativeInstall,
14
14
  shouldRunClaudeCodeUpdater
15
- } from "./chunk-NSX27ZTP.js";
15
+ } from "./chunk-ZW6MEVUD.js";
16
16
  import "./chunk-XWVM4KPK.js";
17
17
  import "./chunk-EL5MWGGH.js";
18
- import "./chunk-TLDY7AE4.js";
18
+ import "./chunk-PQ6K7IGT.js";
19
19
  import "./chunk-DGUM43GV.js";
20
20
  export {
21
21
  CLAUDE_CODE_SECURITY_FLOOR,
@@ -32,4 +32,4 @@ export {
32
32
  readsAsNativeInstall,
33
33
  shouldRunClaudeCodeUpdater
34
34
  };
35
- //# sourceMappingURL=claude-code-updater-JXL4CM2V.js.map
35
+ //# sourceMappingURL=claude-code-updater-54ZISKTQ.js.map
@@ -15,7 +15,7 @@ import {
15
15
  import {
16
16
  redactPaneFrame,
17
17
  sanitizeTerminalFrame
18
- } from "./chunk-TLDY7AE4.js";
18
+ } from "./chunk-PQ6K7IGT.js";
19
19
  import "./chunk-DGUM43GV.js";
20
20
 
21
21
  // src/lib/claude-pair-runtime.ts
@@ -295,7 +295,7 @@ async function spawnPairSession(session) {
295
295
  return { ok: true };
296
296
  } catch {
297
297
  }
298
- const { resolveClaudeBinary } = await import("./persistent-session-YKRO5RLK.js");
298
+ const { resolveClaudeBinary } = await import("./persistent-session-JRNQ3OMQ.js");
299
299
  const claudeBin = resolveClaudeBinary();
300
300
  const pairEnv = {
301
301
  ...process.env,
@@ -802,4 +802,4 @@ export {
802
802
  startClaudePair,
803
803
  submitClaudePairCode
804
804
  };
805
- //# sourceMappingURL=claude-pair-runtime-7QPXNON3.js.map
805
+ //# sourceMappingURL=claude-pair-runtime-OKT66D2H.js.map
@@ -77,11 +77,11 @@ import {
77
77
  setConfigHash,
78
78
  shellGuard,
79
79
  tripClass
80
- } from "../chunk-MVZDF2MR.js";
80
+ } from "../chunk-ZC7SC63V.js";
81
81
  import {
82
82
  CLAUDE_CODE_SECURITY_FLOOR,
83
83
  compareVersions
84
- } from "../chunk-NSX27ZTP.js";
84
+ } from "../chunk-ZW6MEVUD.js";
85
85
  import {
86
86
  getProjectDir as getProjectDir2,
87
87
  getReadyTasks,
@@ -168,7 +168,7 @@ import {
168
168
  webFetchBaselineValue,
169
169
  webFetchRestartNeeded,
170
170
  writeEgressAllowlist
171
- } from "../chunk-OISSVMYG.js";
171
+ } from "../chunk-OGEAF6HE.js";
172
172
  import {
173
173
  isAgentIdle,
174
174
  isStaleForToday,
@@ -177,7 +177,7 @@ import {
177
177
  sessionTranscriptDir,
178
178
  subagentActivityAgeSeconds,
179
179
  transcriptActivityAgeSeconds
180
- } from "../chunk-AJ2Z3VSN.js";
180
+ } from "../chunk-E5BVBODT.js";
181
181
  import {
182
182
  classifyUnanswerablePane,
183
183
  focusedConfirmDialogBlock,
@@ -300,7 +300,7 @@ import {
300
300
  serializeAccountEnforcementMarker,
301
301
  stabiliseResetInstant,
302
302
  sumTranscriptUsageInWindow
303
- } from "../chunk-TLDY7AE4.js";
303
+ } from "../chunk-PQ6K7IGT.js";
304
304
  import "../chunk-DGUM43GV.js";
305
305
 
306
306
  // src/lib/manager-worker.ts
@@ -13674,7 +13674,6 @@ var client = null;
13674
13674
  var chatChannel = null;
13675
13675
  var driftChannel = null;
13676
13676
  var assignChannel = null;
13677
- var configChannel = null;
13678
13677
  var kanbanChannel = null;
13679
13678
  var integrationContextChannel = null;
13680
13679
  var tokenRotationChannels = [];
@@ -13721,7 +13720,6 @@ function startRealtimeChat(config2) {
13721
13720
  chatChannel = null;
13722
13721
  driftChannel = null;
13723
13722
  assignChannel = null;
13724
- configChannel = null;
13725
13723
  kanbanChannel = null;
13726
13724
  integrationContextChannel = null;
13727
13725
  tokenRotationChannels = [];
@@ -13809,34 +13807,6 @@ function startRealtimeAssignments(config2) {
13809
13807
  });
13810
13808
  log2(`[realtime] Subscribing to host_agents for host ${hostId}`);
13811
13809
  }
13812
- function startRealtimeConfig(config2) {
13813
- const { agentIds, onConfigChange, log: log2 } = config2;
13814
- if (agentIds.length === 0) return;
13815
- const sb = ensureClient(config2);
13816
- const filterStr = agentIds.length === 1 ? `agent_id=eq.${agentIds[0]}` : `agent_id=in.(${agentIds.join(",")})`;
13817
- const lastKnown = /* @__PURE__ */ new Map();
13818
- configChannel = sb.channel("config-realtime").on("postgres_changes", {
13819
- event: "UPDATE",
13820
- schema: "public",
13821
- table: "agents",
13822
- filter: filterStr
13823
- }, (payload) => {
13824
- const agent = payload.new;
13825
- const fingerprint3 = `${agent.status}|${agent.framework}|${agent.session_mode}|${agent.primary_model}`;
13826
- const prev = lastKnown.get(agent.agent_id);
13827
- if (prev === fingerprint3) return;
13828
- lastKnown.set(agent.agent_id, fingerprint3);
13829
- log2(`[realtime] Agent config changed: ${agent.code_name} (status=${agent.status})`);
13830
- onConfigChange(agent);
13831
- }).subscribe((status) => {
13832
- if (status === "SUBSCRIBED") {
13833
- log2("[realtime] Config channel connected");
13834
- } else if (status === "CLOSED" || status === "CHANNEL_ERROR") {
13835
- log2(`[realtime] Config channel: ${status}`);
13836
- }
13837
- });
13838
- log2(`[realtime] Subscribing to agents table for ${agentIds.length} agent(s)`);
13839
- }
13840
13810
  var METRICS_WINDOW = 200;
13841
13811
  var kanbanMetrics = {
13842
13812
  delivered: 0,
@@ -14056,13 +14026,6 @@ function stopRealtimeChat() {
14056
14026
  }
14057
14027
  assignChannel = null;
14058
14028
  }
14059
- if (configChannel) {
14060
- try {
14061
- configChannel.unsubscribe();
14062
- } catch {
14063
- }
14064
- configChannel = null;
14065
- }
14066
14029
  if (kanbanChannel) {
14067
14030
  try {
14068
14031
  kanbanChannel.unsubscribe();
@@ -15041,7 +15004,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
15041
15004
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
15042
15005
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
15043
15006
  async function channelInboundActivityAgeSecondsFor(codeName) {
15044
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-LVRBC2AA.js");
15007
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-KQSVBU2O.js");
15045
15008
  const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
15046
15009
  if (newest === null) return null;
15047
15010
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -15799,7 +15762,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
15799
15762
  var lastVersionCheckAt = 0;
15800
15763
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
15801
15764
  var lastResponsivenessProbeAt = 0;
15802
- var agtCliVersion = true ? "0.28.1151" : "dev";
15765
+ var agtCliVersion = true ? "0.28.1153" : "dev";
15803
15766
  function resolveBrewPath(execFileSync3) {
15804
15767
  try {
15805
15768
  const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -17574,7 +17537,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
17574
17537
  if (codeNames.length === 0) return;
17575
17538
  void (async () => {
17576
17539
  try {
17577
- const { collectDiagnostics } = await import("../persistent-session-YKRO5RLK.js");
17540
+ const { collectDiagnostics } = await import("../persistent-session-JRNQ3OMQ.js");
17578
17541
  await api.post("/host/heartbeat", {
17579
17542
  host_id: hostId,
17580
17543
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -17716,7 +17679,7 @@ async function pollCycleInner() {
17716
17679
  }
17717
17680
  try {
17718
17681
  const { detectHostSecurity } = await import("../host-security-KQYYZZVW.js");
17719
- const { collectDiagnostics } = await import("../persistent-session-YKRO5RLK.js");
17682
+ const { collectDiagnostics } = await import("../persistent-session-JRNQ3OMQ.js");
17720
17683
  const diagCodeNames = [...agentState.persistentSessionAgents];
17721
17684
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor) : void 0;
17722
17685
  let tailscaleHostname;
@@ -17916,7 +17879,7 @@ async function pollCycleInner() {
17916
17879
  setConfigHash(hbResp?.config_hash ?? null);
17917
17880
  try {
17918
17881
  const desiredClaudeCodeVersion = hbResp?.desired_claude_code_version?.trim();
17919
- const { maybeUpdateClaudeCode, shouldRunClaudeCodeUpdater } = await import("../claude-code-updater-JXL4CM2V.js");
17882
+ const { maybeUpdateClaudeCode, shouldRunClaudeCodeUpdater } = await import("../claude-code-updater-54ZISKTQ.js");
17920
17883
  claudeUpdaterInFlight = true;
17921
17884
  if (desiredClaudeCodeVersion && (claudePairLoop.busy || claudePairingInProgress())) {
17922
17885
  log(
@@ -17948,7 +17911,7 @@ async function pollCycleInner() {
17948
17911
  collectPanelessActivityProbes,
17949
17912
  getResponsivenessIntervalMs,
17950
17913
  occupancyQualificationClassifications
17951
- } = await import("../responsiveness-probe-LVRBC2AA.js");
17914
+ } = await import("../responsiveness-probe-KQSVBU2O.js");
17952
17915
  const probeIntervalMs = getResponsivenessIntervalMs();
17953
17916
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
17954
17917
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -18065,7 +18028,7 @@ async function pollCycleInner() {
18065
18028
  collectResponsivenessProbes,
18066
18029
  livePendingInboundOldestAgeSeconds,
18067
18030
  parkPendingInbound
18068
- } = await import("../responsiveness-probe-LVRBC2AA.js");
18031
+ } = await import("../responsiveness-probe-KQSVBU2O.js");
18069
18032
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-M6AFZWNU.js");
18070
18033
  const wedgeNow = /* @__PURE__ */ new Date();
18071
18034
  const liveAgents = agentState.persistentSessionAgents;
@@ -18351,7 +18314,7 @@ async function pollCycleInner() {
18351
18314
  }
18352
18315
  }
18353
18316
  );
18354
- const { parkPendingInbound } = await import("../responsiveness-probe-LVRBC2AA.js");
18317
+ const { parkPendingInbound } = await import("../responsiveness-probe-KQSVBU2O.js");
18355
18318
  const { parked, deadLettered } = parkPendingInbound(codeName, new Date(fatalNowMs));
18356
18319
  paneFatalStreak.delete(codeName);
18357
18320
  paneFatalRestarts.set(codeName, [...history, fatalNowMs]);
@@ -18382,7 +18345,7 @@ async function pollCycleInner() {
18382
18345
  TRANSCRIPT_MOUNT_ESCALATION_REFRESH_MS,
18383
18346
  bindSourceEscalations
18384
18347
  } = await import("../transcript-mount-health-OHE6IVJV.js");
18385
- const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-YKRO5RLK.js");
18348
+ const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-JRNQ3OMQ.js");
18386
18349
  const mountConfig = resolveTranscriptMountConfig();
18387
18350
  const liveAgents = agentState.persistentSessionAgents;
18388
18351
  for (const tracked of [
@@ -18547,7 +18510,7 @@ async function pollCycleInner() {
18547
18510
  }
18548
18511
  try {
18549
18512
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-VR5QGP3J.js");
18550
- const { probeSessionAuth } = await import("../session-auth-dead-FREXPXHN.js");
18513
+ const { probeSessionAuth } = await import("../session-auth-dead-MSTRS7FK.js");
18551
18514
  const observations = [];
18552
18515
  const pendingCacheCommits = [];
18553
18516
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -19212,7 +19175,6 @@ async function pollCycleInner() {
19212
19175
  ensureRealtimeStarted(agentStates);
19213
19176
  ensureRealtimeDriftStarted(agentStates);
19214
19177
  ensureRealtimeAssignStarted(agentStates);
19215
- ensureRealtimeConfigStarted(agentStates);
19216
19178
  ensureRealtimeKanbanStarted(agentStates);
19217
19179
  ensureRealtimeIntegrationContextStarted(agentStates);
19218
19180
  try {
@@ -23052,7 +23014,6 @@ function holdRealtimeRebindInFlight(failures, agentIds, now, graceMs = REALTIME_
23052
23014
  }
23053
23015
  }
23054
23016
  var realtimeAssignStarted = false;
23055
- var realtimeConfigStarted = false;
23056
23017
  var realtimeSubscribedAgentIds = /* @__PURE__ */ new Set();
23057
23018
  function healRealtimeSocketDivergence() {
23058
23019
  if (!shouldForcePollFallback(isRealtimeConnected(), isRealtimeSocketConnected())) return false;
@@ -23061,7 +23022,6 @@ function healRealtimeSocketDivergence() {
23061
23022
  realtimeStarted = false;
23062
23023
  realtimeDriftStarted = false;
23063
23024
  realtimeAssignStarted = false;
23064
- realtimeConfigStarted = false;
23065
23025
  realtimeKanbanStarted = false;
23066
23026
  subscribedIntegrationContextAgentIds = /* @__PURE__ */ new Set();
23067
23027
  return true;
@@ -23079,7 +23039,6 @@ function ensureRealtimeStarted(agentStates) {
23079
23039
  realtimeStarted = false;
23080
23040
  realtimeDriftStarted = false;
23081
23041
  realtimeAssignStarted = false;
23082
- realtimeConfigStarted = false;
23083
23042
  realtimeKanbanStarted = false;
23084
23043
  subscribedIntegrationContextAgentIds = /* @__PURE__ */ new Set();
23085
23044
  }
@@ -23119,7 +23078,6 @@ function ensureRealtimeStarted(agentStates) {
23119
23078
  realtimeStarted = false;
23120
23079
  realtimeDriftStarted = false;
23121
23080
  realtimeAssignStarted = false;
23122
- realtimeConfigStarted = false;
23123
23081
  realtimeKanbanStarted = false;
23124
23082
  subscribedIntegrationContextAgentIds = /* @__PURE__ */ new Set();
23125
23083
  }
@@ -23207,7 +23165,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
23207
23165
  try {
23208
23166
  const freshId = rotateSessionForWedge(codeName);
23209
23167
  consecutiveWedgeCycles.delete(codeName);
23210
- const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-LVRBC2AA.js");
23168
+ const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-KQSVBU2O.js");
23211
23169
  const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
23212
23170
  const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
23213
23171
  const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
@@ -23250,7 +23208,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
23250
23208
  void api.post("/host/restart-ack", { host_id: hostId, agent_id: agentId, restart_requested_at: requestedAt }).catch((err) => log(`[restart-lane] ack failed for '${codeName}': ${err.message}`));
23251
23209
  void (async () => {
23252
23210
  try {
23253
- const { collectDiagnostics } = await import("../persistent-session-YKRO5RLK.js");
23211
+ const { collectDiagnostics } = await import("../persistent-session-JRNQ3OMQ.js");
23254
23212
  await api.post("/host/heartbeat", {
23255
23213
  host_id: hostId,
23256
23214
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -23301,7 +23259,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
23301
23259
  }
23302
23260
  try {
23303
23261
  const hostId = await getHostId();
23304
- const { collectDiagnostics } = await import("../persistent-session-YKRO5RLK.js");
23262
+ const { collectDiagnostics } = await import("../persistent-session-JRNQ3OMQ.js");
23305
23263
  await api.post("/host/heartbeat", {
23306
23264
  host_id: hostId,
23307
23265
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -23360,30 +23318,6 @@ function ensureRealtimeAssignStarted(agentStates) {
23360
23318
  log(`[realtime] Assignment subscription failed: ${err.message}`);
23361
23319
  });
23362
23320
  }
23363
- function ensureRealtimeConfigStarted(agentStates) {
23364
- if (realtimeConfigStarted) return;
23365
- const activeAgentIds = agentStates.filter((a) => a.status === "active").map((a) => a.agentId);
23366
- if (activeAgentIds.length === 0) return;
23367
- const apiKey = process.env["AGT_API_KEY"];
23368
- if (!apiKey) return;
23369
- void exchangeApiKey(apiKey).then((exchange) => {
23370
- if (!exchange.supabaseUrl || !exchange.supabaseAnonKey) return;
23371
- startRealtimeConfig({
23372
- supabaseUrl: exchange.supabaseUrl,
23373
- supabaseAnonKey: exchange.supabaseAnonKey,
23374
- token: exchange.token,
23375
- agentIds: activeAgentIds,
23376
- onConfigChange: (agent) => {
23377
- agentState.knownStatuses.delete(agent.agent_id);
23378
- },
23379
- log
23380
- });
23381
- realtimeConfigStarted = true;
23382
- log(`[realtime] Config subscription started for ${activeAgentIds.length} agent(s)`);
23383
- }).catch((err) => {
23384
- log(`[realtime] Config subscription failed: ${err.message}`);
23385
- });
23386
- }
23387
23321
  function ensureRealtimeKanbanStarted(agentStates) {
23388
23322
  if (realtimeKanbanStarted) return;
23389
23323
  const activeAgentIds = agentStates.filter((a) => a.status === "active").map((a) => a.agentId);
@@ -24018,7 +23952,7 @@ async function processClaudePairSessions(agents) {
24018
23952
  snapshotPairConfig,
24019
23953
  // ENG-11659: result -> report body + the manager.log line that records it.
24020
23954
  planPairStartReport
24021
- } = await import("../claude-pair-runtime-7QPXNON3.js");
23955
+ } = await import("../claude-pair-runtime-OKT66D2H.js");
24022
23956
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
24023
23957
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
24024
23958
  const killed = await killPairSession(pairTmuxSession(pairId));