@integrity-labs/agt-cli 0.28.97 → 0.28.99

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.
@@ -22,7 +22,7 @@ import {
22
22
  resolveConnectivityProbe,
23
23
  worseConnectivityOutcome,
24
24
  wrapScheduledTaskPrompt
25
- } from "./chunk-TRKWWYRN.js";
25
+ } from "./chunk-IPSZZQ3D.js";
26
26
 
27
27
  // ../../packages/core/dist/integrations/registry.js
28
28
  var INTEGRATION_REGISTRY = [
@@ -7541,7 +7541,7 @@ function requireHost() {
7541
7541
  }
7542
7542
 
7543
7543
  // src/lib/api-client.ts
7544
- var agtCliVersion = true ? "0.28.97" : "dev";
7544
+ var agtCliVersion = true ? "0.28.99" : "dev";
7545
7545
  var lastConfigHash = null;
7546
7546
  function setConfigHash(hash) {
7547
7547
  lastConfigHash = hash && hash.length > 0 ? hash : null;
@@ -8838,4 +8838,4 @@ export {
8838
8838
  managerInstallSystemUnitCommand,
8839
8839
  managerUninstallSystemUnitCommand
8840
8840
  };
8841
- //# sourceMappingURL=chunk-EN7ZKY4A.js.map
8841
+ //# sourceMappingURL=chunk-QPQRF6F4.js.map
@@ -3,7 +3,7 @@ import {
3
3
  formatMissingVar,
4
4
  isClaudeFastMode,
5
5
  probeMcpEnvSubstitution
6
- } from "./chunk-TRKWWYRN.js";
6
+ } from "./chunk-IPSZZQ3D.js";
7
7
  import {
8
8
  reapOrphanChannelMcps
9
9
  } from "./chunk-XWVM4KPK.js";
@@ -1565,4 +1565,4 @@ export {
1565
1565
  stopAllSessionsAndWait,
1566
1566
  getProjectDir
1567
1567
  };
1568
- //# sourceMappingURL=chunk-5NQ652SP.js.map
1568
+ //# sourceMappingURL=chunk-TGGRM5NJ.js.map
@@ -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-KAOPVQPC.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-3OABTEPN.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-2ISKH4M2.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-LDBMWVTP.js.map
@@ -28,7 +28,7 @@ import {
28
28
  requireHost,
29
29
  safeWriteJsonAtomic,
30
30
  setConfigHash
31
- } from "../chunk-EN7ZKY4A.js";
31
+ } from "../chunk-QPQRF6F4.js";
32
32
  import {
33
33
  getProjectDir as getProjectDir2,
34
34
  getReadyTasks,
@@ -71,7 +71,7 @@ import {
71
71
  takeZombieDetection,
72
72
  transcriptActivityAgeSeconds,
73
73
  writeEgressAllowlist
74
- } from "../chunk-5NQ652SP.js";
74
+ } from "../chunk-TGGRM5NJ.js";
75
75
  import {
76
76
  FLAGS_SCHEMA_VERSION,
77
77
  FLAG_REGISTRY,
@@ -106,7 +106,7 @@ import {
106
106
  resolveDmTarget,
107
107
  sumTranscriptUsageInWindow,
108
108
  wrapScheduledTaskPrompt
109
- } from "../chunk-TRKWWYRN.js";
109
+ } from "../chunk-IPSZZQ3D.js";
110
110
  import {
111
111
  parsePsRows,
112
112
  reapOrphanChannelMcps
@@ -866,16 +866,18 @@ function decideOnboardingDrive(step, marker, nowMs, generation = 0, reinjectInte
866
866
  clearMarker: false,
867
867
  nextMarker: { step, injectedAtMs: nowMs, nudgeCount: 1, gaveUp: false, generation },
868
868
  reminder: false,
869
- standDown: false
869
+ standDown: false,
870
+ // The operator just re-ran /onboard: tell the agent to ask afresh now.
871
+ freshRestart: true
870
872
  };
871
873
  }
872
874
  if (current?.gaveUp) {
873
- return { inject: false, clearMarker: false, nextMarker: current, reminder: false, standDown: false };
875
+ return { inject: false, clearMarker: false, nextMarker: current, reminder: false, standDown: false, freshRestart: false };
874
876
  }
875
877
  const fresh = current === null;
876
878
  const stale = current !== null && nowMs - current.injectedAtMs >= reinjectIntervalMs;
877
879
  if (!fresh && !stale) {
878
- return { inject: false, clearMarker: false, nextMarker: current, reminder: false, standDown: false };
880
+ return { inject: false, clearMarker: false, nextMarker: current, reminder: false, standDown: false, freshRestart: false };
879
881
  }
880
882
  const nudgeCount = fresh ? 1 : current.nudgeCount + 1;
881
883
  const isFinal = nudgeCount >= maxNudges;
@@ -886,10 +888,11 @@ function decideOnboardingDrive(step, marker, nowMs, generation = 0, reinjectInte
886
888
  // A middle re-fire (not fresh, not final) is a gentle "still waiting"
887
889
  // reminder; the final one is a stand-down, not a reminder.
888
890
  reminder: !fresh && !isFinal,
889
- standDown: isFinal
891
+ standDown: isFinal,
892
+ freshRestart: false
890
893
  };
891
894
  }
892
- return { inject: false, clearMarker: marker !== null, nextMarker: null, reminder: false, standDown: false };
895
+ return { inject: false, clearMarker: marker !== null, nextMarker: null, reminder: false, standDown: false, freshRestart: false };
893
896
  }
894
897
  var AREA_DIRECTIVE = {
895
898
  framing: "Frame the work \u2014 ask your manager what matters in week one and what success looks like, then record it with memory_save",
@@ -898,11 +901,13 @@ var AREA_DIRECTIVE = {
898
901
  reporting: "Agree how you keep your manager posted \u2014 settle on a cadence and channel, then create a recurring report scheduled task for it"
899
902
  };
900
903
  function buildOnboardingDirective(step, completed = [], opts = {}) {
901
- const { channel, reminder = false, standDown = false, code } = opts;
904
+ const { channel, reminder = false, standDown = false, freshRestart = false, code } = opts;
902
905
  const doneAreas = completed.filter(isOnboardingArea);
903
906
  const alreadyCovered = doneAreas.length > 0 ? `You've already covered ${doneAreas.join(", ")} \u2014 re-orient, don't re-ask about those. ` : "";
904
907
  const where = channel ? `your manager in ${describeOnboardingChannel(channel)} (the channel onboarding was triggered from)` : "your manager over your usual channel";
905
- const askAndWait = `Ask ${where} this area's question and WAIT for their reply. Do NOT self-answer, and do NOT call \`onboarding_advance\` until they respond. ${AREA_DIRECTIVE[step]} only once they have. `;
908
+ const waitClause = `WAIT for their reply. Do NOT self-answer, and do NOT call \`onboarding_advance\` until they respond. ${AREA_DIRECTIVE[step]} only once they have. `;
909
+ const askAndWait = `Ask ${where} this area's question and ${waitClause}`;
910
+ const mustAskNow = `Post this area's question to ${where} as a NEW message in THIS turn. Even if you think you asked in an earlier round, do NOT "stand down" to wait unless you have just asked it now; a previous round's ask does not count. Once it is out, ${waitClause}`;
906
911
  if (standDown) {
907
912
  const resumeCmd = code ? `/onboard-${code}` : "/onboard";
908
913
  return `\u{1F6D1} Onboarding (${step}): your manager hasn't replied after a few nudges, so stand down on this for now. Post exactly this once to ${where}, then STOP nudging this area and do NOT call \`onboarding_advance\`: "Let me know if you'd like me to stop nudging you on this. You can resume onboarding at any time using ${resumeCmd}." After posting, leave onboarding parked; your manager can resume it whenever they're ready.`;
@@ -910,7 +915,10 @@ function buildOnboardingDirective(step, completed = [], opts = {}) {
910
915
  if (reminder) {
911
916
  return `\u23F3 Onboarding (${step}): still waiting on your manager's answer for this area. If you haven't asked yet, ask now; otherwise give them a gentle nudge, but don't move on without a reply. ` + askAndWait + `Advance with \`onboarding_advance\` (ADVANCE) once this area is done.`;
912
917
  }
913
- return `\u{1F680} Onboarding (${step}): your self-onboarding is active and waiting on you. ` + alreadyCovered + `Call the \`onboarding_get\` tool now to see this area's questions and full instructions, then proceed. ` + askAndWait + `Advance with \`onboarding_advance\` (ADVANCE) once this area is done.`;
918
+ if (freshRestart) {
919
+ return `\u{1F504} Onboarding (${step}): your manager just re-ran \`/onboard\`, so onboarding has RESTARTED at this area. Call the \`onboarding_get\` tool now to re-read this area, then ${mustAskNow}Advance with \`onboarding_advance\` (ADVANCE) once this area is done.`;
920
+ }
921
+ return `\u{1F680} Onboarding (${step}): your self-onboarding is active and waiting on you. ` + alreadyCovered + `Call the \`onboarding_get\` tool now to see this area's questions and full instructions, then ${mustAskNow}Advance with \`onboarding_advance\` (ADVANCE) once this area is done.`;
914
922
  }
915
923
  function onboardingNudgeReachedSession(result) {
916
924
  return result.delivered || result.fallbackUsed;
@@ -6953,7 +6961,7 @@ var cachedMaintenanceWindow = null;
6953
6961
  var lastVersionCheckAt = 0;
6954
6962
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
6955
6963
  var lastResponsivenessProbeAt = 0;
6956
- var agtCliVersion = true ? "0.28.97" : "dev";
6964
+ var agtCliVersion = true ? "0.28.99" : "dev";
6957
6965
  function resolveBrewPath(execFileSync4) {
6958
6966
  try {
6959
6967
  const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -8064,7 +8072,7 @@ async function pollCycle() {
8064
8072
  }
8065
8073
  try {
8066
8074
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
8067
- const { collectDiagnostics } = await import("../persistent-session-KAOPVQPC.js");
8075
+ const { collectDiagnostics } = await import("../persistent-session-3OABTEPN.js");
8068
8076
  const diagCodeNames = [...agentState.persistentSessionAgents];
8069
8077
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
8070
8078
  let tailscaleHostname;
@@ -8165,7 +8173,7 @@ async function pollCycle() {
8165
8173
  const {
8166
8174
  collectResponsivenessProbes,
8167
8175
  getResponsivenessIntervalMs
8168
- } = await import("../responsiveness-probe-OJPF6XDF.js");
8176
+ } = await import("../responsiveness-probe-IES7QHV5.js");
8169
8177
  const probeIntervalMs = getResponsivenessIntervalMs();
8170
8178
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
8171
8179
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -8197,7 +8205,7 @@ async function pollCycle() {
8197
8205
  collectResponsivenessProbes,
8198
8206
  livePendingInboundOldestAgeSeconds,
8199
8207
  parkPendingInbound
8200
- } = await import("../responsiveness-probe-OJPF6XDF.js");
8208
+ } = await import("../responsiveness-probe-IES7QHV5.js");
8201
8209
  const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
8202
8210
  const wedgeNow = /* @__PURE__ */ new Date();
8203
8211
  const liveAgents = agentState.persistentSessionAgents;
@@ -10475,11 +10483,14 @@ In progress for ${age} minutes \u2014 auto-failed`).catch(() => {
10475
10483
  // ENG-6583: anchor the ask to the channel onboarding was triggered
10476
10484
  // from, and phrase a staleness re-fire as a gentle reminder. ENG-6626:
10477
10485
  // the final bounded nudge flips to the stand-down message, which names
10478
- // the agent's /onboard-<code> resume command.
10486
+ // the agent's /onboard-<code> resume command. ENG-6636: a /onboard
10487
+ // restart (generation change) forces the "post the question afresh
10488
+ // this turn, don't stand down" variant.
10479
10489
  buildOnboardingDirective(obStep, obState.completed, {
10480
10490
  channel: obState.channel,
10481
10491
  reminder: decision.reminder,
10482
10492
  standDown: decision.standDown,
10493
+ freshRestart: decision.freshRestart,
10483
10494
  code: agent.code_name
10484
10495
  }),
10485
10496
  { task_name: "onboarding" },
@@ -11722,7 +11733,7 @@ async function processClaudePairSessions(agents) {
11722
11733
  killPairSession,
11723
11734
  pairTmuxSession,
11724
11735
  finalizeClaudePairOnboarding
11725
- } = await import("../claude-pair-runtime-2ISKH4M2.js");
11736
+ } = await import("../claude-pair-runtime-LDBMWVTP.js");
11726
11737
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
11727
11738
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
11728
11739
  const killed = await killPairSession(pairTmuxSession(pairId));