@desplega.ai/agent-swarm 1.152.1 → 1.153.0

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 (228) hide show
  1. package/README.md +2 -1
  2. package/dist/{acp-adapter-4s7q25ft.js → acp-adapter-ahmjxhek.js} +4 -4
  3. package/dist/{actions-cs6rhmvc.js → actions-jzrfpkmn.js} +30 -26
  4. package/dist/{anthropic-messages-2y8nktar.js → anthropic-messages-9vqsbznt.js} +112 -84
  5. package/dist/{app-j54aq0dj.js → app-03na2vwb.js} +9 -6
  6. package/dist/{assistant-w1pgn7vf.js → assistant-hfkxvhgt.js} +33 -29
  7. package/dist/{azure-openai-responses-f38x2avq.js → azure-openai-responses-04qwdwfq.js} +27 -13
  8. package/dist/{boot-reembed-smy30z32.js → boot-reembed-c98xrad3.js} +8 -6
  9. package/dist/{boot-reembed-42vgkrrj.js → boot-reembed-zt3qm9xn.js} +9 -7
  10. package/dist/{boot-scrub-logs-b6s72fsw.js → boot-scrub-logs-jcqd8ksj.js} +6 -4
  11. package/dist/{claude-adapter-fh7rmcj9.js → claude-adapter-mgryg8g3.js} +17 -15
  12. package/dist/{claude-managed-adapter-dsmkcrjy.js → claude-managed-adapter-ea2aga6w.js} +3 -3
  13. package/dist/{claude-sdk-session-xhynatn9.js → claude-sdk-session-jjf4zss1.js} +17 -15
  14. package/dist/{cli-r2fpe7cx.js → cli-00w2c66p.js} +61 -55
  15. package/dist/{cli-fm4ytsdk.js → cli-0d9nbqxf.js} +1 -1
  16. package/dist/cli-0x5qzvkg.js +4279 -0
  17. package/dist/{cli-d3p82erb.js → cli-18amys3y.js} +9 -9
  18. package/dist/{cli-wbyk465z.js → cli-1hwnb4hc.js} +1 -1
  19. package/dist/{cli-sakxd2rg.js → cli-3bcmp015.js} +5 -5
  20. package/dist/cli-3er6gcsn.js +1849 -0
  21. package/dist/{cli-c4eeb5q2.js → cli-5b6b62tz.js} +1 -1
  22. package/dist/{cli-sqmh7jj1.js → cli-5mbmvxnn.js} +5 -5
  23. package/dist/{cli-v9sk4dzw.js → cli-5taqtpze.js} +235 -8
  24. package/dist/{cli-dsyg66vt.js → cli-6ks9xf1n.js} +7 -5
  25. package/dist/cli-7g9s78jf.js +2827 -0
  26. package/dist/{cli-jtvs5m8q.js → cli-7pnz2v6s.js} +2 -2
  27. package/dist/{cli-jytf5mw9.js → cli-83wkg402.js} +2 -2
  28. package/dist/{cli-3pft2z6r.js → cli-a9scg8sv.js} +12 -10
  29. package/dist/{cli-4yc5d8fk.js → cli-avkd6mqv.js} +50 -0
  30. package/dist/{cli-ht5rs63n.js → cli-b2g6mzjc.js} +15 -6
  31. package/dist/{cli-3g61md6v.js → cli-bw0dfwkr.js} +1 -1
  32. package/dist/{cli-8wrympd7.js → cli-bzr0ftht.js} +26 -7
  33. package/dist/{cli-ks8a1cgq.js → cli-cdq08v3r.js} +2 -2
  34. package/dist/cli-cgj4hc12.js +18902 -0
  35. package/dist/cli-d6hk10xx.js +14075 -0
  36. package/dist/{cli-bdt7w021.js → cli-djvxhnc4.js} +31 -3324
  37. package/dist/{cli-s25avqg9.js → cli-e781c6f9.js} +1 -0
  38. package/dist/{cli-b4dyetqt.js → cli-eazstkad.js} +2 -2
  39. package/dist/{cli-s2qjdd6z.js → cli-eetrvv91.js} +1 -1
  40. package/dist/cli-h38x0qhg.js +6912 -0
  41. package/dist/{cli-9xvdm3bx.js → cli-h60qfasa.js} +742 -278
  42. package/dist/{pi-mono-adapter-jcqt71cg.js → cli-ja7mrygn.js} +67343 -101083
  43. package/dist/{cli-j8dggbcr.js → cli-k0g1sjzm.js} +23 -31
  44. package/dist/{cli-y8tayczk.js → cli-m04pt18h.js} +2 -2
  45. package/dist/{cli-rgvp6r2x.js → cli-mcnhgnn1.js} +193 -4
  46. package/dist/{cli-j4nv2wqy.js → cli-mzgyhxbe.js} +10 -4
  47. package/dist/{cli-wfve107r.js → cli-n0q9b7j4.js} +46 -1870
  48. package/dist/cli-n7h1kqpf.js +29 -0
  49. package/dist/{cli-ng4q6a9t.js → cli-nq0kgyxe.js} +7 -7
  50. package/dist/{cli-72tgtzr1.js → cli-qrqhc31j.js} +151 -125
  51. package/dist/{cli-vbk025fm.js → cli-r8tdds6s.js} +1 -1
  52. package/dist/{cli-ch38q5z4.js → cli-rj7de4b2.js} +6788 -2541
  53. package/dist/{cli-ftdjz1mk.js → cli-s5s1f2yn.js} +56 -40
  54. package/dist/{cli-kj76p1ez.js → cli-scwq51gn.js} +13 -7
  55. package/dist/{cli-7bwaerjt.js → cli-tdh4hjr2.js} +3 -2
  56. package/dist/{cli-c2mk1kgf.js → cli-v4en75c5.js} +8 -1
  57. package/dist/{cli-kf8qp2vf.js → cli-vw03hg5t.js} +3 -2
  58. package/dist/{cli-gfez0qmk.js → cli-ybpp1srm.js} +6 -6
  59. package/dist/cli-yn0a417a.js +4069 -0
  60. package/dist/{cli-gxf2ebyz.js → cli-ysc1kbet.js} +2 -2
  61. package/dist/{cli-zfzznn7c.js → cli-ytxs7mn1.js} +26 -2
  62. package/dist/cli-zcsyfw2z.js +3335 -0
  63. package/dist/{cli-4j8k1m4w.js → cli-zt1227k1.js} +1162 -192
  64. package/dist/cli-zy5w9gpt.js +230 -0
  65. package/dist/cli.js +26 -34
  66. package/dist/{codex-adapter-k6yq95sn.js → codex-adapter-8548daap.js} +12 -11
  67. package/dist/{codex-session-runner-3rp84pk8.js → codex-session-runner-2dad8p4x.js} +12 -11
  68. package/dist/{commands-pbr5jzy5.js → commands-355dbpa8.js} +6 -4
  69. package/dist/{db-z0xaa59a.js → db-4jjvwz1s.js} +6 -4
  70. package/dist/{dispatcher-pwpgsj0x.js → dispatcher-ca590nkz.js} +29 -25
  71. package/dist/dsh-adapter-rgvj6ykp.js +19 -0
  72. package/dist/{e2b-413b8t4v.js → e2b-93x1k0j5.js} +6 -7
  73. package/dist/{google-generative-ai-ndjmj5fa.js → google-generative-ai-xtw7tggr.js} +33 -73
  74. package/dist/{google-vertex-fr665tqs.js → google-vertex-zdqpms6n.js} +38 -68
  75. package/dist/{handlers-5mzk4mbg.js → handlers-2y6dqpvf.js} +32 -28
  76. package/dist/{hook-8bz33zee.js → hook-0s8knepr.js} +11 -9
  77. package/dist/{hook-kbh84zb1.js → hook-k0gec254.js} +12 -10
  78. package/dist/{http-pppxg5vr.js → http-jp2nb4zw.js} +300 -237
  79. package/dist/{index-k1hq1qt6.js → index-0wzg3sp3.js} +39 -24
  80. package/dist/{index-68bd9b5f.js → index-3mq6ce93.js} +29 -25
  81. package/dist/{index-z0zwjtkn.js → index-42s7eezq.js} +29 -25
  82. package/dist/{cli-pdz9qde4.js → index-9ch1n761.js} +10 -11
  83. package/dist/{index-y0te09pn.js → index-b56xkbc7.js} +8 -6
  84. package/dist/{index-66xz5e9j.js → index-h5gs261z.js} +521 -9
  85. package/dist/{index-2sp0384z.js → index-kkeftv5h.js} +738 -21
  86. package/dist/{index-mjpxsr6k.js → index-s37dbevy.js} +30 -26
  87. package/dist/index-w097eg0x.js +5 -0
  88. package/dist/jiti-loader-b4837mtm.js +34 -0
  89. package/dist/jiti-static-loader-q2g5ds0y.js +31267 -0
  90. package/dist/{keepalive-xvmwnh1d.js → keepalive-9pfw7t02.js} +8 -6
  91. package/dist/{lead-pf8nvxt8.js → lead-7vcmcdq4.js} +44 -39
  92. package/dist/{maintenance-jk4q0wgg.js → maintenance-x277jbpd.js} +9 -7
  93. package/dist/{mistral-conversations-qhr84ph3.js → mistral-conversations-zx0kn554.js} +24 -18
  94. package/dist/{node-x1g4v0pq.js → node-5qtycf6a.js} +16 -11
  95. package/dist/{oauth-refresh-sweep-6207x9sj.js → oauth-refresh-sweep-5fwa7th2.js} +7 -5
  96. package/dist/{onboard-b0csgm0q.js → onboard-17sv0f51.js} +103 -35
  97. package/dist/{openai-codex-responses-wy6a43wd.js → openai-codex-responses-4vjqzvjp.js} +33 -27
  98. package/dist/{openai-completions-32rdwmze.js → openai-completions-pxsmym7g.js} +52 -64
  99. package/dist/{openai-responses-6xwf7bzg.js → openai-responses-tmn0rqp0.js} +23 -24
  100. package/dist/{opencode-adapter-28axqa09.js → opencode-adapter-qbmv4tpy.js} +6 -6
  101. package/dist/{otel-impl-b6rfehth.js → otel-impl-srjy4be4.js} +4 -4
  102. package/dist/{pi-messages-b1mbr6gp.js → pi-messages-txpjj39q.js} +3 -3
  103. package/dist/pi-mono-adapter-946a0sdd.js +1316 -0
  104. package/dist/{pricing-refresh-4e201wtd.js → pricing-refresh-vetcm563.js} +8 -6
  105. package/dist/{rbac-roles-mkc5n5qa.js → rbac-roles-cfzgr6r1.js} +8 -6
  106. package/dist/{rbac-roles-zp6e4geh.js → rbac-roles-cmxaddmy.js} +7 -5
  107. package/dist/{render-v2-4fazz9tf.js → render-v2-f9hzff72.js} +9 -6
  108. package/dist/{seed-pricing-thxpn9vn.js → seed-pricing-jggk6rsy.js} +7 -5
  109. package/dist/{setup-wb0z8cat.js → setup-8mfceb9t.js} +4 -5
  110. package/dist/virtual-modules-ax661xp0.js +54 -0
  111. package/dist/{work-objects-h3498kwe.js → work-objects-vdsdcczj.js} +32 -28
  112. package/dist/{worker-2m2tzxp3.js → worker-cd0nhyv1.js} +44 -39
  113. package/openapi.json +36 -14
  114. package/package.json +6 -6
  115. package/src/be/automation-preflight.ts +6 -4
  116. package/src/be/extensions/db.ts +35 -4
  117. package/src/be/models-catalog.ts +2 -0
  118. package/src/be/modelsdev-cache.json +213 -0
  119. package/src/be/rbac-audit.ts +2 -0
  120. package/src/be/seed-pricing.ts +3 -1
  121. package/src/be/swarm-config-guard.ts +1 -0
  122. package/src/commands/onboard/compose-generator.ts +6 -1
  123. package/src/commands/onboard/env-generator.ts +6 -1
  124. package/src/commands/onboard/manifest.ts +1 -0
  125. package/src/commands/onboard/steps/integration-slack.tsx +56 -16
  126. package/src/commands/onboard/steps/review.tsx +5 -0
  127. package/src/commands/onboard/types.ts +6 -0
  128. package/src/commands/onboard.tsx +5 -1
  129. package/src/commands/provider-credentials.ts +14 -2
  130. package/src/extensions/lifecycle.ts +15 -21
  131. package/src/http/agents.ts +2 -2
  132. package/src/http/config.ts +1 -1
  133. package/src/http/core.ts +5 -3
  134. package/src/http/extensions.ts +108 -34
  135. package/src/http/status.ts +22 -10
  136. package/src/prompts/base-prompt.ts +15 -7
  137. package/src/providers/claude-managed-models.ts +8 -0
  138. package/src/providers/codex-models.ts +15 -1
  139. package/src/providers/dsh-adapter.ts +248 -0
  140. package/src/providers/index.ts +5 -1
  141. package/src/providers/modelsdev-reasoning.json +50 -0
  142. package/src/rbac/legacy-policy.ts +15 -1
  143. package/src/rbac/types.ts +2 -0
  144. package/src/server.ts +7 -1
  145. package/src/slack/app.ts +32 -10
  146. package/src/slack/assistant.ts +10 -1
  147. package/src/slack/config.ts +29 -0
  148. package/src/slack/handlers.ts +10 -1
  149. package/src/slack/thread-buffer.ts +14 -3
  150. package/src/telemetry.ts +2 -3
  151. package/src/tests/agents-harness-provider.test.ts +19 -0
  152. package/src/tests/agents-list-model-display.test.ts +60 -1
  153. package/src/tests/base-prompt.test.ts +25 -0
  154. package/src/tests/claude-managed-adapter.test.ts +6 -0
  155. package/src/tests/codex-gpt6-release.test.ts +97 -0
  156. package/src/tests/config-api-only-keys.test.ts +9 -0
  157. package/src/tests/context-window.test.ts +1 -0
  158. package/src/tests/dsh-adapter.test.ts +276 -0
  159. package/src/tests/e2e-nightly-report.test.ts +3 -3
  160. package/src/tests/e2e-redact.test.ts +2 -0
  161. package/src/tests/env-flag.test.ts +6 -0
  162. package/src/tests/extensions-db.test.ts +41 -0
  163. package/src/tests/extensions-http.test.ts +148 -4
  164. package/src/tests/extensions-lifecycle.test.ts +18 -0
  165. package/src/tests/extensions-mcp-tools.test.ts +9 -5
  166. package/src/tests/internal-ai/complete-structured.test.ts +32 -9
  167. package/src/tests/internal-ai/credentials.test.ts +4 -4
  168. package/src/tests/internal-ai/models.test.ts +20 -0
  169. package/src/tests/migration-046-budgets.test.ts +2 -0
  170. package/src/tests/model-control.test.ts +2 -2
  171. package/src/tests/onboard-compose.test.ts +14 -0
  172. package/src/tests/onboard-env.test.ts +17 -0
  173. package/src/tests/onboard-manifest.test.ts +12 -0
  174. package/src/tests/opus-5-5-registry.test.ts +48 -0
  175. package/src/tests/pricing-refresh.test.ts +1 -1
  176. package/src/tests/pricing-routes.test.ts +15 -3
  177. package/src/tests/provider-registration.test.ts +5 -2
  178. package/src/tests/rbac-admission-e2e.test.ts +54 -0
  179. package/src/tests/rbac-e2e-helpers.ts +2 -0
  180. package/src/tests/rbac-engine.test.ts +32 -0
  181. package/src/tests/rbac-wire-e2e.test.ts +33 -0
  182. package/src/tests/reasoning-effort.test.ts +8 -0
  183. package/src/tests/reload-config.test.ts +33 -0
  184. package/src/tests/session-costs-model-key-normalize.test.ts +1 -0
  185. package/src/tests/slack-assistant.test.ts +134 -0
  186. package/src/tests/slack-config.test.ts +136 -0
  187. package/src/tests/slack-mode-lifecycle.test.ts +69 -0
  188. package/src/tests/status.test.ts +22 -2
  189. package/src/tests/task-tool-preload-mcp.test.ts +3 -1
  190. package/src/tests/telemetry-init.test.ts +18 -0
  191. package/src/tests/workflow-llm.test.ts +3 -3
  192. package/src/tools/extension-common.ts +4 -0
  193. package/src/tools/extension-install.ts +1 -1
  194. package/src/tools/extension-list.ts +4 -3
  195. package/src/types.ts +17 -8
  196. package/src/utils/context-window.ts +1 -0
  197. package/src/utils/credentials.ts +8 -0
  198. package/src/utils/internal-ai/complete-structured.ts +8 -0
  199. package/src/utils/internal-ai/models.ts +5 -5
  200. package/templates/schedules/daily-status-report/content.md +25 -12
  201. package/templates/schedules/daily-workflow-health-audit/content.md +1 -1
  202. package/templates/skills/swarm-extensions/content.md +9 -5
  203. package/dist/cli-4wppfkcm.js +0 -16384
  204. package/dist/cli-55qrx3q8.js +0 -6041
  205. package/dist/cli-cg4vnyh4.js +0 -305
  206. package/dist/cli-jyetr64j.js +0 -52
  207. package/dist/cli-pp9ax9pa.js +0 -520
  208. package/dist/cli-qa66qaf0.js +0 -6076
  209. package/dist/cli-qghpvca2.js +0 -590
  210. package/dist/cli-rembwgt8.js +0 -861
  211. package/dist/cli-tcvj7j2r.js +0 -1971
  212. package/dist/cli-vfcth11k.js +0 -36
  213. package/dist/cli-w1d1bgkk.js +0 -1422
  214. package/dist/cli-y6x0gqtg.js +0 -5977
  215. package/dist/es5-tj3tn4jj.js +0 -844
  216. package/dist/index-1kq5hw2p.js +0 -467
  217. package/dist/index-1p8wdstt.js +0 -7
  218. package/dist/index-8fdjzb2f.js +0 -100
  219. package/dist/index-bxmwzbgw.js +0 -365
  220. package/dist/index-nzerxd5z.js +0 -7
  221. package/dist/index-pyymnzat.js +0 -1168
  222. package/dist/index-qv6atbab.js +0 -619
  223. package/dist/index-rja32qa7.js +0 -801
  224. package/dist/index-tzg5srfp.js +0 -211
  225. package/dist/index-vhncw983.js +0 -90
  226. package/dist/index-xk036zsk.js +0 -859
  227. package/dist/index-zyazbzcb.js +0 -6
  228. package/dist/{claude-managed-setup-48dwg9bv.js → claude-managed-setup-f5pmsyrp.js} +3 -3
package/README.md CHANGED
@@ -14,11 +14,12 @@ agent-swarm.dev is an open-source operating system for AI work. A lead agent del
14
14
  - A lead agent that receives work from Slack, repositories, issue trackers, email, or the API
15
15
  - [Schema-validated task results](./MCP.md#send-task) for callers that need structured JSON output
16
16
  - [Deferred tasks](./MCP.md#defer-task) that wake when all or any watched tasks reach an outcome, or a deadline arrives
17
+ - [Inline tool-result images](https://docs.agent-swarm.dev/docs/ui#tool-result-images) in task logs, with previews that open at full size
17
18
  - [Dashboard file attachments](https://docs.agent-swarm.dev/docs/ui#file-attachments) by paste, drag-and-drop, or file picker
18
19
  - Workers in isolated Docker containers with development environments
19
20
  - Memory and identity that persist across sessions
20
21
  - Workflows, schedules, scripts, and apps for recurring work
21
- - [Extensions](https://docs.agent-swarm.dev/docs/guides/extensions) for trusted TypeScript hooks, installed as drafts and activated by a trusted lead or operator
22
+ - [Extensions](https://docs.agent-swarm.dev/docs/guides/extensions) for trusted TypeScript hooks, installed as agent-owned inert drafts and activated by a trusted lead, operator, or dashboard user
22
23
  - [Realtime rooms](./runbooks/realtime-rooms.md) for shared page state, presence, and live channels
23
24
  - Your choice of harness and models: Claude Code, Codex, pi, opencode, Devin, or ACP agents
24
25
 
@@ -1,10 +1,10 @@
1
- import {
2
- fetchInstalledMcpServers
3
- } from "./cli-tng3131n.js";
4
1
  import {
5
2
  getAcpTargetCatalogEntry,
6
3
  isAcpTarget
7
4
  } from "./cli-dgnj0zcc.js";
5
+ import {
6
+ fetchInstalledMcpServers
7
+ } from "./cli-tng3131n.js";
8
8
  import"./cli-dpvkp2et.js";
9
9
  import {
10
10
  detachedProcessGroup,
@@ -29,7 +29,7 @@ import {
29
29
  import {
30
30
  init_package,
31
31
  package_default
32
- } from "./cli-gfez0qmk.js";
32
+ } from "./cli-ybpp1srm.js";
33
33
  import {
34
34
  init_secret_scrubber,
35
35
  scrubSecrets
@@ -1,26 +1,31 @@
1
1
  import {
2
2
  resolveSlackUserId
3
- } from "./cli-b4dyetqt.js";
3
+ } from "./cli-eazstkad.js";
4
4
  import {
5
5
  createTaskWithSiblingAwareness
6
- } from "./cli-72tgtzr1.js";
6
+ } from "./cli-qrqhc31j.js";
7
7
  import"./cli-0z2v4nhw.js";
8
- import"./cli-4wppfkcm.js";
8
+ import"./cli-7g9s78jf.js";
9
9
  import"./cli-e7d20cty.js";
10
10
  import"./cli-re8z5p8p.js";
11
11
  import"./cli-3dpj7atn.js";
12
- import"./cli-kf8qp2vf.js";
13
- import"./cli-jytf5mw9.js";
14
- import"./cli-zfzznn7c.js";
15
- import"./cli-dsyg66vt.js";
12
+ import"./cli-d6hk10xx.js";
13
+ import"./cli-vw03hg5t.js";
14
+ import"./cli-tdh4hjr2.js";
15
+ import"./cli-83wkg402.js";
16
+ import"./cli-ytxs7mn1.js";
17
+ import"./cli-6ks9xf1n.js";
16
18
  import"./cli-epan13p1.js";
17
19
  import"./cli-y89t4nca.js";
18
20
  import"./cli-f14fvzag.js";
19
- import"./cli-fad8m16k.js";
20
- import"./cli-vbk025fm.js";
21
- import"./cli-7bwaerjt.js";
21
+ import"./cli-r8tdds6s.js";
22
22
  import"./cli-bsakbbkm.js";
23
- import"./cli-gxf2ebyz.js";
23
+ import"./cli-fad8m16k.js";
24
+ import"./cli-jsp14b6c.js";
25
+ import"./cli-ysc1kbet.js";
26
+ import"./cli-7pnz2v6s.js";
27
+ import"./cli-0d9nbqxf.js";
28
+ import"./cli-aehm1rbq.js";
24
29
  import"./cli-51tf7ac3.js";
25
30
  import {
26
31
  buildCancelledBlocks,
@@ -29,14 +34,11 @@ import {
29
34
  getAgentEmoji,
30
35
  getTaskLink,
31
36
  isSlackRenderV2Enabled
32
- } from "./cli-wfve107r.js";
37
+ } from "./cli-n0q9b7j4.js";
33
38
  import"./cli-q51yprfq.js";
39
+ import"./cli-3er6gcsn.js";
34
40
  import"./cli-yatxqynm.js";
35
- import"./cli-jtvs5m8q.js";
36
- import"./cli-fm4ytsdk.js";
37
- import"./cli-aehm1rbq.js";
38
41
  import"./cli-2658f6at.js";
39
- import"./cli-jsp14b6c.js";
40
42
  import {
41
43
  cancelTask,
42
44
  getAgentById,
@@ -45,25 +47,27 @@ import {
45
47
  init_context_key,
46
48
  init_db,
47
49
  slackContextKey
48
- } from "./cli-bdt7w021.js";
49
- import"./cli-ht5rs63n.js";
50
+ } from "./cli-djvxhnc4.js";
51
+ import"./cli-zcsyfw2z.js";
52
+ import"./cli-b2g6mzjc.js";
50
53
  import"./cli-z61ykvam.js";
54
+ import"./cli-v4en75c5.js";
51
55
  import"./cli-dv6cdjs2.js";
52
- import"./cli-c2mk1kgf.js";
56
+ import"./cli-n7h1kqpf.js";
53
57
  import"./cli-ej6gbxfb.js";
54
58
  import"./cli-sd0mxa3c.js";
55
59
  import"./cli-w5e1d1vv.js";
56
- import"./cli-gfez0qmk.js";
60
+ import"./cli-ybpp1srm.js";
57
61
  import"./cli-r2ap2czm.js";
58
- import"./cli-pzxba7gw.js";
59
- import"./cli-f7kvq46p.js";
60
- import"./cli-zf8jjwex.js";
61
- import"./cli-c4eeb5q2.js";
62
- import"./cli-rgvp6r2x.js";
62
+ import"./cli-5b6b62tz.js";
63
63
  import"./cli-btbzvq95.js";
64
64
  import"./cli-1m2e086m.js";
65
- import"./cli-8wrympd7.js";
65
+ import"./cli-mcnhgnn1.js";
66
+ import"./cli-bzr0ftht.js";
66
67
  import"./cli-bd957dgb.js";
68
+ import"./cli-pzxba7gw.js";
69
+ import"./cli-f7kvq46p.js";
70
+ import"./cli-zf8jjwex.js";
67
71
  import"./cli-bc05qbss.js";
68
72
 
69
73
  // src/slack/actions.ts
@@ -1,19 +1,16 @@
1
- import {
2
- splitDeferredTools
3
- } from "./cli-vfcth11k.js";
4
1
  import {
5
2
  buildCopilotDynamicHeaders,
6
3
  hasCopilotVisionInput
7
4
  } from "./cli-67bad0ze.js";
8
- import {
9
- Anthropic
10
- } from "./cli-9xvdm3bx.js";
11
5
  import {
12
6
  retryProviderRequest
13
7
  } from "./cli-s8s499xy.js";
14
8
  import {
15
9
  getPiUserAgent
16
10
  } from "./cli-et1bbwqf.js";
11
+ import {
12
+ Anthropic
13
+ } from "./cli-h60qfasa.js";
17
14
  import"./cli-51tf7ac3.js";
18
15
  import {
19
16
  adjustMaxTokensForThinking,
@@ -22,16 +19,13 @@ import {
22
19
  getJsonSchemaToolParameters,
23
20
  resolveJsonSchemaStrictSampling,
24
21
  transformMessages
25
- } from "./cli-j8dggbcr.js";
22
+ } from "./cli-k0g1sjzm.js";
26
23
  import {
27
24
  sanitizeSurrogates
28
25
  } from "./cli-y2apkfe2.js";
29
26
  import {
30
27
  headersToRecord
31
28
  } from "./cli-vapyk8sw.js";
32
- import {
33
- calculateCost
34
- } from "./cli-rgvp6r2x.js";
35
29
  import {
36
30
  getProviderEnvValue
37
31
  } from "./cli-btbzvq95.js";
@@ -39,10 +33,20 @@ import {
39
33
  parseJsonWithRepair,
40
34
  parseStreamingJson
41
35
  } from "./cli-1m2e086m.js";
36
+ import {
37
+ calculateCost,
38
+ getCurrentTools,
39
+ getDeclaredTools,
40
+ getInitialSystemMessage,
41
+ getSystemMessageText,
42
+ hasToolRedefinitions,
43
+ renderSystemMessageUpdate,
44
+ resolveTranscript
45
+ } from "./cli-mcnhgnn1.js";
42
46
  import {
43
47
  AssistantMessageEventStream,
44
48
  appendAssistantMessageDiagnostic
45
- } from "./cli-8wrympd7.js";
49
+ } from "./cli-bzr0ftht.js";
46
50
  import"./cli-bc05qbss.js";
47
51
 
48
52
  // node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js
@@ -66,7 +70,7 @@ function getCacheControl(model, cacheRetention, env) {
66
70
  cacheControl: { type: "ephemeral", ...ttl && { ttl } }
67
71
  };
68
72
  }
69
- var claudeCodeVersion = "2.1.251";
73
+ var claudeCodeVersion = "2.1.280";
70
74
  var claudeCodeTools = [
71
75
  "Read",
72
76
  "Write",
@@ -133,31 +137,31 @@ var INTERLEAVED_THINKING_BETA = "interleaved-thinking-2025-05-14";
133
137
  var SERVER_SIDE_FALLBACK_BETA = "server-side-fallback-2026-07-01";
134
138
  var MID_CONVERSATION_OUTPUT_CONFIG_BETA = "mid-conversation-output-config-2026-07-01";
135
139
  var THINKING_BINDING_CONTROLS_BETA = "thinking-binding-controls-2026-08-01";
140
+ var MID_CONVERSATION_TOOL_CHANGES_BETA = "mid-conversation-tool-changes-2026-07-01";
141
+ var DEFERRED_TOOL_PLACEHOLDER = {
142
+ name: "__pi_deferred_placeholder__",
143
+ description: "Reserved placeholder. Never available. Never call this.",
144
+ input_schema: { type: "object", properties: {}, required: [] },
145
+ defer_loading: true
146
+ };
136
147
  function shouldUseServerSideFallbackBeta(model) {
137
148
  return (model.compat?.allowedFallbackModels?.length ?? 0) > 0;
138
149
  }
139
150
  function getAnthropicCompat(model) {
151
+ const isOpenRouter = model.provider === "openrouter" || model.baseUrl.includes("openrouter.ai");
140
152
  return {
141
153
  supportsEagerToolInputStreaming: model.compat?.supportsEagerToolInputStreaming ?? true,
142
154
  supportsLongCacheRetention: model.compat?.supportsLongCacheRetention ?? true,
143
- sendSessionAffinityHeaders: model.compat?.sendSessionAffinityHeaders ?? false,
155
+ sendSessionAffinityHeaders: model.compat?.sendSessionAffinityHeaders ?? isOpenRouter,
156
+ sessionAffinityFormat: model.compat?.sessionAffinityFormat ?? (isOpenRouter ? "openrouter" : undefined),
144
157
  supportsCacheControlOnTools: model.compat?.supportsCacheControlOnTools ?? true,
145
158
  supportsTemperature: model.compat?.supportsTemperature ?? true,
146
159
  allowEmptySignature: model.compat?.allowEmptySignature ?? false,
147
160
  supportsStrictTools: model.compat?.supportsStrictTools ?? false,
148
- supportsToolReferences: model.compat?.supportsToolReferences ?? defaultSupportsToolReferences(model)
161
+ supportsMidConvoSystemMessages: model.compat?.supportsMidConvoSystemMessages ?? false,
162
+ supportsMidConvoToolChanges: model.compat?.supportsMidConvoToolChanges ?? false
149
163
  };
150
164
  }
151
- function defaultSupportsToolReferences(model) {
152
- if (model.provider !== "anthropic" || model.id.includes("haiku"))
153
- return false;
154
- const version = model.id.match(/^claude-(?:opus|sonnet|fable)-(\d+)(?:-(\d+))?(?:-|$)/);
155
- if (!version)
156
- return false;
157
- const major = Number(version[1]);
158
- const minor = version[2] && version[2].length < 8 ? Number(version[2]) : 0;
159
- return major > 4 || major === 4 && minor >= 5;
160
- }
161
165
  function mergeHeaders(...headerSources) {
162
166
  const merged = {};
163
167
  for (const headers of headerSources) {
@@ -340,6 +344,8 @@ async function* iterateAnthropicEvents(response, signal) {
340
344
  }
341
345
  var stream = (model, context, options) => {
342
346
  const stream2 = new AssistantMessageEventStream;
347
+ const normalizedContext = resolveTranscript(context, getAnthropicCompat(model).supportsMidConvoSystemMessages);
348
+ const currentTools = getCurrentTools(normalizedContext.messages);
343
349
  (async () => {
344
350
  const providerThinkingLevel = model.compat?.supportsMidConvoEffort ? options?.effort ?? "high" : undefined;
345
351
  const output = {
@@ -373,9 +379,9 @@ var stream = (model, context, options) => {
373
379
  assertRequestAuth(model.provider, apiKey, options?.headers);
374
380
  let copilotDynamicHeaders;
375
381
  if (model.provider === "github-copilot") {
376
- const hasImages = hasCopilotVisionInput(context.messages);
382
+ const hasImages = hasCopilotVisionInput(normalizedContext.messages);
377
383
  copilotDynamicHeaders = buildCopilotDynamicHeaders({
378
- messages: context.messages,
384
+ messages: normalizedContext.messages,
379
385
  hasImages
380
386
  });
381
387
  }
@@ -385,7 +391,7 @@ var stream = (model, context, options) => {
385
391
  client = created.client;
386
392
  isOAuth = created.isOAuthToken;
387
393
  }
388
- let params = buildParams(model, context, isOAuth, options);
394
+ let params = buildParams(model, normalizedContext, isOAuth, options);
389
395
  const nextParams = await options?.onPayload?.(params, model);
390
396
  if (nextParams !== undefined) {
391
397
  params = { ...nextParams, stream: true };
@@ -409,9 +415,11 @@ var stream = (model, context, options) => {
409
415
  const transformations = event.message.input_transformations;
410
416
  if (Array.isArray(transformations))
411
417
  inputTransformations = transformations;
412
- output.model = event.message.model;
413
- const fallbackCost = output.model === model.id ? undefined : model.compat?.allowedFallbackModels?.find((fallback) => fallback.provider === model.provider && fallback.model === output.model)?.cost;
414
- usageModel = fallbackCost ? { ...model, id: output.model, cost: fallbackCost } : model;
418
+ const responseModel = event.message.model;
419
+ if (responseModel !== model.id)
420
+ output.responseModel = responseModel;
421
+ const fallbackCost = responseModel === model.id ? undefined : model.compat?.allowedFallbackModels?.find((fallback) => fallback.provider === model.provider && fallback.model === responseModel)?.cost;
422
+ usageModel = fallbackCost ? { ...model, id: responseModel, cost: fallbackCost } : model;
415
423
  output.usage.input = event.message.usage.input_tokens || 0;
416
424
  output.usage.output = event.message.usage.output_tokens || 0;
417
425
  output.usage.cacheRead = event.message.usage.cache_read_input_tokens || 0;
@@ -457,7 +465,7 @@ var stream = (model, context, options) => {
457
465
  const block = {
458
466
  type: "toolCall",
459
467
  id: event.content_block.id,
460
- name: isOAuth ? fromClaudeCodeName(event.content_block.name, context.tools) : event.content_block.name,
468
+ name: isOAuth ? fromClaudeCodeName(event.content_block.name, currentTools) : event.content_block.name,
461
469
  arguments: event.content_block.input ?? {},
462
470
  partialJson: "",
463
471
  index: event.index
@@ -691,7 +699,12 @@ function createClient(model, apiKey, optionsHeaders, fetch, dynamicHeaders, sess
691
699
  });
692
700
  return { client: client2, isOAuthToken: true };
693
701
  }
694
- const sessionAffinityHeaders = sessionId && getAnthropicCompat(model).sendSessionAffinityHeaders ? { "x-session-affinity": sessionId } : {};
702
+ const compat = getAnthropicCompat(model);
703
+ const sessionAffinityHeaders = {};
704
+ if (sessionId && compat.sendSessionAffinityHeaders) {
705
+ const header = compat.sessionAffinityFormat === "openrouter" ? "x-session-id" : "x-session-affinity";
706
+ sessionAffinityHeaders[header] = sessionId;
707
+ }
695
708
  const defaultHeaders = mergeClientHeaders({
696
709
  accept: "application/json",
697
710
  "anthropic-dangerous-direct-browser-access": "true"
@@ -706,7 +719,7 @@ function createClient(model, apiKey, optionsHeaders, fetch, dynamicHeaders, sess
706
719
  });
707
720
  return { client, isOAuthToken: false };
708
721
  }
709
- function getBetaFeatures(model, context, isOAuthToken2, options) {
722
+ function getBetaFeatures(model, context, isOAuthToken2, nativeToolChanges, options) {
710
723
  let configuredFeatures;
711
724
  for (const headers of [model.headers, options?.headers]) {
712
725
  for (const [name, value] of Object.entries(headers ?? {})) {
@@ -734,24 +747,22 @@ function getBetaFeatures(model, context, isOAuthToken2, options) {
734
747
  if (model.compat?.supportsMidConvoEffort === true) {
735
748
  features.push(MID_CONVERSATION_OUTPUT_CONFIG_BETA, THINKING_BINDING_CONTROLS_BETA);
736
749
  }
750
+ if (nativeToolChanges)
751
+ features.push(MID_CONVERSATION_TOOL_CHANGES_BETA);
737
752
  return [...new Set(features)];
738
753
  }
739
754
  function buildParams(model, context, isOAuthToken2, options) {
740
755
  const { cacheControl } = getCacheControl(model, options?.cacheRetention, options?.env);
741
756
  const compat = getAnthropicCompat(model);
757
+ const initialSystemMessage = getInitialSystemMessage(context.messages);
758
+ const initialSystemText = initialSystemMessage ? getSystemMessageText(initialSystemMessage) : "";
742
759
  const transformedMessages = transformMessages(context.messages, model, normalizeToolCallId);
743
- const normalizeToolName = isOAuthToken2 ? toClaudeCodeName : (name) => name;
744
- const toolPlacement = splitDeferredTools({ ...context, messages: transformedMessages }, compat.supportsToolReferences, normalizeToolName);
745
- let immediateTools = toolPlacement.immediate;
746
- let deferredTools = [...toolPlacement.deferred.values()];
747
- if (immediateTools.length === 0 && deferredTools.length > 0) {
748
- immediateTools = deferredTools;
749
- deferredTools = [];
750
- }
751
- const deferredToolNames = new Set(deferredTools.map((tool) => normalizeToolName(tool.name)));
752
- const converted = convertMessages(transformedMessages, isOAuthToken2, cacheControl, compat.allowEmptySignature, deferredToolNames, normalizeToolName, model.compat?.supportsMidConvoEffort === true ? model.provider : undefined);
760
+ const conversationMessages = initialSystemMessage ? transformedMessages.slice(1) : transformedMessages;
761
+ const initialTools = initialSystemMessage?.toolsAdded ?? [];
762
+ const nativeToolChanges = compat.supportsMidConvoSystemMessages && compat.supportsMidConvoToolChanges && initialTools.length > 0 && !hasToolRedefinitions(context.messages);
763
+ const converted = convertMessages(conversationMessages, isOAuthToken2, cacheControl, compat.allowEmptySignature, model.compat?.supportsMidConvoEffort === true ? model.provider : undefined, nativeToolChanges);
753
764
  const activeEffort = options?.effort ?? "high";
754
- const betaFeatures = getBetaFeatures(model, context, isOAuthToken2, options);
765
+ const betaFeatures = getBetaFeatures(model, context, isOAuthToken2, nativeToolChanges, options);
755
766
  const params = {
756
767
  model: model.id,
757
768
  messages: model.compat?.supportsMidConvoEffort === true ? insertThinkingLevelMessages(converted, activeEffort) : converted.messages,
@@ -767,18 +778,18 @@ function buildParams(model, context, isOAuthToken2, options) {
767
778
  ...cacheControl ? { cache_control: cacheControl } : {}
768
779
  }
769
780
  ];
770
- if (context.systemPrompt) {
781
+ if (initialSystemText) {
771
782
  params.system.push({
772
783
  type: "text",
773
- text: sanitizeSurrogates(context.systemPrompt),
784
+ text: sanitizeSurrogates(initialSystemText),
774
785
  ...cacheControl ? { cache_control: cacheControl } : {}
775
786
  });
776
787
  }
777
- } else if (context.systemPrompt) {
788
+ } else if (initialSystemText) {
778
789
  params.system = [
779
790
  {
780
791
  type: "text",
781
- text: sanitizeSurrogates(context.systemPrompt),
792
+ text: sanitizeSurrogates(initialSystemText),
782
793
  ...cacheControl ? { cache_control: cacheControl } : {}
783
794
  }
784
795
  ];
@@ -786,11 +797,20 @@ function buildParams(model, context, isOAuthToken2, options) {
786
797
  if (options?.temperature !== undefined && !options?.thinkingEnabled && model.compat?.supportsMidConvoEffort !== true && compat.supportsTemperature) {
787
798
  params.temperature = options.temperature;
788
799
  }
789
- if (immediateTools.length > 0 || deferredTools.length > 0) {
800
+ const toolCacheControl = compat.supportsCacheControlOnTools ? cacheControl : undefined;
801
+ if (nativeToolChanges) {
802
+ const initialNames = new Set(initialTools.map((tool) => tool.name));
803
+ const laterTools = getDeclaredTools(context.messages).filter((tool) => !initialNames.has(tool.name));
790
804
  params.tools = [
791
- ...convertTools(immediateTools, isOAuthToken2, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools, compat.supportsCacheControlOnTools ? cacheControl : undefined),
792
- ...convertTools(deferredTools, isOAuthToken2, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools, undefined, true)
805
+ ...convertTools(initialTools, isOAuthToken2, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools, toolCacheControl),
806
+ DEFERRED_TOOL_PLACEHOLDER,
807
+ ...convertTools(laterTools, isOAuthToken2, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools).map((tool) => ({ ...tool, defer_loading: true }))
793
808
  ];
809
+ } else {
810
+ const tools = getCurrentTools(context.messages);
811
+ if (tools.length > 0) {
812
+ params.tools = convertTools(tools, isOAuthToken2, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools, toolCacheControl);
813
+ }
794
814
  }
795
815
  if (model.compat?.supportsMidConvoEffort === true) {
796
816
  params.thinking = {
@@ -840,36 +860,46 @@ function buildParams(model, context, isOAuthToken2, options) {
840
860
  function normalizeToolCallId(id) {
841
861
  return id.replace(/[^a-zA-Z0-9_-]/g, "_").slice(0, 64);
842
862
  }
843
- function convertToolResult(msg, isOAuthToken2, deferredToolNames, loadedToolNames, normalizeToolName) {
844
- const references = [];
845
- for (const name of msg.addedToolNames ?? []) {
846
- const normalizedName = normalizeToolName(name);
847
- if (!deferredToolNames.has(normalizedName) || loadedToolNames.has(normalizedName))
848
- continue;
849
- loadedToolNames.add(normalizedName);
850
- references.push({
851
- type: "tool_reference",
852
- tool_name: isOAuthToken2 ? toClaudeCodeName(name) : name
853
- });
854
- }
855
- const convertedContent = convertContentBlocks(msg.content);
863
+ function convertToolResult(msg) {
856
864
  return {
857
- toolResult: {
858
- type: "tool_result",
859
- tool_use_id: msg.toolCallId,
860
- content: references.length > 0 ? references : convertedContent,
861
- is_error: msg.isError
862
- },
863
- siblingContent: references.length === 0 ? [] : typeof convertedContent === "string" ? [{ type: "text", text: convertedContent }] : convertedContent
865
+ type: "tool_result",
866
+ tool_use_id: msg.toolCallId,
867
+ content: convertContentBlocks(msg.content),
868
+ is_error: msg.isError
864
869
  };
865
870
  }
866
- function convertMessages(transformedMessages, isOAuthToken2, cacheControl, allowEmptySignature = false, deferredToolNames = new Set, normalizeToolName = (name) => name, managedProvider) {
871
+ function convertMessages(transformedMessages, isOAuthToken2, cacheControl, allowEmptySignature = false, managedProvider, nativeToolChanges = false) {
867
872
  const params = [];
868
873
  const assistantLevels = new Map;
869
- const loadedToolNames = new Set;
874
+ const pendingSystemMessages = [];
875
+ const flushPendingSystemMessages = () => {
876
+ params.push(...pendingSystemMessages);
877
+ pendingSystemMessages.length = 0;
878
+ };
870
879
  for (let i = 0;i < transformedMessages.length; i++) {
871
880
  const msg = transformedMessages[i];
872
- if (msg.role === "user") {
881
+ if (msg.role === "system") {
882
+ const text = renderSystemMessageUpdate(msg);
883
+ const blocks = [];
884
+ if (text.length > 0)
885
+ blocks.push({ type: "text", text: sanitizeSurrogates(text) });
886
+ if (nativeToolChanges) {
887
+ for (const tool of msg.toolsRemoved ?? []) {
888
+ blocks.push({
889
+ type: "tool_removal",
890
+ tool: { type: "tool_reference", name: isOAuthToken2 ? toClaudeCodeName(tool.name) : tool.name }
891
+ });
892
+ }
893
+ for (const tool of msg.toolsAdded ?? []) {
894
+ blocks.push({
895
+ type: "tool_addition",
896
+ tool: { type: "tool_reference", name: isOAuthToken2 ? toClaudeCodeName(tool.name) : tool.name }
897
+ });
898
+ }
899
+ }
900
+ if (blocks.length > 0)
901
+ pendingSystemMessages.push({ role: "system", content: blocks });
902
+ } else if (msg.role === "user") {
873
903
  if (typeof msg.content === "string") {
874
904
  if (msg.content.trim().length > 0) {
875
905
  params.push({
@@ -909,6 +939,7 @@ function convertMessages(transformedMessages, isOAuthToken2, cacheControl, allow
909
939
  });
910
940
  }
911
941
  } else if (msg.role === "assistant") {
942
+ flushPendingSystemMessages();
912
943
  const blocks = [];
913
944
  for (const block of msg.content) {
914
945
  if (block.type === "text") {
@@ -967,27 +998,25 @@ function convertMessages(transformedMessages, isOAuthToken2, cacheControl, allow
967
998
  }
968
999
  } else if (msg.role === "toolResult") {
969
1000
  const toolResults = [];
970
- const siblingContent = [];
971
1001
  let j = i;
972
1002
  while (j < transformedMessages.length && transformedMessages[j].role === "toolResult") {
973
- const converted = convertToolResult(transformedMessages[j], isOAuthToken2, deferredToolNames, loadedToolNames, normalizeToolName);
974
- toolResults.push(converted.toolResult);
975
- siblingContent.push(...converted.siblingContent);
1003
+ toolResults.push(convertToolResult(transformedMessages[j]));
976
1004
  j++;
977
1005
  }
978
1006
  i = j - 1;
979
1007
  params.push({
980
1008
  role: "user",
981
- content: [...toolResults, ...siblingContent]
1009
+ content: toolResults
982
1010
  });
983
1011
  }
984
1012
  }
1013
+ flushPendingSystemMessages();
985
1014
  if (cacheControl && params.length > 0) {
986
1015
  const lastMessage = params[params.length - 1];
987
- if (lastMessage.role === "user") {
1016
+ if (lastMessage.role === "user" || lastMessage.role === "system") {
988
1017
  if (Array.isArray(lastMessage.content)) {
989
1018
  const lastBlock = lastMessage.content[lastMessage.content.length - 1];
990
- if (lastBlock && (lastBlock.type === "text" || lastBlock.type === "image" || lastBlock.type === "tool_result")) {
1019
+ if (lastBlock && (lastBlock.type === "text" || lastBlock.type === "image" || lastBlock.type === "tool_result" || lastBlock.type === "tool_addition" || lastBlock.type === "tool_removal")) {
991
1020
  lastBlock.cache_control = cacheControl;
992
1021
  }
993
1022
  } else if (typeof lastMessage.content === "string") {
@@ -1019,9 +1048,9 @@ function insertThinkingLevelMessages(converted, activeEffort) {
1019
1048
  return messages;
1020
1049
  }
1021
1050
  function shouldUseFineGrainedToolStreamingBeta(model, context) {
1022
- return !!context.tools?.length && !getAnthropicCompat(model).supportsEagerToolInputStreaming;
1051
+ return getCurrentTools(context.messages).length > 0 && !getAnthropicCompat(model).supportsEagerToolInputStreaming;
1023
1052
  }
1024
- function convertTools(tools, isOAuthToken2, supportsEagerToolInputStreaming, supportsStrictTools, cacheControl, deferLoading = false) {
1053
+ function convertTools(tools, isOAuthToken2, supportsEagerToolInputStreaming, supportsStrictTools, cacheControl) {
1025
1054
  if (!tools)
1026
1055
  return [];
1027
1056
  return tools.map((tool, index) => {
@@ -1043,7 +1072,6 @@ function convertTools(tools, isOAuthToken2, supportsEagerToolInputStreaming, sup
1043
1072
  ...supportsEagerToolInputStreaming ? { eager_input_streaming: true } : {},
1044
1073
  ...strict === true ? { strict: true } : {},
1045
1074
  input_schema: inputSchema,
1046
- ...deferLoading ? { defer_loading: true } : {},
1047
1075
  ...cacheControl && index === tools.length - 1 ? { cache_control: cacheControl } : {}
1048
1076
  };
1049
1077
  });
@@ -3,23 +3,26 @@ import {
3
3
  initSlackApp,
4
4
  startSlackApp,
5
5
  stopSlackApp
6
- } from "./cli-wfve107r.js";
6
+ } from "./cli-n0q9b7j4.js";
7
7
  import"./cli-q51yprfq.js";
8
+ import"./cli-3er6gcsn.js";
8
9
  import"./cli-yatxqynm.js";
9
10
  import"./cli-2658f6at.js";
10
- import"./cli-bdt7w021.js";
11
- import"./cli-ht5rs63n.js";
11
+ import"./cli-djvxhnc4.js";
12
+ import"./cli-zcsyfw2z.js";
13
+ import"./cli-b2g6mzjc.js";
12
14
  import"./cli-z61ykvam.js";
15
+ import"./cli-v4en75c5.js";
13
16
  import"./cli-dv6cdjs2.js";
14
- import"./cli-c2mk1kgf.js";
17
+ import"./cli-n7h1kqpf.js";
15
18
  import"./cli-ej6gbxfb.js";
16
19
  import"./cli-sd0mxa3c.js";
17
20
  import"./cli-w5e1d1vv.js";
18
- import"./cli-gfez0qmk.js";
21
+ import"./cli-ybpp1srm.js";
19
22
  import"./cli-r2ap2czm.js";
23
+ import"./cli-bd957dgb.js";
20
24
  import"./cli-pzxba7gw.js";
21
25
  import"./cli-zf8jjwex.js";
22
- import"./cli-bd957dgb.js";
23
26
  import"./cli-bc05qbss.js";
24
27
  export {
25
28
  getSlackApp,