@desplega.ai/agent-swarm 2.5.4 → 2.7.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 (354) hide show
  1. package/README.md +4 -2
  2. package/dist/{acp-adapter-ek38cwsv.js → acp-adapter-ma1js5n7.js} +9 -9
  3. package/dist/{actions-92mepq03.js → actions-1vhmtvg9.js} +21 -21
  4. package/dist/{amp-adapter-9gaxg015.js → amp-adapter-sxqqvmdk.js} +4 -4
  5. package/dist/{app-ctn8gsgx.js → app-mwx1d5a9.js} +3 -3
  6. package/dist/{assistant-zyr5kz47.js → assistant-yx1p6g82.js} +30 -26
  7. package/dist/{boot-reembed-w75maga2.js → boot-reembed-5h37a2c2.js} +1 -1
  8. package/dist/{boot-reembed-dwzfttdr.js → boot-reembed-7h78vmvv.js} +2 -1
  9. package/dist/{boot-scrub-sweep-e9kq43kf.js → boot-scrub-sweep-8mawd4gw.js} +4 -4
  10. package/dist/{boot-seeds-x28v3fhb.js → boot-seeds-ca84dhnn.js} +4 -4
  11. package/dist/{claude-adapter-f0afqnne.js → claude-adapter-wqt4hfkq.js} +9 -9
  12. package/dist/{claude-managed-adapter-x81a7r65.js → claude-managed-adapter-6fjqtr2z.js} +2 -2
  13. package/dist/{claude-managed-setup-bqzwjd9x.js → claude-managed-setup-rqv98sea.js} +10 -3
  14. package/dist/{claude-sdk-session-7b7whkaq.js → claude-sdk-session-f29f3b2x.js} +11 -11
  15. package/dist/{cli-sxgtf5fw.js → cli-07q03xm2.js} +1 -1
  16. package/dist/{cli-kxpfx2xr.js → cli-0z1xjzwa.js} +2 -2
  17. package/dist/{cli-g9vd9ece.js → cli-1hhbzkbb.js} +14 -16
  18. package/dist/{cli-qqzmjxkf.js → cli-1m9x8dr5.js} +11 -6
  19. package/dist/{cli-jbnn4vxb.js → cli-2pvzmas1.js} +3 -3
  20. package/dist/{cli-x77gen2p.js → cli-2y7v133v.js} +7 -7
  21. package/dist/{cli-dew6x255.js → cli-39aet655.js} +2 -2
  22. package/dist/{cli-g1cw7xtt.js → cli-39rrw8yp.js} +1 -1
  23. package/dist/{cli-jb30dzvk.js → cli-48gxjmcz.js} +530 -190
  24. package/dist/{cli-pzatvw94.js → cli-54sj64fc.js} +2 -2
  25. package/dist/{cli-bvpgr9ny.js → cli-60sty27p.js} +5 -5
  26. package/dist/{cli-asq5ydm4.js → cli-6a9qfa8b.js} +411 -69
  27. package/dist/{cli-277c31dw.js → cli-6mgdba42.js} +225 -3
  28. package/dist/{cli-19202kew.js → cli-6srv653c.js} +5 -5
  29. package/dist/{cli-n4c8e3s5.js → cli-708wdy32.js} +1 -1
  30. package/dist/{cli-pasyvjmm.js → cli-737pyqxr.js} +1 -1
  31. package/dist/{cli-6x9ma5w5.js → cli-803188pb.js} +1 -1
  32. package/dist/{cli-hh5we352.js → cli-86ehn4s5.js} +7 -7
  33. package/dist/{cli-9s05422w.js → cli-8mbc9za9.js} +1 -1
  34. package/dist/{cli-ff1tm9n9.js → cli-8wmj18cz.js} +1 -1
  35. package/dist/{cli-1r5ad7j5.js → cli-9gsm2rzp.js} +12 -12
  36. package/dist/{cli-mz9afxxf.js → cli-9pshx6rd.js} +17 -3
  37. package/dist/{cli-s682zgqz.js → cli-a6ds2epe.js} +1 -1
  38. package/dist/{cli-6a1xg1p7.js → cli-a89zdqz9.js} +2 -2
  39. package/dist/{cli-03vpq45j.js → cli-ay40dnj3.js} +2 -2
  40. package/dist/{cli-tsma7p8v.js → cli-aypd09nf.js} +2 -2
  41. package/dist/{cli-ethgy7ha.js → cli-b3yzyc57.js} +2 -2
  42. package/dist/{cli-bn0rewsy.js → cli-c081bj3b.js} +2 -2
  43. package/dist/{cli-mmhj8vd7.js → cli-c668vvcf.js} +11 -2
  44. package/dist/{cli-sbwsxvtd.js → cli-d20qvpr2.js} +2 -2
  45. package/dist/{cli-c952c7ac.js → cli-e1595bgx.js} +3 -3
  46. package/dist/{cli-621ce7kw.js → cli-f12mr20z.js} +3 -3
  47. package/dist/{cli-dqygeeh5.js → cli-f1e0ptjj.js} +10 -1
  48. package/dist/{cli-xzfq4at3.js → cli-f4dbh7a5.js} +16 -12
  49. package/dist/{cli-ha9rmwgq.js → cli-fb8m699c.js} +2 -2
  50. package/dist/{cli-5bnsc0e1.js → cli-gsfk58nw.js} +5 -5
  51. package/dist/cli-gt4h8cxw.js +895 -0
  52. package/dist/{cli-nwyw3zhg.js → cli-gxee0bqa.js} +1 -1
  53. package/dist/{cli-25n3mv5d.js → cli-h5jeg46p.js} +6 -6
  54. package/dist/{cli-gn5af0x5.js → cli-he9gbdx0.js} +62 -12
  55. package/dist/{cli-gbfxp48k.js → cli-j0ppywdr.js} +42 -35
  56. package/dist/{cli-k4tjsdx9.js → cli-j3y0x2n4.js} +277 -199
  57. package/dist/{cli-7p4jxgtt.js → cli-j9bpmykh.js} +75 -27
  58. package/dist/{cli-dabehxhp.js → cli-kt907da6.js} +1 -1
  59. package/dist/{cli-wx2nj19m.js → cli-kv7sbc2c.js} +6 -6
  60. package/dist/{cli-abs8ndtr.js → cli-m30k9777.js} +26 -26
  61. package/dist/{cli-cz5nmdxt.js → cli-m5e802r7.js} +2 -2
  62. package/dist/{cli-0shx9j93.js → cli-pfk92eqz.js} +2 -2
  63. package/dist/{cli-xtrz6bzs.js → cli-ptfq202x.js} +5 -3
  64. package/dist/{cli-6n8axjv1.js → cli-qj442fws.js} +2 -2
  65. package/dist/{cli-c61mbdds.js → cli-rd5m70gj.js} +4 -4
  66. package/dist/{cli-eftzyh9y.js → cli-s09j9vp5.js} +2 -2
  67. package/dist/{cli-m4ecdxvz.js → cli-s0mgx214.js} +7 -7
  68. package/dist/{cli-wghjkr0e.js → cli-sgqm2582.js} +10 -7
  69. package/dist/{cli-2655k16q.js → cli-sjctjr48.js} +2 -2
  70. package/dist/{cli-nzfnt2gs.js → cli-tf1n0r0b.js} +1 -1
  71. package/dist/{cli-x0f2v69c.js → cli-twctnkng.js} +12 -7
  72. package/dist/{cli-j6rktc91.js → cli-v6shg7na.js} +1 -1
  73. package/dist/{cli-gx4rm0qx.js → cli-vz78s5wm.js} +1 -1
  74. package/dist/{cli-gwhjmh8g.js → cli-wqr7cea4.js} +5 -5
  75. package/dist/{cli-e42vss7b.js → cli-x37r7qwf.js} +16 -8
  76. package/dist/{cli-4b2z6n0m.js → cli-yd2nreqw.js} +17 -8
  77. package/dist/{cli-64mh9mf3.js → cli-ymjpkxgn.js} +69 -17
  78. package/dist/{cli-5kqnemen.js → cli-yvy48785.js} +1 -1
  79. package/dist/{cli-9j129brq.js → cli-yxbsmx56.js} +6 -6
  80. package/dist/cli.js +22 -20
  81. package/dist/{codex-adapter-wch12q99.js → codex-adapter-zk59x2zh.js} +7 -7
  82. package/dist/{codex-hook-brpnycn5.js → codex-hook-xyjhvxwd.js} +1 -1
  83. package/dist/{codex-login-rn7c5gxt.js → codex-login-8cg0vhf2.js} +1 -1
  84. package/dist/{codex-session-runner-41pfcr95.js → codex-session-runner-kh6s4j3n.js} +8 -8
  85. package/dist/{commands-9849dkj6.js → commands-68et1qv2.js} +2 -2
  86. package/dist/{controller-ja0sd95p.js → controller-fyrbnzg4.js} +4 -4
  87. package/dist/{controllers-connect-xp05dj6x.js → controllers-connect-nep9h2xv.js} +23 -23
  88. package/dist/{cursor-adapter-623qxqew.js → cursor-adapter-yss3pg7t.js} +2 -2
  89. package/dist/{db-w759qmx0.js → db-28gjyvxj.js} +4 -2
  90. package/dist/{db-47vj40dy.js → db-8ftwvzba.js} +3 -3
  91. package/dist/{devin-adapter-4ycy4vrf.js → devin-adapter-byen2cxt.js} +1 -1
  92. package/dist/{dispatcher-7b8e4z2j.js → dispatcher-hayexmkr.js} +20 -20
  93. package/dist/{docker-s84hjs91.js → docker-fdzyewpz.js} +2 -2
  94. package/dist/{dsh-adapter-2ezw3xea.js → dsh-adapter-46wawff9.js} +2 -2
  95. package/dist/{e2b-9gkdhm3c.js → e2b-222hsajc.js} +2 -2
  96. package/dist/{e2b-cjtf8k1z.js → e2b-fn3zacvt.js} +2 -2
  97. package/dist/{easter-egg-3d-e4qv8dxj.js → easter-egg-3d-8d1e0h4m.js} +1 -1
  98. package/dist/{event-bus-3z78ep5n.js → event-bus-pghg8hqy.js} +1 -1
  99. package/dist/{execute-0xpz8950.js → execute-cjrfxfnm.js} +1 -1
  100. package/dist/{external-channel-e2s028da.js → external-channel-xbmxcg09.js} +2 -2
  101. package/dist/{grok-adapter-ys7gaqee.js → grok-adapter-ag4wks2a.js} +10 -10
  102. package/dist/handlers-tzmevqb5.js +41 -0
  103. package/dist/{heartbeat-w3mntghj.js → heartbeat-psfvcgwp.js} +23 -23
  104. package/dist/{hook-g7kvv6x9.js → hook-8pz04697.js} +6 -6
  105. package/dist/{hook-3jjywnpb.js → hook-cyq4mryn.js} +8 -8
  106. package/dist/{http-tkp7d4kb.js → http-haj1nd6k.js} +921 -169
  107. package/dist/{index-q7m26kvs.js → index-jwt2bj6f.js} +265 -97
  108. package/dist/{index-3n8m9ea2.js → index-q52f47pe.js} +1 -1
  109. package/dist/{index-31ceyf42.js → index-syvhnvtw.js} +1 -1
  110. package/dist/index-y1ajx04a.js +43 -0
  111. package/dist/{index-1ef1myq2.js → index-z5h22pes.js} +20 -20
  112. package/dist/{index-xdaahthb.js → index-zyq8ct52.js} +20 -20
  113. package/dist/{keepalive-v4ta8wgg.js → keepalive-xdvsamvj.js} +4 -4
  114. package/dist/lead-hqg57kdp.js +79 -0
  115. package/dist/{maintenance-84n1ex21.js → maintenance-4y2xzh3a.js} +1 -1
  116. package/dist/{oauth-refresh-sweep-vjnnandw.js → oauth-refresh-sweep-jd4r7zbs.js} +9 -4
  117. package/dist/{onboard-sfmpe4np.js → onboard-18447q9q.js} +6 -6
  118. package/dist/{opencode-adapter-jmpst4q4.js → opencode-adapter-26b2frdf.js} +7 -7
  119. package/dist/{otel-impl-v6cc0zve.js → otel-impl-f9tgr8yw.js} +2 -2
  120. package/dist/{pi-mono-adapter-fk8fkcf6.js → pi-mono-adapter-qn6qbga1.js} +38 -17
  121. package/dist/{pricing-refresh-fsk1e1zc.js → pricing-refresh-dw2tgb53.js} +3 -3
  122. package/dist/{rbac-roles-prmkdnkw.js → rbac-roles-aygm2760.js} +2 -2
  123. package/dist/{rbac-roles-zxmxqa39.js → rbac-roles-s4nwj2m3.js} +1 -1
  124. package/dist/render-v2-yfvdfr0x.js +16 -0
  125. package/dist/{resume-frdtgfa0.js → resume-1bmvjbf3.js} +9 -9
  126. package/dist/{runtime-bt5pkpm1.js → runtime-f7tpzedy.js} +1 -1
  127. package/dist/{session-access-fpez4y5q.js → session-access-r5garej6.js} +4 -4
  128. package/dist/session-source-backfill-424wzv0r.js +110 -0
  129. package/dist/{setup-mq6m3m8q.js → setup-8tygvxkq.js} +1 -1
  130. package/dist/{virtual-modules-mnfbh5mr.js → virtual-modules-xsw323b3.js} +2 -2
  131. package/dist/{work-objects-kfahhjsq.js → work-objects-ggnghpgf.js} +23 -23
  132. package/dist/worker-sqjd1nqf.js +79 -0
  133. package/dist/{x-pbpezr0s.js → x-wxrzvzx8.js} +2 -2
  134. package/openapi.json +1324 -14
  135. package/package.json +5 -3
  136. package/src/assets/source-key.ts +95 -0
  137. package/src/be/automation-preflight.ts +2 -0
  138. package/src/be/db/api-keys.ts +89 -0
  139. package/src/be/db/session-labels.ts +28 -0
  140. package/src/be/db/session-moves.ts +5 -6
  141. package/src/be/db/session-tree.ts +153 -14
  142. package/src/be/db/tasks/read.ts +11 -0
  143. package/src/be/db/tasks/write.ts +6 -1
  144. package/src/be/db/workflow-runs.ts +219 -6
  145. package/src/be/db-retention.ts +61 -6
  146. package/src/be/db.ts +135 -132
  147. package/src/be/memory/providers/openai-embedding.ts +5 -1
  148. package/src/be/memory/task-learning.ts +155 -0
  149. package/src/be/migrations/244_api_key_validation.sql +4 -0
  150. package/src/be/migrations/245_script_executor.sql +3 -0
  151. package/src/be/oauth-refresh-sweep.ts +2 -1
  152. package/src/be/onboarding.ts +4 -0
  153. package/src/be/scripts/boot-reembed.ts +2 -0
  154. package/src/be/scripts/db.ts +14 -4
  155. package/src/be/scripts/embeddings.ts +2 -0
  156. package/src/be/scripts/run-saved.ts +1 -0
  157. package/src/be/scripts/typecheck.ts +10 -4
  158. package/src/be/seed-skills/index.ts +7 -0
  159. package/src/be/session-source-backfill.ts +163 -0
  160. package/src/be/swarm-config-guard.ts +1 -0
  161. package/src/comb/review-batch.ts +28 -1
  162. package/src/comb/templates.ts +7 -2
  163. package/src/commands/claude-managed-setup.ts +7 -1
  164. package/src/commands/credential-refresh.ts +76 -1
  165. package/src/commands/credential-wait.ts +2 -2
  166. package/src/commands/onboard/compose-generator.ts +5 -3
  167. package/src/commands/provider-credentials.ts +212 -171
  168. package/src/commands/runner.ts +25 -4
  169. package/src/extensions/apply-task-create.ts +8 -1
  170. package/src/extensions/contract-types.generated.ts +1 -1
  171. package/src/extensions/contract.ts +5 -0
  172. package/src/heartbeat/heartbeat.ts +14 -1
  173. package/src/heartbeat/script-runner-probe.ts +47 -0
  174. package/src/http/all-routes.ts +2 -0
  175. package/src/http/api-keys.ts +77 -9
  176. package/src/http/assets.ts +15 -0
  177. package/src/http/codex-oauth-accounts.ts +191 -0
  178. package/src/http/comb.ts +15 -2
  179. package/src/http/config.ts +1 -1
  180. package/src/http/core.ts +6 -0
  181. package/src/http/fleet-benchmark.ts +5 -2
  182. package/src/http/idempotency-key.ts +1 -1
  183. package/src/http/index.ts +14 -3
  184. package/src/http/integrations.ts +5 -1
  185. package/src/http/kv.ts +8 -3
  186. package/src/http/onboarding.ts +6 -1
  187. package/src/http/pages-public.ts +38 -5
  188. package/src/http/pool-keys.ts +354 -0
  189. package/src/http/scripts.ts +27 -0
  190. package/src/http/sessions.ts +37 -12
  191. package/src/http/stats.ts +1 -0
  192. package/src/http/status.ts +26 -12
  193. package/src/http/tasks.ts +3 -0
  194. package/src/http/used-by.ts +7 -2
  195. package/src/http/workflows.ts +88 -9
  196. package/src/http/x.ts +5 -0
  197. package/src/integrations/chat-sdk/inbound.ts +27 -0
  198. package/src/kv-reserved-namespaces.ts +19 -0
  199. package/src/prompts/base-prompt.ts +21 -1
  200. package/src/prompts/session-templates.ts +17 -3
  201. package/src/providers/acp-targets.ts +1 -1
  202. package/src/providers/amp-adapter.ts +1 -1
  203. package/src/providers/claude-adapter.ts +5 -1
  204. package/src/providers/claude-managed-adapter.ts +16 -9
  205. package/src/providers/codex-adapter.ts +71 -11
  206. package/src/providers/dsh-adapter.ts +1 -1
  207. package/src/providers/pi-mono-adapter.ts +41 -11
  208. package/src/scheduler/scheduler.ts +5 -3
  209. package/src/scripts-runtime/eval-harness.ts +8 -1
  210. package/src/scripts-runtime/executors/native.ts +22 -16
  211. package/src/scripts-runtime/executors/quickjs-prelude.ts +103 -1
  212. package/src/scripts-runtime/executors/quickjs-runner.ts +2 -1
  213. package/src/scripts-runtime/executors/quickjs.ts +7 -0
  214. package/src/scripts-runtime/executors/registry.ts +32 -0
  215. package/src/scripts-runtime/executors/types.ts +7 -0
  216. package/src/scripts-runtime/host-validated-args.ts +133 -0
  217. package/src/scripts-runtime/loader.ts +30 -3
  218. package/src/scripts-runtime/swarm-sdk.ts +16 -3
  219. package/src/scripts-runtime/types/stdlib.d.ts +10 -2
  220. package/src/scripts-runtime/types/swarm-extension.d.ts +17 -8
  221. package/src/scripts-runtime/types/swarm-sdk.d.ts +10 -2
  222. package/src/slack/assistant.ts +7 -0
  223. package/src/slack/channel-labels.ts +74 -0
  224. package/src/slack/handlers.ts +8 -0
  225. package/src/slack/inbound-files.ts +5 -2
  226. package/src/slack/thread-buffer.ts +4 -0
  227. package/src/tasks/sibling-awareness.ts +12 -3
  228. package/src/telemetry-context.ts +5 -6
  229. package/src/telemetry-identity.ts +3 -3
  230. package/src/tests/api-key-status-by-suffix.test.ts +242 -0
  231. package/src/tests/api-keys-validation.test.ts +170 -0
  232. package/src/tests/base-prompt.test.ts +70 -2
  233. package/src/tests/claude-managed-adapter.test.ts +46 -0
  234. package/src/tests/claude-routes-e2e.test.ts +7 -2
  235. package/src/tests/codex-credential-pools.test.ts +120 -0
  236. package/src/tests/codex-gateway-route.test.ts +165 -0
  237. package/src/tests/codex-oauth-accounts.test.ts +357 -0
  238. package/src/tests/comb-review-batch.test.ts +63 -2
  239. package/src/tests/community-linear-delivery-loop.test.ts +2099 -0
  240. package/src/tests/config-pool-keys.test.ts +533 -0
  241. package/src/tests/credential-check.test.ts +294 -4
  242. package/src/tests/credential-refresh.test.ts +172 -1
  243. package/src/tests/db-retention.test.ts +9 -3
  244. package/src/tests/db-task-read-contract.test.ts +1 -0
  245. package/src/tests/db-task-write-contract.test.ts +1 -3
  246. package/src/tests/docs-index-footprint.test.js +3 -3
  247. package/src/tests/docs-index.test.ts +135 -0
  248. package/src/tests/dsh-adapter.test.ts +1 -1
  249. package/src/tests/extensions-pre-task.test.ts +53 -1
  250. package/src/tests/fetch-resolved-env.test.ts +16 -2
  251. package/src/tests/fixtures/extensions/record-task-create/hooks.ts +9 -0
  252. package/src/tests/fixtures/extensions/record-task-create/manifest.json +7 -0
  253. package/src/tests/fleet-benchmark.test.ts +8 -0
  254. package/src/tests/get-workflow-run-tool.test.ts +98 -0
  255. package/src/tests/heartbeat-checklist.test.ts +89 -0
  256. package/src/tests/heartbeat-script-runner-probe.test.ts +83 -0
  257. package/src/tests/integrations-http.test.ts +32 -2
  258. package/src/tests/internal-ai/complete-structured.test.ts +37 -1
  259. package/src/tests/internal-ai/credentials.test.ts +23 -0
  260. package/src/tests/kv-http.test.ts +32 -0
  261. package/src/tests/kv-tool.test.ts +25 -0
  262. package/src/tests/multi-runtime-registration.test.ts +12 -12
  263. package/src/tests/oauth-refresh-sweep.test.ts +34 -1
  264. package/src/tests/onboard-compose.test.ts +20 -0
  265. package/src/tests/onboarding.test.ts +108 -1
  266. package/src/tests/openai-embedding-credentials.test.ts +35 -0
  267. package/src/tests/opencode-adapter.test.ts +2 -1
  268. package/src/tests/openrouter-attribution-call-sites.test.ts +2 -2
  269. package/src/tests/org-website.test.ts +36 -0
  270. package/src/tests/pages-frame-ancestors.test.ts +162 -0
  271. package/src/tests/pi-codemode.test.ts +2 -1
  272. package/src/tests/pi-mono-adapter.test.ts +54 -0
  273. package/src/tests/pi-native-mcp.test.ts +13 -1
  274. package/src/tests/pi-tool-exposure.test.ts +8 -8
  275. package/src/tests/probe-tool-schema-tokens.test.ts +144 -0
  276. package/src/tests/prompt-template-session.test.ts +4 -3
  277. package/src/tests/provider-key-probes.test.ts +181 -0
  278. package/src/tests/rbac-e2e-helpers.test.ts +88 -1
  279. package/src/tests/rbac-e2e-helpers.ts +36 -11
  280. package/src/tests/request-composition-derive.test.ts +329 -0
  281. package/src/tests/script-connections.test.ts +4 -0
  282. package/src/tests/script-executor-conformance.test.ts +36 -1
  283. package/src/tests/script-executor-quickjs-pool.test.ts +50 -0
  284. package/src/tests/script-executor-quickjs.test.ts +140 -0
  285. package/src/tests/script-host-validated-args-native.test.ts +196 -0
  286. package/src/tests/script-per-script-executor.test.ts +415 -0
  287. package/src/tests/script-runs-retention.test.ts +212 -0
  288. package/src/tests/scripts-external-api.test.ts +45 -0
  289. package/src/tests/sdk-allowlist.test.ts +42 -2
  290. package/src/tests/self-improvement.test.ts +4 -4
  291. package/src/tests/session-source-backfill.test.ts +429 -0
  292. package/src/tests/session-source-keys.test.ts +236 -0
  293. package/src/tests/session-source-labels.test.ts +419 -0
  294. package/src/tests/sessions-detail-batch.test.ts +2 -0
  295. package/src/tests/sessions-move.test.ts +131 -0
  296. package/src/tests/sessions-tree.test.ts +299 -2
  297. package/src/tests/slack-inbound-files.test.ts +103 -23
  298. package/src/tests/status.test.ts +101 -18
  299. package/src/tests/store-progress-learning.test.ts +288 -0
  300. package/src/tests/tasks-workflow-run-filter.test.ts +146 -0
  301. package/src/tests/test-net.ts +31 -0
  302. package/src/tests/transcription.test.ts +8 -0
  303. package/src/tests/ui-logs-parser.test.ts +180 -0
  304. package/src/tests/used-by-route.test.ts +11 -0
  305. package/src/tests/workflow-cascade-cancel.test.ts +172 -0
  306. package/src/tests/workflow-engine-v2.test.ts +116 -1
  307. package/src/tests/workflow-http-v2.test.ts +131 -0
  308. package/src/tests/workflow-mcp-trigger-schema.test.ts +209 -0
  309. package/src/tests/workflow-run-finished-event.test.ts +263 -0
  310. package/src/tests/workflow-step-order.test.ts +92 -0
  311. package/src/tests/workflow-sub-workflow.test.ts +30 -0
  312. package/src/tests/workflow-swarm-script.test.ts +34 -0
  313. package/src/tools/get-tasks.ts +8 -0
  314. package/src/tools/kv/kv-read-auth.ts +4 -2
  315. package/src/tools/script-common.ts +1 -0
  316. package/src/tools/script-run.ts +7 -0
  317. package/src/tools/script-upsert.ts +7 -0
  318. package/src/tools/store-progress.ts +67 -1
  319. package/src/tools/task-action.ts +1 -1
  320. package/src/tools/workflows/get-workflow-run.ts +14 -4
  321. package/src/tools/workflows/trigger-workflow.ts +104 -10
  322. package/src/types.ts +36 -1
  323. package/src/utils/company-profile.ts +51 -1
  324. package/src/utils/credentials.ts +10 -4
  325. package/src/utils/internal-ai/complete-structured.ts +5 -0
  326. package/src/utils/internal-ai/credentials.ts +4 -3
  327. package/src/utils/provider-key-probes.ts +328 -0
  328. package/src/utils/transcription.ts +4 -1
  329. package/src/workflows/engine.ts +18 -16
  330. package/src/workflows/executors/sub-workflow.ts +8 -1
  331. package/src/workflows/executors/swarm-script.ts +5 -0
  332. package/src/workflows/foreach-driver.ts +5 -11
  333. package/src/workflows/node-timeout.ts +30 -0
  334. package/templates/ai-toolbox.manifest.json +2 -2
  335. package/templates/community/linear-delivery-loop/PLAYBOOK.md +323 -0
  336. package/templates/community/linear-delivery-loop/README.md +38 -0
  337. package/templates/community/linear-delivery-loop/config.example.json +31 -0
  338. package/templates/community/linear-delivery-loop/lead-prompt.md +34 -0
  339. package/templates/community/linear-delivery-loop/schedule.json +10 -0
  340. package/templates/community/linear-delivery-loop/scripts/linear-delivery-setup.ts +148 -0
  341. package/templates/community/linear-delivery-loop/scripts/linear-delivery-tick.ts +1781 -0
  342. package/templates/skills/researching/content.md +2 -0
  343. package/templates/skills/swarm-docs/config.json +14 -0
  344. package/templates/skills/swarm-docs/content.md +144 -0
  345. package/templates/skills/swarm-scripts/SKILL.md +1 -0
  346. package/templates/skills/swarm-scripts/content.md +1 -0
  347. package/dist/cli-7421jzsw.js +0 -84
  348. package/dist/cli-e45e4m6b.js +0 -413
  349. package/dist/cli-zw88zjba.js +0 -307
  350. package/dist/handlers-wy1dr6ja.js +0 -41
  351. package/dist/index-nmm79qgr.js +0 -43
  352. package/dist/lead-sawnyqxk.js +0 -79
  353. package/dist/render-v2-pjwxvnkw.js +0 -12
  354. package/dist/worker-v5e5rxj3.js +0 -79
package/README.md CHANGED
@@ -4,8 +4,8 @@
4
4
 
5
5
  > [!TIP]
6
6
  > **This repo evolves every single day.** [Watch now →](https://github.com/desplega-ai/agent-swarm/subscription)
7
- <p align="center"><video src="https://github.com/user-attachments/assets/8d221239-2340-49a2-aed3-5a474c2229a8" controls muted playsinline width="720"></video></p>
8
- <p align="center"><sub>▸ <a href="./assets/agent-swarm-every-team.mp4">every team, one swarm</a> · <a href="./assets/agent-swarm.mp4">daily evolution</a> · <a href="./assets/agent-swarm-slack-to-pr.mp4">slack → pr</a> · <a href="./assets/video-source">Making of</a></sub></p>
7
+ <p align="center"><video src="https://github.com/user-attachments/assets/b4e77fe6-0e3d-4960-8977-bcf49e390215" controls muted playsinline width="720"></video></p>
8
+ <p align="center"><sub>▸ <a href="./assets/agent-swarm-every-team.mp4">every team, one swarm</a> · <a href="./assets/agent-swarm.mp4">daily evolution</a> · <a href="./assets/video-source">Making of</a></sub></p>
9
9
  <p align="center"><a href="https://agent-swarm.dev"><img src="https://img.shields.io/badge/Website-agent--swarm.dev-000?style=for-the-badge" alt="Website"></a> <a href="https://docs.agent-swarm.dev"><img src="https://img.shields.io/badge/Docs-docs.agent--swarm.dev-amber?style=for-the-badge" alt="Docs"></a> <a href="https://app.agent-swarm.dev"><img src="https://img.shields.io/badge/Dashboard-app.agent--swarm.dev-blue?style=for-the-badge" alt="Dashboard"></a> <a href="https://discord.gg/KZgfyyDVZa"><img src="https://img.shields.io/badge/Discord-Join%20Community-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Join Discord"></a> <a href="https://x.com/agent__swarm"><img src="https://img.shields.io/badge/𝕏-@agent____swarm-000?style=for-the-badge&logo=x&logoColor=white" alt="Follow on X"></a> <a href="https://www.linkedin.com/company/desplega-labs/"><img src="https://img.shields.io/badge/LinkedIn-Desplega%20Labs-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white" alt="Desplega Labs on LinkedIn"></a> <a href="https://www.youtube.com/@desplega-labs/videos"><img src="https://img.shields.io/badge/YouTube-Desplega%20Labs-FF0000?style=for-the-badge&logo=youtube&logoColor=white" alt="Desplega Labs on YouTube"></a></p>
10
10
 
11
11
  agent-swarm.dev is an open-source operating system for AI work. A lead agent delegates goals to workers such as Claude Code or Codex. Isolated containers, shared memory, tools, schedules, and review gates preserve work across sessions.
@@ -87,6 +87,8 @@ Cloud service. The self-hosted software remains covered by the [MIT License](./L
87
87
 
88
88
  Or self-host. [`docker-compose.example.yml`](https://github.com/desplega-ai/agent-swarm/blob/main/docker-compose.example.yml) is the reference deployment: deploy every agent in it by default (1 lead and 11 workers on the official templates), and remove agents only when you have a reason to.
89
89
 
90
+ Plan for at least 4 vCPU, 8 GB RAM and 40 GB of free disk, and prune old Docker images after upgrades. See [Host requirements & disk cleanup](https://docs.agent-swarm.dev/docs/guides/host-requirements).
91
+
90
92
  The one-shot installer checks Docker and Compose v2, installs Bun when missing, runs `agent-swarm onboard --yes`, and prints the dashboard `/setup` link. It defaults to the single-agent `solo` preset, so pass `--preset full` for every official template (it runs one coder where the example runs two):
91
93
 
92
94
  ```bash
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  ACPAdapter2
3
- } from "./cli-m4ecdxvz.js";
4
- import"./cli-hh5we352.js";
5
- import"./cli-c952c7ac.js";
3
+ } from "./cli-s0mgx214.js";
4
+ import"./cli-86ehn4s5.js";
5
+ import"./cli-e1595bgx.js";
6
6
  import"./cli-4bd1rck6.js";
7
7
  import"./cli-jc1g9ndz.js";
8
- import"./cli-mmhj8vd7.js";
8
+ import"./cli-c668vvcf.js";
9
9
  import"./cli-0726awxw.js";
10
- import"./cli-2655k16q.js";
11
- import"./cli-5kqnemen.js";
12
- import"./cli-bn0rewsy.js";
10
+ import"./cli-sjctjr48.js";
11
+ import"./cli-yvy48785.js";
12
+ import"./cli-c081bj3b.js";
13
13
  import"./cli-3h26v7yj.js";
14
14
  import"./cli-3ggwdtb0.js";
15
- import"./cli-qqzmjxkf.js";
16
- import"./cli-kxpfx2xr.js";
15
+ import"./cli-1m9x8dr5.js";
16
+ import"./cli-0z1xjzwa.js";
17
17
  import"./cli-e8xyjvfc.js";
18
18
  import"./cli-13p25grh.js";
19
19
  import"./cli-0adyhvq2.js";
@@ -6,17 +6,17 @@ import {
6
6
  getTaskById2,
7
7
  cancelTask2,
8
8
  init_db3
9
- } from "./cli-jb30dzvk.js";
10
- import"./cli-9s05422w.js";
11
- import"./cli-sbwsxvtd.js";
12
- import"./cli-bvpgr9ny.js";
9
+ } from "./cli-48gxjmcz.js";
10
+ import"./cli-8mbc9za9.js";
11
+ import"./cli-d20qvpr2.js";
12
+ import"./cli-60sty27p.js";
13
13
  import {
14
14
  createTaskWithSiblingAwareness
15
- } from "./cli-asq5ydm4.js";
16
- import"./cli-dabehxhp.js";
17
- import"./cli-gbfxp48k.js";
18
- import"./cli-7p4jxgtt.js";
19
- import"./cli-tsma7p8v.js";
15
+ } from "./cli-6a9qfa8b.js";
16
+ import"./cli-kt907da6.js";
17
+ import"./cli-j0ppywdr.js";
18
+ import"./cli-j9bpmykh.js";
19
+ import"./cli-aypd09nf.js";
20
20
  import"./cli-3ggwdtb0.js";
21
21
  import"./cli-e8xyjvfc.js";
22
22
  import {
@@ -28,31 +28,31 @@ import {
28
28
  getAgentEmoji,
29
29
  isSlackRenderV2Enabled2,
30
30
  ensureSlackThreadTree2
31
- } from "./cli-abs8ndtr.js";
31
+ } from "./cli-m30k9777.js";
32
32
  import {
33
33
  EXTERNAL_CHANNEL_BLOCKED_REPLY2,
34
34
  shouldBlockChannel2
35
- } from "./cli-eftzyh9y.js";
36
- import"./cli-qqzmjxkf.js";
35
+ } from "./cli-s09j9vp5.js";
36
+ import"./cli-1m9x8dr5.js";
37
37
  import"./cli-2nf3b08t.js";
38
38
  import"./cli-kvzgak7c.js";
39
39
  import"./cli-445c1vp7.js";
40
- import"./cli-kxpfx2xr.js";
41
- import"./cli-x0f2v69c.js";
40
+ import"./cli-0z1xjzwa.js";
41
+ import"./cli-twctnkng.js";
42
42
  import"./cli-qz93y3x5.js";
43
- import"./cli-ff1tm9n9.js";
44
- import"./cli-c61mbdds.js";
43
+ import"./cli-8wmj18cz.js";
44
+ import"./cli-rd5m70gj.js";
45
45
  import"./cli-g9ypd5en.js";
46
- import"./cli-19202kew.js";
47
- import"./cli-gwhjmh8g.js";
46
+ import"./cli-6srv653c.js";
47
+ import"./cli-wqr7cea4.js";
48
48
  import"./cli-3h26v7yj.js";
49
- import"./cli-pasyvjmm.js";
49
+ import"./cli-737pyqxr.js";
50
50
  import {
51
51
  resolveSlackUserId
52
- } from "./cli-jbnn4vxb.js";
52
+ } from "./cli-2pvzmas1.js";
53
53
  import"./cli-13p25grh.js";
54
54
  import"./cli-0adyhvq2.js";
55
- import"./cli-6a1xg1p7.js";
55
+ import"./cli-a89zdqz9.js";
56
56
  import"./cli-rycdaj0a.js";
57
57
 
58
58
  // src/slack/actions.ts
@@ -2,11 +2,11 @@ import {
2
2
  checkAmpCredentials2,
3
3
  liveTestAmpCredentials2,
4
4
  AmpAdapter2
5
- } from "./cli-wx2nj19m.js";
5
+ } from "./cli-kv7sbc2c.js";
6
6
  import"./cli-jc1g9ndz.js";
7
- import"./cli-2655k16q.js";
8
- import"./cli-bn0rewsy.js";
9
- import"./cli-9s05422w.js";
7
+ import"./cli-sjctjr48.js";
8
+ import"./cli-c081bj3b.js";
9
+ import"./cli-8mbc9za9.js";
10
10
  import"./cli-3ggwdtb0.js";
11
11
  import"./cli-e8xyjvfc.js";
12
12
  export {
@@ -3,9 +3,9 @@ import {
3
3
  initSlackApp2,
4
4
  startSlackApp2,
5
5
  stopSlackApp2
6
- } from "./cli-abs8ndtr.js";
7
- import"./cli-eftzyh9y.js";
8
- import"./cli-jb30dzvk.js";
6
+ } from "./cli-m30k9777.js";
7
+ import"./cli-s09j9vp5.js";
8
+ import"./cli-48gxjmcz.js";
9
9
  export {
10
10
  getSlackApp2 as getSlackApp,
11
11
  initSlackApp2 as initSlackApp,
@@ -6,7 +6,7 @@ import {
6
6
  getMostRecentTaskInThread2,
7
7
  reactionName,
8
8
  init_db3
9
- } from "./cli-jb30dzvk.js";
9
+ } from "./cli-48gxjmcz.js";
10
10
  import {
11
11
  require_dist4,
12
12
  noteSlackInboundSideEffect,
@@ -17,57 +17,57 @@ import {
17
17
  markSlackSessionProcessing,
18
18
  isSlackRenderV2Enabled2,
19
19
  ensureSlackThreadTree2
20
- } from "./cli-abs8ndtr.js";
20
+ } from "./cli-m30k9777.js";
21
21
  import {
22
22
  shouldBlockChannel2
23
- } from "./cli-eftzyh9y.js";
23
+ } from "./cli-s09j9vp5.js";
24
24
  import {
25
25
  buildEffectiveText,
26
26
  fetchSlackFiles,
27
27
  createSlackTaskWithFiles,
28
28
  notifySlackFileFailures,
29
29
  hasOtherUserMention
30
- } from "./cli-asq5ydm4.js";
30
+ } from "./cli-6a9qfa8b.js";
31
31
  import {
32
32
  resolveSlackUserId,
33
33
  rewriteSlackMentions
34
- } from "./cli-jbnn4vxb.js";
34
+ } from "./cli-2pvzmas1.js";
35
35
  import {
36
36
  wasEventSeen,
37
37
  bufferThreadMessage,
38
38
  getBufferMessageCount
39
- } from "./cli-wghjkr0e.js";
39
+ } from "./cli-sgqm2582.js";
40
40
  import"./cli-g9ypd5en.js";
41
- import"./cli-9s05422w.js";
42
- import"./cli-sbwsxvtd.js";
43
- import"./cli-bvpgr9ny.js";
44
- import"./cli-dabehxhp.js";
45
- import"./cli-gbfxp48k.js";
46
- import"./cli-7p4jxgtt.js";
47
- import"./cli-tsma7p8v.js";
41
+ import"./cli-8mbc9za9.js";
42
+ import"./cli-d20qvpr2.js";
43
+ import"./cli-60sty27p.js";
44
+ import"./cli-kt907da6.js";
45
+ import"./cli-j0ppywdr.js";
46
+ import"./cli-j9bpmykh.js";
47
+ import"./cli-aypd09nf.js";
48
48
  import"./cli-3ggwdtb0.js";
49
49
  import"./cli-e8xyjvfc.js";
50
- import"./cli-qqzmjxkf.js";
50
+ import"./cli-1m9x8dr5.js";
51
51
  import"./cli-2nf3b08t.js";
52
52
  import"./cli-kvzgak7c.js";
53
53
  import"./cli-445c1vp7.js";
54
- import"./cli-kxpfx2xr.js";
55
- import"./cli-x0f2v69c.js";
54
+ import"./cli-0z1xjzwa.js";
55
+ import"./cli-twctnkng.js";
56
56
  import"./cli-qz93y3x5.js";
57
- import"./cli-ff1tm9n9.js";
58
- import"./cli-c61mbdds.js";
59
- import"./cli-19202kew.js";
60
- import"./cli-gwhjmh8g.js";
57
+ import"./cli-8wmj18cz.js";
58
+ import"./cli-rd5m70gj.js";
59
+ import"./cli-6srv653c.js";
60
+ import"./cli-wqr7cea4.js";
61
61
  import"./cli-3h26v7yj.js";
62
- import"./cli-pasyvjmm.js";
62
+ import"./cli-737pyqxr.js";
63
63
  import"./cli-13p25grh.js";
64
64
  import"./cli-0adyhvq2.js";
65
- import"./cli-6a1xg1p7.js";
65
+ import"./cli-a89zdqz9.js";
66
66
  import"./cli-rycdaj0a.js";
67
67
  import {
68
68
  resolveTemplate,
69
69
  init_resolver
70
- } from "./cli-dqygeeh5.js";
70
+ } from "./cli-f1e0ptjj.js";
71
71
  import {
72
72
  isEnvFlagEnabled,
73
73
  init_env_flag
@@ -196,6 +196,10 @@ function createAssistant() {
196
196
  await safeSetStatus("Downloading attachments...");
197
197
  const inbound = __using(__stack, await fetchSlackFiles(client, files, { transcribe: true }), 1);
198
198
  const renderedMessageText = await rewriteSlackMentions(buildEffectiveText(messageText, inbound.files, inbound.failed, inbound.notes), cachedBotUserId ?? undefined);
199
+ const slack = {
200
+ trigger: "mention",
201
+ messages: [{ ts: message.ts, userId, text: messageText }]
202
+ };
199
203
  if (workingAgent && workingAgent.status !== "offline") {
200
204
  const latestTask = await getMostRecentTaskInThread2(channelId, threadTs);
201
205
  const { task, unattached } = await createSlackTaskWithFiles(renderedMessageText, {
@@ -211,7 +215,7 @@ function createAssistant() {
211
215
  inheritParentOutputSchema: false,
212
216
  requestedByUserId,
213
217
  contextKey: slackContextKey({ channelId, threadTs })
214
- }, inbound);
218
+ }, inbound, slack);
215
219
  await ackSlackMessage(client, channelId, message.ts, reactionName("accepted"), "accepted");
216
220
  await notifySlackFileFailures(client, channelId, threadTs, unattached);
217
221
  if (isSlackRenderV2Enabled2())
@@ -238,7 +242,7 @@ function createAssistant() {
238
242
  slackUserId: userId,
239
243
  requestedByUserId,
240
244
  contextKey: slackContextKey({ channelId, threadTs })
241
- }, inbound);
245
+ }, inbound, slack);
242
246
  await ackSlackMessage(client, channelId, message.ts, reactionName("accepted"), "accepted");
243
247
  await notifySlackFileFailures(client, channelId, threadTs, unattached);
244
248
  if (isSlackRenderV2Enabled2()) {
@@ -260,7 +264,7 @@ function createAssistant() {
260
264
  slackUserId: userId,
261
265
  requestedByUserId,
262
266
  contextKey: slackContextKey({ channelId, threadTs })
263
- }, inbound);
267
+ }, inbound, slack);
264
268
  await ackSlackMessage(client, channelId, message.ts, reactionName("accepted"), "accepted");
265
269
  await notifySlackFileFailures(client, channelId, threadTs, unattached);
266
270
  if (isSlackRenderV2Enabled2())
@@ -6,7 +6,7 @@ import {
6
6
  getMemoryStore2,
7
7
  init_memory,
8
8
  init_db3
9
- } from "./cli-jb30dzvk.js";
9
+ } from "./cli-48gxjmcz.js";
10
10
 
11
11
  // src/be/memory/boot-reembed.ts
12
12
  init_db3();
@@ -4,7 +4,7 @@ import {
4
4
  embedScript,
5
5
  init_embeddings,
6
6
  init_db3
7
- } from "./cli-jb30dzvk.js";
7
+ } from "./cli-48gxjmcz.js";
8
8
 
9
9
  // src/be/scripts/boot-reembed.ts
10
10
  init_db3();
@@ -15,6 +15,7 @@ function toScriptRecord(row) {
15
15
  scopeId: row.scopeId ?? null,
16
16
  isScratch: row.isScratch === 1,
17
17
  typeChecked: row.typeChecked === 1,
18
+ executor: row.executor ?? null,
18
19
  createdByAgentId: row.createdByAgentId ?? null
19
20
  };
20
21
  }
@@ -7,16 +7,16 @@ import {
7
7
  getMemoryStore2,
8
8
  init_memory,
9
9
  init_db3
10
- } from "./cli-jb30dzvk.js";
10
+ } from "./cli-48gxjmcz.js";
11
11
  import {
12
12
  contentSha256,
13
13
  init_profile_sync
14
- } from "./cli-e42vss7b.js";
14
+ } from "./cli-x37r7qwf.js";
15
15
  import {
16
16
  SCRUBBER_RULES_VERSION,
17
17
  scrubSecrets,
18
18
  init_secret_scrubber
19
- } from "./cli-n4c8e3s5.js";
19
+ } from "./cli-708wdy32.js";
20
20
 
21
21
  // src/be/boot-scrub-sweep.ts
22
22
  init_profile_sync();
@@ -79,7 +79,7 @@ async function runBootScrubSweep(opts = {}) {
79
79
  console.log(`[${tag}] complete`);
80
80
  const memoryChanged = stats.find((s) => s.table === "agent_memory")?.changed ?? 0;
81
81
  if (memoryChanged > 0 && opts.reembed !== false) {
82
- const { runBootReembed } = await import("./boot-reembed-w75maga2.js");
82
+ const { runBootReembed } = await import("./boot-reembed-5h37a2c2.js");
83
83
  await runBootReembed();
84
84
  }
85
85
  return stats;
@@ -2,10 +2,10 @@ import {
2
2
  ensurePricingSeeded2,
3
3
  ensureRbacSeeded2,
4
4
  ensureModelProfilesSeeded2
5
- } from "./cli-c61mbdds.js";
6
- import"./cli-sbwsxvtd.js";
7
- import"./cli-ff1tm9n9.js";
8
- import"./cli-jb30dzvk.js";
5
+ } from "./cli-rd5m70gj.js";
6
+ import"./cli-d20qvpr2.js";
7
+ import"./cli-8wmj18cz.js";
8
+ import"./cli-48gxjmcz.js";
9
9
  export {
10
10
  ensureModelProfilesSeeded2 as ensureModelProfilesSeeded,
11
11
  ensurePricingSeeded2 as ensurePricingSeeded,
@@ -4,22 +4,22 @@ import {
4
4
  buildClaudeSessionEnvironment2,
5
5
  runClaudeSessionSummary2,
6
6
  ClaudeAdapter2
7
- } from "./cli-g9vd9ece.js";
8
- import"./cli-9j129brq.js";
9
- import"./cli-pzatvw94.js";
7
+ } from "./cli-1hhbzkbb.js";
8
+ import"./cli-yxbsmx56.js";
9
+ import"./cli-54sj64fc.js";
10
10
  import"./cli-d82btycs.js";
11
11
  import"./cli-vbhgkw9h.js";
12
12
  import"./cli-4bd1rck6.js";
13
13
  import"./cli-jc1g9ndz.js";
14
- import"./cli-mmhj8vd7.js";
14
+ import"./cli-c668vvcf.js";
15
15
  import"./cli-0726awxw.js";
16
- import"./cli-2655k16q.js";
17
- import"./cli-gx4rm0qx.js";
18
- import"./cli-bn0rewsy.js";
16
+ import"./cli-sjctjr48.js";
17
+ import"./cli-vz78s5wm.js";
18
+ import"./cli-c081bj3b.js";
19
19
  import"./cli-3h26v7yj.js";
20
20
  import"./cli-3ggwdtb0.js";
21
- import"./cli-qqzmjxkf.js";
22
- import"./cli-kxpfx2xr.js";
21
+ import"./cli-1m9x8dr5.js";
22
+ import"./cli-0z1xjzwa.js";
23
23
  import"./cli-e8xyjvfc.js";
24
24
  import"./cli-13p25grh.js";
25
25
  import"./cli-0adyhvq2.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  checkClaudeManagedCredentials2,
3
3
  ClaudeManagedAdapter2
4
- } from "./cli-4b2z6n0m.js";
4
+ } from "./cli-yd2nreqw.js";
5
5
  import"./cli-4zsenjhy.js";
6
6
  import"./cli-kr5tjjtz.js";
7
7
  import"./cli-0726awxw.js";
8
- import"./cli-2655k16q.js";
8
+ import"./cli-sjctjr48.js";
9
9
  import"./cli-rr7zx19j.js";
10
10
  export {
11
11
  ClaudeManagedAdapter2 as ClaudeManagedAdapter,
@@ -2,7 +2,7 @@ import {
2
2
  toFile,
3
3
  Anthropic
4
4
  } from "./cli-rr7zx19j.js";
5
- import"./cli-kxpfx2xr.js";
5
+ import"./cli-0z1xjzwa.js";
6
6
  import {
7
7
  buildSkillContent
8
8
  } from "./cli-691vz9mk.js";
@@ -12,7 +12,11 @@ import {
12
12
  import {
13
13
  DEFAULT_MODEL_TIER_MAP,
14
14
  init_types
15
- } from "./cli-mz9afxxf.js";
15
+ } from "./cli-9pshx6rd.js";
16
+ import {
17
+ selectCredential,
18
+ init_credentials
19
+ } from "./cli-gt4h8cxw.js";
16
20
  import {
17
21
  getApiKey,
18
22
  init_api_key
@@ -23,6 +27,7 @@ import { readdir, readFile } from "node:fs/promises";
23
27
  import path from "node:path";
24
28
  init_types();
25
29
  init_api_key();
30
+ init_credentials();
26
31
 
27
32
  // src/commands/codex-login.ts
28
33
  import { emitKeypressEvents } from "node:readline";
@@ -354,7 +359,9 @@ async function runClaudeManagedSetupFlow(config, deps = {}) {
354
359
  };
355
360
  }
356
361
  }
357
- const client = deps.client ?? new Anthropic({ apiKey: config.anthropicApiKey });
362
+ const client = deps.client ?? new Anthropic({
363
+ apiKey: selectCredential(config.anthropicApiKey, undefined, "ANTHROPIC_API_KEY").selected
364
+ });
358
365
  log("Creating Anthropic-side environment (swarm-worker-env)...");
359
366
  const env = await client.beta.environments.create({
360
367
  name: "swarm-worker-env",
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  recordContextState
3
- } from "./cli-2655k16q.js";
3
+ } from "./cli-sjctjr48.js";
4
4
  import {
5
5
  redactRateLimitEvent,
6
6
  SessionErrorTracker,
7
7
  trackErrorFromJson,
8
8
  parseStderrForErrors
9
- } from "./cli-gx4rm0qx.js";
9
+ } from "./cli-vz78s5wm.js";
10
10
  import {
11
11
  signalProcessGroup,
12
12
  detachedProcessGroup,
@@ -14,16 +14,16 @@ import {
14
14
  terminateProcessGroup
15
15
  } from "./cli-3ggwdtb0.js";
16
16
  import"./cli-3h26v7yj.js";
17
- import"./cli-pzatvw94.js";
17
+ import"./cli-54sj64fc.js";
18
18
  import"./cli-445c1vp7.js";
19
- import"./cli-qqzmjxkf.js";
19
+ import"./cli-1m9x8dr5.js";
20
20
  import"./cli-2nf3b08t.js";
21
21
  import"./cli-kvzgak7c.js";
22
- import"./cli-kxpfx2xr.js";
23
- import"./cli-mmhj8vd7.js";
22
+ import"./cli-0z1xjzwa.js";
23
+ import"./cli-c668vvcf.js";
24
24
  import"./cli-d82btycs.js";
25
25
  import"./cli-0726awxw.js";
26
- import"./cli-9j129brq.js";
26
+ import"./cli-yxbsmx56.js";
27
27
  import"./cli-e8xyjvfc.js";
28
28
  import {
29
29
  ClaudeBackgroundKeepalive,
@@ -31,22 +31,22 @@ import {
31
31
  cleanupTaskFile2,
32
32
  buildClaudeSessionEnvironment2,
33
33
  runClaudeSessionSummary2
34
- } from "./cli-g9vd9ece.js";
34
+ } from "./cli-1hhbzkbb.js";
35
35
  import"./cli-jc1g9ndz.js";
36
36
  import"./cli-4bd1rck6.js";
37
37
  import"./cli-vbhgkw9h.js";
38
- import"./cli-bn0rewsy.js";
38
+ import"./cli-c081bj3b.js";
39
39
  import {
40
40
  getContextWindowSize,
41
41
  init_context_window
42
- } from "./cli-0shx9j93.js";
42
+ } from "./cli-pfk92eqz.js";
43
43
  import"./cli-13p25grh.js";
44
44
  import"./cli-0adyhvq2.js";
45
45
  import"./cli-rycdaj0a.js";
46
46
  import {
47
47
  scrubSecrets,
48
48
  init_secret_scrubber
49
- } from "./cli-n4c8e3s5.js";
49
+ } from "./cli-708wdy32.js";
50
50
 
51
51
  // src/providers/claude-sdk-session.ts
52
52
  import { EventEmitter } from "node:events";
@@ -2,7 +2,7 @@ import {
2
2
  resolveTemplateAsync,
3
3
  init_resolver,
4
4
  init_session_templates
5
- } from "./cli-dqygeeh5.js";
5
+ } from "./cli-f1e0ptjj.js";
6
6
 
7
7
  // src/prompts/steering-delivery.ts
8
8
  init_session_templates();
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  scrubSecrets,
7
7
  init_secret_scrubber
8
- } from "./cli-n4c8e3s5.js";
8
+ } from "./cli-708wdy32.js";
9
9
 
10
10
  // src/providers/codex-oauth/auth-json.ts
11
11
  init_subscription_plans();
@@ -608,4 +608,4 @@ async function getValidCodexOAuth(apiUrl, apiKey, slot = 0, opts) {
608
608
  }
609
609
  }
610
610
 
611
- export { _fetchHolder, CLIENT_ID, exchangeAuthorizationCode2, getAccountId, loginCodexOAuth, deriveCodexKeySuffix, authJsonToCredentialSelection, credentialsToAuthJson, MAX_CODEX_OAUTH_SLOT, CodexOAuthRefreshError, codexOAuthKeyForSlot, loadAllCodexOAuthSlots, storeCodexOAuth, persistCodexOAuth, getValidCodexOAuth };
611
+ export { _fetchHolder, CLIENT_ID, decodeJwt, exchangeAuthorizationCode2, getAccountId, extractChatgptPlanType, loginCodexOAuth, deriveCodexKeySuffix, authJsonToCredentialSelection, credentialsToAuthJson, MAX_CODEX_OAUTH_SLOT, CodexOAuthRefreshError, codexOAuthKeyForSlot, loadAllCodexOAuthSlots, storeCodexOAuth, persistCodexOAuth, getValidCodexOAuth };
@@ -2,16 +2,16 @@ import {
2
2
  contextStatePath,
3
3
  contextBoundNoteMarkerPath,
4
4
  recordContextState
5
- } from "./cli-2655k16q.js";
5
+ } from "./cli-sjctjr48.js";
6
6
  import {
7
7
  runStopHookSessionSummarySubprocess
8
- } from "./cli-9j129brq.js";
8
+ } from "./cli-yxbsmx56.js";
9
9
  import {
10
10
  redactRateLimitEventLine,
11
11
  SessionErrorTracker,
12
12
  trackErrorFromJson,
13
13
  parseStderrForErrors
14
- } from "./cli-gx4rm0qx.js";
14
+ } from "./cli-vz78s5wm.js";
15
15
  import {
16
16
  swarmRuntimeInstanceId
17
17
  } from "./cli-e8xyjvfc.js";
@@ -32,7 +32,7 @@ import {
32
32
  } from "./cli-vbhgkw9h.js";
33
33
  import {
34
34
  applyReasoningEffort
35
- } from "./cli-bn0rewsy.js";
35
+ } from "./cli-c081bj3b.js";
36
36
  import {
37
37
  fetchInstalledMcpServers
38
38
  } from "./cli-bst1vp7e.js";
@@ -42,7 +42,7 @@ import {
42
42
  computeContextUsedUnified,
43
43
  clampContextPercent,
44
44
  init_context_window
45
- } from "./cli-0shx9j93.js";
45
+ } from "./cli-pfk92eqz.js";
46
46
  import {
47
47
  resolveClaudeTransport,
48
48
  isClaudeBridgeEffective
@@ -53,18 +53,16 @@ import {
53
53
  import {
54
54
  withFileLock,
55
55
  init_file_lock
56
- } from "./cli-e42vss7b.js";
57
- import {
58
- CLAUDE_CREDENTIALS_HINT,
59
- validateClaudeCredentials,
60
- init_credentials
61
- } from "./cli-zw88zjba.js";
56
+ } from "./cli-x37r7qwf.js";
62
57
  import {
63
58
  routeCredentialStatus,
64
59
  deriveDefaultRoute,
65
60
  routeUnsetEnv,
66
- init_src
67
- } from "./cli-e45e4m6b.js";
61
+ init_src,
62
+ CLAUDE_CREDENTIALS_HINT,
63
+ validateClaudeCredentials,
64
+ init_credentials
65
+ } from "./cli-gt4h8cxw.js";
68
66
  import {
69
67
  getOpenRouterAttributionHeaders,
70
68
  init_openrouter_base_url
@@ -76,7 +74,7 @@ import {
76
74
  import {
77
75
  scrubSecrets,
78
76
  init_secret_scrubber
79
- } from "./cli-n4c8e3s5.js";
77
+ } from "./cli-708wdy32.js";
80
78
  import {
81
79
  __toESM
82
80
  } from "./cli-242037k3.js";
@@ -1261,7 +1259,7 @@ class ClaudeAdapter2 {
1261
1259
  if (transport === "sdk" && isClaudeBridgeEffective(sourceEnv)) {
1262
1260
  throw new Error("CLAUDE_TRANSPORT=sdk cannot run with an effective Claude Bridge configuration. Select CLI transport or disable the bridge.");
1263
1261
  }
1264
- const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-7b7whkaq.js") : undefined;
1262
+ const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-f29f3b2x.js") : undefined;
1265
1263
  claudeSdk?.validateClaudeSdkAdditionalArgs([
1266
1264
  ...claudeBinaryArgv.slice(1),
1267
1265
  ...config.additionalArgs ?? []
@@ -1290,7 +1288,7 @@ class ClaudeAdapter2 {
1290
1288
  }
1291
1289
  if (isEnvFlagEnabled("CLAUDE_TRUST_PRESEED", true, sourceEnv)) {
1292
1290
  try {
1293
- await preseedClaudeTrustDialog(await resolveClaudeTrustDirs(config.cwd));
1291
+ await preseedClaudeTrustDialog(await resolveClaudeTrustDirs(config.cwd), sourceEnv.HOME || undefined);
1294
1292
  } catch (err) {
1295
1293
  console.warn(`\x1B[33m[claude]\x1B[0m ${scrubSecrets(`Failed to pre-seed trust for ${config.cwd}: ${err}`)}`);
1296
1294
  }