@integrity-labs/agt-cli 0.28.1133 → 0.28.1135

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.
Files changed (24) hide show
  1. package/dist/bin/agt.js +5 -5
  2. package/dist/{chunk-I7W7LI5F.js → chunk-5C52XNSX.js} +4 -4
  3. package/dist/{chunk-TPUS37QC.js → chunk-773ZNDNR.js} +22 -2
  4. package/dist/chunk-773ZNDNR.js.map +1 -0
  5. package/dist/{chunk-NIKSQHNB.js → chunk-PGTZFME3.js} +2 -2
  6. package/dist/{claude-pair-runtime-VCSQQI24.js → claude-pair-runtime-6SJHKHRE.js} +2 -2
  7. package/dist/lib/manager-worker.js +16 -16
  8. package/dist/lib/manager-worker.js.map +1 -1
  9. package/dist/mcp/direct-chat-channel.js +21 -1
  10. package/dist/mcp/index.js +21 -1
  11. package/dist/mcp/origami.js +21 -1
  12. package/dist/mcp/slack-channel.js +58 -4
  13. package/dist/mcp/telegram-channel.js +21 -1
  14. package/dist/{persistent-session-JUPKKQMI.js → persistent-session-6W6PZGNB.js} +3 -3
  15. package/dist/{responsiveness-probe-IOJU24OH.js → responsiveness-probe-LLYHYZR7.js} +3 -3
  16. package/dist/{session-auth-dead-5QPG3HCJ.js → session-auth-dead-QZET5C3W.js} +2 -2
  17. package/package.json +1 -1
  18. package/dist/chunk-TPUS37QC.js.map +0 -1
  19. /package/dist/{chunk-I7W7LI5F.js.map → chunk-5C52XNSX.js.map} +0 -0
  20. /package/dist/{chunk-NIKSQHNB.js.map → chunk-PGTZFME3.js.map} +0 -0
  21. /package/dist/{claude-pair-runtime-VCSQQI24.js.map → claude-pair-runtime-6SJHKHRE.js.map} +0 -0
  22. /package/dist/{persistent-session-JUPKKQMI.js.map → persistent-session-6W6PZGNB.js.map} +0 -0
  23. /package/dist/{responsiveness-probe-IOJU24OH.js.map → responsiveness-probe-LLYHYZR7.js.map} +0 -0
  24. /package/dist/{session-auth-dead-5QPG3HCJ.js.map → session-auth-dead-QZET5C3W.js.map} +0 -0
@@ -40491,7 +40491,27 @@ var INTEGRATION_REGISTRY = [
40491
40491
  // price. Flare holds gpt-image-2's rate (it is the lower-latency
40492
40492
  // successor at the same cost to us); Sunburst is seeded at 4x.
40493
40493
  { event_type: "gpt_image_2_5_flare", unit: "image" },
40494
- { event_type: "gpt_image_2_5_sunburst", unit: "image" }
40494
+ { event_type: "gpt_image_2_5_sunburst", unit: "image" },
40495
+ // CS-1940: an edit also records one of these with units = the number of
40496
+ // reference images. Declared here (obi-wan 3a515eaf41b0) because the admin
40497
+ // pricing route only accepts a price for a declared meter, and the org
40498
+ // settings list and opt-in modal only show declared meters. Undeclared,
40499
+ // the edit price gate could not be opened from the console and a priced
40500
+ // edit would bill on a meter no customer surface showed. The edit gate
40501
+ // stays shut until each of these has a rate card row in BOTH USD and AUD
40502
+ // (settlement prices in the org's billing currency).
40503
+ {
40504
+ event_type: "gpt_image_2_5_flare_edit_input",
40505
+ unit: "reference_image",
40506
+ label: "Flare edit input",
40507
+ unit_label: "reference image"
40508
+ },
40509
+ {
40510
+ event_type: "gpt_image_2_5_sunburst_edit_input",
40511
+ unit: "reference_image",
40512
+ label: "Sunburst edit input",
40513
+ unit_label: "reference image"
40514
+ }
40495
40515
  ]
40496
40516
  }
40497
40517
  },
package/dist/mcp/index.js CHANGED
@@ -26516,7 +26516,27 @@ var INTEGRATION_REGISTRY = [
26516
26516
  // price. Flare holds gpt-image-2's rate (it is the lower-latency
26517
26517
  // successor at the same cost to us); Sunburst is seeded at 4x.
26518
26518
  { event_type: "gpt_image_2_5_flare", unit: "image" },
26519
- { event_type: "gpt_image_2_5_sunburst", unit: "image" }
26519
+ { event_type: "gpt_image_2_5_sunburst", unit: "image" },
26520
+ // CS-1940: an edit also records one of these with units = the number of
26521
+ // reference images. Declared here (obi-wan 3a515eaf41b0) because the admin
26522
+ // pricing route only accepts a price for a declared meter, and the org
26523
+ // settings list and opt-in modal only show declared meters. Undeclared,
26524
+ // the edit price gate could not be opened from the console and a priced
26525
+ // edit would bill on a meter no customer surface showed. The edit gate
26526
+ // stays shut until each of these has a rate card row in BOTH USD and AUD
26527
+ // (settlement prices in the org's billing currency).
26528
+ {
26529
+ event_type: "gpt_image_2_5_flare_edit_input",
26530
+ unit: "reference_image",
26531
+ label: "Flare edit input",
26532
+ unit_label: "reference image"
26533
+ },
26534
+ {
26535
+ event_type: "gpt_image_2_5_sunburst_edit_input",
26536
+ unit: "reference_image",
26537
+ label: "Sunburst edit input",
26538
+ unit_label: "reference image"
26539
+ }
26520
26540
  ]
26521
26541
  }
26522
26542
  },
@@ -40648,7 +40648,27 @@ var INTEGRATION_REGISTRY = [
40648
40648
  // price. Flare holds gpt-image-2's rate (it is the lower-latency
40649
40649
  // successor at the same cost to us); Sunburst is seeded at 4x.
40650
40650
  { event_type: "gpt_image_2_5_flare", unit: "image" },
40651
- { event_type: "gpt_image_2_5_sunburst", unit: "image" }
40651
+ { event_type: "gpt_image_2_5_sunburst", unit: "image" },
40652
+ // CS-1940: an edit also records one of these with units = the number of
40653
+ // reference images. Declared here (obi-wan 3a515eaf41b0) because the admin
40654
+ // pricing route only accepts a price for a declared meter, and the org
40655
+ // settings list and opt-in modal only show declared meters. Undeclared,
40656
+ // the edit price gate could not be opened from the console and a priced
40657
+ // edit would bill on a meter no customer surface showed. The edit gate
40658
+ // stays shut until each of these has a rate card row in BOTH USD and AUD
40659
+ // (settlement prices in the org's billing currency).
40660
+ {
40661
+ event_type: "gpt_image_2_5_flare_edit_input",
40662
+ unit: "reference_image",
40663
+ label: "Flare edit input",
40664
+ unit_label: "reference image"
40665
+ },
40666
+ {
40667
+ event_type: "gpt_image_2_5_sunburst_edit_input",
40668
+ unit: "reference_image",
40669
+ label: "Sunburst edit input",
40670
+ unit_label: "reference image"
40671
+ }
40652
40672
  ]
40653
40673
  }
40654
40674
  },
@@ -22942,6 +22942,9 @@ function textNode(v) {
22942
22942
  }
22943
22943
  var RICH_TEXT_MAX_DEPTH = 64;
22944
22944
  function richTextToString(node, depth = 0) {
22945
+ return flattenRichText(node, depth).trim();
22946
+ }
22947
+ function flattenRichText(node, depth) {
22945
22948
  if (depth >= RICH_TEXT_MAX_DEPTH) return "[nested rich text truncated]";
22946
22949
  const rec = asRecord(node);
22947
22950
  if (!rec) return "";
@@ -22955,7 +22958,9 @@ function richTextToString(node, depth = 0) {
22955
22958
  const channelId = rec["channel_id"];
22956
22959
  if (typeof channelId === "string") parts.push(`<#${channelId}>`);
22957
22960
  const type = typeof rec["type"] === "string" ? rec["type"] : "";
22958
- const children = asArray(rec["elements"]).map((c) => richTextToString(c, depth + 1)).filter(Boolean);
22961
+ const inline = asArray(rec["elements"]).map((c) => flattenRichText(c, depth + 1)).filter(Boolean);
22962
+ const blockLevel = BLOCK_LEVEL_RICH_TEXT.has(type);
22963
+ const children = blockLevel ? inline.map((c) => c.trim()).filter(Boolean) : inline;
22959
22964
  if (children.length > 0) {
22960
22965
  if (type === "rich_text_table") parts.push(children.join("\n"));
22961
22966
  else if (type === "rich_text_table_row") parts.push(children.join(" | "));
@@ -22977,8 +22982,15 @@ ${body}
22977
22982
  ${fence}`);
22978
22983
  } else parts.push(children.join(""));
22979
22984
  }
22980
- return parts.join("").trim();
22985
+ return parts.join("");
22981
22986
  }
22987
+ var BLOCK_LEVEL_RICH_TEXT = /* @__PURE__ */ new Set([
22988
+ "rich_text_table",
22989
+ "rich_text_table_row",
22990
+ "rich_text_list",
22991
+ "rich_text_quote",
22992
+ "rich_text_preformatted"
22993
+ ]);
22982
22994
  function blockToString(block) {
22983
22995
  const b = asRecord(block);
22984
22996
  if (!b) return "";
@@ -23074,9 +23086,19 @@ function slackMessageBody(msg) {
23074
23086
  if (!rich) return top;
23075
23087
  if (!top) return rich;
23076
23088
  if (rich.startsWith(top)) return rich;
23089
+ if (!attachmentText && allRichText(msg.blocks) && sameWords(top, blockText)) return top;
23077
23090
  return `${top}
23078
23091
  ${rich}`;
23079
23092
  }
23093
+ function allRichText(blocks) {
23094
+ const list = asArray(blocks);
23095
+ return list.length > 0 && list.every((b) => asRecord(b)?.["type"] === "rich_text");
23096
+ }
23097
+ function sameWords(mrkdwn, plain) {
23098
+ const norm = (v) => v.replace(/<([^<>|]+)\|([^<>]*)>/g, "$2").replace(/<([^<>]+)>/g, "$1").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&").replace(/:[a-z0-9_+'-]+:/gi, "").toLowerCase().replace(/[^\p{L}\p{N}]+/gu, "");
23099
+ const a = norm(mrkdwn);
23100
+ return a.length > 0 && a === norm(plain);
23101
+ }
23080
23102
 
23081
23103
  // ../core/dist/channels/slack-rich-text.js
23082
23104
  var MAX_DEPTH = 12;
@@ -30377,6 +30399,14 @@ function humanEditedMessage(evt) {
30377
30399
  merged["edit_ts"] = evt.ts;
30378
30400
  return merged;
30379
30401
  }
30402
+ function isOwnNormalisedEdit(normalised, raw, botUserId2) {
30403
+ return normalised !== raw && !!botUserId2 && normalised.user === botUserId2;
30404
+ }
30405
+ function isSlackBotSender(evt, botUserId2) {
30406
+ if (typeof evt.bot_id === "string" && evt.bot_id.length > 0)
30407
+ return true;
30408
+ return !!botUserId2 && evt.user === botUserId2;
30409
+ }
30380
30410
  function decideSlackMessageForward(evt, thirdPartyBots) {
30381
30411
  if (evt.type !== "message") {
30382
30412
  return { forward: true };
@@ -30587,6 +30617,8 @@ function politeDeclineCopy(reason) {
30587
30617
  }
30588
30618
  }
30589
30619
  function isSlackDeclineAddressed(input) {
30620
+ if (input.isFromBot === true)
30621
+ return false;
30590
30622
  if (input.eventType === "app_mention")
30591
30623
  return true;
30592
30624
  if (typeof input.channelId === "string" && input.channelId.startsWith("D"))
@@ -35035,7 +35067,27 @@ var INTEGRATION_REGISTRY = [
35035
35067
  // price. Flare holds gpt-image-2's rate (it is the lower-latency
35036
35068
  // successor at the same cost to us); Sunburst is seeded at 4x.
35037
35069
  { event_type: "gpt_image_2_5_flare", unit: "image" },
35038
- { event_type: "gpt_image_2_5_sunburst", unit: "image" }
35070
+ { event_type: "gpt_image_2_5_sunburst", unit: "image" },
35071
+ // CS-1940: an edit also records one of these with units = the number of
35072
+ // reference images. Declared here (obi-wan 3a515eaf41b0) because the admin
35073
+ // pricing route only accepts a price for a declared meter, and the org
35074
+ // settings list and opt-in modal only show declared meters. Undeclared,
35075
+ // the edit price gate could not be opened from the console and a priced
35076
+ // edit would bill on a meter no customer surface showed. The edit gate
35077
+ // stays shut until each of these has a rate card row in BOTH USD and AUD
35078
+ // (settlement prices in the org's billing currency).
35079
+ {
35080
+ event_type: "gpt_image_2_5_flare_edit_input",
35081
+ unit: "reference_image",
35082
+ label: "Flare edit input",
35083
+ unit_label: "reference image"
35084
+ },
35085
+ {
35086
+ event_type: "gpt_image_2_5_sunburst_edit_input",
35087
+ unit: "reference_image",
35088
+ label: "Sunburst edit input",
35089
+ unit_label: "reference image"
35090
+ }
35039
35091
  ]
35040
35092
  }
35041
35093
  },
@@ -51065,6 +51117,7 @@ async function connectSocketMode() {
51065
51117
  return;
51066
51118
  }
51067
51119
  const evt = humanEditedMessage(rawEvt) ?? rawEvt;
51120
+ if (isOwnNormalisedEdit(evt, rawEvt, botUserId)) return;
51068
51121
  const dedupId = slackInboundDedupId(evt);
51069
51122
  if (dedupId && markInboundDelivered("slack", dedupId)) {
51070
51123
  const isMention = evt.type === "app_mention";
@@ -51163,7 +51216,8 @@ async function connectSocketMode() {
51163
51216
  eventType: evt.type,
51164
51217
  channelId: evt.channel,
51165
51218
  text: evt.text,
51166
- botUserId
51219
+ botUserId,
51220
+ isFromBot: isSlackBotSender(evt, botUserId)
51167
51221
  })) {
51168
51222
  await maybeSendSenderPolicyDecline({
51169
51223
  channel: evt.channel,
@@ -35269,7 +35269,27 @@ var INTEGRATION_REGISTRY = [
35269
35269
  // price. Flare holds gpt-image-2's rate (it is the lower-latency
35270
35270
  // successor at the same cost to us); Sunburst is seeded at 4x.
35271
35271
  { event_type: "gpt_image_2_5_flare", unit: "image" },
35272
- { event_type: "gpt_image_2_5_sunburst", unit: "image" }
35272
+ { event_type: "gpt_image_2_5_sunburst", unit: "image" },
35273
+ // CS-1940: an edit also records one of these with units = the number of
35274
+ // reference images. Declared here (obi-wan 3a515eaf41b0) because the admin
35275
+ // pricing route only accepts a price for a declared meter, and the org
35276
+ // settings list and opt-in modal only show declared meters. Undeclared,
35277
+ // the edit price gate could not be opened from the console and a priced
35278
+ // edit would bill on a meter no customer surface showed. The edit gate
35279
+ // stays shut until each of these has a rate card row in BOTH USD and AUD
35280
+ // (settlement prices in the org's billing currency).
35281
+ {
35282
+ event_type: "gpt_image_2_5_flare_edit_input",
35283
+ unit: "reference_image",
35284
+ label: "Flare edit input",
35285
+ unit_label: "reference image"
35286
+ },
35287
+ {
35288
+ event_type: "gpt_image_2_5_sunburst_edit_input",
35289
+ unit: "reference_image",
35290
+ label: "Sunburst edit input",
35291
+ unit_label: "reference image"
35292
+ }
35273
35293
  ]
35274
35294
  }
35275
35295
  },
@@ -68,8 +68,8 @@ import {
68
68
  writeDirectChatSessionState,
69
69
  writeEgressAllowlist,
70
70
  writePersistentClaudeWrapper
71
- } from "./chunk-NIKSQHNB.js";
72
- import "./chunk-TPUS37QC.js";
71
+ } from "./chunk-PGTZFME3.js";
72
+ import "./chunk-773ZNDNR.js";
73
73
  import "./chunk-B6UYVEMD.js";
74
74
  import "./chunk-XWVM4KPK.js";
75
75
  import "./chunk-EL5MWGGH.js";
@@ -145,4 +145,4 @@ export {
145
145
  writeEgressAllowlist,
146
146
  writePersistentClaudeWrapper
147
147
  };
148
- //# sourceMappingURL=persistent-session-JUPKKQMI.js.map
148
+ //# sourceMappingURL=persistent-session-6W6PZGNB.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-NIKSQHNB.js";
4
- import "./chunk-TPUS37QC.js";
3
+ } from "./chunk-PGTZFME3.js";
4
+ import "./chunk-773ZNDNR.js";
5
5
  import "./chunk-B6UYVEMD.js";
6
6
  import "./chunk-XWVM4KPK.js";
7
7
  import "./chunk-EL5MWGGH.js";
@@ -802,4 +802,4 @@ export {
802
802
  readAndResetSlackReplyBindingClassifications,
803
803
  readAndResetSlackReplyTargetClassifications
804
804
  };
805
- //# sourceMappingURL=responsiveness-probe-IOJU24OH.js.map
805
+ //# sourceMappingURL=responsiveness-probe-LLYHYZR7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionTranscriptDir
3
- } from "./chunk-TPUS37QC.js";
3
+ } from "./chunk-773ZNDNR.js";
4
4
  import "./chunk-DGUM43GV.js";
5
5
 
6
6
  // src/lib/session-auth-dead.ts
@@ -204,4 +204,4 @@ export {
204
204
  decideSessionAuthState,
205
205
  probeSessionAuth
206
206
  };
207
- //# sourceMappingURL=session-auth-dead-5QPG3HCJ.js.map
207
+ //# sourceMappingURL=session-auth-dead-QZET5C3W.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.1133",
3
+ "version": "0.28.1135",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {