@integrity-labs/agt-cli 0.28.94 → 0.28.95

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-4HWN54DY.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-X62FQ2TN.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-FA7DXRHH.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-DMC3ID2A.js.map
@@ -28,7 +28,7 @@ import {
28
28
  requireHost,
29
29
  safeWriteJsonAtomic,
30
30
  setConfigHash
31
- } from "../chunk-7IEFSTN5.js";
31
+ } from "../chunk-QQYVNV5N.js";
32
32
  import {
33
33
  getProjectDir as getProjectDir2,
34
34
  getReadyTasks,
@@ -66,7 +66,7 @@ import {
66
66
  takeWatchdogGiveUpCount,
67
67
  takeZombieDetection,
68
68
  transcriptActivityAgeSeconds
69
- } from "../chunk-CSTDOXOK.js";
69
+ } from "../chunk-JYSWJMXU.js";
70
70
  import {
71
71
  FLAGS_SCHEMA_VERSION,
72
72
  FLAG_REGISTRY,
@@ -101,7 +101,7 @@ import {
101
101
  resolveDmTarget,
102
102
  sumTranscriptUsageInWindow,
103
103
  wrapScheduledTaskPrompt
104
- } from "../chunk-GLBWCCZD.js";
104
+ } from "../chunk-TRKWWYRN.js";
105
105
  import {
106
106
  parsePsRows,
107
107
  reapOrphanChannelMcps
@@ -850,10 +850,20 @@ import { mkdirSync as mkdirSync2, readFileSync as readFileSync2, rmSync, writeFi
850
850
  import { dirname as dirname2 } from "path";
851
851
  var ONBOARDING_REINJECT_INTERVAL_MS = 5 * 6e4;
852
852
  var ONBOARDING_MAX_NUDGES = 3;
853
- function decideOnboardingDrive(step, marker, nowMs, reinjectIntervalMs = ONBOARDING_REINJECT_INTERVAL_MS, maxNudges = ONBOARDING_MAX_NUDGES) {
853
+ function decideOnboardingDrive(step, marker, nowMs, generation = 0, reinjectIntervalMs = ONBOARDING_REINJECT_INTERVAL_MS, maxNudges = ONBOARDING_MAX_NUDGES) {
854
854
  if (isOnboardingArea(step)) {
855
855
  const sameStep = marker?.step === step;
856
856
  const current = sameStep ? marker : null;
857
+ const genChanged = current !== null && current.generation !== generation;
858
+ if (genChanged) {
859
+ return {
860
+ inject: true,
861
+ clearMarker: false,
862
+ nextMarker: { step, injectedAtMs: nowMs, nudgeCount: 1, gaveUp: false, generation },
863
+ reminder: false,
864
+ standDown: false
865
+ };
866
+ }
857
867
  if (current?.gaveUp) {
858
868
  return { inject: false, clearMarker: false, nextMarker: current, reminder: false, standDown: false };
859
869
  }
@@ -867,7 +877,7 @@ function decideOnboardingDrive(step, marker, nowMs, reinjectIntervalMs = ONBOARD
867
877
  return {
868
878
  inject: true,
869
879
  clearMarker: false,
870
- nextMarker: { step, injectedAtMs: nowMs, nudgeCount, gaveUp: isFinal },
880
+ nextMarker: { step, injectedAtMs: nowMs, nudgeCount, gaveUp: isFinal, generation },
871
881
  // A middle re-fire (not fresh, not final) is a gentle "still waiting"
872
882
  // reminder; the final one is a stand-down, not a reminder.
873
883
  reminder: !fresh && !isFinal,
@@ -905,10 +915,12 @@ function readOnboardingDriveMarker(path) {
905
915
  const raw = JSON.parse(readFileSync2(path, "utf8"));
906
916
  if (typeof raw.step === "string" && isOnboardingArea(raw.step) && typeof raw.injectedAtMs === "number" && Number.isFinite(raw.injectedAtMs)) {
907
917
  const nudgeCount = typeof raw.nudgeCount === "number" && Number.isFinite(raw.nudgeCount) && raw.nudgeCount >= 1 ? Math.floor(raw.nudgeCount) : 1;
918
+ const generation = typeof raw.generation === "number" && Number.isFinite(raw.generation) && raw.generation >= 0 ? Math.floor(raw.generation) : 0;
908
919
  return {
909
920
  step: raw.step,
910
921
  injectedAtMs: raw.injectedAtMs,
911
922
  nudgeCount,
923
+ generation,
912
924
  gaveUp: raw.gaveUp === true
913
925
  };
914
926
  }
@@ -6936,7 +6948,7 @@ var cachedMaintenanceWindow = null;
6936
6948
  var lastVersionCheckAt = 0;
6937
6949
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
6938
6950
  var lastResponsivenessProbeAt = 0;
6939
- var agtCliVersion = true ? "0.28.94" : "dev";
6951
+ var agtCliVersion = true ? "0.28.95" : "dev";
6940
6952
  function resolveBrewPath(execFileSync4) {
6941
6953
  try {
6942
6954
  const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -8047,7 +8059,7 @@ async function pollCycle() {
8047
8059
  }
8048
8060
  try {
8049
8061
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
8050
- const { collectDiagnostics } = await import("../persistent-session-4HWN54DY.js");
8062
+ const { collectDiagnostics } = await import("../persistent-session-X62FQ2TN.js");
8051
8063
  const diagCodeNames = [...agentState.persistentSessionAgents];
8052
8064
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
8053
8065
  let tailscaleHostname;
@@ -8148,7 +8160,7 @@ async function pollCycle() {
8148
8160
  const {
8149
8161
  collectResponsivenessProbes,
8150
8162
  getResponsivenessIntervalMs
8151
- } = await import("../responsiveness-probe-C2N4UJSE.js");
8163
+ } = await import("../responsiveness-probe-PYEWQCIU.js");
8152
8164
  const probeIntervalMs = getResponsivenessIntervalMs();
8153
8165
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
8154
8166
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -8180,7 +8192,7 @@ async function pollCycle() {
8180
8192
  collectResponsivenessProbes,
8181
8193
  livePendingInboundOldestAgeSeconds,
8182
8194
  parkPendingInbound
8183
- } = await import("../responsiveness-probe-C2N4UJSE.js");
8195
+ } = await import("../responsiveness-probe-PYEWQCIU.js");
8184
8196
  const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
8185
8197
  const wedgeNow = /* @__PURE__ */ new Date();
8186
8198
  const liveAgents = agentState.persistentSessionAgents;
@@ -10448,7 +10460,7 @@ In progress for ${age} minutes \u2014 auto-failed`).catch(() => {
10448
10460
  const obStep = obState.step;
10449
10461
  const markerPath = join16(homedir9(), ".augmented", agent.code_name, "onboarding-drive.json");
10450
10462
  const marker = readOnboardingDriveMarker(markerPath);
10451
- const decision = decideOnboardingDrive(obStep, marker, Date.now());
10463
+ const decision = decideOnboardingDrive(obStep, marker, Date.now(), obState.generation ?? 0);
10452
10464
  if (decision.clearMarker) {
10453
10465
  clearOnboardingDriveMarker(markerPath);
10454
10466
  } else if (decision.inject && isOnboardingArea(obStep) && isSessionHealthy(agent.code_name)) {
@@ -11666,7 +11678,7 @@ async function processClaudePairSessions(agents) {
11666
11678
  killPairSession,
11667
11679
  pairTmuxSession,
11668
11680
  finalizeClaudePairOnboarding
11669
- } = await import("../claude-pair-runtime-FA7DXRHH.js");
11681
+ } = await import("../claude-pair-runtime-DMC3ID2A.js");
11670
11682
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
11671
11683
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
11672
11684
  const killed = await killPairSession(pairTmuxSession(pairId));