@integrity-labs/agt-cli 0.28.309 → 0.28.310

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-QQXENK3Z.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-3XOQWQJE.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-A67UBVDS.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-UQHJTVEE.js.map
@@ -39,7 +39,7 @@ import {
39
39
  requireHost,
40
40
  safeWriteJsonAtomic,
41
41
  setConfigHash
42
- } from "../chunk-7QYIMU2Y.js";
42
+ } from "../chunk-J7PAEPOU.js";
43
43
  import {
44
44
  getProjectDir as getProjectDir2,
45
45
  getReadyTasks,
@@ -127,7 +127,7 @@ import {
127
127
  takeZombieDetection,
128
128
  transcriptActivityAgeSeconds,
129
129
  writeEgressAllowlist
130
- } from "../chunk-62LAROZ4.js";
130
+ } from "../chunk-KJE5Y4GF.js";
131
131
  import {
132
132
  reapOrphanChannelMcps
133
133
  } from "../chunk-XWVM4KPK.js";
@@ -6997,7 +6997,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
6997
6997
  var lastVersionCheckAt = 0;
6998
6998
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
6999
6999
  var lastResponsivenessProbeAt = 0;
7000
- var agtCliVersion = true ? "0.28.309" : "dev";
7000
+ var agtCliVersion = true ? "0.28.310" : "dev";
7001
7001
  function resolveBrewPath(execFileSync2) {
7002
7002
  try {
7003
7003
  const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -7852,7 +7852,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
7852
7852
  if (codeNames.length === 0) return;
7853
7853
  void (async () => {
7854
7854
  try {
7855
- const { collectDiagnostics } = await import("../persistent-session-QQXENK3Z.js");
7855
+ const { collectDiagnostics } = await import("../persistent-session-3XOQWQJE.js");
7856
7856
  await api.post("/host/heartbeat", {
7857
7857
  host_id: hostId,
7858
7858
  agent_diagnostics: collectDiagnostics(codeNames)
@@ -7950,7 +7950,7 @@ async function pollCycle() {
7950
7950
  }
7951
7951
  try {
7952
7952
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
7953
- const { collectDiagnostics } = await import("../persistent-session-QQXENK3Z.js");
7953
+ const { collectDiagnostics } = await import("../persistent-session-3XOQWQJE.js");
7954
7954
  const diagCodeNames = [...agentState.persistentSessionAgents];
7955
7955
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
7956
7956
  let tailscaleHostname;
@@ -8098,7 +8098,7 @@ async function pollCycle() {
8098
8098
  const {
8099
8099
  collectResponsivenessProbes,
8100
8100
  getResponsivenessIntervalMs
8101
- } = await import("../responsiveness-probe-33SVBGM7.js");
8101
+ } = await import("../responsiveness-probe-DUGIDPLT.js");
8102
8102
  const probeIntervalMs = getResponsivenessIntervalMs();
8103
8103
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
8104
8104
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -8130,7 +8130,7 @@ async function pollCycle() {
8130
8130
  collectResponsivenessProbes,
8131
8131
  livePendingInboundOldestAgeSeconds,
8132
8132
  parkPendingInbound
8133
- } = await import("../responsiveness-probe-33SVBGM7.js");
8133
+ } = await import("../responsiveness-probe-DUGIDPLT.js");
8134
8134
  const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
8135
8135
  const wedgeNow = /* @__PURE__ */ new Date();
8136
8136
  const liveAgents = agentState.persistentSessionAgents;
@@ -11113,7 +11113,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
11113
11113
  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}`));
11114
11114
  void (async () => {
11115
11115
  try {
11116
- const { collectDiagnostics } = await import("../persistent-session-QQXENK3Z.js");
11116
+ const { collectDiagnostics } = await import("../persistent-session-3XOQWQJE.js");
11117
11117
  await api.post("/host/heartbeat", {
11118
11118
  host_id: hostId,
11119
11119
  agent_diagnostics: collectDiagnostics([codeName])
@@ -11163,7 +11163,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
11163
11163
  }
11164
11164
  try {
11165
11165
  const hostId = await getHostId();
11166
- const { collectDiagnostics } = await import("../persistent-session-QQXENK3Z.js");
11166
+ const { collectDiagnostics } = await import("../persistent-session-3XOQWQJE.js");
11167
11167
  await api.post("/host/heartbeat", {
11168
11168
  host_id: hostId,
11169
11169
  agent_diagnostics: collectDiagnostics([codeName])
@@ -11587,7 +11587,7 @@ async function processClaudePairSessions(agents) {
11587
11587
  killPairSession,
11588
11588
  pairTmuxSession,
11589
11589
  finalizeClaudePairOnboarding
11590
- } = await import("../claude-pair-runtime-A67UBVDS.js");
11590
+ } = await import("../claude-pair-runtime-UQHJTVEE.js");
11591
11591
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
11592
11592
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
11593
11593
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -14860,6 +14860,13 @@ function shouldPostUndeliverableNotice(lastNoticeAtMs, nowMs, throttleMs = UNDEL
14860
14860
  function undeliverableNoticeText(replayEnabled = channelReplayEnabled()) {
14861
14861
  return replayEnabled ? "\u23F3 I can't get to this right now \u2014 no need to resend; I'll pick it up automatically as soon as I'm free." : "\u23F3 I can't get to this right now. Please resend in a few minutes \u2014 I may not see this one.";
14862
14862
  }
14863
+ function undeliverableNoticeConversationKey(channel, threadTs, isThreadReply) {
14864
+ return isThreadReply && threadTs ? `${channel}:${threadTs}` : channel;
14865
+ }
14866
+ function undeliverableNoticeConversationKeyFromMarker(marker) {
14867
+ const isThreadReply = typeof marker.message_ts === "string" && marker.message_ts !== marker.thread_ts;
14868
+ return undeliverableNoticeConversationKey(marker.channel, marker.thread_ts, isThreadReply);
14869
+ }
14863
14870
  var BUSY_ACK_THRESHOLD_MS = 12e4;
14864
14871
  var BUSY_ACK_NOTICE_THROTTLE_MS = 20 * 60 * 1e3;
14865
14872
  function channelBusyAckEnabled() {
@@ -18575,10 +18582,11 @@ function healSlackUndeliverable(channel, messageTs) {
18575
18582
  });
18576
18583
  }
18577
18584
  var lastSlackUndeliverableNoticeAt = /* @__PURE__ */ new Map();
18585
+ var lastSlackUndeliverableNoticeInfo = /* @__PURE__ */ new Map();
18578
18586
  function postUndeliverableNotice(channel, threadTs, isThreadReply) {
18579
18587
  if (!BOT_TOKEN || !channel) return;
18580
18588
  const now = Date.now();
18581
- const conversationKey = isThreadReply && threadTs ? `${channel}:${threadTs}` : channel;
18589
+ const conversationKey = undeliverableNoticeConversationKey(channel, threadTs, isThreadReply);
18582
18590
  if (!shouldPostUndeliverableNotice(lastSlackUndeliverableNoticeAt.get(conversationKey), now)) {
18583
18591
  return;
18584
18592
  }
@@ -18594,11 +18602,31 @@ function postUndeliverableNotice(channel, threadTs, isThreadReply) {
18594
18602
  text: undeliverableNoticeText(),
18595
18603
  ...threadTs ? { thread_ts: threadTs } : {}
18596
18604
  })
18605
+ }).then((res) => res.json()).then((data) => {
18606
+ if (data?.ok === true && typeof data.ts === "string" && data.ts) {
18607
+ lastSlackUndeliverableNoticeInfo.set(conversationKey, { channel, ts: data.ts });
18608
+ }
18597
18609
  }).catch(() => {
18598
18610
  });
18599
18611
  }
18600
18612
  function __resetSlackUndeliverableNoticeThrottle() {
18601
18613
  lastSlackUndeliverableNoticeAt.clear();
18614
+ lastSlackUndeliverableNoticeInfo.clear();
18615
+ }
18616
+ function deleteSlackUndeliverableNotice(conversationKey) {
18617
+ const info = lastSlackUndeliverableNoticeInfo.get(conversationKey);
18618
+ lastSlackUndeliverableNoticeInfo.delete(conversationKey);
18619
+ lastSlackUndeliverableNoticeAt.delete(conversationKey);
18620
+ if (!BOT_TOKEN || !info) return;
18621
+ fetch("https://slack.com/api/chat.delete", {
18622
+ method: "POST",
18623
+ headers: {
18624
+ "Content-Type": "application/json",
18625
+ Authorization: `Bearer ${BOT_TOKEN}`
18626
+ },
18627
+ body: JSON.stringify({ channel: info.channel, ts: info.ts })
18628
+ }).catch(() => {
18629
+ });
18602
18630
  }
18603
18631
  var lastSlackBusyAckNoticeAt = /* @__PURE__ */ new Map();
18604
18632
  function postBusyAckNotice(channel, threadTs, isThreadReply) {
@@ -18681,6 +18709,7 @@ function clearSlackMarkerFileWithHeal(fullPath) {
18681
18709
  hasTarget: Boolean(marker.channel && marker.message_ts)
18682
18710
  }) === "heal") {
18683
18711
  healSlackUndeliverable(marker.channel, marker.message_ts);
18712
+ deleteSlackUndeliverableNotice(undeliverableNoticeConversationKeyFromMarker(marker));
18684
18713
  }
18685
18714
  try {
18686
18715
  if (existsSync8(fullPath)) unlinkSync6(fullPath);
@@ -18699,6 +18728,7 @@ function markSlackMarkerSeenWithHeal(fullPath) {
18699
18728
  hasTarget: Boolean(marker.channel && marker.message_ts)
18700
18729
  }) === "heal") {
18701
18730
  healSlackUndeliverable(marker.channel, marker.message_ts);
18731
+ deleteSlackUndeliverableNotice(undeliverableNoticeConversationKeyFromMarker(marker));
18702
18732
  }
18703
18733
  markSlackMarkerSeenInPlace(fullPath);
18704
18734
  }
@@ -36,7 +36,7 @@ import {
36
36
  writeDirectChatSessionState,
37
37
  writeEgressAllowlist,
38
38
  writePersistentClaudeWrapper
39
- } from "./chunk-62LAROZ4.js";
39
+ } from "./chunk-KJE5Y4GF.js";
40
40
  import "./chunk-XWVM4KPK.js";
41
41
  export {
42
42
  EGRESS_BASELINE_DOMAINS,
@@ -77,4 +77,4 @@ export {
77
77
  writeEgressAllowlist,
78
78
  writePersistentClaudeWrapper
79
79
  };
80
- //# sourceMappingURL=persistent-session-QQXENK3Z.js.map
80
+ //# sourceMappingURL=persistent-session-3XOQWQJE.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-62LAROZ4.js";
3
+ } from "./chunk-KJE5Y4GF.js";
4
4
  import "./chunk-XWVM4KPK.js";
5
5
 
6
6
  // src/lib/responsiveness-probe.ts
@@ -427,4 +427,4 @@ export {
427
427
  readAndResetSlackReplyBindingClassifications,
428
428
  readAndResetSlackReplyTargetClassifications
429
429
  };
430
- //# sourceMappingURL=responsiveness-probe-33SVBGM7.js.map
430
+ //# sourceMappingURL=responsiveness-probe-DUGIDPLT.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.309",
3
+ "version": "0.28.310",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {