@integrity-labs/agt-cli 0.28.588 → 0.28.590

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.
@@ -100,7 +100,7 @@ async function spawnPairSession(session) {
100
100
  return { ok: true };
101
101
  } catch {
102
102
  }
103
- const { resolveClaudeBinary } = await import("./persistent-session-V5MSWCUI.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-D4NE7KEU.js");
104
104
  const claudeBin = resolveClaudeBinary();
105
105
  const pairEnv = {
106
106
  ...process.env,
@@ -373,4 +373,4 @@ export {
373
373
  startClaudePair,
374
374
  submitClaudePairCode
375
375
  };
376
- //# sourceMappingURL=claude-pair-runtime-LAR36LFE.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-673RQWL5.js.map
@@ -53,7 +53,7 @@ import {
53
53
  safeWriteJsonAtomic,
54
54
  setConfigHash,
55
55
  tripClass
56
- } from "../chunk-4G52LVUD.js";
56
+ } from "../chunk-YXB2QIM5.js";
57
57
  import {
58
58
  getProjectDir as getProjectDir2,
59
59
  getReadyTasks,
@@ -183,7 +183,7 @@ import {
183
183
  toOpencodeModel,
184
184
  transcriptActivityAgeSeconds,
185
185
  writeEgressAllowlist
186
- } from "../chunk-BLA56WZF.js";
186
+ } from "../chunk-QDJEEGZB.js";
187
187
  import {
188
188
  reapOrphanChannelMcps
189
189
  } from "../chunk-XWVM4KPK.js";
@@ -6527,6 +6527,17 @@ function closeScheduledRunsForCode(codeName, outcome, reason) {
6527
6527
  void finishRun(runId, outcome, { outcomeMessage: reason });
6528
6528
  }
6529
6529
  }
6530
+ var sessionRunsByCode = /* @__PURE__ */ new Map();
6531
+ function trackSessionRun(codeName, runId) {
6532
+ if (!runId) return;
6533
+ sessionRunsByCode.set(codeName, runId);
6534
+ }
6535
+ function closeSessionRunForCode(codeName, outcome, reason) {
6536
+ const runId = sessionRunsByCode.get(codeName);
6537
+ if (!runId) return;
6538
+ sessionRunsByCode.delete(codeName);
6539
+ void finishRun(runId, outcome, { outcomeMessage: reason });
6540
+ }
6530
6541
 
6531
6542
  // src/lib/manager/scheduler/kanban-route.ts
6532
6543
  import { createHash as createHash12 } from "crypto";
@@ -10853,6 +10864,7 @@ function scheduleSessionRestart(codeName, delayMs, reason, breakerReason = "hot-
10853
10864
  }
10854
10865
  }
10855
10866
  stopPersistentSession(codeName, log);
10867
+ closeSessionRunForCode(codeName, "completed", `session stopped (${breakerReason})`);
10856
10868
  markRestartStopped(codeName, log);
10857
10869
  {
10858
10870
  const baselineAgentId = agentState.codeNameToAgentId.get(codeName);
@@ -11435,6 +11447,7 @@ function stopPersistentSessionAndForgetMcpBaseline(codeName, breakerReason, gate
11435
11447
  const runMessage = runClose ? `session stopped (${runClose.message})` : `session stopped (${breakerReason ?? "deprovision"})`;
11436
11448
  closeInjectedRunIfOpen(codeName, runOutcome, runMessage);
11437
11449
  closeScheduledRunsForCode(codeName, runOutcome, runMessage);
11450
+ closeSessionRunForCode(codeName, runClose?.outcome ?? "completed", runMessage);
11438
11451
  if (breakerReason) {
11439
11452
  recordRestartForBreaker(codeName, breakerReason);
11440
11453
  }
@@ -11629,7 +11642,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
11629
11642
  var lastVersionCheckAt = 0;
11630
11643
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
11631
11644
  var lastResponsivenessProbeAt = 0;
11632
- var agtCliVersion = true ? "0.28.588" : "dev";
11645
+ var agtCliVersion = true ? "0.28.590" : "dev";
11633
11646
  function resolveBrewPath(execFileSync2) {
11634
11647
  try {
11635
11648
  const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -12936,7 +12949,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
12936
12949
  if (codeNames.length === 0) return;
12937
12950
  void (async () => {
12938
12951
  try {
12939
- const { collectDiagnostics } = await import("../persistent-session-V5MSWCUI.js");
12952
+ const { collectDiagnostics } = await import("../persistent-session-D4NE7KEU.js");
12940
12953
  await api.post("/host/heartbeat", {
12941
12954
  host_id: hostId,
12942
12955
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics)
@@ -13044,7 +13057,7 @@ async function pollCycle() {
13044
13057
  }
13045
13058
  try {
13046
13059
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
13047
- const { collectDiagnostics } = await import("../persistent-session-V5MSWCUI.js");
13060
+ const { collectDiagnostics } = await import("../persistent-session-D4NE7KEU.js");
13048
13061
  const diagCodeNames = [...agentState.persistentSessionAgents];
13049
13062
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics) : void 0;
13050
13063
  let tailscaleHostname;
@@ -13167,7 +13180,7 @@ async function pollCycle() {
13167
13180
  collectPanelessActivityProbes,
13168
13181
  getResponsivenessIntervalMs,
13169
13182
  occupancyQualificationClassifications
13170
- } = await import("../responsiveness-probe-WSEXAPQQ.js");
13183
+ } = await import("../responsiveness-probe-5JWPNTA7.js");
13171
13184
  const probeIntervalMs = getResponsivenessIntervalMs();
13172
13185
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
13173
13186
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -13258,7 +13271,7 @@ async function pollCycle() {
13258
13271
  collectResponsivenessProbes,
13259
13272
  livePendingInboundOldestAgeSeconds,
13260
13273
  parkPendingInbound
13261
- } = await import("../responsiveness-probe-WSEXAPQQ.js");
13274
+ } = await import("../responsiveness-probe-5JWPNTA7.js");
13262
13275
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
13263
13276
  const wedgeNow = /* @__PURE__ */ new Date();
13264
13277
  const liveAgents = agentState.persistentSessionAgents;
@@ -16480,6 +16493,7 @@ ${truncateForLog(ctx.tail)}` : `; pane_tail_hash=sha256:${createHash17("sha256")
16480
16493
  source_type: "system",
16481
16494
  metadata: { type: "persistent_session_boot" }
16482
16495
  });
16496
+ trackSessionRun(codeName, sessionRunResult.run_id);
16483
16497
  const spawnPrimaryModel = resolveModelChain(refreshData).primary ?? refreshData.agent?.["primary_model"] ?? null;
16484
16498
  const egressAllowlist = deriveEgressAllowlist(
16485
16499
  refreshData.tools?.raw_content
@@ -16828,7 +16842,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
16828
16842
  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}`));
16829
16843
  void (async () => {
16830
16844
  try {
16831
- const { collectDiagnostics } = await import("../persistent-session-V5MSWCUI.js");
16845
+ const { collectDiagnostics } = await import("../persistent-session-D4NE7KEU.js");
16832
16846
  await api.post("/host/heartbeat", {
16833
16847
  host_id: hostId,
16834
16848
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics)
@@ -16879,7 +16893,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
16879
16893
  }
16880
16894
  try {
16881
16895
  const hostId = await getHostId();
16882
- const { collectDiagnostics } = await import("../persistent-session-V5MSWCUI.js");
16896
+ const { collectDiagnostics } = await import("../persistent-session-D4NE7KEU.js");
16883
16897
  await api.post("/host/heartbeat", {
16884
16898
  host_id: hostId,
16885
16899
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics)
@@ -17457,7 +17471,7 @@ async function processClaudePairSessions(agents) {
17457
17471
  killPairSession,
17458
17472
  pairTmuxSession,
17459
17473
  finalizeClaudePairOnboarding
17460
- } = await import("../claude-pair-runtime-LAR36LFE.js");
17474
+ } = await import("../claude-pair-runtime-673RQWL5.js");
17461
17475
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
17462
17476
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
17463
17477
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -18055,6 +18069,9 @@ async function stopPolling(opts = {}) {
18055
18069
  for (const codeName of [...scheduledRunsByCode.keys()]) {
18056
18070
  closeScheduledRunsForCode(codeName, "cancelled", "manager shutdown");
18057
18071
  }
18072
+ for (const codeName of [...sessionRunsByCode.keys()]) {
18073
+ closeSessionRunForCode(codeName, "completed", "manager shutdown");
18074
+ }
18058
18075
  log("Killing tmux sessions...");
18059
18076
  await killAllAgtTmuxSessions();
18060
18077
  log("Stopping persistent sessions...");