@desplega.ai/agent-swarm 1.131.1 → 1.134.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 (360) hide show
  1. package/README.md +3 -3
  2. package/dist/{actions-jgcy477k.js → actions-7kast243.js} +20 -18
  3. package/dist/{anthropic-messages-rjmd2e7n.js → anthropic-messages-706yad38.js} +33 -17
  4. package/dist/app-0g84t8wf.js +28 -0
  5. package/dist/{artifact-jysj3wrg.js → artifact-dje5ke4h.js} +37 -131
  6. package/dist/{assistant-f2vkk1hj.js → assistant-ac4htcky.js} +25 -22
  7. package/dist/{azure-openai-responses-c0yjmbfd.js → azure-openai-responses-be59fbsz.js} +13 -13
  8. package/dist/{boot-reembed-q7mp8hcr.js → boot-reembed-b1rcqn85.js} +13 -11
  9. package/dist/{boot-reembed-xmw8wcx6.js → boot-reembed-kw2541c4.js} +14 -12
  10. package/dist/{boot-scrub-logs-dsqrv79n.js → boot-scrub-logs-ja29t92g.js} +11 -9
  11. package/dist/{claude-adapter-q6x7yspx.js → claude-adapter-5cg1fv8s.js} +33 -29
  12. package/dist/{claude-managed-adapter-wsg37bt8.js → claude-managed-adapter-9z9sdytx.js} +9 -9
  13. package/dist/{claude-managed-setup-52z4mq9w.js → claude-managed-setup-3zqp51cr.js} +5 -5
  14. package/dist/{claude-1ex232fc.js → claude-wqn3dtca.js} +1 -1
  15. package/dist/{cli-4wgngmwv.js → cli-00w4hbam.js} +1 -1
  16. package/dist/{cli-er3a4bb0.js → cli-15429qdw.js} +6 -1
  17. package/dist/{cli-e5dabkx0.js → cli-1cwhyvta.js} +4 -4
  18. package/dist/{cli-zsspvvm2.js → cli-1ybr6vw2.js} +237 -237
  19. package/dist/{cli-xpxde7rm.js → cli-2wv4kj0e.js} +60 -31
  20. package/dist/cli-34w2584r.js +530 -0
  21. package/dist/{cli-se2p6rkb.js → cli-38taxznr.js} +6 -6
  22. package/dist/{cli-9sbhdpvb.js → cli-3cgfyfzm.js} +14 -14
  23. package/dist/{cli-5n6e5yfn.js → cli-3zmdzfjf.js} +79 -74
  24. package/dist/{cli-3ty0t082.js → cli-43x36mty.js} +197 -8
  25. package/dist/{cli-ycrnynpw.js → cli-480nehnh.js} +29 -22
  26. package/dist/{cli-0258203w.js → cli-492e7ap5.js} +140 -20
  27. package/dist/{cli-3fj60etf.js → cli-497b685t.js} +3 -3
  28. package/dist/{cli-pxfxkx5m.js → cli-4bap00k0.js} +1 -1
  29. package/dist/{cli-w2wxd56v.js → cli-4bc8vmhm.js} +848 -770
  30. package/dist/{cli-aca5pz9f.js → cli-589599p9.js} +1 -1
  31. package/dist/{cli-t930g0xh.js → cli-5tnr64pm.js} +1 -1
  32. package/dist/{cli-jxg3s9ey.js → cli-65d93ves.js} +7 -7
  33. package/dist/{cli-6dpytdr2.js → cli-6x363v1z.js} +2 -2
  34. package/dist/{cli-dxak0fqd.js → cli-787ph852.js} +11 -11
  35. package/dist/{cli-793jvbsh.js → cli-7bv8nckk.js} +16 -11
  36. package/dist/{cli-zyxs93y9.js → cli-7jcc9y1r.js} +3 -3
  37. package/dist/{cli-f1am9szv.js → cli-87t2gstf.js} +1 -1
  38. package/dist/{cli-9aryf9tv.js → cli-95m51ztz.js} +1 -1
  39. package/dist/{cli-4w4fmq9x.js → cli-9w49enmh.js} +2 -2
  40. package/dist/{cli-v69vk5h0.js → cli-9y5b02vr.js} +13 -13
  41. package/dist/{cli-x23me2mg.js → cli-a1rrkrb4.js} +1 -1
  42. package/dist/{cli-psrqtw2m.js → cli-a3pkfpqs.js} +2 -2
  43. package/dist/{cli-h0rgxd24.js → cli-a4ajmfvp.js} +6 -6
  44. package/dist/{cli-ygrbmjja.js → cli-aw8bb6sf.js} +6 -6
  45. package/dist/{cli-g74vpjp2.js → cli-brm3et47.js} +55 -22
  46. package/dist/{cli-czkae1fp.js → cli-c5ddbdfj.js} +9 -9
  47. package/dist/{cli-114fvtmj.js → cli-c79a9zrc.js} +1 -1
  48. package/dist/{cli-49n9f49x.js → cli-dx3dz0ms.js} +3 -3
  49. package/dist/{cli-6dp3ydxa.js → cli-e07exmsb.js} +18 -14
  50. package/dist/cli-et1bbwqf.js +13 -0
  51. package/dist/{cli-yazx6hap.js → cli-f3s9dry0.js} +14 -14
  52. package/dist/{cli-t8d349cy.js → cli-f4wj0s3m.js} +3 -3
  53. package/dist/{cli-d6n0thxw.js → cli-f64gdfxc.js} +1 -1
  54. package/dist/{cli-pwfsqc2x.js → cli-fyd58xgb.js} +55 -55
  55. package/dist/{cli-7dm2zqy2.js → cli-g0j14czv.js} +2 -2
  56. package/dist/{cli-b0p7rfnd.js → cli-g2p9bd1z.js} +14 -14
  57. package/dist/{cli-z905tvmm.js → cli-g814jbst.js} +2 -2
  58. package/dist/{cli-5dsbcjjw.js → cli-ghexzd2d.js} +970 -970
  59. package/dist/{cli-jvv0g8bh.js → cli-gpt9kf01.js} +15 -15
  60. package/dist/{cli-rgrfzg8z.js → cli-grt6qv91.js} +380 -380
  61. package/dist/{cli-wz9115x0.js → cli-gtafvdy0.js} +8 -8
  62. package/dist/{cli-q5dzzak0.js → cli-gy07xk4s.js} +2 -2
  63. package/dist/{cli-sy7jk3tx.js → cli-h0djenzm.js} +2 -2
  64. package/dist/{cli-nrkkknat.js → cli-h37gbjbf.js} +2 -281
  65. package/dist/{cli-jevgrb4w.js → cli-h39xxnq6.js} +1200 -491
  66. package/dist/{cli-gz9sbyk3.js → cli-jepmgn7r.js} +1 -1
  67. package/dist/{cli-ccf9vy7q.js → cli-jmvk6et8.js} +7 -7
  68. package/dist/{cli-2rk0cx7s.js → cli-jxj92gkt.js} +51 -41
  69. package/dist/{cli-bqw0mt1n.js → cli-k46t4664.js} +18 -3
  70. package/dist/{cli-50vbt00w.js → cli-m07313tr.js} +1153 -696
  71. package/dist/{cli-4j2mrzag.js → cli-mkq1rk7b.js} +1 -1
  72. package/dist/{cli-1z7048dy.js → cli-mnm7w46e.js} +1 -1
  73. package/dist/{cli-kd1ck4rx.js → cli-mp9sg4cg.js} +14 -8
  74. package/dist/{cli-jbcva0xj.js → cli-mrammd8c.js} +60 -35
  75. package/dist/cli-nanaxrz6.js +27 -0
  76. package/dist/{cli-p9swy5t3.js → cli-pq2ee5ja.js} +8 -6
  77. package/dist/{cli-2wadx7p2.js → cli-pt43pdp1.js} +2 -2
  78. package/dist/{cli-7sgrxg9a.js → cli-q6d0vvey.js} +4 -4
  79. package/dist/{cli-k9qkf1hw.js → cli-qf9kpsve.js} +9 -9
  80. package/dist/cli-qh4sqfws.js +15 -0
  81. package/dist/{cli-e15jhafb.js → cli-qntkxysp.js} +14 -14
  82. package/dist/{cli-sajgpkqg.js → cli-qs9hhsvb.js} +1723 -325
  83. package/dist/{cli-z2zcxes1.js → cli-qt5bt3vk.js} +1 -1
  84. package/dist/{cli-wx82tw1k.js → cli-qtekrty1.js} +3 -3
  85. package/dist/{cli-g1re8r05.js → cli-rh6f3s9n.js} +3 -3
  86. package/dist/{cli-n0krnc6d.js → cli-rzhcrw2p.js} +2 -2
  87. package/dist/{cli-gecy3z2s.js → cli-snw62ze5.js} +4 -4
  88. package/dist/{cli-n6h8qt8n.js → cli-snz3p4yf.js} +15 -10
  89. package/dist/{cli-r6kqqbj0.js → cli-tkf8n6cw.js} +11 -11
  90. package/dist/{cli-4rkfg1wx.js → cli-tkrr24mz.js} +14 -9
  91. package/dist/{cli-9dr5qzc0.js → cli-tv9f1kyb.js} +54 -43
  92. package/dist/{cli-gm9cbhbq.js → cli-vtz6yj3v.js} +28 -9
  93. package/dist/{cli-2f07m0xr.js → cli-wf86d5t7.js} +1 -1
  94. package/dist/{cli-7zd05xb4.js → cli-whrvct19.js} +45 -45
  95. package/dist/{cli-ap1czx8f.js → cli-wrrea8xm.js} +3 -3
  96. package/dist/{cli-57khth04.js → cli-xmyqv00z.js} +120 -4
  97. package/dist/{cli-cwy5hqbq.js → cli-yjmk7tzc.js} +1 -1
  98. package/dist/{cli-6pcz9h15.js → cli-zykjrwcx.js} +180 -394
  99. package/dist/cli.js +45 -45
  100. package/dist/{codex-adapter-htjkn22b.js → codex-adapter-hsq6mz3m.js} +21 -19
  101. package/dist/{codex-hook-hq54t9ft.js → codex-hook-8c500gq8.js} +8 -7
  102. package/dist/{codex-login-z6yhbkmk.js → codex-login-x7603481.js} +3 -3
  103. package/dist/{codex-session-runner-wjfc7smz.js → codex-session-runner-c1x3x143.js} +15 -13
  104. package/dist/{commands-xhrfwqsk.js → commands-rwtddtst.js} +11 -9
  105. package/dist/{db-anvwb22f.js → db-j2b355vz.js} +458 -444
  106. package/dist/{devin-adapter-v1sarqtw.js → devin-adapter-8qmhqpy3.js} +3 -3
  107. package/dist/{devtools-2y1r7yqk.js → devtools-j2rnj8w7.js} +4 -4
  108. package/dist/{e2b-jdkwemv2.js → e2b-znpx78eg.js} +16 -16
  109. package/dist/{es5-vjgtkgp6.js → es5-fmqrjzy3.js} +2 -2
  110. package/dist/{event-bus-axn823e9.js → event-bus-n8sb35pw.js} +4 -4
  111. package/dist/{getMachineId-bsd-6tc9wxdj.js → getMachineId-bsd-wpzbhkm6.js} +4 -4
  112. package/dist/{getMachineId-darwin-sjt9sgnc.js → getMachineId-darwin-45zabjy0.js} +4 -4
  113. package/dist/{getMachineId-linux-v5n18y9p.js → getMachineId-linux-warnp5pd.js} +3 -3
  114. package/dist/{getMachineId-unsupported-yrjyqw3d.js → getMachineId-unsupported-5spent2a.js} +3 -3
  115. package/dist/{getMachineId-win-w3r8063c.js → getMachineId-win-v4bvcw7a.js} +4 -4
  116. package/dist/{google-generative-ai-hysrd8qx.js → google-generative-ai-b0wzss55.js} +17 -14
  117. package/dist/{google-vertex-p5arrga0.js → google-vertex-e8q4dpya.js} +18 -15
  118. package/dist/{handlers-b9kbc621.js → handlers-hchgrxkh.js} +32 -29
  119. package/dist/{hook-xkvn6c5h.js → hook-p49egqc0.js} +66 -52
  120. package/dist/hook-spb00w76.js +34 -0
  121. package/dist/{http-9xh6ta4r.js → http-nh14kkms.js} +663 -181
  122. package/dist/index-1qthq7vc.js +6 -0
  123. package/dist/{index-0g68f0p6.js → index-20xqmn3v.js} +3 -3
  124. package/dist/{index-vdkr5z2w.js → index-3e03k6e4.js} +114 -114
  125. package/dist/{index-ywds4812.js → index-4cbyhq2g.js} +43 -41
  126. package/dist/index-67pzqfrb.js +36 -0
  127. package/dist/{index-bccrkdkn.js → index-7m8yxkw5.js} +16 -16
  128. package/dist/{index-eaxyqcmj.js → index-dvsk64sm.js} +163 -83
  129. package/dist/{index-dqkpnmqm.js → index-e19s2m8k.js} +18 -18
  130. package/dist/{index-j30k5zxn.js → index-emvxcy98.js} +16 -16
  131. package/dist/{index-7ndw6ecy.js → index-gqnmr60d.js} +9 -9
  132. package/dist/{index-9znhar3x.js → index-j02xvjtd.js} +184 -185
  133. package/dist/{index-1s2442yw.js → index-ns5kksc1.js} +7 -7
  134. package/dist/{index-dpy2hth8.js → index-pdxc8kfh.js} +71 -71
  135. package/dist/{index-z1m7pw0v.js → index-ptcqm8bc.js} +107 -107
  136. package/dist/{index-070v4eyb.js → index-pyp7rexm.js} +5 -6
  137. package/dist/{index-86znjz1p.js → index-shne41sd.js} +13 -13
  138. package/dist/{index-2qn2qndv.js → index-t36q2v4t.js} +183 -183
  139. package/dist/index-tcnvv8w6.js +7 -0
  140. package/dist/index-w91qbfv1.js +7 -0
  141. package/dist/{index-fzc0mwvj.js → index-yqweff5n.js} +32 -32
  142. package/dist/index-yrfphye1.js +39 -0
  143. package/dist/{keepalive-vc7s2aa6.js → keepalive-9k51nqhc.js} +21 -15
  144. package/dist/lead-2xq3dxbz.js +88 -0
  145. package/dist/maintenance-0c0g6nym.js +28 -0
  146. package/dist/mistral-conversations-2njwdwhj.js +717 -0
  147. package/dist/{multipart-parser-qaktc7p8.js → multipart-parser-6gftesw0.js} +2 -2
  148. package/dist/{oauth-refresh-sweep-yecgjpk4.js → oauth-refresh-sweep-273a64r2.js} +14 -12
  149. package/dist/{onboard-xj0f73f9.js → onboard-tsv9wwhz.js} +12 -12
  150. package/dist/{openai-codex-responses-5g27pd6f.js → openai-codex-responses-kt84eq86.js} +26 -26
  151. package/dist/{openai-completions-3vkmfz2a.js → openai-completions-mrypq7qp.js} +17 -16
  152. package/dist/{openai-responses-dg4t7j7a.js → openai-responses-qhrk21ez.js} +20 -17
  153. package/dist/{opencode-adapter-1gm38aba.js → opencode-adapter-rar9676j.js} +13 -11
  154. package/dist/{openrouter-images-g3gm8931.js → openrouter-images-684fysx9.js} +5 -5
  155. package/dist/{otel-impl-nxg0n0b3.js → otel-impl-wp1mfzd2.js} +752 -537
  156. package/dist/{photon_rs-ky7dj5qw.js → photon_rs-8dwt2pzy.js} +581 -581
  157. package/dist/{pi-messages-tqj8q6b9.js → pi-messages-txp9f97r.js} +7 -7
  158. package/dist/{pi-mono-adapter-4g5kby31.js → pi-mono-adapter-yz47kk8e.js} +1910 -1180
  159. package/dist/pricing-refresh-jw1yw2fn.js +22 -0
  160. package/dist/rbac-roles-dg964c8p.js +32 -0
  161. package/dist/{rbac-roles-1hcxdtg7.js → rbac-roles-p53cg5cv.js} +19 -17
  162. package/dist/{registry-02cy9z5z.js → registry-mh12y17v.js} +4 -4
  163. package/dist/render-v2-56vn2rk9.js +36 -0
  164. package/dist/seed-pricing-52xx6z63.js +19 -0
  165. package/dist/{setup-46xtgq3c.js → setup-e8gp79sy.js} +7 -7
  166. package/dist/token-util-zy908s1a.js +6 -0
  167. package/dist/{token-fxkn2zf2.js → token-xg5711x5.js} +4 -4
  168. package/dist/worker-s17f1g46.js +88 -0
  169. package/dist/{x-6mg4kfpe.js → x-xkfh0w0v.js} +5 -5
  170. package/openapi.json +566 -22
  171. package/package.json +6 -6
  172. package/src/be/budget-refusal-notify.ts +14 -7
  173. package/src/be/db-queries/task-artifacts.ts +182 -0
  174. package/src/be/db.ts +834 -171
  175. package/src/be/events.ts +5 -0
  176. package/src/be/migrations/131_session_logs_created_at_index.sql +2 -0
  177. package/src/be/migrations/132_multi_runtime_instances.sql +44 -0
  178. package/src/be/migrations/133_workflow_run_trigger_type.sql +12 -0
  179. package/src/be/migrations/135_backfill_task_pull_request_attachments.sql +228 -0
  180. package/src/be/migrations/136_task_requester_provenance.sql +37 -0
  181. package/src/be/migrations/137_memory_retrieval_composite_index.sql +1 -0
  182. package/src/be/migrations/runner.ts +17 -11
  183. package/src/be/multi-runtime.ts +430 -0
  184. package/src/be/scripts/extract-schema.ts +3 -1
  185. package/src/be/scripts/typecheck.ts +6 -2
  186. package/src/be/seed-prompt-templates.ts +25 -2
  187. package/src/be/seed-skills/index.ts +7 -0
  188. package/src/be/steering.ts +1 -1
  189. package/src/be/swarm-config-guard.ts +18 -0
  190. package/src/commands/credential-wait.ts +54 -0
  191. package/src/commands/onboard/steps/core-credentials.tsx +1 -1
  192. package/src/commands/onboard/steps/custom-templates.tsx +1 -1
  193. package/src/commands/onboard/steps/harness-credentials.tsx +1 -1
  194. package/src/commands/onboard/steps/health-check.tsx +1 -1
  195. package/src/commands/onboard/steps/start.tsx +1 -1
  196. package/src/commands/profile-sync-audit.ts +56 -0
  197. package/src/commands/profile-sync.ts +287 -15
  198. package/src/commands/provider-credentials.ts +46 -19
  199. package/src/commands/runner.ts +199 -33
  200. package/src/commands/templates.ts +22 -0
  201. package/src/github/handlers.ts +55 -9
  202. package/src/heartbeat/heartbeat.ts +109 -17
  203. package/src/hooks/hook.ts +49 -33
  204. package/src/http/active-sessions.ts +11 -1
  205. package/src/http/agents.ts +261 -30
  206. package/src/http/all-routes.ts +1 -0
  207. package/src/http/config.ts +13 -2
  208. package/src/http/core.ts +102 -4
  209. package/src/http/db-query-bounded.ts +313 -0
  210. package/src/http/db-query-shared.ts +249 -0
  211. package/src/http/db-query.ts +54 -42
  212. package/src/http/events.ts +2 -0
  213. package/src/http/index.ts +23 -2
  214. package/src/http/mcp-bridge.ts +37 -3
  215. package/src/http/mcp.ts +12 -0
  216. package/src/http/memory.ts +13 -2
  217. package/src/http/openapi.ts +1 -0
  218. package/src/http/poll.ts +70 -27
  219. package/src/http/prompt-templates.ts +36 -13
  220. package/src/http/route-def.ts +43 -9
  221. package/src/http/schedules.ts +2 -2
  222. package/src/http/scripts.ts +10 -1
  223. package/src/http/session-data.ts +44 -0
  224. package/src/http/tasks.ts +2 -2
  225. package/src/http/users.ts +74 -52
  226. package/src/http/webhooks.ts +5 -2
  227. package/src/http/workflows.ts +1 -4
  228. package/src/integrations/kapso/inbound.ts +1 -1
  229. package/src/jira/outbound.ts +39 -8
  230. package/src/jira/webhook-lifecycle.ts +13 -2
  231. package/src/linear/outbound.ts +43 -10
  232. package/src/oauth/keepalive.ts +13 -2
  233. package/src/prompts/base-prompt.ts +1 -1
  234. package/src/prompts/default-drift.ts +21 -0
  235. package/src/prompts/session-templates.ts +56 -7
  236. package/src/providers/claude-adapter.ts +6 -0
  237. package/src/providers/codex-adapter.ts +6 -0
  238. package/src/providers/opencode-adapter.ts +6 -0
  239. package/src/providers/pi-mono-adapter.ts +8 -0
  240. package/src/providers/pricing-sources.md +24 -0
  241. package/src/queue-stall-alarm.ts +216 -0
  242. package/src/rbac/legacy-policy.ts +3 -0
  243. package/src/rbac/permissions.ts +12 -0
  244. package/src/scheduler/scheduler.ts +7 -0
  245. package/src/script-workflows/executor.ts +2 -1
  246. package/src/scripts-runtime/executors/native.ts +2 -1
  247. package/src/scripts-runtime/executors/types.ts +5 -0
  248. package/src/scripts-runtime/loader.ts +5 -0
  249. package/src/scripts-runtime/sdk-allowlist.ts +3 -0
  250. package/src/scripts-runtime/swarm-config.ts +8 -0
  251. package/src/scripts-runtime/swarm-sdk.ts +7 -0
  252. package/src/scripts-runtime/types/stdlib.d.ts +4 -0
  253. package/src/scripts-runtime/types/swarm-sdk.d.ts +4 -0
  254. package/src/server.ts +6 -0
  255. package/src/slack/channel-join.ts +22 -3
  256. package/src/slack/channel-lifecycle.ts +114 -0
  257. package/src/tests/budget-claim-gate.test.ts +20 -0
  258. package/src/tests/claude-adapter.test.ts +32 -0
  259. package/src/tests/codex-adapter.test.ts +30 -0
  260. package/src/tests/create-task-validation.test.ts +128 -0
  261. package/src/tests/credential-wait.test.ts +67 -1
  262. package/src/tests/db-query.test.ts +711 -2
  263. package/src/tests/heartbeat-checklist.test.ts +28 -0
  264. package/src/tests/http-api-integration.test.ts +81 -0
  265. package/src/tests/http-users.test.ts +166 -1
  266. package/src/tests/identity-field-budget.test.ts +176 -0
  267. package/src/tests/mcp-tools-user.test.ts +34 -0
  268. package/src/tests/mcp-user-route.test.ts +17 -0
  269. package/src/tests/metrics-http.test.ts +44 -0
  270. package/src/tests/migration-failure.test.ts +86 -0
  271. package/src/tests/multi-runtime-registration.test.ts +2810 -0
  272. package/src/tests/openapi-response-contract.test.ts +24 -0
  273. package/src/tests/openapi-route-headers.test.ts +83 -0
  274. package/src/tests/opencode-adapter.test.ts +40 -0
  275. package/src/tests/outbound-listener-rejection.test.ts +138 -0
  276. package/src/tests/pi-mono-adapter.test.ts +98 -0
  277. package/src/tests/preload.ts +2 -0
  278. package/src/tests/profile-sync-warning.test.ts +277 -0
  279. package/src/tests/profile-sync.test.ts +232 -6
  280. package/src/tests/prompt-template-resolver.test.ts +177 -6
  281. package/src/tests/prompt-template-session.test.ts +39 -3
  282. package/src/tests/queue-stall-alarm.test.ts +226 -0
  283. package/src/tests/rbac-charact-slack.test.ts +29 -0
  284. package/src/tests/rbac-engine.test.ts +3 -0
  285. package/src/tests/requester-comms.test.ts +32 -0
  286. package/src/tests/runner-requester-profile.test.ts +38 -0
  287. package/src/tests/schedule-target-type.test.ts +38 -0
  288. package/src/tests/script-connections.test.ts +13 -1
  289. package/src/tests/scripts-runtime-identity.test.ts +375 -0
  290. package/src/tests/scripts-runtime.test.ts +4 -3
  291. package/src/tests/sdk-allowlist.test.ts +47 -0
  292. package/src/tests/send-task-requested-by.test.ts +9 -0
  293. package/src/tests/session-costs.test.ts +506 -1
  294. package/src/tests/shutdown-error-scrubbing.test.ts +92 -0
  295. package/src/tests/slack-channel-lifecycle.test.ts +241 -0
  296. package/src/tests/slack-render-v2.test.ts +43 -0
  297. package/src/tests/steering-core.test.ts +28 -0
  298. package/src/tests/swarm-config-reserved-keys.test.ts +22 -0
  299. package/src/tests/task-artifacts.test.ts +386 -0
  300. package/src/tests/task-attachments-schema.test.ts +17 -1
  301. package/src/tests/task-completion-idempotency.test.ts +57 -0
  302. package/src/tests/task-pull-request-backfill-migration.test.ts +321 -0
  303. package/src/tests/tool-annotations.test.ts +4 -0
  304. package/src/tests/update-profile-api.test.ts +67 -39
  305. package/src/tests/update-profile-auth.test.ts +48 -4
  306. package/src/tests/user-attribution-migration.test.ts +54 -0
  307. package/src/tests/user-identity.test.ts +72 -0
  308. package/src/tests/workflow-async-v2.test.ts +39 -1
  309. package/src/tests/workflow-http-v2.test.ts +3 -2
  310. package/src/tests/workflow-mcp-trigger-schema.test.ts +52 -3
  311. package/src/tests/workflow-retry-v2.test.ts +45 -1
  312. package/src/tools/db-query.ts +18 -8
  313. package/src/tools/get-task-details.ts +24 -3
  314. package/src/tools/manage-user.ts +36 -3
  315. package/src/tools/poll-task.ts +93 -14
  316. package/src/tools/script-common.ts +5 -0
  317. package/src/tools/send-task.ts +1 -4
  318. package/src/tools/slack-archive-channel.ts +70 -0
  319. package/src/tools/slack-create-channel.ts +74 -0
  320. package/src/tools/slack-invite-to-channel.ts +78 -0
  321. package/src/tools/store-progress.ts +13 -2
  322. package/src/tools/swarm-config/delete-config.ts +9 -0
  323. package/src/tools/swarm-config/set-config.ts +3 -2
  324. package/src/tools/task-action.ts +30 -0
  325. package/src/tools/task-tool-ctx.ts +8 -1
  326. package/src/tools/tool-config.ts +4 -1
  327. package/src/tools/update-profile.ts +16 -21
  328. package/src/tools/utils.ts +5 -0
  329. package/src/tools/workflows/trigger-workflow.ts +7 -1
  330. package/src/types.ts +165 -1
  331. package/src/utils/github-pull-request.ts +76 -0
  332. package/src/utils/identity-field-budget.ts +73 -0
  333. package/src/utils/multi-runtime.ts +20 -0
  334. package/src/utils/requester-comms.ts +24 -0
  335. package/src/workflows/engine.ts +22 -2
  336. package/src/workflows/resume.ts +19 -11
  337. package/src/workflows/retry-poller.ts +1 -0
  338. package/src/workflows/triggers.ts +4 -0
  339. package/templates/skills/db-query-guidance/config.json +14 -0
  340. package/templates/skills/db-query-guidance/content.md +57 -0
  341. package/dist/app-5da78bd4.js +0 -26
  342. package/dist/cli-3te4jdkm.js +0 -225
  343. package/dist/cli-bmze986d.js +0 -7
  344. package/dist/cli-kh3ba2zf.js +0 -607
  345. package/dist/hook-cgk4wxmx.js +0 -31
  346. package/dist/index-25wjsdv2.js +0 -34
  347. package/dist/index-76at2ymp.js +0 -7
  348. package/dist/index-hase6zbe.js +0 -6
  349. package/dist/index-vg4snay4.js +0 -36
  350. package/dist/index-vy8edt27.js +0 -7
  351. package/dist/lead-r2yqfmx7.js +0 -85
  352. package/dist/maintenance-mw70k468.js +0 -26
  353. package/dist/mistral-conversations-81fwav0j.js +0 -30578
  354. package/dist/otel-nqa12wf3.js +0 -3149
  355. package/dist/pricing-refresh-2cn6effr.js +0 -20
  356. package/dist/rbac-roles-vynday5g.js +0 -30
  357. package/dist/render-v2-tc0bh8kk.js +0 -34
  358. package/dist/seed-pricing-8kceb43f.js +0 -17
  359. package/dist/token-util-pqyc8kng.js +0 -6
  360. package/dist/worker-qrbz6hmv.js +0 -85
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __esm
3
- } from "./cli-p9swy5t3.js";
3
+ } from "./cli-pq2ee5ja.js";
4
4
 
5
5
  // src/utils/secret-scrubber.ts
6
6
  function snapshotEnv() {
@@ -3,7 +3,7 @@ import {
3
3
  registerVolatileSecret,
4
4
  scrubObject,
5
5
  scrubSecrets
6
- } from "./cli-4j2mrzag.js";
6
+ } from "./cli-mkq1rk7b.js";
7
7
 
8
8
  // src/x/composio.ts
9
9
  init_secret_scrubber();
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  runStopHookSessionSummarySubprocess
3
- } from "./cli-2rk0cx7s.js";
3
+ } from "./cli-jxj92gkt.js";
4
4
  import {
5
5
  SessionErrorTracker,
6
6
  buildOtelTraceparentEnv,
7
7
  isHarnessOtelEnabled,
8
8
  parseStderrForErrors,
9
9
  trackErrorFromJson
10
- } from "./cli-psrqtw2m.js";
10
+ } from "./cli-a3pkfpqs.js";
11
11
  import {
12
12
  fetchInstalledMcpServers
13
13
  } from "./cli-tng3131n.js";
@@ -23,20 +23,23 @@ import {
23
23
  import {
24
24
  applyReasoningEffort
25
25
  } from "./cli-8whqavk2.js";
26
+ import {
27
+ swarmRuntimeInstanceId
28
+ } from "./cli-qh4sqfws.js";
26
29
  import {
27
30
  require_src
28
- } from "./cli-7zd05xb4.js";
31
+ } from "./cli-whrvct19.js";
29
32
  import {
30
33
  init_credentials,
31
34
  validateClaudeCredentials
32
- } from "./cli-z2zcxes1.js";
35
+ } from "./cli-qt5bt3vk.js";
33
36
  import {
34
37
  init_secret_scrubber,
35
38
  scrubSecrets
36
- } from "./cli-4j2mrzag.js";
39
+ } from "./cli-mkq1rk7b.js";
37
40
  import {
38
41
  __toESM
39
- } from "./cli-p9swy5t3.js";
42
+ } from "./cli-pq2ee5ja.js";
40
43
 
41
44
  // src/providers/claude-adapter.ts
42
45
  var import_api = __toESM(require_src(), 1);
@@ -179,7 +182,7 @@ async function preseedClaudeTrustDialog(cwd, homeDir = process.env.HOME ?? homed
179
182
  `);
180
183
  console.log(`\x1B[2m[claude]\x1B[0m Pre-seeded trust dialog acceptance for ${cwd} in ${claudeJsonPath}`);
181
184
  }
182
- function mergeMcpConfig(baseConfig, installedServers, taskId, contextKey) {
185
+ function mergeMcpConfig(baseConfig, installedServers, taskId, contextKey, runtimeInstanceId) {
183
186
  const config = {
184
187
  mcpServers: { ...baseConfig?.mcpServers ?? {} }
185
188
  };
@@ -197,6 +200,9 @@ function mergeMcpConfig(baseConfig, installedServers, taskId, contextKey) {
197
200
  if (contextKey) {
198
201
  server.headers["X-Context-Key"] = contextKey;
199
202
  }
203
+ if (runtimeInstanceId) {
204
+ server.headers["X-Runtime-Instance-ID"] = runtimeInstanceId;
205
+ }
200
206
  }
201
207
  return config;
202
208
  }
@@ -231,7 +237,7 @@ async function createSessionMcpConfig(cwd, taskId, installedServers, contextKey)
231
237
  mergedServers["plugin_context-mode_context-mode"] = { command: "context-mode" };
232
238
  }
233
239
  try {
234
- const config = mergeMcpConfig({ mcpServers: mergedServers }, installedServers ?? null, taskId, contextKey);
240
+ const config = mergeMcpConfig({ mcpServers: mergedServers }, installedServers ?? null, taskId, contextKey, swarmRuntimeInstanceId());
235
241
  const sessionConfigPath = `/tmp/mcp-${taskId}.json`;
236
242
  await writeFile(sessionConfigPath, JSON.stringify(config, null, 2));
237
243
  return sessionConfigPath;
@@ -18,10 +18,10 @@ import {
18
18
  sandboxSpawnEnv,
19
19
  snapshotCapped,
20
20
  touchScratchScriptLastUsed
21
- } from "./cli-6dp3ydxa.js";
21
+ } from "./cli-e07exmsb.js";
22
22
  import {
23
23
  withSiblingAwareness
24
- } from "./cli-2f07m0xr.js";
24
+ } from "./cli-wf86d5t7.js";
25
25
  import {
26
26
  FollowUpConfigSchema,
27
27
  ModelTierSchema,
@@ -66,34 +66,35 @@ import {
66
66
  updateWorkflowRun,
67
67
  updateWorkflowRunStep,
68
68
  workflowContextKey
69
- } from "./cli-50vbt00w.js";
69
+ } from "./cli-m07313tr.js";
70
70
  import {
71
71
  deepInterpolate,
72
72
  findInterpolationTokens,
73
73
  init_template,
74
74
  interpolate
75
- } from "./cli-xpxde7rm.js";
75
+ } from "./cli-2wv4kj0e.js";
76
76
  import {
77
77
  getAppUrl,
78
78
  init_constants
79
- } from "./cli-x23me2mg.js";
79
+ } from "./cli-a1rrkrb4.js";
80
80
  import {
81
81
  init_zod
82
- } from "./cli-zsspvvm2.js";
82
+ } from "./cli-1ybr6vw2.js";
83
83
  import {
84
84
  init_secret_scrubber,
85
- isSensitiveKey
86
- } from "./cli-4j2mrzag.js";
85
+ isSensitiveKey,
86
+ scrubSecrets
87
+ } from "./cli-mkq1rk7b.js";
87
88
  import {
88
89
  exports_external
89
- } from "./cli-5dsbcjjw.js";
90
+ } from "./cli-ghexzd2d.js";
90
91
  import {
91
92
  init_event_bus,
92
93
  workflowEventBus
93
- } from "./cli-9aryf9tv.js";
94
+ } from "./cli-95m51ztz.js";
94
95
  import {
95
96
  __require
96
- } from "./cli-p9swy5t3.js";
97
+ } from "./cli-pq2ee5ja.js";
97
98
 
98
99
  // src/workflows/definition.ts
99
100
  function getNextTargets(next) {
@@ -849,7 +850,13 @@ async function startWorkflowExecution(workflow, triggerData, registry, options =
849
850
  }
850
851
  if (workflow.cooldown && shouldSkipCooldown(workflow.id, workflow.cooldown)) {
851
852
  const runId2 = crypto.randomUUID();
852
- createWorkflowRun({ id: runId2, workflowId: workflow.id, triggerData });
853
+ createWorkflowRun({
854
+ id: runId2,
855
+ workflowId: workflow.id,
856
+ triggerType: options.triggerType ?? "manual",
857
+ triggerData,
858
+ createdBy: options.requestedByUserId
859
+ });
853
860
  updateWorkflowRun(runId2, {
854
861
  status: "skipped",
855
862
  error: "cooldown",
@@ -858,7 +865,13 @@ async function startWorkflowExecution(workflow, triggerData, registry, options =
858
865
  return runId2;
859
866
  }
860
867
  const runId = crypto.randomUUID();
861
- createWorkflowRun({ id: runId, workflowId: workflow.id, triggerData });
868
+ createWorkflowRun({
869
+ id: runId,
870
+ workflowId: workflow.id,
871
+ triggerType: options.triggerType ?? "manual",
872
+ triggerData,
873
+ createdBy: options.requestedByUserId
874
+ });
862
875
  telemetry.workflow("started", {
863
876
  workflowId: workflow.id,
864
877
  nodeCount: workflow.definition.nodes.length,
@@ -890,6 +903,12 @@ async function startWorkflowExecution(workflow, triggerData, registry, options =
890
903
  return runId;
891
904
  }
892
905
  async function walkGraph(def, runId, ctx, startNodes, registry, workflowId, secretKeys = new Set, options = {}) {
906
+ if (!options.requestedByUserId) {
907
+ options = {
908
+ ...options,
909
+ requestedByUserId: getWorkflowRun(runId)?.createdBy
910
+ };
911
+ }
893
912
  let nodeExecutionCount = 0;
894
913
  if (!("run" in ctx)) {
895
914
  ctx.run = { id: runId };
@@ -1320,6 +1339,7 @@ var FAILED_TASK_OUTPUT_PREFIX = "[FAILED:";
1320
1339
 
1321
1340
  // src/workflows/resume.ts
1322
1341
  init_db();
1342
+ init_secret_scrubber();
1323
1343
  init_event_bus();
1324
1344
 
1325
1345
  // src/workflows/executors/wait.ts
@@ -1669,40 +1689,40 @@ function completeTaskStepAndResolveSuccessors(def, runId, step, output, ctx, fai
1669
1689
  // src/workflows/resume.ts
1670
1690
  function setupWorkflowResumeListener(eventBus, registry) {
1671
1691
  eventBus.on("task.completed", async (data) => {
1672
- const event = data;
1673
- if (!event.workflowRunId || !event.workflowRunStepId)
1674
- return;
1675
1692
  try {
1693
+ const event = data;
1694
+ if (!event.workflowRunId || !event.workflowRunStepId)
1695
+ return;
1676
1696
  await resumeFromTaskCompletion(event, registry);
1677
1697
  } catch (err) {
1678
1698
  console.error("[workflows] Resume from task completion failed:", err);
1679
1699
  }
1680
1700
  });
1681
1701
  eventBus.on("task.failed", async (data) => {
1682
- const event = data;
1683
- if (!event.workflowRunId || !event.workflowRunStepId)
1684
- return;
1685
1702
  try {
1703
+ const event = data;
1704
+ if (!event.workflowRunId || !event.workflowRunStepId)
1705
+ return;
1686
1706
  await handleTaskFailure(event, event.failureReason ?? "Task failed", registry);
1687
1707
  } catch (err) {
1688
1708
  console.error("[workflows] Handle task failure error:", err);
1689
1709
  }
1690
1710
  });
1691
1711
  eventBus.on("task.cancelled", async (data) => {
1692
- const event = data;
1693
- if (!event.workflowRunId || !event.workflowRunStepId)
1694
- return;
1695
1712
  try {
1713
+ const event = data;
1714
+ if (!event.workflowRunId || !event.workflowRunStepId)
1715
+ return;
1696
1716
  await handleTaskFailure(event, "Task was cancelled", registry);
1697
1717
  } catch (err) {
1698
1718
  console.error("[workflows] Handle task cancellation error:", err);
1699
1719
  }
1700
1720
  });
1701
1721
  eventBus.on("approval.resolved", async (data) => {
1702
- const event = data;
1703
- if (!event.workflowRunId || !event.workflowRunStepId)
1704
- return;
1705
1722
  try {
1723
+ const event = data;
1724
+ if (!event.workflowRunId || !event.workflowRunStepId)
1725
+ return;
1706
1726
  await resumeFromApprovalResolution(event, registry);
1707
1727
  } catch (err) {
1708
1728
  console.error("[workflows] Resume from approval resolution failed:", err);
@@ -1967,7 +1987,9 @@ function registerWait(waitId, eventName) {
1967
1987
  set.add(waitId);
1968
1988
  if (!listenersByEvent.has(eventName)) {
1969
1989
  const listener = (data) => {
1970
- processBusEvent(eventName, data);
1990
+ processBusEvent(eventName, data).catch((err) => {
1991
+ console.error(`[workflows] Wait bus listener failed for event=${eventName}:`, scrubSecrets(err instanceof Error ? err.message : String(err)));
1992
+ });
1971
1993
  };
1972
1994
  listenersByEvent.set(eventName, listener);
1973
1995
  workflowEventBus.on(eventName, listener);
@@ -2255,6 +2277,7 @@ function startRetryPoller(registry, intervalMs = 5000) {
2255
2277
  nodeId: step.nodeId,
2256
2278
  workflowId: workflow.id,
2257
2279
  dryRun: false,
2280
+ requestedByUserId: run.createdBy,
2258
2281
  inputCtx
2259
2282
  };
2260
2283
  try {
@@ -2470,7 +2493,8 @@ async function handleWebhookTrigger(workflowId, payload, headers, registry, opti
2470
2493
  }
2471
2494
  const triggerData = parseTriggerPayload(payload);
2472
2495
  const runId = await startWorkflowExecution(workflow, triggerData, registry, {
2473
- triggerType: "event"
2496
+ triggerType: "event",
2497
+ requestedByUserId: options.requestedByUserId
2474
2498
  });
2475
2499
  return { runId };
2476
2500
  }
@@ -2505,7 +2529,8 @@ async function handleScheduleTrigger(scheduleId, schedule, registry) {
2505
2529
  firedAt: new Date().toISOString()
2506
2530
  };
2507
2531
  const runId = await startWorkflowExecution(workflow, triggerData, registry, {
2508
- triggerType: "schedule"
2532
+ triggerType: "schedule",
2533
+ requestedByUserId: schedule.createdBy
2509
2534
  });
2510
2535
  runIds.push(runId);
2511
2536
  console.log(`[Triggers] Schedule "${schedule.name}" triggered workflow "${workflow.name}" (run: ${runId})`);
@@ -3094,7 +3119,7 @@ class HumanInTheLoopExecutor extends BaseExecutor {
3094
3119
  }
3095
3120
  if (notification.channel === "slack") {
3096
3121
  try {
3097
- const { getSlackApp } = await import("./app-5da78bd4.js");
3122
+ const { getSlackApp } = await import("./app-0g84t8wf.js");
3098
3123
  const slackApp = getSlackApp();
3099
3124
  if (!slackApp) {
3100
3125
  console.warn("[HITL] Slack not initialized — cannot send notification");
@@ -3210,7 +3235,7 @@ class NotifyExecutor extends BaseExecutor {
3210
3235
  }
3211
3236
  }
3212
3237
  case "slack": {
3213
- const { getSlackApp } = await import("./app-5da78bd4.js");
3238
+ const { getSlackApp } = await import("./app-0g84t8wf.js");
3214
3239
  const app = getSlackApp();
3215
3240
  if (!app) {
3216
3241
  return {
@@ -3335,14 +3360,14 @@ var RawLlmOutputSchema = exports_external.object({
3335
3360
  async function executeRawLlm(config) {
3336
3361
  const modelName = config.model ?? "google/gemini-3-flash-preview";
3337
3362
  try {
3338
- const { createOpenAI } = await import("./index-070v4eyb.js");
3363
+ const { createOpenAI } = await import("./index-pyp7rexm.js");
3339
3364
  const openrouter = createOpenAI({
3340
3365
  baseURL: getOpenRouterBaseUrl(),
3341
3366
  apiKey: process.env.OPENROUTER_API_KEY
3342
3367
  });
3343
3368
  const model = openrouter(modelName);
3344
3369
  if (config.schema) {
3345
- const { generateObject, jsonSchema } = await import("./index-9znhar3x.js");
3370
+ const { generateObject, jsonSchema } = await import("./index-j02xvjtd.js");
3346
3371
  const { object } = await generateObject({
3347
3372
  model,
3348
3373
  schema: jsonSchema(config.schema),
@@ -3356,7 +3381,7 @@ async function executeRawLlm(config) {
3356
3381
  output: { result: object, model: modelName }
3357
3382
  };
3358
3383
  }
3359
- const { generateText } = await import("./index-9znhar3x.js");
3384
+ const { generateText } = await import("./index-j02xvjtd.js");
3360
3385
  const { text } = await generateText({
3361
3386
  model,
3362
3387
  prompt: config.prompt
@@ -3789,8 +3814,8 @@ class ValidateExecutor extends BaseExecutor {
3789
3814
  const interpolatedPrompt = this.deps.interpolate(prompt, context);
3790
3815
  const outputStr = typeof targetOutput === "string" ? targetOutput : JSON.stringify(targetOutput);
3791
3816
  try {
3792
- const { createOpenAI } = await import("./index-070v4eyb.js");
3793
- const { generateObject, jsonSchema } = await import("./index-9znhar3x.js");
3817
+ const { createOpenAI } = await import("./index-pyp7rexm.js");
3818
+ const { generateObject, jsonSchema } = await import("./index-j02xvjtd.js");
3794
3819
  const openrouter = createOpenAI({
3795
3820
  baseURL: getOpenRouterBaseUrl(),
3796
3821
  apiKey: process.env.OPENROUTER_API_KEY
@@ -0,0 +1,27 @@
1
+ import {
2
+ __esm
3
+ } from "./cli-pq2ee5ja.js";
4
+
5
+ // src/utils/env-flag.ts
6
+ function parseEnvFlag(raw, defaultValue) {
7
+ if (raw === undefined || raw === null)
8
+ return defaultValue;
9
+ const normalized = raw.trim().toLowerCase();
10
+ if (normalized === "")
11
+ return defaultValue;
12
+ if (TRUTHY.has(normalized))
13
+ return true;
14
+ if (FALSY.has(normalized))
15
+ return false;
16
+ return defaultValue;
17
+ }
18
+ function isEnvFlagEnabled(key, defaultValue, env = process.env) {
19
+ return parseEnvFlag(env[key], defaultValue);
20
+ }
21
+ var TRUTHY, FALSY;
22
+ var init_env_flag = __esm(() => {
23
+ TRUTHY = new Set(["true", "1"]);
24
+ FALSY = new Set(["false", "0"]);
25
+ });
26
+
27
+ export { parseEnvFlag, isEnvFlagEnabled, init_env_flag };
@@ -20,12 +20,14 @@ var __toESM = (mod, isNodeMode, target) => {
20
20
  }
21
21
  target = mod != null ? __create(__getProtoOf(mod)) : {};
22
22
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
23
- for (let key of __getOwnPropNames(mod))
24
- if (!__hasOwnProp.call(to, key))
25
- __defProp(to, key, {
26
- get: __accessProp.bind(mod, key),
27
- enumerable: true
28
- });
23
+ if (mod && typeof mod === "object" || typeof mod === "function") {
24
+ for (let key of __getOwnPropNames(mod))
25
+ if (!__hasOwnProp.call(to, key))
26
+ __defProp(to, key, {
27
+ get: __accessProp.bind(mod, key),
28
+ enumerable: true
29
+ });
30
+ }
29
31
  if (canCache)
30
32
  cache.set(mod, to);
31
33
  return to;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  init_zod
3
- } from "./cli-zsspvvm2.js";
3
+ } from "./cli-1ybr6vw2.js";
4
4
  import {
5
5
  exports_external
6
- } from "./cli-5dsbcjjw.js";
6
+ } from "./cli-ghexzd2d.js";
7
7
 
8
8
  // src/be/memory/raters/llm.ts
9
9
  init_zod();
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  require_client
3
- } from "./cli-jxg3s9ey.js";
3
+ } from "./cli-65d93ves.js";
4
4
  import {
5
5
  require_config
6
- } from "./cli-czkae1fp.js";
6
+ } from "./cli-c5ddbdfj.js";
7
7
  import {
8
8
  __commonJS
9
- } from "./cli-p9swy5t3.js";
9
+ } from "./cli-pq2ee5ja.js";
10
10
 
11
11
  // node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js
12
- var require_dist_cjs = __commonJS((exports) => {
12
+ var require_dist_cjs = __commonJS(function(exports) {
13
13
  var client = require_client();
14
14
  var config = require_config();
15
15
  var ENV_KEY = "AWS_ACCESS_KEY_ID";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  exports_supports_color,
3
3
  init_supports_color
4
- } from "./cli-3fj60etf.js";
4
+ } from "./cli-497b685t.js";
5
5
  import {
6
6
  __commonJS,
7
7
  __require,
8
8
  __toCommonJS
9
- } from "./cli-p9swy5t3.js";
9
+ } from "./cli-pq2ee5ja.js";
10
10
 
11
11
  // node_modules/ms/index.js
12
- var require_ms = __commonJS((exports, module) => {
12
+ var require_ms = __commonJS(function(exports, module) {
13
13
  var s = 1000;
14
14
  var m = s * 60;
15
15
  var h = m * 60;
@@ -119,7 +119,7 @@ var require_ms = __commonJS((exports, module) => {
119
119
  });
120
120
 
121
121
  // node_modules/debug/src/common.js
122
- var require_common = __commonJS((exports, module) => {
122
+ var require_common = __commonJS(function(exports, module) {
123
123
  function setup(env) {
124
124
  createDebug.debug = createDebug;
125
125
  createDebug.default = createDebug;
@@ -280,7 +280,7 @@ var require_common = __commonJS((exports, module) => {
280
280
  });
281
281
 
282
282
  // node_modules/debug/src/browser.js
283
- var require_browser = __commonJS((exports, module) => {
283
+ var require_browser = __commonJS(function(exports, module) {
284
284
  exports.formatArgs = formatArgs;
285
285
  exports.save = save;
286
286
  exports.load = load;
@@ -439,7 +439,7 @@ var require_browser = __commonJS((exports, module) => {
439
439
  });
440
440
 
441
441
  // node_modules/debug/src/node.js
442
- var require_node = __commonJS((exports, module) => {
442
+ var require_node = __commonJS(function(exports, module) {
443
443
  var tty = __require("tty");
444
444
  var util = __require("util");
445
445
  exports.init = init;
@@ -610,7 +610,7 @@ var require_node = __commonJS((exports, module) => {
610
610
  });
611
611
 
612
612
  // node_modules/debug/src/index.js
613
- var require_src = __commonJS((exports, module) => {
613
+ var require_src = __commonJS(function(exports, module) {
614
614
  if (typeof process === "undefined" || process.type === "renderer" || false || process.__nwjs) {
615
615
  module.exports = require_browser();
616
616
  } else {
@@ -619,7 +619,7 @@ var require_src = __commonJS((exports, module) => {
619
619
  });
620
620
 
621
621
  // node_modules/follow-redirects/debug.js
622
- var require_debug = __commonJS((exports, module) => {
622
+ var require_debug = __commonJS(function(exports, module) {
623
623
  var debug;
624
624
  module.exports = function() {
625
625
  if (!debug) {
@@ -635,7 +635,7 @@ var require_debug = __commonJS((exports, module) => {
635
635
  });
636
636
 
637
637
  // node_modules/follow-redirects/index.js
638
- var require_follow_redirects = __commonJS((exports, module) => {
638
+ var require_follow_redirects = __commonJS(function(exports, module) {
639
639
  var url = __require("url");
640
640
  var URL = url.URL;
641
641
  var http = __require("http");
@@ -0,0 +1,15 @@
1
+ import {
2
+ init_env_flag,
3
+ parseEnvFlag
4
+ } from "./cli-nanaxrz6.js";
5
+
6
+ // src/utils/multi-runtime.ts
7
+ init_env_flag();
8
+ function isMultiRuntimeEnabled(env = process.env) {
9
+ return parseEnvFlag(env.MULTI_RUNTIME_ENABLED, false);
10
+ }
11
+ function swarmRuntimeInstanceId(env = process.env) {
12
+ return env.SWARM_RUNTIME_INSTANCE_ID || undefined;
13
+ }
14
+
15
+ export { isMultiRuntimeEnabled, swarmRuntimeInstanceId };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  __commonJS,
3
3
  __require
4
- } from "./cli-p9swy5t3.js";
4
+ } from "./cli-pq2ee5ja.js";
5
5
 
6
6
  // node_modules/ws/lib/constants.js
7
- var require_constants = __commonJS((exports, module) => {
7
+ var require_constants = __commonJS(function(exports, module) {
8
8
  var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"];
9
9
  var hasBlob = typeof Blob !== "undefined";
10
10
  if (hasBlob)
@@ -23,7 +23,7 @@ var require_constants = __commonJS((exports, module) => {
23
23
  });
24
24
 
25
25
  // node_modules/ws/lib/buffer-util.js
26
- var require_buffer_util = __commonJS((exports, module) => {
26
+ var require_buffer_util = __commonJS(function(exports, module) {
27
27
  var { EMPTY_BUFFER } = require_constants();
28
28
  var FastBuffer = Buffer[Symbol.species];
29
29
  function concat(list, totalLength) {
@@ -101,7 +101,7 @@ var require_buffer_util = __commonJS((exports, module) => {
101
101
  });
102
102
 
103
103
  // node_modules/ws/lib/limiter.js
104
- var require_limiter = __commonJS((exports, module) => {
104
+ var require_limiter = __commonJS(function(exports, module) {
105
105
  var kDone = Symbol("kDone");
106
106
  var kRun = Symbol("kRun");
107
107
 
@@ -133,7 +133,7 @@ var require_limiter = __commonJS((exports, module) => {
133
133
  });
134
134
 
135
135
  // node_modules/ws/lib/permessage-deflate.js
136
- var require_permessage_deflate = __commonJS((exports, module) => {
136
+ var require_permessage_deflate = __commonJS(function(exports, module) {
137
137
  var zlib = __require("zlib");
138
138
  var bufferUtil = require_buffer_util();
139
139
  var Limiter = require_limiter();
@@ -397,7 +397,7 @@ var require_permessage_deflate = __commonJS((exports, module) => {
397
397
  });
398
398
 
399
399
  // node_modules/ws/lib/validation.js
400
- var require_validation = __commonJS((exports, module) => {
400
+ var require_validation = __commonJS(function(exports, module) {
401
401
  var { isUtf8 } = __require("buffer");
402
402
  var { hasBlob } = require_constants();
403
403
  var tokenChars = [
@@ -584,7 +584,7 @@ var require_validation = __commonJS((exports, module) => {
584
584
  });
585
585
 
586
586
  // node_modules/ws/lib/receiver.js
587
- var require_receiver = __commonJS((exports, module) => {
587
+ var require_receiver = __commonJS(function(exports, module) {
588
588
  var { Writable } = __require("stream");
589
589
  var PerMessageDeflate = require_permessage_deflate();
590
590
  var {
@@ -965,7 +965,7 @@ var require_receiver = __commonJS((exports, module) => {
965
965
  });
966
966
 
967
967
  // node_modules/ws/lib/sender.js
968
- var require_sender = __commonJS((exports, module) => {
968
+ var require_sender = __commonJS(function(exports, module) {
969
969
  var { Duplex } = __require("stream");
970
970
  var { randomFillSync } = __require("crypto");
971
971
  var PerMessageDeflate = require_permessage_deflate();
@@ -1319,7 +1319,7 @@ var require_sender = __commonJS((exports, module) => {
1319
1319
  });
1320
1320
 
1321
1321
  // node_modules/ws/lib/event-target.js
1322
- var require_event_target = __commonJS((exports, module) => {
1322
+ var require_event_target = __commonJS(function(exports, module) {
1323
1323
  var { kForOnEventAttribute, kListener } = require_constants();
1324
1324
  var kCode = Symbol("kCode");
1325
1325
  var kData = Symbol("kData");
@@ -1470,7 +1470,7 @@ var require_event_target = __commonJS((exports, module) => {
1470
1470
  });
1471
1471
 
1472
1472
  // node_modules/ws/lib/extension.js
1473
- var require_extension = __commonJS((exports, module) => {
1473
+ var require_extension = __commonJS(function(exports, module) {
1474
1474
  var { tokenChars } = require_validation();
1475
1475
  function push(dest, name, elem) {
1476
1476
  if (dest[name] === undefined)
@@ -1635,7 +1635,7 @@ var require_extension = __commonJS((exports, module) => {
1635
1635
  });
1636
1636
 
1637
1637
  // node_modules/ws/lib/websocket.js
1638
- var require_websocket = __commonJS((exports, module) => {
1638
+ var require_websocket = __commonJS(function(exports, module) {
1639
1639
  var EventEmitter = __require("events");
1640
1640
  var https = __require("https");
1641
1641
  var http = __require("http");
@@ -2394,7 +2394,7 @@ var require_websocket = __commonJS((exports, module) => {
2394
2394
  });
2395
2395
 
2396
2396
  // node_modules/ws/lib/stream.js
2397
- var require_stream = __commonJS((exports, module) => {
2397
+ var require_stream = __commonJS(function(exports, module) {
2398
2398
  var WebSocket = require_websocket();
2399
2399
  var { Duplex } = __require("stream");
2400
2400
  function emitClose(stream) {
@@ -2497,7 +2497,7 @@ var require_stream = __commonJS((exports, module) => {
2497
2497
  });
2498
2498
 
2499
2499
  // node_modules/ws/lib/subprotocol.js
2500
- var require_subprotocol = __commonJS((exports, module) => {
2500
+ var require_subprotocol = __commonJS(function(exports, module) {
2501
2501
  var { tokenChars } = require_validation();
2502
2502
  function parse(header) {
2503
2503
  const protocols = new Set;
@@ -2542,7 +2542,7 @@ var require_subprotocol = __commonJS((exports, module) => {
2542
2542
  });
2543
2543
 
2544
2544
  // node_modules/ws/lib/websocket-server.js
2545
- var require_websocket_server = __commonJS((exports, module) => {
2545
+ var require_websocket_server = __commonJS(function(exports, module) {
2546
2546
  var EventEmitter = __require("events");
2547
2547
  var http = __require("http");
2548
2548
  var { Duplex } = __require("stream");