@integrity-labs/agt-cli 0.27.88 → 0.27.90

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.
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  claudeModelAlias,
3
3
  isClaudeFastMode
4
- } from "./chunk-54TIJVLZ.js";
4
+ } from "./chunk-T2UTQH6W.js";
5
5
  import {
6
6
  reapOrphanChannelMcps
7
7
  } from "./chunk-XWVM4KPK.js";
@@ -1528,4 +1528,4 @@ export {
1528
1528
  stopAllSessionsAndWait,
1529
1529
  getProjectDir
1530
1530
  };
1531
- //# sourceMappingURL=chunk-SI2WVUAR.js.map
1531
+ //# sourceMappingURL=chunk-4MZWINDQ.js.map
@@ -9,7 +9,7 @@ import {
9
9
  parseDeliveryTarget,
10
10
  registerFramework,
11
11
  wrapScheduledTaskPrompt
12
- } from "./chunk-54TIJVLZ.js";
12
+ } from "./chunk-T2UTQH6W.js";
13
13
 
14
14
  // ../../packages/core/dist/integrations/registry.js
15
15
  var INTEGRATION_REGISTRY = [
@@ -7564,4 +7564,4 @@ export {
7564
7564
  managerInstallSystemUnitCommand,
7565
7565
  managerUninstallSystemUnitCommand
7566
7566
  };
7567
- //# sourceMappingURL=chunk-X747EIDT.js.map
7567
+ //# sourceMappingURL=chunk-BGXIKCLR.js.map
@@ -150,6 +150,17 @@ function parseChannelTarget(obj) {
150
150
  detail: "channel:slack target requires a non-empty channel_id"
151
151
  };
152
152
  }
153
+ const threadTs = obj["thread_ts"];
154
+ if (threadTs !== void 0 && threadTs !== null) {
155
+ if (typeof threadTs !== "string" || threadTs.length === 0) {
156
+ return {
157
+ ok: false,
158
+ code: "MALFORMED_DELIVERY_TARGET",
159
+ detail: "channel:slack thread_ts must be a non-empty string when present"
160
+ };
161
+ }
162
+ return { kind: "channel", provider: "slack", channel_id: channelId, thread_ts: threadTs };
163
+ }
153
164
  return { kind: "channel", provider: "slack", channel_id: channelId };
154
165
  }
155
166
  if (provider === "telegram") {
@@ -259,7 +270,10 @@ function resolveDmTarget(target, agent, people) {
259
270
  ok: true,
260
271
  kind: "channel",
261
272
  provider: "slack",
262
- channel_id: target.channel_id ?? ""
273
+ channel_id: target.channel_id ?? "",
274
+ // ENG-6038: carry the originating-thread coordinate through to
275
+ // dispatch. Absent → top-level post (pre-ENG-6038 behaviour).
276
+ ...target.thread_ts ? { thread_ts: target.thread_ts } : {}
263
277
  };
264
278
  }
265
279
  return {
@@ -769,6 +783,16 @@ var SLACK_SCOPE_PRESETS = {
769
783
  };
770
784
 
771
785
  // ../../packages/core/dist/channels/slack-manifest.js
786
+ var SLACK_COMMAND_MAX_LENGTH = 32;
787
+ function agentSlashCommand(base, codeName) {
788
+ if (!codeName)
789
+ return base;
790
+ const slug = codeName.trim().toLowerCase();
791
+ if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(slug))
792
+ return base;
793
+ const suffixed = `${base}-${slug}`;
794
+ return suffixed.length > SLACK_COMMAND_MAX_LENGTH ? base : suffixed;
795
+ }
772
796
  var SCOPE_TO_EVENTS = {
773
797
  "app_mentions:read": ["app_mention"],
774
798
  "assistant:write": ["assistant_thread_started"],
@@ -786,7 +810,7 @@ var SCOPE_TO_EVENTS = {
786
810
  "metadata.message:read": ["message_metadata_posted"]
787
811
  };
788
812
  function generateSlackAppManifest(input) {
789
- const { agent_name, description, long_description, scopes, socket_mode = true, redirect_urls, interactivity_request_url, slash_command_url } = input;
813
+ const { agent_name, description, long_description, scopes, socket_mode = true, redirect_urls, interactivity_request_url, slash_command_url, agent_code_name } = input;
790
814
  const botDisplayName = agent_name.length > 35 ? agent_name.slice(0, 35) : agent_name;
791
815
  const botEvents = /* @__PURE__ */ new Set();
792
816
  for (const scope of scopes) {
@@ -825,6 +849,13 @@ function generateSlackAppManifest(input) {
825
849
  // intentionally NOT registered here — Slack reserves `/help` as a
826
850
  // built-in global command, so app-level registration is unreliable.
827
851
  // The message-intercept fallback in slack-channel.ts handles /help.
852
+ //
853
+ // ENG-6044: the per-agent commands carry the agent code-name suffix
854
+ // (/agent-status-don) so multiple agents in one workspace don't
855
+ // register colliding names; /kill + /unkill stay generic
856
+ // (thread-wide semantics). /debug is renamed /investigate-<code-name>
857
+ // in the same move; the envelope handler still routes legacy names
858
+ // during migration.
828
859
  ...slash_command_url && scopes.includes("commands") ? {
829
860
  slash_commands: [
830
861
  {
@@ -842,13 +873,13 @@ function generateSlackAppManifest(input) {
842
873
  should_escape: false
843
874
  },
844
875
  {
845
- command: "/agent-status",
876
+ command: agentSlashCommand("/agent-status", agent_code_name),
846
877
  url: slash_command_url,
847
878
  description: "Check whether this agent is online + last activity.",
848
879
  should_escape: false
849
880
  },
850
881
  {
851
- command: "/restart",
882
+ command: agentSlashCommand("/restart", agent_code_name),
852
883
  url: slash_command_url,
853
884
  description: "Restart this agent (allowlisted users only).",
854
885
  should_escape: false
@@ -856,8 +887,9 @@ function generateSlackAppManifest(input) {
856
887
  // ENG-6030: live pane tail. Routed by the slash_commands
857
888
  // envelope handler in packages/mcp/src/slack-channel.ts;
858
889
  // fail-closed (DM + non-empty SLACK_ALLOWED_USERS required).
890
+ // ENG-6044: renamed from /debug.
859
891
  {
860
- command: "/debug",
892
+ command: agentSlashCommand("/investigate", agent_code_name),
861
893
  url: slash_command_url,
862
894
  description: "Live tail of this agent's terminal pane (DM only, allowlisted users).",
863
895
  usage_hint: "invoke in a DM with the agent",
@@ -4227,4 +4259,4 @@ export {
4227
4259
  attributeTranscriptUsageByRun,
4228
4260
  KANBAN_CHECK_COMMAND
4229
4261
  };
4230
- //# sourceMappingURL=chunk-54TIJVLZ.js.map
4262
+ //# sourceMappingURL=chunk-T2UTQH6W.js.map