@integrity-labs/agt-cli 0.28.142 → 0.28.144

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.
@@ -15531,12 +15531,8 @@ function createKanbanCardActiveClient(args) {
15531
15531
  }
15532
15532
 
15533
15533
  // src/slack-reply-threading.ts
15534
- function isSlackDmChannel(channel) {
15535
- return typeof channel === "string" && channel.startsWith("D");
15536
- }
15537
15534
  function resolveReplyThreadTs(input) {
15538
15535
  if (input.threadTs) return input.threadTs;
15539
- if (isSlackDmChannel(input.channel)) return void 0;
15540
15536
  return input.messageTs || void 0;
15541
15537
  }
15542
15538
 
@@ -18976,7 +18972,7 @@ var mcp = new Server(
18976
18972
  `Inbound: <channel ... thread_ts="..." message_ts="..." [thread_context="..."]>. Pass channel + message_ts to slack.reply (and thread_ts on threads). thread_context = thread pre-loaded; ground replies ONLY in it, never another channel's.`,
18977
18973
  "Inbound attachments: <channel> `files` is a JSON-serialised array \u2014 JSON.parse it. If an entry has `path`, the image is already downloaded \u2014 Read it directly, do NOT call slack.download_attachment. Use that tool only for entries with `file_id` but NO `path` (PDF, docx, csv): pass file_id + channel verbatim, then Read the returned path. Single-image messages also get a top-level `image_path`. Don't surface internal file-handling errors that don't affect the answer.",
18978
18974
  "Address users by user_name, never by raw user ID. In multi-participant threads the CURRENT speaker is the one on the latest <channel> tag.",
18979
- 'Mentioned in a channel \u2192 respond in that thread. DM \u2192 respond directly. auto_followed="true" \u2192 only reply if useful, OR if your own bot user is @-mentioned (counts even in auto_followed).',
18975
+ `Always reply in a thread \u2014 pass message_ts and the server threads your reply off it, for channels AND DMs (it creates the thread if one doesn't exist yet). auto_followed="true" \u2192 only reply if useful, OR if your own bot user is @-mentioned (counts even in auto_followed).`,
18980
18976
  `Reaction taxonomy (use slack.react sparingly \u2014 prefer a reply): :${SLACK_ACK_REACTION}: = ack (already auto-added on inbound, do not duplicate); \u2705 = success.` + (SKIP_REACTION_ON ? ` "${SLACK_SKIP_REACTION}" = seen but not replying (see below).` : "") + " NEVER react to signal failure of YOUR work \u2014 users can't tell why something failed from an emoji. On failure, slack.reply with one sentence explaining what went wrong (no stack traces, no secrets). (The \u23F3 you may see on an inbound is applied by the system, not you \u2014 it marks a message that arrived while the agent couldn't reply; never add \u23F3 or \u274C yourself.)",
18981
18977
  SKIP_REACTION_ON ? `When you read a DM or thread message and decide NOT to reply (different @-mention, side conversation, auto_followed catch-up, or simply nothing useful to add): call slack.react with emoji "${SLACK_SKIP_REACTION}" so the sender knows you saw it \u2014 never post a "this wasn't for me" message. Top-level channel messages (not a DM, not a thread reply) you may still skip silently.` : `When a thread message is NOT addressed to you (different @-mention, side conversation, auto_followed catch-up): SILENTLY SKIP \u2014 no reaction, no reply, no "this wasn't for me" message.`,
18982
18978
  "To deliver a file: save under your project dir, call slack.upload_file with path + channel + thread_ts."
@@ -18998,7 +18994,7 @@ mcp.setRequestHandler(ListToolsRequestSchema, async () => ({
18998
18994
  text: { type: "string", description: "The message to send" },
18999
18995
  thread_ts: {
19000
18996
  type: "string",
19001
- 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."
18997
+ description: "Thread timestamp for an existing thread reply (from the thread_ts attribute). Safe to omit: the server automatically threads your reply off the message you are answering (via message_ts), for channels and DMs alike \u2014 it starts a thread when none exists."
19002
18998
  },
19003
18999
  // ENG-5861: explicit message_ts so the cleanup gate can match the
19004
19000
  // exact pending-inbound marker — necessary because top-level DM
@@ -34,8 +34,8 @@ import {
34
34
  writeDirectChatSessionState,
35
35
  writeEgressAllowlist,
36
36
  writePersistentClaudeWrapper
37
- } from "./chunk-UVCPJVEF.js";
38
- import "./chunk-HKKV7NJD.js";
37
+ } from "./chunk-P7HRYVA3.js";
38
+ import "./chunk-SBVI6NJW.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-N4KR5IFC.js.map
77
+ //# sourceMappingURL=persistent-session-O5ACCLPL.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-UVCPJVEF.js";
4
- import "./chunk-HKKV7NJD.js";
3
+ } from "./chunk-P7HRYVA3.js";
4
+ import "./chunk-SBVI6NJW.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-MYFNFOB7.js.map
307
+ //# sourceMappingURL=responsiveness-probe-FT7DMZAR.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.142",
3
+ "version": "0.28.144",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {