@integrity-labs/agt-cli 0.28.1198 → 0.28.1200

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-LBQSZVUX.js → chunk-KKQRAJQV.js} +2 -2
  3. package/dist/{chunk-7HGQBGOI.js → chunk-LWF7F4IF.js} +5 -5
  4. package/dist/{chunk-YZSECLT4.js → chunk-M5XKZVBC.js} +3 -3
  5. package/dist/{chunk-W4WVX7D4.js → chunk-QL7LKEYQ.js} +2 -2
  6. package/dist/{chunk-I2ZT7SV2.js → chunk-WCN2OJQT.js} +1 -1
  7. package/dist/{chunk-I2ZT7SV2.js.map → chunk-WCN2OJQT.js.map} +1 -1
  8. package/dist/{claude-code-updater-MO64U3D6.js → claude-code-updater-QRDRPUGF.js} +3 -3
  9. package/dist/{claude-pair-runtime-IMG45YN5.js → claude-pair-runtime-PQNF3H4Q.js} +3 -3
  10. package/dist/lib/manager-worker.js +44 -33
  11. package/dist/lib/manager-worker.js.map +1 -1
  12. package/dist/mcp/augmented-admin.js +1 -1
  13. package/dist/{persistent-session-YKPIDETF.js → persistent-session-SJ25HFBM.js} +4 -4
  14. package/dist/{responsiveness-probe-VU7CUC7P.js → responsiveness-probe-TB2T2Q4L.js} +4 -4
  15. package/dist/{session-auth-dead-SXJSD34M.js → session-auth-dead-2XSQ6BRX.js} +3 -3
  16. package/package.json +1 -1
  17. /package/dist/{chunk-LBQSZVUX.js.map → chunk-KKQRAJQV.js.map} +0 -0
  18. /package/dist/{chunk-7HGQBGOI.js.map → chunk-LWF7F4IF.js.map} +0 -0
  19. /package/dist/{chunk-YZSECLT4.js.map → chunk-M5XKZVBC.js.map} +0 -0
  20. /package/dist/{chunk-W4WVX7D4.js.map → chunk-QL7LKEYQ.js.map} +0 -0
  21. /package/dist/{claude-code-updater-MO64U3D6.js.map → claude-code-updater-QRDRPUGF.js.map} +0 -0
  22. /package/dist/{claude-pair-runtime-IMG45YN5.js.map → claude-pair-runtime-PQNF3H4Q.js.map} +0 -0
  23. /package/dist/{persistent-session-YKPIDETF.js.map → persistent-session-SJ25HFBM.js.map} +0 -0
  24. /package/dist/{responsiveness-probe-VU7CUC7P.js.map → responsiveness-probe-TB2T2Q4L.js.map} +0 -0
  25. /package/dist/{session-auth-dead-SXJSD34M.js.map → session-auth-dead-2XSQ6BRX.js.map} +0 -0
@@ -13,9 +13,9 @@ import {
13
13
  probeClaudeInstalls,
14
14
  readsAsNativeInstall,
15
15
  shouldRunClaudeCodeUpdater
16
- } from "./chunk-W4WVX7D4.js";
16
+ } from "./chunk-QL7LKEYQ.js";
17
17
  import "./chunk-XWVM4KPK.js";
18
- import "./chunk-I2ZT7SV2.js";
18
+ import "./chunk-WCN2OJQT.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-MO64U3D6.js.map
37
+ //# sourceMappingURL=claude-code-updater-QRDRPUGF.js.map
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  redactPaneFrame,
10
10
  sanitizeTerminalFrame
11
- } from "./chunk-I2ZT7SV2.js";
11
+ } from "./chunk-WCN2OJQT.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-YKPIDETF.js");
324
+ const { resolveClaudeBinary } = await import("./persistent-session-SJ25HFBM.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-IMG45YN5.js.map
839
+ //# sourceMappingURL=claude-pair-runtime-PQNF3H4Q.js.map
@@ -85,7 +85,7 @@ import {
85
85
  tripClass,
86
86
  writeEtcEnvironment,
87
87
  writeProfileDScript
88
- } from "../chunk-7HGQBGOI.js";
88
+ } from "../chunk-LWF7F4IF.js";
89
89
  import {
90
90
  CLAUDE_CODE_SECURITY_FLOOR,
91
91
  SELF_UPDATE_TIMEOUTS,
@@ -99,7 +99,7 @@ import {
99
99
  runSafeCleanup,
100
100
  tightestDiskStat,
101
101
  withPackageCacheLock
102
- } from "../chunk-W4WVX7D4.js";
102
+ } from "../chunk-QL7LKEYQ.js";
103
103
  import {
104
104
  rewriteSupervisorApiKey,
105
105
  supervisorChannelsRefusing
@@ -192,7 +192,7 @@ import {
192
192
  webFetchBaselineValue,
193
193
  webFetchRestartNeeded,
194
194
  writeEgressAllowlist
195
- } from "../chunk-YZSECLT4.js";
195
+ } from "../chunk-M5XKZVBC.js";
196
196
  import {
197
197
  isAgentIdle,
198
198
  isStaleForToday,
@@ -202,7 +202,7 @@ import {
202
202
  sessionTranscriptDir,
203
203
  subagentActivityAgeSeconds,
204
204
  transcriptActivityAgeSeconds
205
- } from "../chunk-LBQSZVUX.js";
205
+ } from "../chunk-KKQRAJQV.js";
206
206
  import {
207
207
  classifyUnanswerablePane,
208
208
  focusedConfirmDialogBlock,
@@ -330,7 +330,7 @@ import {
330
330
  stabiliseResetInstant,
331
331
  sumTranscriptUsageInWindow,
332
332
  summarizeTranscriptActivity
333
- } from "../chunk-I2ZT7SV2.js";
333
+ } from "../chunk-WCN2OJQT.js";
334
334
  import {
335
335
  CLAUDE_CONFIG_DIR_ENV,
336
336
  claudeConfigDirFor,
@@ -14653,6 +14653,7 @@ var CHANNEL_SWEEP_DRY_RUN = process.env["AGT_CHANNEL_SWEEP_DRY_RUN"] === "1";
14653
14653
  var lastChannelSweepAt = 0;
14654
14654
  var config = null;
14655
14655
  var running = false;
14656
+ var managerShutdownArmed = false;
14656
14657
  var pollTimer = null;
14657
14658
  var livenessTimer = null;
14658
14659
  var livenessInFlight = false;
@@ -15561,7 +15562,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
15561
15562
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
15562
15563
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
15563
15564
  async function channelInboundActivityAgeSecondsFor(codeName) {
15564
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-VU7CUC7P.js");
15565
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-TB2T2Q4L.js");
15565
15566
  const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
15566
15567
  if (newest === null) return null;
15567
15568
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -16358,7 +16359,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
16358
16359
  var lastVersionCheckAt = 0;
16359
16360
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
16360
16361
  var lastResponsivenessProbeAt = 0;
16361
- var agtCliVersion = true ? "0.28.1198" : "dev";
16362
+ var agtCliVersion = true ? "0.28.1200" : "dev";
16362
16363
  function resolveBrewPath(execFileSync3) {
16363
16364
  try {
16364
16365
  const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -18262,7 +18263,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
18262
18263
  if (codeNames.length === 0) return;
18263
18264
  void (async () => {
18264
18265
  try {
18265
- const { collectDiagnostics } = await import("../persistent-session-YKPIDETF.js");
18266
+ const { collectDiagnostics } = await import("../persistent-session-SJ25HFBM.js");
18266
18267
  await api.post("/host/heartbeat", {
18267
18268
  host_id: hostId,
18268
18269
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor)
@@ -18405,7 +18406,7 @@ async function pollCycleInner() {
18405
18406
  }
18406
18407
  try {
18407
18408
  const { detectHostSecurity } = await import("../host-security-KQYYZZVW.js");
18408
- const { collectDiagnostics } = await import("../persistent-session-YKPIDETF.js");
18409
+ const { collectDiagnostics } = await import("../persistent-session-SJ25HFBM.js");
18409
18410
  const diagCodeNames = [...agentState.persistentSessionAgents];
18410
18411
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor) : void 0;
18411
18412
  let tailscaleHostname;
@@ -18663,7 +18664,7 @@ async function pollCycleInner() {
18663
18664
  }
18664
18665
  try {
18665
18666
  const desiredClaudeCodeVersion = hbResp?.desired_claude_code_version?.trim();
18666
- const { maybeUpdateClaudeCode, shouldRunClaudeCodeUpdater } = await import("../claude-code-updater-MO64U3D6.js");
18667
+ const { maybeUpdateClaudeCode, shouldRunClaudeCodeUpdater } = await import("../claude-code-updater-QRDRPUGF.js");
18667
18668
  const securityFloor = currentSecurityFloor();
18668
18669
  claudeUpdaterInFlight = true;
18669
18670
  if (desiredClaudeCodeVersion && (claudePairLoop.busy || claudePairingInProgress())) {
@@ -18698,7 +18699,7 @@ async function pollCycleInner() {
18698
18699
  collectPanelessActivityProbes,
18699
18700
  getResponsivenessIntervalMs,
18700
18701
  occupancyQualificationClassifications
18701
- } = await import("../responsiveness-probe-VU7CUC7P.js");
18702
+ } = await import("../responsiveness-probe-TB2T2Q4L.js");
18702
18703
  const probeIntervalMs = getResponsivenessIntervalMs();
18703
18704
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
18704
18705
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -18815,7 +18816,7 @@ async function pollCycleInner() {
18815
18816
  collectResponsivenessProbes,
18816
18817
  livePendingInboundOldestAgeSeconds,
18817
18818
  parkPendingInbound
18818
- } = await import("../responsiveness-probe-VU7CUC7P.js");
18819
+ } = await import("../responsiveness-probe-TB2T2Q4L.js");
18819
18820
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-M6AFZWNU.js");
18820
18821
  const wedgeNow = /* @__PURE__ */ new Date();
18821
18822
  const liveAgents = agentState.persistentSessionAgents;
@@ -19101,7 +19102,7 @@ async function pollCycleInner() {
19101
19102
  }
19102
19103
  }
19103
19104
  );
19104
- const { parkPendingInbound } = await import("../responsiveness-probe-VU7CUC7P.js");
19105
+ const { parkPendingInbound } = await import("../responsiveness-probe-TB2T2Q4L.js");
19105
19106
  const { parked, deadLettered } = parkPendingInbound(codeName, new Date(fatalNowMs));
19106
19107
  paneFatalStreak.delete(codeName);
19107
19108
  paneFatalRestarts.set(codeName, [...history, fatalNowMs]);
@@ -19132,7 +19133,7 @@ async function pollCycleInner() {
19132
19133
  TRANSCRIPT_MOUNT_ESCALATION_REFRESH_MS,
19133
19134
  bindSourceEscalations
19134
19135
  } = await import("../transcript-mount-health-OHE6IVJV.js");
19135
- const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-YKPIDETF.js");
19136
+ const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-SJ25HFBM.js");
19136
19137
  const mountConfig = resolveTranscriptMountConfig();
19137
19138
  const liveAgents = agentState.persistentSessionAgents;
19138
19139
  for (const tracked of [
@@ -19297,7 +19298,7 @@ async function pollCycleInner() {
19297
19298
  }
19298
19299
  try {
19299
19300
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-VR5QGP3J.js");
19300
- const { probeSessionAuth } = await import("../session-auth-dead-SXJSD34M.js");
19301
+ const { probeSessionAuth } = await import("../session-auth-dead-2XSQ6BRX.js");
19301
19302
  const observations = [];
19302
19303
  const pendingCacheCommits = [];
19303
19304
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -24027,7 +24028,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
24027
24028
  try {
24028
24029
  const freshId = rotateSessionForWedge(codeName);
24029
24030
  consecutiveWedgeCycles.delete(codeName);
24030
- const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-VU7CUC7P.js");
24031
+ const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-TB2T2Q4L.js");
24031
24032
  const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
24032
24033
  const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
24033
24034
  const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
@@ -24070,7 +24071,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
24070
24071
  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}`));
24071
24072
  void (async () => {
24072
24073
  try {
24073
- const { collectDiagnostics } = await import("../persistent-session-YKPIDETF.js");
24074
+ const { collectDiagnostics } = await import("../persistent-session-SJ25HFBM.js");
24074
24075
  await api.post("/host/heartbeat", {
24075
24076
  host_id: hostId,
24076
24077
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor)
@@ -24121,7 +24122,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
24121
24122
  }
24122
24123
  try {
24123
24124
  const hostId = await getHostId();
24124
- const { collectDiagnostics } = await import("../persistent-session-YKPIDETF.js");
24125
+ const { collectDiagnostics } = await import("../persistent-session-SJ25HFBM.js");
24125
24126
  await api.post("/host/heartbeat", {
24126
24127
  host_id: hostId,
24127
24128
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor)
@@ -24823,7 +24824,7 @@ async function processClaudePairSessions(agents) {
24823
24824
  snapshotPairConfig,
24824
24825
  // ENG-11659: result -> report body + the manager.log line that records it.
24825
24826
  planPairStartReport
24826
- } = await import("../claude-pair-runtime-IMG45YN5.js");
24827
+ } = await import("../claude-pair-runtime-PQNF3H4Q.js");
24827
24828
  const { resetClaudeSignin, describeSigninResetForLog, describeSigninResetFailure } = await import("../claude-signin-reset-6IJMMVYG.js");
24828
24829
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
24829
24830
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
@@ -25833,6 +25834,10 @@ async function releaseInterruptedCardsOnDrain(snapshot) {
25833
25834
  );
25834
25835
  }
25835
25836
  async function stopPolling(opts = {}) {
25837
+ if (!managerShutdownArmed) {
25838
+ log("[drain] skipped: this process never started the manager");
25839
+ return;
25840
+ }
25836
25841
  running = false;
25837
25842
  if (pollTimer) {
25838
25843
  clearTimeout(pollTimer);
@@ -25902,6 +25907,7 @@ async function stopPolling(opts = {}) {
25902
25907
  }
25903
25908
  function startManager(opts) {
25904
25909
  log(`[startup] begin (pid=${process.pid}, node=${process.version}, interval=${opts.intervalMs}ms)`);
25910
+ armManagerShutdown();
25905
25911
  process.env["DISABLE_AUTOUPDATER"] = "1";
25906
25912
  config = opts;
25907
25913
  try {
@@ -26232,25 +26238,29 @@ async function stopManager() {
26232
26238
  await stopPolling();
26233
26239
  }
26234
26240
  var shuttingDown = false;
26235
- for (const sig of ["SIGTERM", "SIGINT"]) {
26236
- process.on(sig, () => {
26237
- if (shuttingDown) {
26238
- log(`Received ${sig} again during shutdown \u2014 ignoring (cleanup in progress)`);
26239
- return;
26240
- }
26241
- shuttingDown = true;
26242
- log(`Received ${sig}, shutting down`);
26241
+ function armManagerShutdown() {
26242
+ if (managerShutdownArmed) return;
26243
+ managerShutdownArmed = true;
26244
+ for (const sig of ["SIGTERM", "SIGINT"]) {
26245
+ process.on(sig, () => {
26246
+ if (shuttingDown) {
26247
+ log(`Received ${sig} again during shutdown \u2014 ignoring (cleanup in progress)`);
26248
+ return;
26249
+ }
26250
+ shuttingDown = true;
26251
+ log(`Received ${sig}, shutting down`);
26252
+ void stopPolling().then(() => {
26253
+ process.exit(0);
26254
+ });
26255
+ });
26256
+ }
26257
+ process.on("disconnect", () => {
26258
+ log("Parent disconnected, exiting");
26243
26259
  void stopPolling().then(() => {
26244
26260
  process.exit(0);
26245
26261
  });
26246
26262
  });
26247
26263
  }
26248
- process.on("disconnect", () => {
26249
- log("Parent disconnected, exiting");
26250
- void stopPolling().then(() => {
26251
- process.exit(0);
26252
- });
26253
- });
26254
26264
  export {
26255
26265
  BACK_ONLINE_GREETING_GUIDANCE,
26256
26266
  CHANNEL_SYNC_FREE_ATTEMPTS,
@@ -26269,6 +26279,7 @@ export {
26269
26279
  _claudePairTickForTests,
26270
26280
  applyMemoryTombstones,
26271
26281
  applyRestartAcks,
26282
+ armManagerShutdown,
26272
26283
  cancelKanbanNoticeOnDrain,
26273
26284
  channelSyncBackoffMs,
26274
26285
  classifyLazyDayRolloverReset,