@desplega.ai/agent-swarm 1.168.0 → 1.171.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 (410) hide show
  1. package/README.md +11 -2
  2. package/dist/{acp-adapter-zhejfecx.js → acp-adapter-1z9p3fvx.js} +6 -6
  3. package/dist/{actions-7jg840nr.js → actions-rc2yjk8a.js} +41 -33
  4. package/dist/{amp-adapter-ye6rnetm.js → amp-adapter-ypyf5s1x.js} +6 -6
  5. package/dist/{anthropic-messages-13yn502s.js → anthropic-messages-etkbxhhy.js} +11 -11
  6. package/dist/{app-ffes2kyf.js → app-04ab2s0z.js} +10 -10
  7. package/dist/{artifact-fey7dvj9.js → artifact-eczsknc3.js} +6 -3
  8. package/dist/{assistant-fhm5smyz.js → assistant-vhmjd8wf.js} +47 -36
  9. package/dist/{azure-openai-responses-9st34pfz.js → azure-openai-responses-xap57x4b.js} +7 -7
  10. package/dist/{boot-reembed-jvfadhsk.js → boot-reembed-3p0m259x.js} +9 -9
  11. package/dist/{boot-reembed-20q3nzvg.js → boot-reembed-wew3gwk8.js} +9 -9
  12. package/dist/{boot-scrub-sweep-jtfajzve.js → boot-scrub-sweep-5ytwtq24.js} +10 -10
  13. package/dist/{boot-seeds-9qt0j8j2.js → boot-seeds-s8p2xry8.js} +13 -13
  14. package/dist/{claude-adapter-a8znhthz.js → claude-adapter-akrzg6jh.js} +16 -16
  15. package/dist/{claude-managed-adapter-tzwxy803.js → claude-managed-adapter-kqqqhp2q.js} +3 -3
  16. package/dist/{claude-managed-setup-nrhfx5b0.js → claude-managed-setup-bnmjarjc.js} +12 -9
  17. package/dist/{claude-sdk-session-7x7chdrs.js → claude-sdk-session-exq1jadx.js} +7818 -7721
  18. package/dist/{cli-g6gx2dn1.js → cli-01qndrvw.js} +17080 -19099
  19. package/dist/{cli-74ez9b66.js → cli-0d2rqhvq.js} +584 -75
  20. package/dist/cli-0p3enk35.js +188 -0
  21. package/dist/cli-1srmzpr3.js +16 -0
  22. package/dist/{cli-6bpvv8h4.js → cli-231av4y6.js} +7 -7
  23. package/dist/{cli-9q0bh411.js → cli-280gnz4v.js} +2 -2
  24. package/dist/{cli-mv2520nm.js → cli-2bw3w47j.js} +1 -1
  25. package/dist/{cli-fqq06kkb.js → cli-2qbs2tvf.js} +22 -14
  26. package/dist/{cli-efnd2kce.js → cli-2rbt7at8.js} +6 -1
  27. package/dist/{cli-xvc3q9br.js → cli-451ks6aw.js} +1 -1
  28. package/dist/{cli-0jngabtb.js → cli-4bm25xtw.js} +2 -2
  29. package/dist/{cli-zp38xvtm.js → cli-5rqrj7q0.js} +1 -1
  30. package/dist/{cli-km4x66j0.js → cli-5y67yrt6.js} +13 -13
  31. package/dist/{cli-nctfv2yy.js → cli-62bwwc2q.js} +8 -8
  32. package/dist/cli-6xxxb8qt.js +2084 -0
  33. package/dist/cli-6zx22mv6.js +0 -0
  34. package/dist/{cli-zp67qg5x.js → cli-7a0sde2x.js} +72 -1
  35. package/dist/{cli-v1w7pbd8.js → cli-7jykv7ef.js} +1 -1
  36. package/dist/{cli-rfphkzh5.js → cli-7pz3b7x5.js} +24 -4
  37. package/dist/{cli-mb75wpxf.js → cli-81r1wjyv.js} +1 -1
  38. package/dist/{cli-svah6b6w.js → cli-8mr695sb.js} +9 -5
  39. package/dist/{cli-f14fvzag.js → cli-a1b9b32n.js} +6 -1
  40. package/dist/cli-cd0hv9nh.js +32 -0
  41. package/dist/{cli-rr5z1j4p.js → cli-ctret352.js} +691 -213
  42. package/dist/{cli-wt7ccy4r.js → cli-d161g69q.js} +9 -1
  43. package/dist/cli-db3m6zdt.js +362 -0
  44. package/dist/{cli-g5erf0zt.js → cli-e2prcx5m.js} +31 -0
  45. package/dist/{cli-hf5s9pgf.js → cli-e3pmyt39.js} +1 -1
  46. package/dist/{cli-pgehz8e1.js → cli-ec7hrgqp.js} +404 -89
  47. package/dist/{cli-ng1pmdx6.js → cli-erbp6b4g.js} +10 -7
  48. package/dist/{cli-9k7mqz00.js → cli-ge593j7e.js} +30 -3
  49. package/dist/{cli-5qkcdv8c.js → cli-gmdajfw5.js} +3 -3
  50. package/dist/cli-h8w3fg83.js +17 -0
  51. package/dist/{cli-xvdgasgy.js → cli-hsem16hb.js} +114 -9
  52. package/dist/{cli-ytmmyj7f.js → cli-hsk5gd15.js} +9 -5
  53. package/dist/{cli-aj1e0h0d.js → cli-jxsgrnmq.js} +201 -37
  54. package/dist/{cli-tc5zec7v.js → cli-k2v5x13t.js} +2 -2
  55. package/dist/{cli-69egj654.js → cli-m4csbs67.js} +2 -2
  56. package/dist/{cli-43jg9xdw.js → cli-mzj3aqac.js} +3 -3
  57. package/dist/{cli-p5jqk8fr.js → cli-n805bb98.js} +1 -1
  58. package/dist/{cli-ew0c3a1j.js → cli-n8ybnv1k.js} +3 -3
  59. package/dist/{cli-j05x7pnb.js → cli-nkjwe4z7.js} +219 -41
  60. package/dist/{cli-jb931ba2.js → cli-p2pjfq1r.js} +2 -2
  61. package/dist/{cli-ee0402n1.js → cli-p8f7dqgt.js} +871 -2980
  62. package/dist/{cli-r7eeddkq.js → cli-ph3145b7.js} +3 -3
  63. package/dist/cli-ppy4nnnh.js +168 -0
  64. package/dist/cli-r455yd58.js +832 -0
  65. package/dist/{cli-mxvnnv5q.js → cli-rrbctenq.js} +2 -2
  66. package/dist/{cli-47zfzshm.js → cli-s88my3br.js} +40 -28
  67. package/dist/{cli-9q24yyvs.js → cli-srmej5tp.js} +3 -3
  68. package/dist/{cli-bcspch6h.js → cli-tg8q0b5y.js} +14 -11
  69. package/dist/cli-w0zx9ya1.js +1351 -0
  70. package/dist/cli-wfvedq5w.js +2659 -0
  71. package/dist/{cli-ewhwpyrb.js → cli-x207g4w1.js} +1 -1
  72. package/dist/{cli-fhj4y16f.js → cli-x3fy2tgp.js} +2 -2
  73. package/dist/{cli-7mhy3ths.js → cli-x61srfpp.js} +5 -5
  74. package/dist/{cli-9q3wt23f.js → cli-x6z90nq9.js} +1 -1
  75. package/dist/{cli-jbzbr36n.js → cli-y1j1ggbf.js} +8 -8
  76. package/dist/{cli-jvmtxqtc.js → cli-ywh2a87k.js} +7 -2
  77. package/dist/{cli-3qhyh31j.js → cli-ywm1azg9.js} +6 -0
  78. package/dist/{cli-z48ggfyq.js → cli-zxm9p3x4.js} +2 -2
  79. package/dist/cli.js +49 -28
  80. package/dist/{codex-adapter-n63k33d3.js → codex-adapter-9ag75whm.js} +13 -13
  81. package/dist/{codex-hook-15dgc4cb.js → codex-hook-7ba15hjd.js} +7 -5
  82. package/dist/{codex-login-g1cyt5zm.js → codex-login-841kv5fk.js} +7 -5
  83. package/dist/{codex-session-runner-xkxfd81a.js → codex-session-runner-9fp7y4cf.js} +13 -13
  84. package/dist/{commands-q4mfhn51.js → commands-d7eah0y9.js} +11 -11
  85. package/dist/controller-hq5ggpcp.js +193 -0
  86. package/dist/controllers-connect-8t0k65x2.js +265 -0
  87. package/dist/{cursor-adapter-v8mm6bp5.js → cursor-adapter-t4pr1m3c.js} +6 -6
  88. package/dist/db-2rmd23wq.js +71 -0
  89. package/dist/{db-1t0bj3pc.js → db-sp39qv72.js} +9 -9
  90. package/dist/{devin-adapter-bffjj5n4.js → devin-adapter-xgtj680j.js} +2 -2
  91. package/dist/{dispatcher-k1fhavcf.js → dispatcher-g7fsybsd.js} +32 -28
  92. package/dist/docker-f503k9p0.js +201 -0
  93. package/dist/{dsh-adapter-5423p70m.js → dsh-adapter-2h8m4cab.js} +5 -5
  94. package/dist/e2b-66xra4az.js +202 -0
  95. package/dist/{e2b-nd50eccg.js → e2b-xwhyj8cw.js} +43 -527
  96. package/dist/{event-bus-vnfthafg.js → event-bus-vjtv82gm.js} +2 -2
  97. package/dist/{grok-adapter-phrndeb8.js → grok-adapter-1err1me7.js} +7 -7
  98. package/dist/{handlers-59ywqwzh.js → handlers-c7yggm37.js} +35 -31
  99. package/dist/heartbeat-dkm924fk.js +124 -0
  100. package/dist/{hook-atj0swc2.js → hook-g8e7sfnf.js} +14 -14
  101. package/dist/{hook-mew1chq9.js → hook-wgx4exw6.js} +21 -18
  102. package/dist/{http-ef2fnn9v.js → http-1d23k928.js} +11499 -9018
  103. package/dist/{index-9fc2h7ww.js → index-gm10tmye.js} +32 -28
  104. package/dist/{index-w2yhye23.js → index-q7cj9bn2.js} +41 -29
  105. package/dist/{index-48pb9erw.js → index-va4zbvzp.js} +42 -37
  106. package/dist/{index-gr69c43q.js → index-vertaxs1.js} +9 -9
  107. package/dist/{index-h26wjcfy.js → index-y5vvczrs.js} +62 -24
  108. package/dist/{keepalive-qhcqz56v.js → keepalive-1jc5e7ct.js} +11 -11
  109. package/dist/{lead-hpk5r3b1.js → lead-yxw2f1sg.js} +52 -48
  110. package/dist/{maintenance-nvkyp2xe.js → maintenance-h7w2m10y.js} +9 -9
  111. package/dist/{node-8zkdq42h.js → node-c9we95xf.js} +9 -9
  112. package/dist/{node-qm9eb6z0.js → node-fkajaq96.js} +1 -1
  113. package/dist/{oauth-refresh-sweep-ngskthwh.js → oauth-refresh-sweep-wh9ypd1b.js} +10 -10
  114. package/dist/{onboard-yfnkqhxc.js → onboard-dfr9j762.js} +25 -15
  115. package/dist/{openai-codex-responses-jzxkta9b.js → openai-codex-responses-pgvtddvv.js} +3 -3
  116. package/dist/{openai-responses-m3g43rrt.js → openai-responses-9dyzwzkr.js} +9 -9
  117. package/dist/{opencode-adapter-yjyqynzf.js → opencode-adapter-f1zby94p.js} +3 -3
  118. package/dist/{otel-impl-hhm64r6m.js → otel-impl-and31m5s.js} +5 -5
  119. package/dist/{pi-mono-adapter-0eg8kw2c.js → pi-mono-adapter-fx6k5wwh.js} +40 -28
  120. package/dist/{pricing-refresh-35f91nx2.js → pricing-refresh-23zr6j3w.js} +11 -11
  121. package/dist/{rbac-roles-97w370qj.js → rbac-roles-nc7k9d0t.js} +11 -11
  122. package/dist/{rbac-roles-z6sje3gy.js → rbac-roles-wnx35x4x.js} +12 -12
  123. package/dist/{render-v2-n4v66bj3.js → render-v2-81cg1y52.js} +10 -10
  124. package/dist/resume-d4b6j2n2.js +70 -0
  125. package/dist/{setup-m3hhyv5f.js → setup-g68r1w28.js} +7 -5
  126. package/dist/static-t1gr2cr7.js +30 -0
  127. package/dist/{virtual-modules-ftr9kwe8.js → virtual-modules-rdjmcg7q.js} +3 -3
  128. package/dist/{work-objects-mxf2c842.js → work-objects-0zzdnbt9.js} +37 -33
  129. package/dist/{worker-9t07z1gq.js → worker-p1g8qm6h.js} +52 -48
  130. package/dist/{x-ma4gnfgy.js → x-qfmygqqv.js} +2 -2
  131. package/openapi.json +15455 -11731
  132. package/package.json +10 -7
  133. package/src/apps/store.ts +1 -0
  134. package/src/artifact-sdk/feedback-overlay.ts +528 -0
  135. package/src/be/db/agents.ts +6 -0
  136. package/src/be/db/instance-signals.ts +30 -0
  137. package/src/be/db/tasks/read.ts +2 -0
  138. package/src/be/db/tasks/write.ts +39 -5
  139. package/src/be/db/workflow-runs.ts +117 -0
  140. package/src/be/db-queries/slack-inbound.ts +489 -0
  141. package/src/be/db.ts +105 -42
  142. package/src/be/extensions/assets.ts +1 -1
  143. package/src/be/fleet-benchmark-stats.ts +39 -0
  144. package/src/be/migrations/203_workflow_run_parent_step.sql +10 -0
  145. package/src/be/migrations/204_slack_inbound_receipts.sql +51 -0
  146. package/src/be/migrations/205_favorites_per_dashboard_user.sql +29 -0
  147. package/src/be/migrations/206_runtime_pools.sql +62 -0
  148. package/src/be/migrations/207_runtime_session_tokens.sql +31 -0
  149. package/src/be/migrations/208_task_runtime_dispatch.sql +4 -0
  150. package/src/be/model-tier-resolution.ts +9 -2
  151. package/src/be/multi-runtime.ts +102 -13
  152. package/src/be/org-profile.ts +35 -0
  153. package/src/be/rbac-audit.ts +4 -0
  154. package/src/be/runtime-pools/controllers.ts +150 -0
  155. package/src/be/runtime-pools/db.ts +526 -0
  156. package/src/be/runtime-pools/demand.ts +65 -0
  157. package/src/be/runtime-pools/e2b-images.ts +109 -0
  158. package/src/be/runtime-pools/errors.ts +8 -0
  159. package/src/be/runtime-pools/lifecycle.ts +44 -0
  160. package/src/be/runtime-pools/reachability.ts +30 -0
  161. package/src/be/runtime-pools/recovery.ts +248 -0
  162. package/src/be/runtime-pools/remote-controller.ts +144 -0
  163. package/src/be/runtime-pools/routing.ts +304 -0
  164. package/src/be/runtime-pools/seed.ts +110 -0
  165. package/src/be/runtime-pools/supervisor.ts +981 -0
  166. package/src/be/runtime-pools/tokens.ts +57 -0
  167. package/src/be/script-connections.ts +1 -1
  168. package/src/be/scripts/run-saved.ts +40 -20
  169. package/src/be/scripts/typecheck.ts +48 -3
  170. package/src/be/secret-registry.ts +17 -1
  171. package/src/be/skill-usage.ts +467 -0
  172. package/src/be/swarm-config-guard.ts +62 -2
  173. package/src/be/telemetry-enable.ts +66 -0
  174. package/src/be/telemetry-ingest-anchor.ts +77 -0
  175. package/src/be/users.ts +173 -23
  176. package/src/be/worker-nudge-listener.ts +28 -0
  177. package/src/be/worker-nudges.ts +22 -0
  178. package/src/cli.tsx +22 -3
  179. package/src/commands/controller.ts +180 -0
  180. package/src/commands/onboard/non-interactive.ts +36 -12
  181. package/src/commands/onboard/types.ts +1 -1
  182. package/src/commands/onboard.tsx +3 -0
  183. package/src/commands/push-delivery.ts +230 -0
  184. package/src/commands/runner.ts +560 -276
  185. package/src/e2b/dispatch.ts +15 -1
  186. package/src/extensions/catalog.ts +1 -1
  187. package/src/extensions/contract-types.generated.ts +1 -1
  188. package/src/extensions/dispatcher.ts +3 -3
  189. package/src/fleet-benchmark.ts +157 -0
  190. package/src/heartbeat/heartbeat.ts +205 -137
  191. package/src/heartbeat/templates.ts +16 -0
  192. package/src/hooks/hook.ts +3 -2
  193. package/src/http/agents.ts +21 -0
  194. package/src/http/all-routes.ts +7 -0
  195. package/src/http/apps.ts +4 -2
  196. package/src/http/auth.ts +4 -7
  197. package/src/http/config.ts +58 -21
  198. package/src/http/controllers-connect.ts +206 -0
  199. package/src/http/core.ts +108 -14
  200. package/src/http/favorite-owner.ts +31 -1
  201. package/src/http/fleet-benchmark.ts +206 -0
  202. package/src/http/index.ts +40 -6
  203. package/src/http/integrations.ts +3 -1
  204. package/src/http/mcp-bridge.ts +1 -0
  205. package/src/http/mcp.ts +3 -8
  206. package/src/http/pages-public.ts +7 -2
  207. package/src/http/pages.ts +178 -0
  208. package/src/http/poll.ts +31 -2
  209. package/src/http/realtime.ts +1 -1
  210. package/src/http/request-principal.ts +2 -0
  211. package/src/http/runtime-pools.ts +527 -0
  212. package/src/http/session-data.ts +2 -0
  213. package/src/http/sessions.ts +100 -23
  214. package/src/http/skills.ts +173 -0
  215. package/src/http/slack-inbound.ts +107 -0
  216. package/src/http/status.ts +25 -1
  217. package/src/http/tasks.ts +59 -28
  218. package/src/http/telemetry-ui.ts +102 -0
  219. package/src/http/used-by.ts +140 -0
  220. package/src/http/users.ts +1 -1
  221. package/src/http/utils.ts +7 -1
  222. package/src/http/webhooks.ts +20 -20
  223. package/src/http/workflows.ts +10 -2
  224. package/src/jira/app.ts +1 -2
  225. package/src/kv-reserved-namespaces.ts +1 -0
  226. package/src/linear/app.ts +1 -2
  227. package/src/prompts/session-templates.ts +32 -0
  228. package/src/providers/acp-target-catalog.ts +75 -1
  229. package/src/providers/acp-targets.ts +115 -1
  230. package/src/providers/amp-adapter.ts +2 -2
  231. package/src/providers/claude-adapter.ts +1 -1
  232. package/src/providers/claude-managed-adapter.ts +2 -11
  233. package/src/providers/claude-sdk-session.ts +1 -1
  234. package/src/providers/codex-adapter.ts +5 -1
  235. package/src/providers/opencode-adapter.ts +3 -3
  236. package/src/providers/pi-mono-adapter.ts +44 -29
  237. package/src/providers/pricing-sources.md +2 -0
  238. package/src/providers/skill-invoke.ts +39 -3
  239. package/src/rbac/legacy-policy.ts +8 -0
  240. package/src/rbac/permissions.ts +16 -0
  241. package/src/rbac/types.ts +2 -0
  242. package/src/realtime/auth.ts +13 -0
  243. package/src/realtime/browser.generated.txt +8 -8
  244. package/src/realtime/browser.ts +3 -3
  245. package/src/realtime/channels.ts +24 -0
  246. package/src/realtime/transport.ts +94 -15
  247. package/src/realtime/worker-client.ts +176 -0
  248. package/src/runtime-providers/controller-protocol.ts +97 -0
  249. package/src/runtime-providers/controller.ts +86 -0
  250. package/src/runtime-providers/docker.ts +235 -0
  251. package/src/runtime-providers/e2b.ts +217 -0
  252. package/src/runtime-providers/index.ts +37 -0
  253. package/src/runtime-providers/static.ts +26 -0
  254. package/src/runtime-providers/types.ts +92 -0
  255. package/src/runtime-providers/worker-api-url.ts +11 -0
  256. package/src/scripts-runtime/executors/quickjs-pool-config.ts +26 -0
  257. package/src/scripts-runtime/executors/quickjs.ts +9 -2
  258. package/src/scripts-runtime/sdk-allowlist.ts +6 -0
  259. package/src/scripts-runtime/types/stdlib.d.ts +15 -0
  260. package/src/scripts-runtime/types/swarm-extension.d.ts +1 -0
  261. package/src/scripts-runtime/types/swarm-sdk.d.ts +15 -0
  262. package/src/server.ts +13 -0
  263. package/src/slack/actions.ts +6 -2
  264. package/src/slack/app.ts +5 -0
  265. package/src/slack/assistant.ts +15 -5
  266. package/src/slack/egress-scrub.ts +3 -2
  267. package/src/slack/handlers.ts +36 -18
  268. package/src/slack/inbound-dispatch.ts +549 -0
  269. package/src/slack/inbound-files.ts +2 -0
  270. package/src/slack/router.ts +7 -5
  271. package/src/tasks/worker-follow-up.ts +80 -52
  272. package/src/telemetry-context.ts +7 -0
  273. package/src/telemetry-contract/EVENTS.md +14 -1
  274. package/src/telemetry-contract/SOURCE.json +4 -4
  275. package/src/telemetry-contract/catalog.json +155 -0
  276. package/src/telemetry-contract/types.gen.ts +248 -4
  277. package/src/telemetry-ui-events.ts +130 -0
  278. package/src/telemetry.ts +43 -3
  279. package/src/tests/acp-adapter.test.ts +129 -0
  280. package/src/tests/claude-adapter.test.ts +6 -2
  281. package/src/tests/codex-adapter.test.ts +6 -2
  282. package/src/tests/codex-oauth-device.test.ts +1 -1
  283. package/src/tests/config-internal-keys.test.ts +27 -0
  284. package/src/tests/config-session-auth.test.ts +19 -3
  285. package/src/tests/db-retention.test.ts +50 -10
  286. package/src/tests/docs-index-footprint.test.js +3 -3
  287. package/src/tests/e2b-dispatch.test.ts +28 -1
  288. package/src/tests/e2e-runtime-pools.test.ts +51 -0
  289. package/src/tests/entrypoint-acp-target-binary.test.ts +38 -1
  290. package/src/tests/favorites.test.ts +188 -0
  291. package/src/tests/fetch-resolved-env.test.ts +59 -1
  292. package/src/tests/fleet-benchmark.test.ts +453 -0
  293. package/src/tests/harness-model-support.test.ts +70 -2
  294. package/src/tests/heartbeat-checklist.test.ts +243 -0
  295. package/src/tests/heartbeat-orphan-resume.test.ts +24 -0
  296. package/src/tests/heartbeat-reboot-live.test.ts +31 -0
  297. package/src/tests/heartbeat-supersede-resume.test.ts +21 -0
  298. package/src/tests/hook-runtime-close.test.ts +64 -0
  299. package/src/tests/http-task-write-ownership.test.ts +8 -1
  300. package/src/tests/integration-disable-flags.test.ts +45 -0
  301. package/src/tests/migration-206-runtime-pools.test.ts +134 -0
  302. package/src/tests/migration-207-runtime-session-tokens.test.ts +45 -0
  303. package/src/tests/migration-208-task-runtime-dispatch.test.ts +30 -0
  304. package/src/tests/multi-runtime-registration.test.ts +219 -4
  305. package/src/tests/onboard-non-interactive.test.ts +104 -6
  306. package/src/tests/opencode-adapter.test.ts +6 -2
  307. package/src/tests/org-website.test.ts +115 -0
  308. package/src/tests/pages-feedback.test.ts +218 -0
  309. package/src/tests/pi-mono-adapter.test.ts +74 -10
  310. package/src/tests/rbac-admission-e2e.test.ts +4 -4
  311. package/src/tests/rbac-engine.test.ts +8 -1
  312. package/src/tests/realtime-room-auth.test.ts +49 -0
  313. package/src/tests/repo-allow-merge-gate.test.ts +8 -1
  314. package/src/tests/runner-exit-after-tasks.test.ts +163 -0
  315. package/src/tests/runner-finish-retry.test.ts +466 -0
  316. package/src/tests/runner-harness-telemetry-env.test.ts +105 -0
  317. package/src/tests/runner-push-delivery.test.ts +670 -0
  318. package/src/tests/runner-slot-reconcile.test.ts +89 -1
  319. package/src/tests/runtime-child-token-cleanup.test.ts +172 -0
  320. package/src/tests/runtime-controller-token.test.ts +254 -0
  321. package/src/tests/runtime-demand.test.ts +119 -0
  322. package/src/tests/runtime-e2b-pools.test.ts +847 -0
  323. package/src/tests/runtime-pool-reachability.test.ts +328 -0
  324. package/src/tests/runtime-pool-routing.test.ts +817 -0
  325. package/src/tests/runtime-pools-db.test.ts +275 -0
  326. package/src/tests/runtime-pools-http.test.ts +506 -0
  327. package/src/tests/runtime-pools-ownership-guards.test.ts +235 -0
  328. package/src/tests/runtime-pools-seed.test.ts +203 -0
  329. package/src/tests/runtime-pools-test-utils.ts +128 -0
  330. package/src/tests/runtime-provider-registration.test.ts +133 -0
  331. package/src/tests/runtime-providers-docker.test.ts +400 -0
  332. package/src/tests/runtime-providers-e2b-transport.test.ts +50 -0
  333. package/src/tests/runtime-providers-e2b.test.ts +335 -0
  334. package/src/tests/runtime-recovery.test.ts +745 -0
  335. package/src/tests/runtime-remote-controller.test.ts +846 -0
  336. package/src/tests/runtime-supervisor-failures.test.ts +387 -0
  337. package/src/tests/runtime-supervisor.test.ts +1039 -0
  338. package/src/tests/runtime-token-auth.test.ts +897 -0
  339. package/src/tests/script-connections.test.ts +9 -0
  340. package/src/tests/script-executor-quickjs-pool.test.ts +106 -0
  341. package/src/tests/script-executor-registry.test.ts +38 -0
  342. package/src/tests/secret-scrubber.test.ts +17 -2
  343. package/src/tests/session-costs-codex-recompute.test.ts +49 -0
  344. package/src/tests/session-tokens.test.ts +13 -3
  345. package/src/tests/skill-invoke.test.ts +142 -0
  346. package/src/tests/skill-usage-cohorts.test.ts +232 -0
  347. package/src/tests/skill-usage.test.ts +348 -0
  348. package/src/tests/slack-attachments-block.test.ts +23 -0
  349. package/src/tests/slack-inbound-diagnostics-auth.test.ts +93 -0
  350. package/src/tests/slack-inbound-receipts.test.ts +684 -0
  351. package/src/tests/slack-render-v2.test.ts +6 -0
  352. package/src/tests/slack-session-status.test.ts +4 -2
  353. package/src/tests/status-instance.test.ts +71 -0
  354. package/src/tests/task-supersede-resume.test.ts +87 -4
  355. package/src/tests/telemetry-enable.test.ts +113 -0
  356. package/src/tests/telemetry-ui-route.test.ts +195 -0
  357. package/src/tests/tool-annotations.test.ts +1 -1
  358. package/src/tests/ui-e2e-ingest-payload.test.ts +5 -1
  359. package/src/tests/used-by-route.test.ts +237 -0
  360. package/src/tests/user-token-routes.test.ts +1 -1
  361. package/src/tests/worker-nudges.test.ts +653 -0
  362. package/src/tests/worker-realtime-client.test.ts +188 -0
  363. package/src/tests/workflow-executors.test.ts +3 -2
  364. package/src/tests/workflow-sub-workflow.test.ts +385 -0
  365. package/src/tools/app-upsert.ts +1 -1
  366. package/src/tools/runtime-controller-list.ts +28 -0
  367. package/src/tools/runtime-pool-bind-agent.ts +29 -0
  368. package/src/tools/runtime-pool-common.ts +37 -0
  369. package/src/tools/runtime-pool-create-agent.ts +29 -0
  370. package/src/tools/runtime-pool-delete.ts +27 -0
  371. package/src/tools/runtime-pool-list.ts +27 -0
  372. package/src/tools/runtime-pool-upsert.ts +31 -0
  373. package/src/tools/script-common.ts +1 -1
  374. package/src/tools/send-task.ts +3 -2
  375. package/src/tools/tool-config.ts +6 -0
  376. package/src/types.ts +137 -2
  377. package/src/utils/config-secrets.ts +1 -0
  378. package/src/utils/internal-ai/complete-structured.ts +6 -3
  379. package/src/utils/lead-monitor-channels.ts +3 -0
  380. package/src/utils/org-website.ts +104 -0
  381. package/src/utils/request-auth-context.ts +10 -2
  382. package/src/utils/runtime-model-catalog.ts +1 -1
  383. package/src/utils/runtime-pools-flag.ts +11 -0
  384. package/src/utils/secret-scrubber.ts +9 -0
  385. package/src/utils/session-token-connections.ts +20 -0
  386. package/src/workflows/engine.ts +17 -1
  387. package/src/workflows/executors/agent-task.ts +2 -2
  388. package/src/workflows/executors/human-in-the-loop.ts +3 -3
  389. package/src/workflows/executors/registry.ts +2 -0
  390. package/src/workflows/executors/script.ts +1 -1
  391. package/src/workflows/executors/sub-workflow.ts +135 -0
  392. package/src/workflows/executors/wait.ts +3 -3
  393. package/src/workflows/recovery.ts +11 -1
  394. package/src/workflows/resume.ts +77 -0
  395. package/src/workflows/wait-filter.ts +5 -7
  396. package/templates/skills/apps/content.md +1 -1
  397. package/templates/skills/code-quality/content.md +9 -1
  398. package/templates/skills/db-query-guidance/content.md +9 -0
  399. package/templates/skills/heartbeat-runbook/content.md +3 -1
  400. package/templates/skills/pages/content.md +25 -0
  401. package/templates/skills/swarm-scripts/SKILL.md +1 -1
  402. package/templates/skills/swarm-scripts/content.md +1 -1
  403. package/templates/skills/work-on-task/SKILL.md +1 -1
  404. package/templates/skills/work-on-task/content.md +1 -1
  405. package/dist/{cli-qd97v6z2.js → cli-1qtgd1h1.js} +3 -3
  406. package/dist/{cli-cmxkbzzs.js → cli-j0w59p15.js} +6 -6
  407. package/dist/{google-generative-ai-b8zxrpax.js → google-generative-ai-pvhm0dq1.js} +1 -1
  408. package/dist/{google-vertex-nrdd697t.js → google-vertex-tek9sqe2.js} +4 -4
  409. package/dist/{mistral-conversations-059y51zt.js → mistral-conversations-rjxa9s1j.js} +3 -3
  410. package/dist/{openai-completions-663yncfq.js → openai-completions-44gb0zsk.js} +12 -12
package/README.md CHANGED
@@ -85,17 +85,26 @@ The plugin's [privacy](https://www.agent-swarm.dev/privacy) and
85
85
  [terms](https://www.agent-swarm.dev/terms) links describe the Agent Swarm website and
86
86
  Cloud service. The self-hosted software remains covered by the [MIT License](./LICENSE).
87
87
 
88
+ Or self-host with the one-shot installer. It checks Docker and Compose v2, installs Bun when missing, runs `agent-swarm onboard --yes`, and prints the dashboard `/setup` link:
89
+
90
+ ```bash
91
+ curl -fsSL https://raw.githubusercontent.com/desplega-ai/agent-swarm/main/install.sh | bash
92
+ ```
93
+
88
94
  Or use the examples directly:
89
95
 
90
96
  ```bash
91
97
  git clone https://github.com/desplega-ai/agent-swarm.git && cd agent-swarm
92
- cp .env.docker.example .env # Set API_KEY, a harness credential, and all eight agent UUIDs.
98
+ cp .env.docker.example .env # Set API_KEY and the credential for your HARNESS_PROVIDER.
93
99
  openssl rand -base64 32 > encryption_key
94
100
  chmod 600 .env encryption_key
95
101
  docker compose -f docker-compose.example.yml --env-file .env up -d
96
102
  ```
97
103
 
98
- Read the [Compose checklist](./skills/agent-swarm/references/compose.md) before starting. API: http://localhost:3013, with `/docs` and `/openapi.json`. [Dashboard](https://app.agent-swarm.dev): connect it to your API.
104
+ Agent ID variables are optional. Each container generates a UUID on first boot and keeps it in its personal volume, so identity survives restarts. Pin `*_AGENT_ID` in `.env` only to keep an existing identity or to survive removing volumes.
105
+
106
+ Read the [Compose checklist](./skills/agent-swarm/references/compose.md) before starting. API: http://localhost:3013, with `/docs` and `/openapi.json`.
107
+ Next, open the [dashboard](https://app.agent-swarm.dev) and connect it to your API with `API_KEY`. A new install lands on `/setup`, a guided first run that covers providers, agents, memory, integrations, and a first task.
99
108
  Kubernetes: [install the OCI Helm chart](./charts/agent-swarm/README.md).
100
109
 
101
110
  ## Integrations
@@ -3,11 +3,11 @@ import {
3
3
  applyConfiguredOptions,
4
4
  sanitizeAcpConfigOptions,
5
5
  toAcpMcpServers
6
- } from "./cli-aj1e0h0d.js";
7
- import"./cli-jvmtxqtc.js";
6
+ } from "./cli-jxsgrnmq.js";
7
+ import"./cli-ywh2a87k.js";
8
8
  import"./cli-gt4hxb8p.js";
9
9
  import"./cli-5bfdm1ah.js";
10
- import"./cli-zp67qg5x.js";
10
+ import"./cli-7a0sde2x.js";
11
11
  import"./cli-tng3131n.js";
12
12
  import"./cli-zm7njwzd.js";
13
13
  import"./cli-ptcz1cqy.js";
@@ -20,11 +20,11 @@ import"./cli-tadfgd0t.js";
20
20
  import"./cli-ywybs5as.js";
21
21
  import"./cli-f9w1semm.js";
22
22
  import"./cli-a35hzdve.js";
23
- import"./cli-ej6gbxfb.js";
24
23
  import"./cli-014vns2y.js";
25
24
  import"./cli-w5e1d1vv.js";
26
- import"./cli-ng1pmdx6.js";
27
- import"./cli-wt7ccy4r.js";
25
+ import"./cli-erbp6b4g.js";
26
+ import"./cli-ej6gbxfb.js";
27
+ import"./cli-d161g69q.js";
28
28
  import"./cli-bc05qbss.js";
29
29
  export {
30
30
  ACPAdapter,
@@ -1,31 +1,31 @@
1
1
  import {
2
2
  resolveSlackUserId
3
- } from "./cli-ytmmyj7f.js";
3
+ } from "./cli-hsk5gd15.js";
4
4
  import {
5
5
  createTaskWithSiblingAwareness
6
- } from "./cli-ee0402n1.js";
7
- import"./cli-xvc3q9br.js";
8
- import"./cli-mv2520nm.js";
6
+ } from "./cli-p8f7dqgt.js";
7
+ import"./cli-451ks6aw.js";
8
+ import"./cli-2bw3w47j.js";
9
9
  import"./cli-w0bwte75.js";
10
10
  import"./cli-re8z5p8p.js";
11
- import"./cli-43jg9xdw.js";
12
- import"./cli-9q24yyvs.js";
13
- import"./cli-ewhwpyrb.js";
14
- import"./cli-g6gx2dn1.js";
11
+ import"./cli-mzj3aqac.js";
12
+ import"./cli-srmej5tp.js";
13
+ import"./cli-x207g4w1.js";
14
+ import"./cli-01qndrvw.js";
15
15
  import"./cli-epan13p1.js";
16
- import"./cli-f14fvzag.js";
17
- import"./cli-7mhy3ths.js";
18
- import"./cli-v1w7pbd8.js";
19
16
  import"./cli-zt3w1cn1.js";
20
- import"./cli-km4x66j0.js";
17
+ import"./cli-x3fy2tgp.js";
18
+ import"./cli-mzfth0bp.js";
19
+ import"./cli-wfvedq5w.js";
20
+ import"./cli-6xxxb8qt.js";
21
+ import"./cli-x61srfpp.js";
22
+ import"./cli-7jykv7ef.js";
23
+ import"./cli-5y67yrt6.js";
21
24
  import"./cli-rb9m6rpe.js";
22
25
  import"./cli-2x0e561b.js";
23
- import"./cli-fhj4y16f.js";
24
- import"./cli-mzfth0bp.js";
25
26
  import"./cli-fad8m16k.js";
26
27
  import"./cli-bsakbbkm.js";
27
28
  import"./cli-zxg80zs9.js";
28
- import"./cli-51tf7ac3.js";
29
29
  import"./cli-ydt3zkwv.js";
30
30
  import {
31
31
  buildCancelledBlocks,
@@ -33,20 +33,25 @@ import {
33
33
  getAgentDisplayName,
34
34
  getAgentEmoji,
35
35
  getTaskLink,
36
- isSlackRenderV2Enabled
37
- } from "./cli-j05x7pnb.js";
36
+ ignoreSlackInbound,
37
+ isSlackRenderV2Enabled,
38
+ noteSlackInboundSideEffect
39
+ } from "./cli-nkjwe4z7.js";
38
40
  import"./cli-q51yprfq.js";
39
41
  import"./cli-3er6gcsn.js";
40
42
  import"./cli-yatxqynm.js";
43
+ import"./cli-51tf7ac3.js";
44
+ import"./cli-r455yd58.js";
45
+ import"./cli-cd0hv9nh.js";
41
46
  import"./cli-mn8qkd8v.js";
42
- import"./cli-g7k7zbcz.js";
43
47
  import"./cli-btbzvq95.js";
44
48
  import"./cli-1m2e086m.js";
49
+ import"./cli-g7k7zbcz.js";
45
50
  import"./cli-wnb9b2g3.js";
46
51
  import"./cli-bd957dgb.js";
47
52
  import"./cli-pzxba7gw.js";
48
- import"./cli-0jngabtb.js";
49
- import"./cli-rfphkzh5.js";
53
+ import"./cli-4bm25xtw.js";
54
+ import"./cli-7pz3b7x5.js";
50
55
  import {
51
56
  cancelTask,
52
57
  getAgentById,
@@ -55,12 +60,12 @@ import {
55
60
  init_context_key,
56
61
  init_db1 as init_db,
57
62
  slackContextKey
58
- } from "./cli-74ez9b66.js";
59
- import"./cli-3qhyh31j.js";
60
- import"./cli-xvdgasgy.js";
61
- import"./cli-mxvnnv5q.js";
63
+ } from "./cli-0d2rqhvq.js";
64
+ import"./cli-ywm1azg9.js";
65
+ import"./cli-hsem16hb.js";
66
+ import"./cli-rrbctenq.js";
62
67
  import"./cli-7mm2r1kp.js";
63
- import"./cli-g5erf0zt.js";
68
+ import"./cli-e2prcx5m.js";
64
69
  import"./cli-dmtrxqhg.js";
65
70
  import"./cli-agamgm0p.js";
66
71
  import"./cli-5c2j5yvx.js";
@@ -69,15 +74,16 @@ import"./cli-tadfgd0t.js";
69
74
  import"./cli-ywybs5as.js";
70
75
  import"./cli-f9w1semm.js";
71
76
  import"./cli-a35hzdve.js";
72
- import"./cli-gd4favx9.js";
73
- import"./cli-ej6gbxfb.js";
74
77
  import"./cli-014vns2y.js";
75
78
  import"./cli-sd0mxa3c.js";
76
79
  import"./cli-w5e1d1vv.js";
77
- import"./cli-ng1pmdx6.js";
78
- import"./cli-mb75wpxf.js";
80
+ import"./cli-erbp6b4g.js";
81
+ import"./cli-81r1wjyv.js";
79
82
  import"./cli-zf8jjwex.js";
80
- import"./cli-wt7ccy4r.js";
83
+ import"./cli-gd4favx9.js";
84
+ import"./cli-ej6gbxfb.js";
85
+ import"./cli-a1b9b32n.js";
86
+ import"./cli-d161g69q.js";
81
87
  import"./cli-bc05qbss.js";
82
88
 
83
89
  // src/slack/actions.ts
@@ -134,15 +140,17 @@ function registerActionHandlers(app) {
134
140
  const taskId = view.private_metadata;
135
141
  const followUpText = view.state.values.follow_up_input?.follow_up_text?.value || "";
136
142
  if (!taskId || !followUpText)
137
- return;
143
+ return ignoreSlackInbound("empty_follow_up");
138
144
  const originalTask = await getTaskById(taskId);
139
- if (!originalTask || !originalTask.slackChannelId)
140
- return;
145
+ if (!originalTask || !originalTask.slackChannelId) {
146
+ return ignoreSlackInbound("follow_up_target_missing");
147
+ }
141
148
  const lead = await getLeadAgent();
142
149
  const requestedByUserId = await resolveSlackUserId(client, body.user.id, {
143
150
  sampleEventType: "view_submission",
144
151
  sampleContext: view.callback_id || "follow_up_submit"
145
152
  });
153
+ noteSlackInboundSideEffect("task_created");
146
154
  const followUpTask = await createTaskWithSiblingAwareness(followUpText, {
147
155
  agentId: lead?.id,
148
156
  routingReason: lead ? "skill" : undefined,
@@ -7,20 +7,20 @@ import {
7
7
  parseAmpThreadCost,
8
8
  parseAmpThreadUsage,
9
9
  resolveAmpBinary
10
- } from "./cli-ew0c3a1j.js";
10
+ } from "./cli-n8ybnv1k.js";
11
11
  import"./cli-ptcz1cqy.js";
12
12
  import"./cli-7avy4v8w.js";
13
13
  import"./cli-tmhsxhb8.js";
14
- import"./cli-mv2520nm.js";
14
+ import"./cli-2bw3w47j.js";
15
15
  import"./cli-re8z5p8p.js";
16
16
  import"./cli-zt3w1cn1.js";
17
- import"./cli-xvdgasgy.js";
18
- import"./cli-gd4favx9.js";
19
- import"./cli-ej6gbxfb.js";
17
+ import"./cli-hsem16hb.js";
20
18
  import"./cli-014vns2y.js";
21
19
  import"./cli-sd0mxa3c.js";
22
20
  import"./cli-w5e1d1vv.js";
23
- import"./cli-wt7ccy4r.js";
21
+ import"./cli-gd4favx9.js";
22
+ import"./cli-ej6gbxfb.js";
23
+ import"./cli-d161g69q.js";
24
24
  import"./cli-bc05qbss.js";
25
25
  export {
26
26
  AMP_PACKAGE,
@@ -3,14 +3,14 @@ import {
3
3
  hasCopilotVisionInput
4
4
  } from "./cli-67bad0ze.js";
5
5
  import {
6
- Anthropic
7
- } from "./cli-zp38xvtm.js";
6
+ retryProviderRequest
7
+ } from "./cli-zy39d433.js";
8
8
  import {
9
9
  getPiUserAgent
10
10
  } from "./cli-et1bbwqf.js";
11
11
  import {
12
- retryProviderRequest
13
- } from "./cli-zy39d433.js";
12
+ Anthropic
13
+ } from "./cli-5rqrj7q0.js";
14
14
  import {
15
15
  ANTHROPIC_FEDERATION_RULE_ID_ENV,
16
16
  ANTHROPIC_IDENTITY_TOKEN_FILE_ENV,
@@ -33,6 +33,13 @@ import {
33
33
  import {
34
34
  headersToRecord
35
35
  } from "./cli-7kyk9jr3.js";
36
+ import {
37
+ getProviderEnvValue
38
+ } from "./cli-btbzvq95.js";
39
+ import {
40
+ parseJsonWithRepair,
41
+ parseStreamingJson
42
+ } from "./cli-1m2e086m.js";
36
43
  import {
37
44
  calculateCost,
38
45
  getCurrentTools,
@@ -41,13 +48,6 @@ import {
41
48
  renderSystemMessageUpdate,
42
49
  resolveTranscript
43
50
  } from "./cli-g7k7zbcz.js";
44
- import {
45
- getProviderEnvValue
46
- } from "./cli-btbzvq95.js";
47
- import {
48
- parseJsonWithRepair,
49
- parseStreamingJson
50
- } from "./cli-1m2e086m.js";
51
51
  import {
52
52
  AssistantMessageEventStream,
53
53
  appendAssistantMessageDiagnostic
@@ -3,18 +3,18 @@ import {
3
3
  initSlackApp,
4
4
  startSlackApp,
5
5
  stopSlackApp
6
- } from "./cli-j05x7pnb.js";
6
+ } from "./cli-nkjwe4z7.js";
7
7
  import"./cli-q51yprfq.js";
8
8
  import"./cli-3er6gcsn.js";
9
9
  import"./cli-yatxqynm.js";
10
10
  import"./cli-bd957dgb.js";
11
11
  import"./cli-pzxba7gw.js";
12
- import"./cli-74ez9b66.js";
13
- import"./cli-3qhyh31j.js";
14
- import"./cli-xvdgasgy.js";
15
- import"./cli-mxvnnv5q.js";
12
+ import"./cli-0d2rqhvq.js";
13
+ import"./cli-ywm1azg9.js";
14
+ import"./cli-hsem16hb.js";
15
+ import"./cli-rrbctenq.js";
16
16
  import"./cli-7mm2r1kp.js";
17
- import"./cli-g5erf0zt.js";
17
+ import"./cli-e2prcx5m.js";
18
18
  import"./cli-dmtrxqhg.js";
19
19
  import"./cli-agamgm0p.js";
20
20
  import"./cli-5c2j5yvx.js";
@@ -23,14 +23,14 @@ import"./cli-tadfgd0t.js";
23
23
  import"./cli-ywybs5as.js";
24
24
  import"./cli-f9w1semm.js";
25
25
  import"./cli-a35hzdve.js";
26
- import"./cli-gd4favx9.js";
27
- import"./cli-ej6gbxfb.js";
28
26
  import"./cli-014vns2y.js";
29
27
  import"./cli-sd0mxa3c.js";
30
28
  import"./cli-w5e1d1vv.js";
31
- import"./cli-ng1pmdx6.js";
29
+ import"./cli-erbp6b4g.js";
32
30
  import"./cli-zf8jjwex.js";
33
- import"./cli-wt7ccy4r.js";
31
+ import"./cli-gd4favx9.js";
32
+ import"./cli-ej6gbxfb.js";
33
+ import"./cli-d161g69q.js";
34
34
  import"./cli-bc05qbss.js";
35
35
  export {
36
36
  getSlackApp,
@@ -1,9 +1,6 @@
1
1
  import {
2
2
  BROWSER_SDK_JS
3
3
  } from "./cli-t1ze64h3.js";
4
- import {
5
- getApiKey
6
- } from "./cli-f14fvzag.js";
7
4
  import {
8
5
  require_follow_redirects,
9
6
  require_src
@@ -14,6 +11,10 @@ import {
14
11
  init_constants
15
12
  } from "./cli-gd4favx9.js";
16
13
  import"./cli-ej6gbxfb.js";
14
+ import {
15
+ getApiKey,
16
+ init_api_key
17
+ } from "./cli-a1b9b32n.js";
17
18
  import {
18
19
  __commonJS,
19
20
  __require,
@@ -3500,6 +3501,7 @@ var upgradeWebSocket = defineWebSocketHelper((c, events) => {
3500
3501
  });
3501
3502
 
3502
3503
  // src/artifact-sdk/server.ts
3504
+ init_api_key();
3503
3505
  init_constants();
3504
3506
 
3505
3507
  // src/artifact-sdk/port.ts
@@ -3654,6 +3656,7 @@ function createArtifactServer(opts) {
3654
3656
  return artifact;
3655
3657
  }
3656
3658
  // src/commands/artifact.ts
3659
+ init_api_key();
3657
3660
  init_constants();
3658
3661
  async function runArtifact(subcommand, args) {
3659
3662
  switch (subcommand) {
@@ -2,60 +2,67 @@ import {
2
2
  bufferThreadMessage,
3
3
  getBufferMessageCount,
4
4
  wasEventSeen
5
- } from "./cli-svah6b6w.js";
5
+ } from "./cli-8mr695sb.js";
6
6
  import {
7
7
  resolveSlackUserId,
8
8
  rewriteSlackMentions
9
- } from "./cli-ytmmyj7f.js";
9
+ } from "./cli-hsk5gd15.js";
10
10
  import {
11
11
  buildEffectiveText,
12
12
  createSlackTaskWithFiles,
13
13
  fetchSlackFiles,
14
14
  hasOtherUserMention,
15
15
  notifySlackFileFailures
16
- } from "./cli-ee0402n1.js";
17
- import"./cli-xvc3q9br.js";
18
- import"./cli-mv2520nm.js";
16
+ } from "./cli-p8f7dqgt.js";
17
+ import"./cli-451ks6aw.js";
18
+ import"./cli-2bw3w47j.js";
19
19
  import"./cli-w0bwte75.js";
20
20
  import"./cli-re8z5p8p.js";
21
- import"./cli-43jg9xdw.js";
22
- import"./cli-9q24yyvs.js";
23
- import"./cli-ewhwpyrb.js";
24
- import"./cli-g6gx2dn1.js";
21
+ import"./cli-mzj3aqac.js";
22
+ import"./cli-srmej5tp.js";
23
+ import"./cli-x207g4w1.js";
24
+ import"./cli-01qndrvw.js";
25
25
  import"./cli-epan13p1.js";
26
- import"./cli-f14fvzag.js";
27
- import"./cli-7mhy3ths.js";
28
- import"./cli-v1w7pbd8.js";
29
26
  import"./cli-zt3w1cn1.js";
30
- import"./cli-km4x66j0.js";
27
+ import"./cli-x3fy2tgp.js";
28
+ import"./cli-mzfth0bp.js";
29
+ import"./cli-wfvedq5w.js";
30
+ import"./cli-6xxxb8qt.js";
31
+ import"./cli-x61srfpp.js";
32
+ import"./cli-7jykv7ef.js";
33
+ import"./cli-5y67yrt6.js";
31
34
  import"./cli-rb9m6rpe.js";
32
35
  import"./cli-2x0e561b.js";
33
- import"./cli-fhj4y16f.js";
34
- import"./cli-mzfth0bp.js";
35
36
  import"./cli-fad8m16k.js";
36
37
  import"./cli-bsakbbkm.js";
37
38
  import"./cli-zxg80zs9.js";
38
- import"./cli-51tf7ac3.js";
39
39
  import"./cli-ydt3zkwv.js";
40
40
  import {
41
41
  ackSlackMessage,
42
42
  ensureSlackThreadTree,
43
+ ignoreSlackInbound,
44
+ isAdmittedSlackDelivery,
43
45
  isSlackRenderV2Enabled,
44
46
  markSlackSessionProcessing,
47
+ noteSlackInboundSideEffect,
48
+ reportSlackInboundFailure,
45
49
  require_dist
46
- } from "./cli-j05x7pnb.js";
50
+ } from "./cli-nkjwe4z7.js";
47
51
  import"./cli-q51yprfq.js";
48
52
  import"./cli-3er6gcsn.js";
49
53
  import"./cli-yatxqynm.js";
54
+ import"./cli-51tf7ac3.js";
55
+ import"./cli-r455yd58.js";
56
+ import"./cli-cd0hv9nh.js";
50
57
  import"./cli-mn8qkd8v.js";
51
- import"./cli-g7k7zbcz.js";
52
58
  import"./cli-btbzvq95.js";
53
59
  import"./cli-1m2e086m.js";
60
+ import"./cli-g7k7zbcz.js";
54
61
  import"./cli-wnb9b2g3.js";
55
62
  import"./cli-bd957dgb.js";
56
63
  import"./cli-pzxba7gw.js";
57
- import"./cli-0jngabtb.js";
58
- import"./cli-rfphkzh5.js";
64
+ import"./cli-4bm25xtw.js";
65
+ import"./cli-7pz3b7x5.js";
59
66
  import {
60
67
  getAgentWorkingOnThread,
61
68
  getLeadAgent,
@@ -64,12 +71,12 @@ import {
64
71
  init_db1 as init_db,
65
72
  reactionName,
66
73
  slackContextKey
67
- } from "./cli-74ez9b66.js";
68
- import"./cli-3qhyh31j.js";
69
- import"./cli-xvdgasgy.js";
70
- import"./cli-mxvnnv5q.js";
74
+ } from "./cli-0d2rqhvq.js";
75
+ import"./cli-ywm1azg9.js";
76
+ import"./cli-hsem16hb.js";
77
+ import"./cli-rrbctenq.js";
71
78
  import"./cli-7mm2r1kp.js";
72
- import"./cli-g5erf0zt.js";
79
+ import"./cli-e2prcx5m.js";
73
80
  import"./cli-dmtrxqhg.js";
74
81
  import"./cli-agamgm0p.js";
75
82
  import {
@@ -81,18 +88,19 @@ import"./cli-tadfgd0t.js";
81
88
  import"./cli-ywybs5as.js";
82
89
  import"./cli-f9w1semm.js";
83
90
  import"./cli-a35hzdve.js";
91
+ import"./cli-014vns2y.js";
92
+ import"./cli-sd0mxa3c.js";
93
+ import"./cli-w5e1d1vv.js";
94
+ import"./cli-erbp6b4g.js";
95
+ import"./cli-81r1wjyv.js";
96
+ import"./cli-zf8jjwex.js";
84
97
  import"./cli-gd4favx9.js";
85
98
  import {
86
99
  init_env_flag,
87
100
  isEnvFlagEnabled
88
101
  } from "./cli-ej6gbxfb.js";
89
- import"./cli-014vns2y.js";
90
- import"./cli-sd0mxa3c.js";
91
- import"./cli-w5e1d1vv.js";
92
- import"./cli-ng1pmdx6.js";
93
- import"./cli-mb75wpxf.js";
94
- import"./cli-zf8jjwex.js";
95
- import"./cli-wt7ccy4r.js";
102
+ import"./cli-a1b9b32n.js";
103
+ import"./cli-d161g69q.js";
96
104
  import {
97
105
  __callDispose,
98
106
  __toESM,
@@ -126,6 +134,7 @@ function createAssistant() {
126
134
  });
127
135
  } catch (error) {
128
136
  console.error("[Slack] Assistant threadStarted error:", error);
137
+ reportSlackInboundFailure("assistant_thread_started_error");
129
138
  }
130
139
  },
131
140
  threadContextChanged: async ({ saveThreadContext }) => {
@@ -133,9 +142,9 @@ function createAssistant() {
133
142
  },
134
143
  userMessage: async ({ message, body, say, setStatus, setTitle, getThreadContext, client }) => {
135
144
  const eventId = body?.event_id;
136
- if (wasEventSeen(eventId)) {
145
+ if (!isAdmittedSlackDelivery() && wasEventSeen(eventId)) {
137
146
  console.log(`[Slack] dropping Slack retry: event_id=${eventId}`);
138
- return;
147
+ return ignoreSlackInbound("duplicate_event");
139
148
  }
140
149
  let statusThread;
141
150
  const safeSetStatus = async (status) => {
@@ -158,7 +167,7 @@ function createAssistant() {
158
167
  try {
159
168
  let __stack = [];
160
169
  try {
161
- const msg = message;
170
+ const msg = { ...message };
162
171
  const threadTs = msg.thread_ts || message.ts;
163
172
  const channelId = message.channel;
164
173
  statusThread = { channelId, threadTs };
@@ -177,7 +186,7 @@ function createAssistant() {
177
186
  const botMentioned = messageText.includes(`<@${cachedBotUserId}>`);
178
187
  if (!botMentioned && hasOtherUserMention(messageText, cachedBotUserId)) {
179
188
  console.log(`[Slack] assistant: skipping message in ${channelId}/${threadTs} — mentions another user, not us`);
180
- return;
189
+ return ignoreSlackInbound("other_user_mention");
181
190
  }
182
191
  }
183
192
  const requestedByUserId = userId ? await resolveSlackUserId(client, userId, {
@@ -186,6 +195,7 @@ function createAssistant() {
186
195
  }) : undefined;
187
196
  const workingAgent = await getAgentWorkingOnThread(channelId, threadTs);
188
197
  if (workingAgent && workingAgent.status !== "offline" && isAdditiveSlack()) {
198
+ noteSlackInboundSideEffect("thread_buffer");
189
199
  bufferThreadMessage(channelId, threadTs, messageText, userId, message.ts, files, cachedBotUserId ?? undefined);
190
200
  const count = getBufferMessageCount(`${channelId}:${threadTs}`);
191
201
  const event = count === 1 ? "accepted" : "buffered";
@@ -274,6 +284,7 @@ function createAssistant() {
274
284
  }
275
285
  } catch (error) {
276
286
  console.error("[Slack] Assistant userMessage error:", error);
287
+ reportSlackInboundFailure("assistant_user_message_error");
277
288
  }
278
289
  }
279
290
  });
@@ -2,20 +2,20 @@ import {
2
2
  convertResponsesMessages,
3
3
  convertResponsesTools,
4
4
  processResponsesStream
5
- } from "./cli-qd97v6z2.js";
5
+ } from "./cli-1qtgd1h1.js";
6
6
  import {
7
7
  clampOpenAIPromptCacheKey
8
8
  } from "./cli-mrptpp86.js";
9
- import"./cli-5m9j2spm.js";
10
9
  import {
11
10
  AzureOpenAI
12
11
  } from "./cli-7cxw8b60.js";
13
- import {
14
- getPiUserAgent
15
- } from "./cli-et1bbwqf.js";
16
12
  import {
17
13
  retryProviderRequest
18
14
  } from "./cli-zy39d433.js";
15
+ import"./cli-5m9j2spm.js";
16
+ import {
17
+ getPiUserAgent
18
+ } from "./cli-et1bbwqf.js";
19
19
  import {
20
20
  resolveAzureConfig,
21
21
  resolveDeploymentName
@@ -33,14 +33,14 @@ import"./cli-y2apkfe2.js";
33
33
  import {
34
34
  headersToRecord
35
35
  } from "./cli-7kyk9jr3.js";
36
+ import"./cli-btbzvq95.js";
37
+ import"./cli-1m2e086m.js";
36
38
  import {
37
39
  clampThinkingLevel,
38
40
  getDeclaredTools,
39
41
  resolveTranscript,
40
42
  resolveTranscriptTools
41
43
  } from "./cli-g7k7zbcz.js";
42
- import"./cli-btbzvq95.js";
43
- import"./cli-1m2e086m.js";
44
44
  import {
45
45
  AssistantMessageEventStream
46
46
  } from "./cli-wnb9b2g3.js";
@@ -6,12 +6,12 @@ import {
6
6
  init_constants,
7
7
  init_db1 as init_db,
8
8
  init_memory
9
- } from "./cli-74ez9b66.js";
10
- import"./cli-3qhyh31j.js";
11
- import"./cli-xvdgasgy.js";
12
- import"./cli-mxvnnv5q.js";
9
+ } from "./cli-0d2rqhvq.js";
10
+ import"./cli-ywm1azg9.js";
11
+ import"./cli-hsem16hb.js";
12
+ import"./cli-rrbctenq.js";
13
13
  import"./cli-7mm2r1kp.js";
14
- import"./cli-g5erf0zt.js";
14
+ import"./cli-e2prcx5m.js";
15
15
  import"./cli-dmtrxqhg.js";
16
16
  import"./cli-agamgm0p.js";
17
17
  import"./cli-5c2j5yvx.js";
@@ -20,14 +20,14 @@ import"./cli-tadfgd0t.js";
20
20
  import"./cli-ywybs5as.js";
21
21
  import"./cli-f9w1semm.js";
22
22
  import"./cli-a35hzdve.js";
23
- import"./cli-gd4favx9.js";
24
- import"./cli-ej6gbxfb.js";
25
23
  import"./cli-014vns2y.js";
26
24
  import"./cli-sd0mxa3c.js";
27
25
  import"./cli-w5e1d1vv.js";
28
- import"./cli-ng1pmdx6.js";
26
+ import"./cli-erbp6b4g.js";
29
27
  import"./cli-zf8jjwex.js";
30
- import"./cli-wt7ccy4r.js";
28
+ import"./cli-gd4favx9.js";
29
+ import"./cli-ej6gbxfb.js";
30
+ import"./cli-d161g69q.js";
31
31
  import"./cli-bc05qbss.js";
32
32
 
33
33
  // src/be/memory/boot-reembed.ts
@@ -4,12 +4,12 @@ import {
4
4
  getDbClient,
5
5
  init_db1 as init_db,
6
6
  init_embeddings
7
- } from "./cli-74ez9b66.js";
8
- import"./cli-3qhyh31j.js";
9
- import"./cli-xvdgasgy.js";
10
- import"./cli-mxvnnv5q.js";
7
+ } from "./cli-0d2rqhvq.js";
8
+ import"./cli-ywm1azg9.js";
9
+ import"./cli-hsem16hb.js";
10
+ import"./cli-rrbctenq.js";
11
11
  import"./cli-7mm2r1kp.js";
12
- import"./cli-g5erf0zt.js";
12
+ import"./cli-e2prcx5m.js";
13
13
  import"./cli-dmtrxqhg.js";
14
14
  import"./cli-agamgm0p.js";
15
15
  import"./cli-5c2j5yvx.js";
@@ -18,14 +18,14 @@ import"./cli-tadfgd0t.js";
18
18
  import"./cli-ywybs5as.js";
19
19
  import"./cli-f9w1semm.js";
20
20
  import"./cli-a35hzdve.js";
21
- import"./cli-gd4favx9.js";
22
- import"./cli-ej6gbxfb.js";
23
21
  import"./cli-014vns2y.js";
24
22
  import"./cli-sd0mxa3c.js";
25
23
  import"./cli-w5e1d1vv.js";
26
- import"./cli-ng1pmdx6.js";
24
+ import"./cli-erbp6b4g.js";
27
25
  import"./cli-zf8jjwex.js";
28
- import"./cli-wt7ccy4r.js";
26
+ import"./cli-gd4favx9.js";
27
+ import"./cli-ej6gbxfb.js";
28
+ import"./cli-d161g69q.js";
29
29
  import"./cli-bc05qbss.js";
30
30
 
31
31
  // src/be/scripts/boot-reembed.ts