@integrity-labs/agt-cli 0.28.1185 → 0.28.1186

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 (25) hide show
  1. package/dist/bin/agt.js +6 -6
  2. package/dist/{chunk-TGHAQABK.js → chunk-2HMIFOZU.js} +2 -2
  3. package/dist/{chunk-5L2UZW22.js → chunk-B7EHZTCU.js} +2 -2
  4. package/dist/{chunk-H6GFABQZ.js → chunk-JCTPPI2Q.js} +5 -5
  5. package/dist/{chunk-2DWMFJEV.js → chunk-KKK3S2RS.js} +4 -3
  6. package/dist/{chunk-B57YZ2QD.js → chunk-TKFPMB6F.js} +21 -1
  7. package/dist/chunk-TKFPMB6F.js.map +1 -0
  8. package/dist/{claude-code-updater-JYVD3MJJ.js → claude-code-updater-F2Q5CM6R.js} +3 -3
  9. package/dist/{claude-pair-runtime-IJAQHR2V.js → claude-pair-runtime-AAK4N5Z6.js} +3 -3
  10. package/dist/lib/manager-worker.js +87 -27
  11. package/dist/lib/manager-worker.js.map +1 -1
  12. package/dist/{persistent-session-C7632TPG.js → persistent-session-KW4SEBXV.js} +4 -4
  13. package/dist/{responsiveness-probe-NFT3GSDL.js → responsiveness-probe-34V4HLOQ.js} +4 -4
  14. package/dist/{session-auth-dead-BTGGL4MA.js → session-auth-dead-AGNAALKZ.js} +3 -3
  15. package/package.json +1 -1
  16. package/dist/chunk-B57YZ2QD.js.map +0 -1
  17. /package/dist/{chunk-TGHAQABK.js.map → chunk-2HMIFOZU.js.map} +0 -0
  18. /package/dist/{chunk-5L2UZW22.js.map → chunk-B7EHZTCU.js.map} +0 -0
  19. /package/dist/{chunk-H6GFABQZ.js.map → chunk-JCTPPI2Q.js.map} +0 -0
  20. /package/dist/{chunk-2DWMFJEV.js.map → chunk-KKK3S2RS.js.map} +0 -0
  21. /package/dist/{claude-code-updater-JYVD3MJJ.js.map → claude-code-updater-F2Q5CM6R.js.map} +0 -0
  22. /package/dist/{claude-pair-runtime-IJAQHR2V.js.map → claude-pair-runtime-AAK4N5Z6.js.map} +0 -0
  23. /package/dist/{persistent-session-C7632TPG.js.map → persistent-session-KW4SEBXV.js.map} +0 -0
  24. /package/dist/{responsiveness-probe-NFT3GSDL.js.map → responsiveness-probe-34V4HLOQ.js.map} +0 -0
  25. /package/dist/{session-auth-dead-BTGGL4MA.js.map → session-auth-dead-AGNAALKZ.js.map} +0 -0
@@ -13,9 +13,9 @@ import {
13
13
  probeClaudeInstalls,
14
14
  readsAsNativeInstall,
15
15
  shouldRunClaudeCodeUpdater
16
- } from "./chunk-5L2UZW22.js";
16
+ } from "./chunk-B7EHZTCU.js";
17
17
  import "./chunk-XWVM4KPK.js";
18
- import "./chunk-B57YZ2QD.js";
18
+ import "./chunk-TKFPMB6F.js";
19
19
  import "./chunk-AIUIMEUS.js";
20
20
  import "./chunk-DGUM43GV.js";
21
21
  export {
@@ -34,4 +34,4 @@ export {
34
34
  readsAsNativeInstall,
35
35
  shouldRunClaudeCodeUpdater
36
36
  };
37
- //# sourceMappingURL=claude-code-updater-JYVD3MJJ.js.map
37
+ //# sourceMappingURL=claude-code-updater-F2Q5CM6R.js.map
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  redactPaneFrame,
10
10
  sanitizeTerminalFrame
11
- } from "./chunk-B57YZ2QD.js";
11
+ } from "./chunk-TKFPMB6F.js";
12
12
  import {
13
13
  CLAUDE_CONFIG_DIR_ENV,
14
14
  claudeConfigDirFor,
@@ -321,7 +321,7 @@ async function spawnPairSession(session) {
321
321
  return { ok: true };
322
322
  } catch {
323
323
  }
324
- const { resolveClaudeBinary } = await import("./persistent-session-C7632TPG.js");
324
+ const { resolveClaudeBinary } = await import("./persistent-session-KW4SEBXV.js");
325
325
  const claudeBin = resolveClaudeBinary();
326
326
  const pairEnv = {
327
327
  ...process.env,
@@ -836,4 +836,4 @@ export {
836
836
  startClaudePair,
837
837
  submitClaudePairCode
838
838
  };
839
- //# sourceMappingURL=claude-pair-runtime-IJAQHR2V.js.map
839
+ //# sourceMappingURL=claude-pair-runtime-AAK4N5Z6.js.map
@@ -82,7 +82,7 @@ import {
82
82
  tripClass,
83
83
  writeEtcEnvironment,
84
84
  writeProfileDScript
85
- } from "../chunk-H6GFABQZ.js";
85
+ } from "../chunk-JCTPPI2Q.js";
86
86
  import {
87
87
  CLAUDE_CODE_SECURITY_FLOOR,
88
88
  SELF_UPDATE_TIMEOUTS,
@@ -96,7 +96,7 @@ import {
96
96
  runSafeCleanup,
97
97
  tightestDiskStat,
98
98
  withPackageCacheLock
99
- } from "../chunk-5L2UZW22.js";
99
+ } from "../chunk-B7EHZTCU.js";
100
100
  import {
101
101
  rewriteSupervisorApiKey,
102
102
  supervisorChannelsRefusing
@@ -165,6 +165,7 @@ import {
165
165
  resetRestartCount,
166
166
  resolveClaudeBinary,
167
167
  resolveContainerMemory,
168
+ resolveModelPolicySpawnEnv,
168
169
  resolveWebFetchBaseline,
169
170
  restartEgressSidecar,
170
171
  rotatePaneLogForDayRollover,
@@ -188,7 +189,7 @@ import {
188
189
  webFetchBaselineValue,
189
190
  webFetchRestartNeeded,
190
191
  writeEgressAllowlist
191
- } from "../chunk-2DWMFJEV.js";
192
+ } from "../chunk-KKK3S2RS.js";
192
193
  import {
193
194
  isAgentIdle,
194
195
  isStaleForToday,
@@ -198,7 +199,7 @@ import {
198
199
  sessionTranscriptDir,
199
200
  subagentActivityAgeSeconds,
200
201
  transcriptActivityAgeSeconds
201
- } from "../chunk-TGHAQABK.js";
202
+ } from "../chunk-2HMIFOZU.js";
202
203
  import {
203
204
  classifyUnanswerablePane,
204
205
  focusedConfirmDialogBlock,
@@ -220,6 +221,7 @@ import {
220
221
  CLAUDE_MD_CONTEXT_ALARM_CHARS,
221
222
  CLAUDE_MD_MANAGER_APPEND_HEADROOM_CHARS,
222
223
  CONVERSATION_FAILURE_CATEGORIES,
224
+ DEFAULT_CLAUDE_HOST_MODEL,
223
225
  DEFAULT_FRAMEWORK,
224
226
  DEFAULT_NEIGHBOURHOOD_MS,
225
227
  EXTRACTOR_IDENTIFIER_RULE,
@@ -261,6 +263,8 @@ import {
261
263
  classifySlackPolicyBlock,
262
264
  classifyTelegramPolicyBlock,
263
265
  classifyTranscriptRateLimit,
266
+ claudeHostModelFromCandidate,
267
+ claudeModelOption,
264
268
  coerceOnboardingState,
265
269
  cursorAdvanceCounterKey,
266
270
  decideInboundAccess,
@@ -321,7 +325,7 @@ import {
321
325
  stabiliseResetInstant,
322
326
  sumTranscriptUsageInWindow,
323
327
  summarizeTranscriptActivity
324
- } from "../chunk-B57YZ2QD.js";
328
+ } from "../chunk-TKFPMB6F.js";
325
329
  import {
326
330
  CLAUDE_CONFIG_DIR_ENV,
327
331
  claudeConfigDirFor,
@@ -2769,13 +2773,33 @@ function parseResumeHealthResponse(raw) {
2769
2773
  }
2770
2774
 
2771
2775
  // src/lib/model-change-respawn.ts
2776
+ function shouldHoldModelChange(input) {
2777
+ return input.framework === "claude-code" && input.hostAuthMode === null && Boolean(input.previousModel);
2778
+ }
2779
+ function heldSpawnModel(input) {
2780
+ return shouldHoldModelChange(input) ? input.previousModel : null;
2781
+ }
2782
+ function noteModelHold(held, agentId, codeName, holding) {
2783
+ if (!holding) {
2784
+ held.delete(agentId);
2785
+ return null;
2786
+ }
2787
+ if (held.has(agentId)) return null;
2788
+ held.add(agentId);
2789
+ return `[model] holding model changes for '${codeName}': host_auth_mode unavailable, keeping the model this session is on`;
2790
+ }
2772
2791
  function shouldRespawnForModelChange(input) {
2773
2792
  const { previousModel, primaryModel, framework, sessionHealthy } = input;
2774
2793
  if (framework !== "claude-code" && framework !== "opencode") return false;
2775
2794
  if (!sessionHealthy) return false;
2776
2795
  if (!previousModel) return false;
2777
2796
  if (!primaryModel) return false;
2778
- return previousModel !== primaryModel;
2797
+ if (previousModel === primaryModel) return false;
2798
+ if (input.launchesWithClaudeModelFlag) return launchChanges(previousModel, primaryModel);
2799
+ return true;
2800
+ }
2801
+ function launchChanges(previousModel, primaryModel) {
2802
+ return claudeModelOption(previousModel) !== claudeModelOption(primaryModel);
2779
2803
  }
2780
2804
  function decideOpencodeModelRestart(input) {
2781
2805
  const { previousModel, primaryModel, provisionedModel, onDiskModel, sessionHealthy } = input;
@@ -8698,6 +8722,8 @@ var agentState = {
8698
8722
  writtenHashes: /* @__PURE__ */ new Map(),
8699
8723
  knownSecretsHashes: /* @__PURE__ */ new Map(),
8700
8724
  knownModels: /* @__PURE__ */ new Map(),
8725
+ /** ENG-7546: agents with a logged model-change hold, so it logs once per hold. */
8726
+ modelHoldsLogged: /* @__PURE__ */ new Set(),
8701
8727
  knownTasksHashes: /* @__PURE__ */ new Map(),
8702
8728
  knownIntegrationHashes: /* @__PURE__ */ new Map(),
8703
8729
  /**
@@ -8824,6 +8850,7 @@ function clearAgentState(agentId, codeName) {
8824
8850
  agentState.writtenHashes.delete(agentId);
8825
8851
  agentState.knownSecretsHashes.delete(agentId);
8826
8852
  agentState.knownModels.delete(agentId);
8853
+ agentState.modelHoldsLogged.delete(agentId);
8827
8854
  agentState.knownTasksHashes.delete(agentId);
8828
8855
  agentState.knownIntegrationHashes.delete(agentId);
8829
8856
  agentState.knownCapabilitySurfaceHashes.delete(agentId);
@@ -9014,24 +9041,44 @@ function clearRestartTiming(codeName) {
9014
9041
  }
9015
9042
 
9016
9043
  // src/lib/manager/model.ts
9044
+ var DIRECT_CLAUDE_AUTH_MODES = /* @__PURE__ */ new Set(["subscription", "api_key"]);
9045
+ function launchesWithClaudeModelFlag(refreshData) {
9046
+ const agent = refreshData.agent;
9047
+ if (agent?.["framework"] !== "claude-code") return false;
9048
+ if (!DIRECT_CLAUDE_AUTH_MODES.has(refreshData.host_auth_mode)) return false;
9049
+ const { modelEnv } = resolveModelPolicySpawnEnv({
9050
+ policy: parseModelPolicy(refreshData.model_policy),
9051
+ openRouterMode: false,
9052
+ gatewayToken: null,
9053
+ codeName: String(agent["code_name"] ?? "")
9054
+ });
9055
+ return Object.keys(modelEnv).length === 0;
9056
+ }
9017
9057
  function resolveModelChain(refreshData) {
9018
9058
  const agent = refreshData.agent;
9019
9059
  const modelDefaults = refreshData.model_defaults;
9020
9060
  const platform4 = modelDefaults?.platform ?? {};
9021
9061
  const org = modelDefaults?.org ?? {};
9062
+ const directClaudeHost = launchesWithClaudeModelFlag(refreshData);
9063
+ function eligible(candidate) {
9064
+ if (!candidate || !directClaudeHost) return candidate;
9065
+ return claudeHostModelFromCandidate(candidate) ?? void 0;
9066
+ }
9022
9067
  function resolve2(tier) {
9023
9068
  const agentField = `${tier}_model`;
9024
9069
  const platformField = `default_${tier}_model`;
9025
- const agentVal = agent?.[agentField];
9070
+ const agentVal = eligible(agent?.[agentField]);
9026
9071
  if (agentVal) return agentVal;
9027
- const orgVal = org?.[platformField];
9072
+ const orgVal = eligible(org?.[platformField]);
9028
9073
  if (orgVal) return orgVal;
9029
- const platformVal = platform4?.[platformField];
9074
+ const platformVal = eligible(platform4?.[platformField]);
9030
9075
  if (platformVal) return platformVal;
9031
9076
  return void 0;
9032
9077
  }
9033
9078
  return {
9034
- primary: resolve2("primary"),
9079
+ // Always set on a direct-Claude host: every caller falls back to the raw
9080
+ // agent.primary_model when this is empty, which could be the openrouter id.
9081
+ primary: resolve2("primary") ?? (directClaudeHost ? DEFAULT_CLAUDE_HOST_MODEL : void 0),
9035
9082
  secondary: resolve2("secondary"),
9036
9083
  tertiary: resolve2("tertiary")
9037
9084
  };
@@ -15434,7 +15481,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
15434
15481
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
15435
15482
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
15436
15483
  async function channelInboundActivityAgeSecondsFor(codeName) {
15437
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-NFT3GSDL.js");
15484
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-34V4HLOQ.js");
15438
15485
  const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
15439
15486
  if (newest === null) return null;
15440
15487
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -16231,7 +16278,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
16231
16278
  var lastVersionCheckAt = 0;
16232
16279
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
16233
16280
  var lastResponsivenessProbeAt = 0;
16234
- var agtCliVersion = true ? "0.28.1185" : "dev";
16281
+ var agtCliVersion = true ? "0.28.1186" : "dev";
16235
16282
  function resolveBrewPath(execFileSync3) {
16236
16283
  try {
16237
16284
  const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -18135,7 +18182,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
18135
18182
  if (codeNames.length === 0) return;
18136
18183
  void (async () => {
18137
18184
  try {
18138
- const { collectDiagnostics } = await import("../persistent-session-C7632TPG.js");
18185
+ const { collectDiagnostics } = await import("../persistent-session-KW4SEBXV.js");
18139
18186
  await api.post("/host/heartbeat", {
18140
18187
  host_id: hostId,
18141
18188
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor)
@@ -18278,7 +18325,7 @@ async function pollCycleInner() {
18278
18325
  }
18279
18326
  try {
18280
18327
  const { detectHostSecurity } = await import("../host-security-KQYYZZVW.js");
18281
- const { collectDiagnostics } = await import("../persistent-session-C7632TPG.js");
18328
+ const { collectDiagnostics } = await import("../persistent-session-KW4SEBXV.js");
18282
18329
  const diagCodeNames = [...agentState.persistentSessionAgents];
18283
18330
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor) : void 0;
18284
18331
  let tailscaleHostname;
@@ -18533,7 +18580,7 @@ async function pollCycleInner() {
18533
18580
  }
18534
18581
  try {
18535
18582
  const desiredClaudeCodeVersion = hbResp?.desired_claude_code_version?.trim();
18536
- const { maybeUpdateClaudeCode, shouldRunClaudeCodeUpdater } = await import("../claude-code-updater-JYVD3MJJ.js");
18583
+ const { maybeUpdateClaudeCode, shouldRunClaudeCodeUpdater } = await import("../claude-code-updater-F2Q5CM6R.js");
18537
18584
  const securityFloor = currentSecurityFloor();
18538
18585
  claudeUpdaterInFlight = true;
18539
18586
  if (desiredClaudeCodeVersion && (claudePairLoop.busy || claudePairingInProgress())) {
@@ -18568,7 +18615,7 @@ async function pollCycleInner() {
18568
18615
  collectPanelessActivityProbes,
18569
18616
  getResponsivenessIntervalMs,
18570
18617
  occupancyQualificationClassifications
18571
- } = await import("../responsiveness-probe-NFT3GSDL.js");
18618
+ } = await import("../responsiveness-probe-34V4HLOQ.js");
18572
18619
  const probeIntervalMs = getResponsivenessIntervalMs();
18573
18620
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
18574
18621
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -18685,7 +18732,7 @@ async function pollCycleInner() {
18685
18732
  collectResponsivenessProbes,
18686
18733
  livePendingInboundOldestAgeSeconds,
18687
18734
  parkPendingInbound
18688
- } = await import("../responsiveness-probe-NFT3GSDL.js");
18735
+ } = await import("../responsiveness-probe-34V4HLOQ.js");
18689
18736
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-M6AFZWNU.js");
18690
18737
  const wedgeNow = /* @__PURE__ */ new Date();
18691
18738
  const liveAgents = agentState.persistentSessionAgents;
@@ -18971,7 +19018,7 @@ async function pollCycleInner() {
18971
19018
  }
18972
19019
  }
18973
19020
  );
18974
- const { parkPendingInbound } = await import("../responsiveness-probe-NFT3GSDL.js");
19021
+ const { parkPendingInbound } = await import("../responsiveness-probe-34V4HLOQ.js");
18975
19022
  const { parked, deadLettered } = parkPendingInbound(codeName, new Date(fatalNowMs));
18976
19023
  paneFatalStreak.delete(codeName);
18977
19024
  paneFatalRestarts.set(codeName, [...history, fatalNowMs]);
@@ -19002,7 +19049,7 @@ async function pollCycleInner() {
19002
19049
  TRANSCRIPT_MOUNT_ESCALATION_REFRESH_MS,
19003
19050
  bindSourceEscalations
19004
19051
  } = await import("../transcript-mount-health-OHE6IVJV.js");
19005
- const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-C7632TPG.js");
19052
+ const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-KW4SEBXV.js");
19006
19053
  const mountConfig = resolveTranscriptMountConfig();
19007
19054
  const liveAgents = agentState.persistentSessionAgents;
19008
19055
  for (const tracked of [
@@ -19167,7 +19214,7 @@ async function pollCycleInner() {
19167
19214
  }
19168
19215
  try {
19169
19216
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-VR5QGP3J.js");
19170
- const { probeSessionAuth } = await import("../session-auth-dead-BTGGL4MA.js");
19217
+ const { probeSessionAuth } = await import("../session-auth-dead-AGNAALKZ.js");
19171
19218
  const observations = [];
19172
19219
  const pendingCacheCommits = [];
19173
19220
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -20528,7 +20575,15 @@ async function processAgent(agent, agentStates, managedToolkits) {
20528
20575
  }
20529
20576
  const resolvedForModel = resolveModelChain(refreshData);
20530
20577
  const primaryModel = resolvedForModel.primary ?? refreshData.agent.primary_model;
20531
- if (primaryModel && frameworkAdapter.updateAgentModel) {
20578
+ const holdModelChange = shouldHoldModelChange({
20579
+ hostAuthMode: refreshData.host_auth_mode,
20580
+ previousModel: agentState.knownModels.get(agent.agent_id),
20581
+ framework: frameworkId
20582
+ });
20583
+ const modelHoldLine = noteModelHold(agentState.modelHoldsLogged, agent.agent_id, agent.code_name, holdModelChange);
20584
+ if (modelHoldLine) log(modelHoldLine);
20585
+ if (holdModelChange) {
20586
+ } else if (primaryModel && frameworkAdapter.updateAgentModel) {
20532
20587
  const previousModel = agentState.knownModels.get(agent.agent_id);
20533
20588
  if (previousModel !== primaryModel) {
20534
20589
  try {
@@ -20547,7 +20602,8 @@ async function processAgent(agent, agentStates, managedToolkits) {
20547
20602
  previousModel,
20548
20603
  primaryModel,
20549
20604
  framework: frameworkId,
20550
- sessionHealthy: isSessionHealthy(agent.code_name)
20605
+ sessionHealthy: isSessionHealthy(agent.code_name),
20606
+ launchesWithClaudeModelFlag: launchesWithClaudeModelFlag(refreshData)
20551
20607
  })) {
20552
20608
  const restartNotice = `Your model was changed to ${primaryModel}. Claude Code applies the model at launch, so your manager will restart your session shortly to switch.`;
20553
20609
  const delivered = await injectMessage(
@@ -23351,7 +23407,11 @@ ${truncateForLog(ctx.tail)}` : `; pane_tail_hash=sha256:${createHash20("sha256")
23351
23407
  metadata: { type: "persistent_session_boot" }
23352
23408
  });
23353
23409
  trackSessionRun(codeName, sessionRunResult.run_id);
23354
- const spawnPrimaryModel = resolveModelChain(refreshData).primary ?? refreshData.agent?.["primary_model"] ?? null;
23410
+ const spawnPrimaryModel = heldSpawnModel({
23411
+ hostAuthMode: refreshData.host_auth_mode,
23412
+ previousModel: agentState.knownModels.get(agent.agent_id),
23413
+ framework: "claude-code"
23414
+ }) ?? resolveModelChain(refreshData).primary ?? refreshData.agent?.["primary_model"] ?? null;
23355
23415
  const spawnToolsRaw = refreshData.tools?.raw_content;
23356
23416
  const egressAllowlist = deriveEgressAllowlist(spawnToolsRaw, modelPolicy);
23357
23417
  const spawnDenyWebFetch = denyWebFetchForToolsContent(spawnToolsRaw);
@@ -23856,7 +23916,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
23856
23916
  try {
23857
23917
  const freshId = rotateSessionForWedge(codeName);
23858
23918
  consecutiveWedgeCycles.delete(codeName);
23859
- const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-NFT3GSDL.js");
23919
+ const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-34V4HLOQ.js");
23860
23920
  const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
23861
23921
  const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
23862
23922
  const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
@@ -23899,7 +23959,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
23899
23959
  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}`));
23900
23960
  void (async () => {
23901
23961
  try {
23902
- const { collectDiagnostics } = await import("../persistent-session-C7632TPG.js");
23962
+ const { collectDiagnostics } = await import("../persistent-session-KW4SEBXV.js");
23903
23963
  await api.post("/host/heartbeat", {
23904
23964
  host_id: hostId,
23905
23965
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor)
@@ -23950,7 +24010,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
23950
24010
  }
23951
24011
  try {
23952
24012
  const hostId = await getHostId();
23953
- const { collectDiagnostics } = await import("../persistent-session-C7632TPG.js");
24013
+ const { collectDiagnostics } = await import("../persistent-session-KW4SEBXV.js");
23954
24014
  await api.post("/host/heartbeat", {
23955
24015
  host_id: hostId,
23956
24016
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor)
@@ -24652,7 +24712,7 @@ async function processClaudePairSessions(agents) {
24652
24712
  snapshotPairConfig,
24653
24713
  // ENG-11659: result -> report body + the manager.log line that records it.
24654
24714
  planPairStartReport
24655
- } = await import("../claude-pair-runtime-IJAQHR2V.js");
24715
+ } = await import("../claude-pair-runtime-AAK4N5Z6.js");
24656
24716
  const { resetClaudeSignin, describeSigninResetForLog, describeSigninResetFailure } = await import("../claude-signin-reset-6IJMMVYG.js");
24657
24717
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
24658
24718
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);