@integrity-labs/agt-cli 0.28.135 → 0.28.136

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-6MR7EVEN.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-VQCCFN4M.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-NJDB2EPV.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-ODRPKNKT.js.map
@@ -28,7 +28,7 @@ import {
28
28
  requireHost,
29
29
  safeWriteJsonAtomic,
30
30
  setConfigHash
31
- } from "../chunk-Z5ROLNAG.js";
31
+ } from "../chunk-FDRT52UA.js";
32
32
  import {
33
33
  getProjectDir as getProjectDir2,
34
34
  getReadyTasks,
@@ -72,7 +72,7 @@ import {
72
72
  takeZombieDetection,
73
73
  transcriptActivityAgeSeconds,
74
74
  writeEgressAllowlist
75
- } from "../chunk-U3CDNNEK.js";
75
+ } from "../chunk-2WWCHEQT.js";
76
76
  import {
77
77
  FLAGS_SCHEMA_VERSION,
78
78
  FLAG_REGISTRY,
@@ -110,7 +110,7 @@ import {
110
110
  resolveDmTarget,
111
111
  sumTranscriptUsageInWindow,
112
112
  wrapScheduledTaskPrompt
113
- } from "../chunk-RIT2OY5S.js";
113
+ } from "../chunk-QKA46UNQ.js";
114
114
  import {
115
115
  parsePsRows,
116
116
  reapOrphanChannelMcps
@@ -7067,7 +7067,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
7067
7067
  var lastVersionCheckAt = 0;
7068
7068
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
7069
7069
  var lastResponsivenessProbeAt = 0;
7070
- var agtCliVersion = true ? "0.28.135" : "dev";
7070
+ var agtCliVersion = true ? "0.28.136" : "dev";
7071
7071
  function resolveBrewPath(execFileSync4) {
7072
7072
  try {
7073
7073
  const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -8197,7 +8197,7 @@ async function pollCycle() {
8197
8197
  }
8198
8198
  try {
8199
8199
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
8200
- const { collectDiagnostics } = await import("../persistent-session-6MR7EVEN.js");
8200
+ const { collectDiagnostics } = await import("../persistent-session-VQCCFN4M.js");
8201
8201
  const diagCodeNames = [...agentState.persistentSessionAgents];
8202
8202
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
8203
8203
  let tailscaleHostname;
@@ -8340,7 +8340,7 @@ async function pollCycle() {
8340
8340
  const {
8341
8341
  collectResponsivenessProbes,
8342
8342
  getResponsivenessIntervalMs
8343
- } = await import("../responsiveness-probe-GWJ6TKO2.js");
8343
+ } = await import("../responsiveness-probe-FIXXJ7ZV.js");
8344
8344
  const probeIntervalMs = getResponsivenessIntervalMs();
8345
8345
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
8346
8346
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -8372,7 +8372,7 @@ async function pollCycle() {
8372
8372
  collectResponsivenessProbes,
8373
8373
  livePendingInboundOldestAgeSeconds,
8374
8374
  parkPendingInbound
8375
- } = await import("../responsiveness-probe-GWJ6TKO2.js");
8375
+ } = await import("../responsiveness-probe-FIXXJ7ZV.js");
8376
8376
  const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
8377
8377
  const wedgeNow = /* @__PURE__ */ new Date();
8378
8378
  const liveAgents = agentState.persistentSessionAgents;
@@ -11921,7 +11921,7 @@ async function processClaudePairSessions(agents) {
11921
11921
  killPairSession,
11922
11922
  pairTmuxSession,
11923
11923
  finalizeClaudePairOnboarding
11924
- } = await import("../claude-pair-runtime-NJDB2EPV.js");
11924
+ } = await import("../claude-pair-runtime-ODRPKNKT.js");
11925
11925
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
11926
11926
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
11927
11927
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -19033,7 +19033,12 @@ mcp.setRequestHandler(ListToolsRequestSchema, async () => ({
19033
19033
  description: "Array of Block Kit blocks. Supported block types: header, section, divider, context, actions. Supported interactive elements (inside actions blocks): button. Hard limits: 50 blocks per message, 5 elements per actions block, 3000 chars per section text, 75 chars per button label."
19034
19034
  },
19035
19035
  text: { type: "string", description: "Plain-text fallback for push notifications and unfurls. Required." },
19036
- thread_ts: { type: "string", description: "Thread timestamp for threaded replies (optional)" }
19036
+ thread_ts: { type: "string", description: "Thread timestamp for an existing thread reply (from the thread_ts attribute). Safe to omit: for a channel message the server automatically threads your reply off the message you are answering (via message_ts), and a DM reply posts inline." },
19037
+ // ENG-6763: mirror slack.reply — accept message_ts so a structured
19038
+ // reply to a channel @-mention threads deterministically off the
19039
+ // inbound even when the model omits thread_ts (the ENG-5861/ENG-6296
19040
+ // regression, previously only fixed on the plain-text reply path).
19041
+ message_ts: { type: "string", description: "The message_ts of the specific inbound this reply addresses (from the message_ts attribute on the <channel> tag). On a non-DM channel, lets the server thread the reply off that message when thread_ts is omitted." }
19037
19042
  },
19038
19043
  required: ["channel", "blocks", "text"]
19039
19044
  }
@@ -19732,13 +19737,18 @@ async function handleSendStructured(args) {
19732
19737
  }
19733
19738
  const runtime = await Promise.resolve().then(() => (init_slack_block_kit_runtime(), slack_block_kit_runtime_exports));
19734
19739
  const { validateSlackBlocks: validateSlackBlocks2 } = runtime;
19735
- const { channel, blocks, text, thread_ts } = args;
19740
+ const { channel, blocks, text, thread_ts, message_ts } = args;
19736
19741
  if (typeof channel !== "string" || !channel) {
19737
19742
  return errResult("channel is required");
19738
19743
  }
19739
19744
  if (typeof text !== "string" || !text) {
19740
19745
  return errResult("text is required (used as fallback for push notifications and unfurls)");
19741
19746
  }
19747
+ const effectiveThreadTs = resolveReplyThreadTs({
19748
+ channel,
19749
+ threadTs: thread_ts,
19750
+ messageTs: message_ts
19751
+ });
19742
19752
  const validation = validateSlackBlocks2(blocks);
19743
19753
  if (!validation.ok) {
19744
19754
  return errResult(`Invalid blocks: ${validation.errors.map((e) => `${e.path}: ${e.message}`).join("; ")}`);
@@ -19747,12 +19757,12 @@ async function handleSendStructured(args) {
19747
19757
  channel,
19748
19758
  blocks,
19749
19759
  text,
19750
- ...thread_ts ? { thread_ts } : {}
19760
+ ...effectiveThreadTs ? { thread_ts: effectiveThreadTs } : {}
19751
19761
  });
19752
19762
  if (!result.ok || !result.ts) {
19753
19763
  return errResult(`Slack chat.postMessage failed: ${result.error ?? "unknown"}`);
19754
19764
  }
19755
- if (thread_ts) clearPendingMessage(channel, thread_ts);
19765
+ if (effectiveThreadTs) clearPendingMessage(channel, effectiveThreadTs);
19756
19766
  if (interactiveHostAvailable()) {
19757
19767
  const cfg = {
19758
19768
  apiHost: AGT_HOST,
@@ -19760,7 +19770,7 @@ async function handleSendStructured(args) {
19760
19770
  agentId: AGT_AGENT_ID
19761
19771
  };
19762
19772
  const tsToRecord = result.ts;
19763
- const threadTsToRecord = thread_ts;
19773
+ const threadTsToRecord = effectiveThreadTs;
19764
19774
  void (async () => {
19765
19775
  try {
19766
19776
  await runtime.recordSlackDelivery(cfg, {
@@ -34,8 +34,8 @@ import {
34
34
  writeDirectChatSessionState,
35
35
  writeEgressAllowlist,
36
36
  writePersistentClaudeWrapper
37
- } from "./chunk-U3CDNNEK.js";
38
- import "./chunk-RIT2OY5S.js";
37
+ } from "./chunk-2WWCHEQT.js";
38
+ import "./chunk-QKA46UNQ.js";
39
39
  import "./chunk-XWVM4KPK.js";
40
40
  export {
41
41
  EGRESS_BASELINE_DOMAINS,
@@ -74,4 +74,4 @@ export {
74
74
  writeEgressAllowlist,
75
75
  writePersistentClaudeWrapper
76
76
  };
77
- //# sourceMappingURL=persistent-session-6MR7EVEN.js.map
77
+ //# sourceMappingURL=persistent-session-VQCCFN4M.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-U3CDNNEK.js";
4
- import "./chunk-RIT2OY5S.js";
3
+ } from "./chunk-2WWCHEQT.js";
4
+ import "./chunk-QKA46UNQ.js";
5
5
  import "./chunk-XWVM4KPK.js";
6
6
 
7
7
  // src/lib/responsiveness-probe.ts
@@ -304,4 +304,4 @@ export {
304
304
  readAndResetChannelDeflections,
305
305
  readAndResetChannelLaneClassifications
306
306
  };
307
- //# sourceMappingURL=responsiveness-probe-GWJ6TKO2.js.map
307
+ //# sourceMappingURL=responsiveness-probe-FIXXJ7ZV.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.135",
3
+ "version": "0.28.136",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {