@desplega.ai/agent-swarm 2.7.4 → 2.7.6

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 (326) hide show
  1. package/README.md +1 -1
  2. package/dist/acp-adapter-bp91d37f.js +15 -0
  3. package/dist/{actions-gfrr9vb7.js → actions-yj0eeaqh.js} +19 -18
  4. package/dist/{amp-adapter-0s58gm46.js → amp-adapter-4pg9h34q.js} +3 -3
  5. package/dist/{app-stvq692g.js → app-909e97cr.js} +3 -3
  6. package/dist/{assistant-5s37fr9n.js → assistant-qdyb5fyy.js} +32 -23
  7. package/dist/{boot-reembed-yzy1841n.js → boot-reembed-fk0s9z18.js} +1 -1
  8. package/dist/{boot-reembed-cv82gz7y.js → boot-reembed-gs1rzrnh.js} +1 -1
  9. package/dist/{boot-scrub-sweep-8k4q95ap.js → boot-scrub-sweep-4qfd4kfx.js} +4 -4
  10. package/dist/{boot-seeds-ftt9htah.js → boot-seeds-yr00k13d.js} +4 -4
  11. package/dist/{boxd-515v1t8z.js → boxd-vdmfssd9.js} +5 -5
  12. package/dist/{claude-adapter-t00wrzeh.js → claude-adapter-qta1f1xn.js} +7 -7
  13. package/dist/{claude-managed-adapter-g6vmjccb.js → claude-managed-adapter-dvs2xw5n.js} +2 -2
  14. package/dist/{claude-managed-setup-afpa82f7.js → claude-managed-setup-sc6j4dm0.js} +3 -3
  15. package/dist/{claude-sdk-session-vj0c2azx.js → claude-sdk-session-zgrz6yvc.js} +9175 -9076
  16. package/dist/{cli-gjr2y2xk.js → cli-0agcv1v5.js} +4 -1
  17. package/dist/{cli-edmm9d9y.js → cli-0at8w34w.js} +7 -7
  18. package/dist/{cli-a81qevyg.js → cli-0qatpy8q.js} +20 -36
  19. package/dist/{cli-bcz074zx.js → cli-0yv5z2pg.js} +1 -1
  20. package/dist/{cli-a4btqqft.js → cli-1b7btd38.js} +1 -1
  21. package/dist/{cli-a2jw6ee5.js → cli-1p89xny0.js} +1 -1
  22. package/dist/{cli-v726afdm.js → cli-2pnswgh8.js} +1 -1
  23. package/dist/{cli-jkt52mgt.js → cli-386tyxxg.js} +2 -2
  24. package/dist/{cli-az0bpf8p.js → cli-3ypk9vk1.js} +3 -3
  25. package/dist/{cli-wk9md5px.js → cli-436532ck.js} +4 -4
  26. package/dist/{cli-7n5sbw0z.js → cli-4necwtsv.js} +5 -5
  27. package/dist/cli-54t00gt8.js +151 -0
  28. package/dist/{cli-655xm9ms.js → cli-583frbyr.js} +1 -1
  29. package/dist/{cli-4r12t6w6.js → cli-5c4hjzne.js} +101 -4
  30. package/dist/{cli-hf6zt5m6.js → cli-69szn7w7.js} +17 -1
  31. package/dist/{cli-rtk9g7av.js → cli-73jzwksr.js} +6 -2
  32. package/dist/{cli-jg0nfda6.js → cli-75gkpjvw.js} +52 -21
  33. package/dist/{cli-wcmnan2g.js → cli-89knwags.js} +5 -5
  34. package/dist/{cli-pwyevs29.js → cli-8bc1w0tw.js} +22 -21
  35. package/dist/{cli-t282jgab.js → cli-8snvgs5r.js} +41 -16
  36. package/dist/{cli-vqgnyh76.js → cli-98rw5dt5.js} +15 -3
  37. package/dist/{cli-9cctx1tn.js → cli-a22h291q.js} +1 -1
  38. package/dist/{cli-ycm6180s.js → cli-a7v854rf.js} +5 -3
  39. package/dist/{cli-98pke4vk.js → cli-ae7mrdf9.js} +2 -2
  40. package/dist/{cli-je8yeyc5.js → cli-bjb3z51z.js} +5 -5
  41. package/dist/{cli-mc97xy2s.js → cli-c60vetmm.js} +16 -4
  42. package/dist/{cli-j4kw3rsx.js → cli-cm5yqn35.js} +18 -0
  43. package/dist/{cli-wndv9p7g.js → cli-decfb6v8.js} +6 -6
  44. package/dist/{cli-h55y2bjc.js → cli-dhar9qay.js} +2 -2
  45. package/dist/{cli-8yy525ad.js → cli-drr5v6av.js} +2 -2
  46. package/dist/{cli-5gr1g711.js → cli-dxae2yg7.js} +2 -2
  47. package/dist/{cli-pe09p6dv.js → cli-e3r2neck.js} +8 -7
  48. package/dist/{cli-13jvmew3.js → cli-ekwks2vs.js} +7 -7
  49. package/dist/{cli-jg4p5t36.js → cli-es6va8jk.js} +121 -51
  50. package/dist/{cli-j4kt1mpb.js → cli-faxe6thg.js} +3 -3
  51. package/dist/{cli-tzrpv5sc.js → cli-ftyxyspd.js} +1 -1
  52. package/dist/cli-fw2w0kva.js +47 -0
  53. package/dist/{cli-2dfbv8qr.js → cli-fy6x31ps.js} +1 -0
  54. package/dist/{cli-aq58fk5m.js → cli-g83s9ewh.js} +7 -1
  55. package/dist/cli-gdhpcbhf.js +55 -0
  56. package/dist/{cli-82jg7fp9.js → cli-he5nxaa8.js} +1 -1
  57. package/dist/{cli-8veytvbh.js → cli-he9wchme.js} +1 -1
  58. package/dist/{cli-k76tgq03.js → cli-hgaazk69.js} +2 -2
  59. package/dist/{cli-d2pzqej1.js → cli-hr2e2fft.js} +741 -7
  60. package/dist/{cli-dae4sbgy.js → cli-jm2vfpfd.js} +2 -2
  61. package/dist/{cli-1s1dqn1j.js → cli-k2gzwsj2.js} +297 -140
  62. package/dist/{cli-b1afgtj3.js → cli-kqdg1bsb.js} +3 -3
  63. package/dist/cli-m2z8jagn.js +12078 -0
  64. package/dist/{cli-mvckssyq.js → cli-m48g6p95.js} +5 -5
  65. package/dist/{cli-bwty35gx.js → cli-mthwvjre.js} +1 -1
  66. package/dist/{cli-41z8xwj0.js → cli-nhrvpaj7.js} +34 -8
  67. package/dist/{cli-ahd90bwt.js → cli-nwj0ee2w.js} +6 -6
  68. package/dist/{cli-kvtc7aez.js → cli-p5gp8pcx.js} +44 -14
  69. package/dist/{cli-avgcz4ra.js → cli-pd7vagab.js} +436 -171
  70. package/dist/{cli-zn15c46z.js → cli-q0k1w5zd.js} +1 -1
  71. package/dist/{cli-bq2pcphn.js → cli-rmmmrjkd.js} +1 -1
  72. package/dist/{cli-2qpvmmkw.js → cli-s0qnd4wv.js} +1 -1
  73. package/dist/{cli-kg8hchyg.js → cli-sa02jsqt.js} +1 -1
  74. package/dist/{cli-1yekbyqm.js → cli-shpbx5ee.js} +283 -82
  75. package/dist/{cli-9y354g3j.js → cli-srye3vdt.js} +1 -1
  76. package/dist/{cli-byqfbnjw.js → cli-svj5090z.js} +9 -9
  77. package/dist/{cli-gcbdjt47.js → cli-vfym7wmz.js} +6 -6
  78. package/dist/{cli-v1yw3wha.js → cli-vvpx3gsx.js} +4 -4
  79. package/dist/{cli-a1fhj4n9.js → cli-w6dt9ged.js} +2 -2
  80. package/dist/{cli-1gm8jcyr.js → cli-waqbxg08.js} +5232 -68
  81. package/dist/{cli-5hjced2v.js → cli-wp9sp1qb.js} +6 -6
  82. package/dist/{cli-eny54typ.js → cli-wx3rhnm0.js} +1 -1
  83. package/dist/{cli-s0exq74r.js → cli-xbbndvjy.js} +3 -3
  84. package/dist/{cli-f255yaqn.js → cli-xds5f77d.js} +3 -3
  85. package/dist/{cli-0sbkss7h.js → cli-xnqgpshy.js} +2 -2
  86. package/dist/{cli-0fgr1w9b.js → cli-xnrwazav.js} +20 -3
  87. package/dist/{cli-gf5hbmdr.js → cli-yjdgea32.js} +3 -3
  88. package/dist/{cli-cq1pf336.js → cli-yn4kxs06.js} +124 -11
  89. package/dist/{cli-224epwwf.js → cli-yx4kfngt.js} +3 -3
  90. package/dist/{cli-eqx6k993.js → cli-yy3rhsdw.js} +47 -13
  91. package/dist/{cli-36g23z21.js → cli-zbbwez0r.js} +4 -4
  92. package/dist/{cli-ktmvb20s.js → cli-zm72anhg.js} +12 -12
  93. package/dist/cli.js +26 -25
  94. package/dist/{codex-adapter-g0gctw29.js → codex-adapter-ayd1fb6h.js} +5 -5
  95. package/dist/{codex-hook-vrzz2xhr.js → codex-hook-9efm2x1m.js} +1 -1
  96. package/dist/{codex-login-0gg46ygn.js → codex-login-y0pmff1c.js} +1 -1
  97. package/dist/{codex-session-runner-dr2cxe1c.js → codex-session-runner-jesa32xc.js} +6 -6
  98. package/dist/{commands-1p07cvff.js → commands-hanewgf2.js} +9 -3
  99. package/dist/{controller-z0s7sv6r.js → controller-dt1n3c1q.js} +9 -4
  100. package/dist/{controllers-connect-x9kvvhyk.js → controllers-connect-xx8x64n5.js} +22 -21
  101. package/dist/{cursor-adapter-m5b98pvk.js → cursor-adapter-9s4dwwdw.js} +2 -2
  102. package/dist/{db-capk2raj.js → db-3vttcbv4.js} +3 -3
  103. package/dist/{db-rsh04kh3.js → db-9dv0g1ab.js} +12 -4
  104. package/dist/{devin-adapter-yxm87fe9.js → devin-adapter-r9phbnc9.js} +1 -1
  105. package/dist/{devtools-82fzqra8.js → devtools-qxfgbsqz.js} +1 -1
  106. package/dist/{dispatcher-304q6fwa.js → dispatcher-tx9hd1sv.js} +18 -17
  107. package/dist/{docker-7rxt0rry.js → docker-c1a3gqmf.js} +91 -24
  108. package/dist/{dsh-adapter-btewem0y.js → dsh-adapter-007y4ejs.js} +2 -2
  109. package/dist/{e2b-renc0k8q.js → e2b-a19d28rz.js} +4 -4
  110. package/dist/{e2b-7fc9b9bd.js → e2b-we6hs6q5.js} +6 -6
  111. package/dist/{easter-egg-3d-fm1p3n4d.js → easter-egg-3d-rgbrqb8s.js} +1 -1
  112. package/dist/{embedding-space-s68v49ct.js → embedding-space-ny1e2940.js} +6 -6
  113. package/dist/{embeddings-4ms3604w.js → embeddings-2t386t13.js} +1 -1
  114. package/dist/{event-bus-dfjx2qdh.js → event-bus-g0ka3pbw.js} +1 -1
  115. package/dist/{execute-mcdgccjs.js → execute-pksh0ceh.js} +1 -1
  116. package/dist/{external-channel-9dxwfztn.js → external-channel-phgmhmd7.js} +2 -2
  117. package/dist/fx-adapter-fy8rr921.js +18 -0
  118. package/dist/{google-generative-ai-yvmdxyxa.js → google-generative-ai-8y3m3k4b.js} +1 -1
  119. package/dist/{google-vertex-jrtdh9gs.js → google-vertex-w3v98n7b.js} +1 -1
  120. package/dist/{grok-adapter-05ecv4h0.js → grok-adapter-q0abvpaj.js} +8 -8
  121. package/dist/handlers-by3sfxyx.js +32 -0
  122. package/dist/{heartbeat-3n94heh3.js → heartbeat-kadyek8p.js} +21 -20
  123. package/dist/{hook-aadrn69x.js → hook-5zs3msf6.js} +6 -6
  124. package/dist/{hook-zxwje86c.js → hook-9k551xnj.js} +4 -4
  125. package/dist/{http-xzxk9mst.js → http-mhz9vw1f.js} +272 -103
  126. package/dist/index-4f2pvxae.js +37 -0
  127. package/dist/index-98gz7tmp.js +30 -0
  128. package/dist/{index-5rk6rfzr.js → index-fvzke5kx.js} +1 -1
  129. package/dist/index-k08z2cak.js +33 -0
  130. package/dist/{index-yqhz88yy.js → index-pxn30mse.js} +8 -8
  131. package/dist/{index-d34f6r87.js → index-q361cg2f.js} +1 -1
  132. package/dist/{index-9j4zwcht.js → index-rvr00sg7.js} +168 -675
  133. package/dist/{index-qeb82z37.js → index-vdygbq10.js} +1 -1
  134. package/dist/{keepalive-w4aakbyk.js → keepalive-w56f32cg.js} +4 -4
  135. package/dist/lead-enq35nqp.js +70 -0
  136. package/dist/{maintenance-hbptpk6p.js → maintenance-7mdgxcea.js} +1 -1
  137. package/dist/{oauth-refresh-sweep-217semrv.js → oauth-refresh-sweep-29txy9vk.js} +3 -3
  138. package/dist/{onboard-vz2s5df3.js → onboard-kpsrkarj.js} +5 -5
  139. package/dist/{opencode-adapter-gtfd7d7v.js → opencode-adapter-j25vm3rr.js} +5 -5
  140. package/dist/{otel-impl-aefave37.js → otel-impl-6kkct7a8.js} +2 -2
  141. package/dist/{pi-mono-adapter-f8h5yseh.js → pi-mono-adapter-exhkzhn2.js} +117 -23
  142. package/dist/{pricing-refresh-m1yhh9ya.js → pricing-refresh-n2x7jh6k.js} +3 -3
  143. package/dist/{rbac-roles-rrw8twdz.js → rbac-roles-81ypx6es.js} +1 -1
  144. package/dist/{rbac-roles-svj72cdf.js → rbac-roles-b5htkjby.js} +2 -2
  145. package/dist/{render-v2-amwbnfxh.js → render-v2-qn6jmpk4.js} +3 -3
  146. package/dist/{resume-9cd6wf6z.js → resume-wd30wx23.js} +7 -7
  147. package/dist/{runtime-fp4vrx7m.js → runtime-4hsg7h60.js} +1 -1
  148. package/dist/{session-access-21t6yjyg.js → session-access-5qvfevhk.js} +4 -4
  149. package/dist/{session-source-backfill-pxbzcsc6.js → session-source-backfill-n1czavbr.js} +3 -3
  150. package/dist/{setup-4592tqz4.js → setup-dnb56qy5.js} +3 -3
  151. package/dist/{virtual-modules-gzfnpmnz.js → virtual-modules-76xxv9fs.js} +2 -2
  152. package/dist/{work-objects-t9tcf174.js → work-objects-4n21tfkm.js} +21 -20
  153. package/dist/{worker-follow-up-q32jh4yk.js → worker-follow-up-77hvzxww.js} +18 -17
  154. package/dist/worker-gg1576j3.js +70 -0
  155. package/dist/{x-b6wxntdt.js → x-vmmye1kb.js} +2 -2
  156. package/openapi.json +189 -32
  157. package/package.json +8 -7
  158. package/src/be/db/script-runs.ts +23 -0
  159. package/src/be/db/session-summaries.ts +8 -2
  160. package/src/be/db/session-tree.ts +174 -61
  161. package/src/be/db/session-visibility.ts +5 -4
  162. package/src/be/db/tasks/read.ts +122 -3
  163. package/src/be/db-client.ts +8 -5
  164. package/src/be/db.ts +23 -8
  165. package/src/be/memory/providers/sqlite-store.ts +49 -12
  166. package/src/be/migrations/259_session_summaries_open_tasks.sql +111 -0
  167. package/src/be/migrations/260_runtime_pool_cache.sql +20 -0
  168. package/src/be/migrations/262_session_visibility_indexes.sql +18 -0
  169. package/src/be/migrations/263_task_list_filter_index.sql +11 -0
  170. package/src/be/migrations/264_slack_thread_cover_index.sql +9 -0
  171. package/src/be/migrations/266_script_runs_source_task.sql +11 -0
  172. package/src/be/model-validation.ts +5 -1
  173. package/src/be/pricing-normalize.ts +7 -2
  174. package/src/be/runtime-pools/cache-cleanup.ts +109 -0
  175. package/src/be/runtime-pools/db.ts +65 -6
  176. package/src/be/runtime-pools/remote-controller.ts +5 -0
  177. package/src/be/runtime-pools/supervisor.ts +33 -2
  178. package/src/be/scripts/typecheck.ts +23 -0
  179. package/src/be/seed/schedules-seeder.ts +135 -9
  180. package/src/be/seed/workflows-seeder.ts +65 -1
  181. package/src/be/seed-pricing.ts +23 -0
  182. package/src/be/seed-scripts/catalog/task-failure-audit.ts +5 -1
  183. package/src/be/steering.ts +50 -3
  184. package/src/be/swarm-config-guard.ts +1 -0
  185. package/src/commands/controller.ts +4 -0
  186. package/src/commands/entrypoint-api-readiness.ts +74 -0
  187. package/src/commands/provider-credentials.ts +29 -2
  188. package/src/commands/runner.ts +86 -5
  189. package/src/extensions/contract-types.generated.ts +1 -1
  190. package/src/extensions/contract.ts +27 -1
  191. package/src/extensions/dispatcher.ts +4 -0
  192. package/src/http/agents.ts +1 -0
  193. package/src/http/index.ts +1 -1
  194. package/src/http/list-total-cache.ts +14 -7
  195. package/src/http/mcp-bridge.ts +4 -0
  196. package/src/http/memory.ts +38 -9
  197. package/src/http/script-runs.ts +174 -5
  198. package/src/http/status.ts +10 -2
  199. package/src/http/tasks.ts +4 -2
  200. package/src/integrations/chat-sdk/inbound.ts +15 -5
  201. package/src/integrations/chat-sdk/steering.ts +3 -1
  202. package/src/kv-reserved-namespaces.ts +2 -0
  203. package/src/prompts/base-prompt.ts +4 -1
  204. package/src/prompts/session-templates.ts +26 -0
  205. package/src/providers/acp-adapter.ts +190 -26
  206. package/src/providers/acp-targets.ts +306 -6
  207. package/src/providers/amp-adapter.ts +1 -1
  208. package/src/providers/codex-adapter.ts +9 -44
  209. package/src/providers/codex-oauth/flow.ts +24 -3
  210. package/src/providers/codex-oauth/storage.ts +56 -17
  211. package/src/providers/codex-oauth/subscription.ts +67 -0
  212. package/src/providers/fx-adapter.ts +211 -0
  213. package/src/providers/index.ts +5 -1
  214. package/src/providers/mcp-loopback-proxy.ts +94 -0
  215. package/src/providers/pi-mono-adapter.ts +98 -13
  216. package/src/providers/pricing-sources.md +8 -0
  217. package/src/providers/reasoning-effort.ts +17 -1
  218. package/src/providers/types.ts +2 -1
  219. package/src/runtime-providers/controller-protocol.ts +14 -1
  220. package/src/runtime-providers/controller.ts +5 -0
  221. package/src/runtime-providers/docker.ts +108 -23
  222. package/src/runtime-providers/types.ts +16 -0
  223. package/src/scheduler/scheduler.ts +36 -3
  224. package/src/script-workflows/workflow-ctx.ts +8 -0
  225. package/src/scripts-runtime/sdk-allowlist.ts +1 -0
  226. package/src/scripts-runtime/types/stdlib.d.ts +27 -0
  227. package/src/scripts-runtime/types/swarm-extension.d.ts +33 -0
  228. package/src/scripts-runtime/types/swarm-sdk.d.ts +27 -0
  229. package/src/server-user.ts +1 -0
  230. package/src/server.ts +7 -0
  231. package/src/slack/assistant.ts +17 -1
  232. package/src/slack/commands.ts +5 -1
  233. package/src/slack/handlers.ts +53 -5
  234. package/src/slack/left-threads.ts +88 -0
  235. package/src/slack/steering.ts +3 -0
  236. package/src/slack/thread-buffer.ts +40 -16
  237. package/src/tasks/follow-up-redelegation-guard.ts +155 -0
  238. package/src/tests/acp-adapter.test.ts +79 -0
  239. package/src/tests/base-prompt.test.ts +12 -0
  240. package/src/tests/chat-sdk-inbound.test.ts +30 -0
  241. package/src/tests/chatgpt-subscription-model-groups.test.ts +62 -0
  242. package/src/tests/chatgpt-subscription-pi.test.ts +170 -0
  243. package/src/tests/chatgpt-subscription-session-bench.test.ts +198 -0
  244. package/src/tests/claude-artifacts-read-script.test.ts +209 -0
  245. package/src/tests/codex-oauth-credential-info.test.ts +40 -0
  246. package/src/tests/codex-oauth-refresh-egress.test.ts +194 -0
  247. package/src/tests/context-window.test.ts +7 -0
  248. package/src/tests/db-client.test.ts +21 -0
  249. package/src/tests/db-task-read-contract.test.ts +8 -2
  250. package/src/tests/db-task-write-contract.test.ts +5 -1
  251. package/src/tests/entrypoint-api-readiness.test.ts +416 -210
  252. package/src/tests/explicit-model-validation.test.ts +113 -8
  253. package/src/tests/extensions-run-context.test.ts +11 -0
  254. package/src/tests/extensions-steering.test.ts +353 -0
  255. package/src/tests/extensions-validate.test.ts +5 -0
  256. package/src/tests/fixtures/extensions/steering-policy/hooks.ts +39 -0
  257. package/src/tests/fixtures/extensions/steering-policy/manifest.json +7 -0
  258. package/src/tests/fixtures/fake-fx.ts +167 -0
  259. package/src/tests/fixtures/fx/acp-responses-recorded.json +157 -0
  260. package/src/tests/fixtures/fx/acp-updates-recorded.jsonl +15 -0
  261. package/src/tests/follow-up-redelivery-guard.test.ts +432 -202
  262. package/src/tests/fx-adapter.test.ts +771 -0
  263. package/src/tests/grok-adapter.test.ts +36 -0
  264. package/src/tests/list-total-cache.test.ts +27 -2
  265. package/src/tests/mcp-loopback-proxy.test.ts +193 -0
  266. package/src/tests/memory-fts-populate.test.ts +11 -9
  267. package/src/tests/memory-retrieval-purge.test.ts +80 -0
  268. package/src/tests/migration-260-runtime-pool-cache.test.ts +118 -0
  269. package/src/tests/model-tier-resolution.test.ts +3 -3
  270. package/src/tests/pricing-refresh.test.ts +5 -5
  271. package/src/tests/prompt-template-session.test.ts +5 -3
  272. package/src/tests/provider-registration.test.ts +2 -1
  273. package/src/tests/query-audit-plans.test.ts +30 -2
  274. package/src/tests/runtime-cache-cleanup.test.ts +367 -0
  275. package/src/tests/runtime-e2b-pools.test.ts +41 -0
  276. package/src/tests/runtime-pools-db.test.ts +98 -0
  277. package/src/tests/runtime-pools-http.test.ts +29 -0
  278. package/src/tests/runtime-providers-docker.test.ts +253 -0
  279. package/src/tests/runtime-remote-controller.test.ts +66 -2
  280. package/src/tests/runtime-supervisor.test.ts +66 -2
  281. package/src/tests/script-connections.test.ts +13 -0
  282. package/src/tests/script-runs-http.test.ts +684 -2
  283. package/src/tests/seed-model-profiles.test.ts +2 -2
  284. package/src/tests/seed-schedules.test.ts +138 -0
  285. package/src/tests/seed-scripts.test.ts +26 -0
  286. package/src/tests/session-cost-recompute-unit.test.ts +39 -0
  287. package/src/tests/session-costs-golden.test.ts +26 -0
  288. package/src/tests/session-summaries-plans.test.ts +120 -0
  289. package/src/tests/session-summaries.test.ts +72 -12
  290. package/src/tests/sessions-tree.test.ts +11 -3
  291. package/src/tests/slack-leave-thread.test.ts +571 -0
  292. package/src/tests/slack-render-v2-query-plans.test.ts +24 -2
  293. package/src/tests/status.test.ts +11 -0
  294. package/src/tests/tasks-readable-row.test.ts +155 -0
  295. package/src/tests/tool-annotations.test.ts +2 -1
  296. package/src/tests/workflow-engine-v2.test.ts +42 -0
  297. package/src/tests/workflow-script-principal.test.ts +207 -7
  298. package/src/tools/send-task.ts +35 -47
  299. package/src/tools/slack-leave-thread.ts +104 -0
  300. package/src/tools/steer-task.ts +3 -2
  301. package/src/tools/task-dedup.ts +45 -21
  302. package/src/tools/tool-config.ts +2 -1
  303. package/src/types.ts +57 -0
  304. package/src/utils/codex-auth-failure.ts +30 -0
  305. package/src/utils/context-window.ts +4 -1
  306. package/src/utils/credentials.ts +7 -0
  307. package/src/utils/fx-models.ts +43 -0
  308. package/src/workflows/cooldown.ts +3 -2
  309. package/src/workflows/engine.ts +24 -9
  310. package/templates/schedules/dreaming-daily/config.json +1 -1
  311. package/templates/schedules/dreaming-daily/content.md +6 -14
  312. package/templates/skills/composio-google-docs/content.md +10 -0
  313. package/templates/skills/script-workflows/content.md +19 -1
  314. package/templates/skills/swarm-docs/content.md +2 -0
  315. package/templates/skills/swarm-scripts/SKILL.md +2 -0
  316. package/templates/skills/swarm-scripts/content.md +2 -0
  317. package/templates/workflows/dreaming/content.md +5 -1
  318. package/dist/acp-adapter-96dc64m2.js +0 -15
  319. package/dist/cli-dznrgaep.js +0 -30
  320. package/dist/cli-w3hcrxht.js +0 -6985
  321. package/dist/handlers-jg7v74ty.js +0 -31
  322. package/dist/index-8c1zbz59.js +0 -29
  323. package/dist/index-8k8tmfxd.js +0 -32
  324. package/dist/index-hq617xdj.js +0 -36
  325. package/dist/lead-567kw7x3.js +0 -68
  326. package/dist/worker-fjdqra6q.js +0 -68
@@ -4,7 +4,7 @@ import {
4
4
  CONTROLLER_COMMAND_TIMEOUT_MS,
5
5
  RuntimeHandleSchema,
6
6
  ControllerStatusResultSchema
7
- } from "./cli-0fgr1w9b.js";
7
+ } from "./cli-xnrwazav.js";
8
8
  import {
9
9
  getDbClient2,
10
10
  isRuntimePoolsEnabled,
@@ -21,8 +21,11 @@ import {
21
21
  upsertSwarmConfig2,
22
22
  getResolvedConfig2,
23
23
  init_db4
24
- } from "./cli-1s1dqn1j.js";
24
+ } from "./cli-k2gzwsj2.js";
25
25
  import {
26
+ getPoolCache,
27
+ reconcileCacheReleases,
28
+ init_cache_cleanup,
26
29
  getRuntimeController2,
27
30
  getRuntimeControllerTarget2,
28
31
  checkE2bControllerConfig2,
@@ -32,17 +35,17 @@ import {
32
35
  getPoolForAgent2,
33
36
  resolvePoolDelivery2,
34
37
  init_db2
35
- } from "./cli-cq1pf336.js";
38
+ } from "./cli-yn4kxs06.js";
36
39
  import {
37
40
  workflowEventBus2,
38
41
  init_event_bus
39
- } from "./cli-eny54typ.js";
42
+ } from "./cli-wx3rhnm0.js";
40
43
  import {
41
44
  createWorkerTaskFollowUp2,
42
45
  init_worker_follow_up,
43
46
  canClaim,
44
47
  init_budget_admission
45
- } from "./cli-1yekbyqm.js";
48
+ } from "./cli-shpbx5ee.js";
46
49
  import {
47
50
  runtimeStaleThresholdMinutes,
48
51
  getRuntimeInstanceById,
@@ -51,7 +54,7 @@ import {
51
54
  listRuntimeInstancesForAgent,
52
55
  listRuntimeInstancesForPool,
53
56
  init_multi_runtime
54
- } from "./cli-pwyevs29.js";
57
+ } from "./cli-8bc1w0tw.js";
55
58
  import {
56
59
  isMultiRuntimeEnabled,
57
60
  init_multi_runtime2
@@ -60,20 +63,20 @@ import {
60
63
  canProvisionKind,
61
64
  createRuntimeProvider,
62
65
  init_runtime_providers
63
- } from "./cli-b1afgtj3.js";
66
+ } from "./cli-kqdg1bsb.js";
64
67
  import {
65
68
  mintRuntimeToken,
66
69
  init_users
67
- } from "./cli-8yy525ad.js";
70
+ } from "./cli-drr5v6av.js";
68
71
  import {
69
72
  import_websocket,
70
73
  init_wrapper2
71
- } from "./cli-dznrgaep.js";
74
+ } from "./cli-69szn7w7.js";
72
75
  import {
73
76
  TERMINAL_TASK_STATUSES,
74
77
  isTerminalTaskStatus,
75
78
  init_types4
76
- } from "./cli-41z8xwj0.js";
79
+ } from "./cli-nhrvpaj7.js";
77
80
  import {
78
81
  init_zod
79
82
  } from "./cli-k5671be5.js";
@@ -89,7 +92,7 @@ import {
89
92
  import {
90
93
  buildImageTemplate,
91
94
  init_dispatch
92
- } from "./cli-655xm9ms.js";
95
+ } from "./cli-583frbyr.js";
93
96
  import {
94
97
  resolveWorkerApiUrl,
95
98
  init_worker_api_url
@@ -97,12 +100,12 @@ import {
97
100
  import {
98
101
  RUNTIME_LABELS,
99
102
  init_types5
100
- } from "./cli-gjr2y2xk.js";
103
+ } from "./cli-0agcv1v5.js";
101
104
  import {
102
105
  scrubSecrets,
103
106
  registerVolatileSecret,
104
107
  init_secret_scrubber
105
- } from "./cli-a4btqqft.js";
108
+ } from "./cli-1b7btd38.js";
106
109
 
107
110
  // src/be/runtime-pools/supervisor.ts
108
111
  init_runtime_providers();
@@ -118,6 +121,7 @@ init_budget_admission();
118
121
  init_db4();
119
122
  init_multi_runtime();
120
123
  init_users();
124
+ init_cache_cleanup();
121
125
 
122
126
  // src/be/runtime-pools/controllers.ts
123
127
  init_runtime_providers();
@@ -162,12 +166,17 @@ class RemoteController {
162
166
  renew;
163
167
  pause;
164
168
  resume;
169
+ releaseCache;
165
170
  constructor(id, ws, traits, workerApiUrl, timeouts = {}) {
166
171
  this.id = id;
167
172
  this.ws = ws;
168
173
  this.traits = traits;
169
174
  this.workerApiUrl = workerApiUrl;
170
175
  this.timeouts = timeouts;
176
+ if (traits.persistentCache)
177
+ this.releaseCache = async (cache) => {
178
+ await this.call({ op: "release-cache", payload: cache });
179
+ };
171
180
  if (traits.maxTtlSec)
172
181
  this.renew = async (handle, ttlSec) => object2({ endAt: string2() }).parse(await this.call({ op: "renew", payload: { handle, ttlSec } }));
173
182
  if (traits.supportsPause) {
@@ -537,7 +546,7 @@ async function recoverSessions(runtimeId, reason) {
537
546
  }
538
547
  if (!sessions.length)
539
548
  return;
540
- const { remediateTaskForDeadRuntime } = await import("./heartbeat-3n94heh3.js");
549
+ const { remediateTaskForDeadRuntime } = await import("./heartbeat-kadyek8p.js");
541
550
  for (const session of sessions) {
542
551
  try {
543
552
  const task = await getTaskById2(session.taskId);
@@ -818,6 +827,9 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
818
827
  if (templateId)
819
828
  env.TEMPLATE_ID = templateId;
820
829
  const ttlSec = pool.kind === "e2b" ? poolLeaseTtl(pool, controller) : undefined;
830
+ const currentPoolCache = await getPoolCache(pool.id);
831
+ const currentCache = currentPoolCache?.controllerId === pool.placements[0] ? currentPoolCache : null;
832
+ const cache = currentCache && controller.traits.persistentCache ? { key: currentCache.key, mountPath: currentCache.mountPath } : undefined;
821
833
  signal?.throwIfAborted();
822
834
  const handle = await controller.provision({
823
835
  runtimeId,
@@ -828,6 +840,7 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
828
840
  ...ttlSec === undefined ? {} : { ttlSec },
829
841
  env,
830
842
  resources: pool.resources ?? undefined,
843
+ ...cache ? { cache } : {},
831
844
  labels: {
832
845
  [RUNTIME_LABELS.runtimeId]: runtimeId,
833
846
  [RUNTIME_LABELS.poolId]: pool.id,
@@ -840,6 +853,17 @@ async function provisionRuntime(pool, agent, controller, ownerId, now = new Date
840
853
  await markRuntimeTerminated(runtimeId, "Supervisor stopped during provision");
841
854
  return false;
842
855
  }
856
+ const cacheWarning = currentCache ? !controller.traits.persistentCache ? "Controller does not support persistent caches; runtime started without cache" : handle.meta?.cacheWarning : undefined;
857
+ const cacheErrorPrefix = "Persistent cache: ";
858
+ const cacheError = cacheWarning ? cacheErrorPrefix + scrubSecrets(cacheWarning) : null;
859
+ await getDbClient2().run(`UPDATE runtime_pools SET last_error = ?, last_error_at = ?
860
+ WHERE id = ? AND (last_error IS NULL OR substr(last_error, 1, ?) = ?)`, [
861
+ cacheError,
862
+ cacheError ? new Date().toISOString() : null,
863
+ pool.id,
864
+ cacheErrorPrefix.length,
865
+ cacheErrorPrefix
866
+ ]);
843
867
  await getDbClient2().run("UPDATE runtime_instances SET external_handle = ?, lease_expires_at = ?, created_at = COALESCE(?, created_at), updated_at = ? WHERE id = ?", [
844
868
  JSON.stringify(handle),
845
869
  ttlSec === undefined ? null : handle.meta?.leaseExpiresAt ?? new Date(now.getTime() + ttlSec * 1000).toISOString(),
@@ -1286,8 +1310,9 @@ async function reconcilePools(now, commands, signal) {
1286
1310
  async function reconcileOnce(opts = {}) {
1287
1311
  if (!isRuntimePoolsEnabled() || !isMultiRuntimeEnabled() || inFlight)
1288
1312
  return;
1289
- tickAbort = new AbortController;
1290
- inFlight = reconcilePools(opts.now ?? new Date, opts.getControllerCommands ?? getControllerCommands, tickAbort.signal);
1313
+ const tick = new AbortController;
1314
+ tickAbort = tick;
1315
+ inFlight = reconcilePools(opts.now ?? new Date, opts.getControllerCommands ?? getControllerCommands, tick.signal).then(() => reconcileCacheReleases(opts.getControllerCommands ?? getControllerCommands, tick.signal));
1291
1316
  try {
1292
1317
  await inFlight;
1293
1318
  } catch (error) {
@@ -2,15 +2,17 @@ import {
2
2
  runtimeCatalogSection,
3
3
  runtimeCatalogModel,
4
4
  init_runtime_model_catalog
5
- } from "./cli-a2jw6ee5.js";
5
+ } from "./cli-1p89xny0.js";
6
6
  import {
7
+ CHATGPT_SUBSCRIPTION_PROVIDER,
7
8
  dshCatalogRef,
8
9
  grokCatalogRef,
10
+ fxCatalogRef,
9
11
  cursorCatalogRef,
10
12
  reasoningLevelsFor,
11
13
  claudeCatalogModelId,
12
14
  init_src2
13
- } from "./cli-4r12t6w6.js";
15
+ } from "./cli-5c4hjzne.js";
14
16
 
15
17
  // src/providers/reasoning-effort.ts
16
18
  init_src2();
@@ -38,10 +40,17 @@ function lookupModel(harness, model) {
38
40
  ({ providerId, modelId } = cursorCatalogRef(model));
39
41
  } else if (harness === "grok") {
40
42
  ({ providerId, modelId } = grokCatalogRef(model));
43
+ } else if (harness === "fx") {
44
+ const ref = fxCatalogRef(model);
45
+ if (!ref)
46
+ return;
47
+ ({ providerId, modelId } = ref);
41
48
  } else {
42
49
  ({ providerId, modelId } = splitProviderModel(model));
43
50
  if (!providerId)
44
51
  return;
52
+ if (providerId.toLowerCase() === CHATGPT_SUBSCRIPTION_PROVIDER)
53
+ providerId = "openai";
45
54
  }
46
55
  const facts = runtimeCatalogModel(providerId, modelId);
47
56
  return facts ? { id: modelId, facts } : undefined;
@@ -124,6 +133,8 @@ function applyReasoningEffort(harness, model, level) {
124
133
  return { kind: "cursor-effort", reasoningEffort: level };
125
134
  case "grok":
126
135
  return { kind: "grok-effort", reasoningEffort: level };
136
+ case "fx":
137
+ return { kind: "fx-effort", reasoningEffort: level };
127
138
  default: {
128
139
  const _exhaustive = harness;
129
140
  return _exhaustive;
@@ -138,7 +149,8 @@ var REASONING_HARNESSES = new Set([
138
149
  "dsh",
139
150
  "cursor",
140
151
  "amp",
141
- "grok"
152
+ "grok",
153
+ "fx"
142
154
  ]);
143
155
  function supportedReasoningLevels(harness, model) {
144
156
  if (!REASONING_HARNESSES.has(harness))
@@ -2,7 +2,7 @@ import {
2
2
  openAICompatibleKeyVars,
3
3
  openAICompatibleBaseUrlVars,
4
4
  init_src2
5
- } from "./cli-4r12t6w6.js";
5
+ } from "./cli-5c4hjzne.js";
6
6
 
7
7
  // src/providers/acp-target-catalog.ts
8
8
  init_src2();
@@ -8,12 +8,12 @@ import {
8
8
  } from "./cli-4sydckyj.js";
9
9
  import {
10
10
  init_templates4
11
- } from "./cli-v726afdm.js";
11
+ } from "./cli-2pnswgh8.js";
12
12
  import {
13
13
  resolveTemplateAsync,
14
14
  init_resolver,
15
15
  init_session_templates
16
- } from "./cli-j4kw3rsx.js";
16
+ } from "./cli-cm5yqn35.js";
17
17
  import {
18
18
  MAX_PROFILE_FILE_LENGTH,
19
19
  getAppUrl,
@@ -26,7 +26,7 @@ import {
26
26
  import {
27
27
  scrubSecrets,
28
28
  init_secret_scrubber
29
- } from "./cli-a4btqqft.js";
29
+ } from "./cli-1b7btd38.js";
30
30
  import {
31
31
  __esm
32
32
  } from "./cli-242037k3.js";
@@ -262,6 +262,8 @@ function toolDiscoveryEvent(provider, hasToolSearch) {
262
262
  switch (provider) {
263
263
  case "amp":
264
264
  return "system.agent.tool_discovery.amp";
265
+ case "fx":
266
+ return "system.agent.tool_discovery.fx";
265
267
  case "codex":
266
268
  return "system.agent.tool_discovery.codex";
267
269
  case "opencode":
@@ -6,12 +6,12 @@ import {
6
6
  isSensitiveKey,
7
7
  scrubSecrets,
8
8
  init_secret_scrubber
9
- } from "./cli-a4btqqft.js";
9
+ } from "./cli-1b7btd38.js";
10
10
  import {
11
11
  openAICompatibleKeyVars,
12
12
  openAICompatibleBaseUrlVars,
13
13
  init_src2
14
- } from "./cli-4r12t6w6.js";
14
+ } from "./cli-5c4hjzne.js";
15
15
  import {
16
16
  __esm
17
17
  } from "./cli-242037k3.js";
@@ -5,12 +5,12 @@ import {
5
5
  import {
6
6
  publicEndpointSsrfOptions,
7
7
  init_mcp_wrapper
8
- } from "./cli-k76tgq03.js";
8
+ } from "./cli-hgaazk69.js";
9
9
  import {
10
10
  normalizeOrgWebsite,
11
11
  init_org_website,
12
12
  assertUrlSafe
13
- } from "./cli-1s1dqn1j.js";
13
+ } from "./cli-k2gzwsj2.js";
14
14
  import {
15
15
  getOpenRouterBaseUrl,
16
16
  getOpenRouterAttributionHeaders,
@@ -21,16 +21,16 @@ import {
21
21
  createScopedFetch,
22
22
  deriveDefaultRoute,
23
23
  init_src
24
- } from "./cli-aq58fk5m.js";
24
+ } from "./cli-g83s9ewh.js";
25
25
  import {
26
26
  scrubSecrets,
27
27
  init_secret_scrubber
28
- } from "./cli-a4btqqft.js";
28
+ } from "./cli-1b7btd38.js";
29
29
  import {
30
30
  providerBaseUrl,
31
31
  providerForKeyVar,
32
32
  init_src2
33
- } from "./cli-4r12t6w6.js";
33
+ } from "./cli-5c4hjzne.js";
34
34
 
35
35
  // src/utils/lead-monitor-channels.ts
36
36
  function isLeadChannelMonitoringEnabled(env = process.env) {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  getDb2,
3
3
  init_db4
4
- } from "./cli-1s1dqn1j.js";
4
+ } from "./cli-k2gzwsj2.js";
5
5
  import {
6
6
  openAICompatibleProviderIds,
7
7
  withRegistryCatalogSections,
8
8
  init_src2
9
- } from "./cli-4r12t6w6.js";
9
+ } from "./cli-5c4hjzne.js";
10
10
  import {
11
11
  __esm
12
12
  } from "./cli-242037k3.js";
@@ -61,7 +61,7 @@ var ROUTING_PREFIXES_BY_PROVIDER, AMP_DATED_SUFFIX;
61
61
  var init_pricing_normalize = __esm(() => {
62
62
  ROUTING_PREFIXES_BY_PROVIDER = {
63
63
  opencode: ["openrouter/", "github-copilot/"],
64
- pi: ["openrouter/", "github-copilot/"],
64
+ pi: ["openrouter/", "github-copilot/", "openai-codex/"],
65
65
  codex: ["openai/", "github-copilot/"],
66
66
  claude: [],
67
67
  "claude-managed": [],
@@ -71,7 +71,8 @@ var init_pricing_normalize = __esm(() => {
71
71
  dsh: ["openrouter/"],
72
72
  amp: ["anthropic/", "openai/", "google-vertex/", "google/"],
73
73
  cursor: [],
74
- grok: ["openrouter/", "xai/"]
74
+ grok: ["openrouter/", "xai/"],
75
+ fx: ["openrouter/", "vercel/"]
75
76
  };
76
77
  AMP_DATED_SUFFIX = /-\d{4}-\d{2}-\d{2}$/;
77
78
  });
@@ -183,6 +184,7 @@ function buildModelsDevSeedRows(cache) {
183
184
  continue;
184
185
  add(id, projectCostBlock("codex", id, model.cost));
185
186
  add(id, projectCostBlock("pi", id, model.cost));
187
+ add(id, projectCostBlock("fx", id, model.cost));
186
188
  }
187
189
  for (const vendor of ["openai", "anthropic", "google", "xai"]) {
188
190
  for (const [id, model] of Object.entries(cache[vendor]?.models ?? {})) {
@@ -216,12 +218,22 @@ function buildModelsDevSeedRows(cache) {
216
218
  add(id, projectCostBlock("grok", id, model.cost, {
217
219
  anthropicBilled: id.startsWith("anthropic/")
218
220
  }));
221
+ add(id, projectCostBlock("fx", id, model.cost, {
222
+ anthropicBilled: id.startsWith("anthropic/")
223
+ }));
219
224
  if (id.startsWith("google/")) {
220
225
  const geminiKey = id.replace(/^google\//, "");
221
226
  add(geminiKey, projectCostBlock("gemini", geminiKey, model.cost));
222
227
  add(id, projectCostBlock("gemini", id, model.cost));
223
228
  }
224
229
  }
230
+ for (const [id, model] of Object.entries(cache.vercel?.models ?? {})) {
231
+ if (!model?.cost || openrouter[id]?.cost)
232
+ continue;
233
+ add(id, projectCostBlock("fx", id, model.cost, {
234
+ anthropicBilled: id.startsWith("anthropic/")
235
+ }));
236
+ }
225
237
  for (const provider of openAICompatibleProviderIds()) {
226
238
  for (const [id, model] of Object.entries(cache[provider]?.models ?? {})) {
227
239
  if (!model?.cost)
@@ -451,6 +451,7 @@ The engine posts the thread tree and the outcome card. You post at most one mess
451
451
  The outcome card publishes your \`output\` verbatim. Keep free-text \`output\` under 120 words by default, with the exceptions in How you write.
452
452
  A Slack task from an unknown user: register them with \`manage-user\` first.
453
453
  You MUST use the \`slack-interaction\` skill before you post to Slack.
454
+ Call \`slack-leave-thread\` with your taskId when a thread no longer needs you: people are talking among themselves, someone tells you to stop or back off, or the thread's work is done. The swarm then ignores the thread until someone @mentions it. Leave quietly, with no goodbye message.
454
455
  `,
455
456
  variables: [],
456
457
  category: "system"
@@ -512,6 +513,15 @@ Task: {{task}}{{progressLine}}
512
513
  ],
513
514
  category: "system"
514
515
  });
516
+ registerTemplate({
517
+ eventType: "system.agent.fx.system_prompt_file",
518
+ header: "",
519
+ defaultBody: "These instructions are cut short. Read {{path}} before you start: it holds the complete swarm instructions, of which the text above is only the first part.",
520
+ variables: [
521
+ { name: "path", description: "Absolute path of the file with the full system prompt" }
522
+ ],
523
+ category: "system"
524
+ });
515
525
  registerTemplate({
516
526
  eventType: "system.agent.cursor.first_message",
517
527
  header: "",
@@ -547,6 +557,13 @@ Task: {{task}}{{progressLine}}
547
557
  variables: [],
548
558
  category: "system"
549
559
  });
560
+ registerTemplate({
561
+ eventType: "system.agent.tool_discovery.fx",
562
+ header: "",
563
+ defaultBody: "Most swarm tools are deferred behind `capability_search`. Each one is named `mcp_swarm_<tool>`, so `store-progress` is `mcp_swarm_store-progress`. Call a tool you know by that name directly. To find one, use `capability_search`.",
564
+ variables: [],
565
+ category: "system"
566
+ });
550
567
  registerTemplate({
551
568
  eventType: "system.agent.tool_discovery.codex",
552
569
  header: "",
@@ -657,6 +674,7 @@ Rules of the road:
657
674
  ## Slack (scripts-only)
658
675
 
659
676
  This task originated from Slack (channel: \`{{slackChannelId}}\`). The engine maintains the thread tree and publishes the top-level outcome card. Post at most one distinct agent-authored message per task, concrete, sized to what the user asked for. Progress, start, completion, failure, acknowledgment messages, and relayed raw task output stay out of Slack. Named Slack tools are not exposed in scripts-only mode, so use \`script-run\` with inline source calling \`ctx.swarm.slack_reply({ taskId, message })\` (your taskId carries the thread context).
677
+ When the thread no longer needs you (people are talking among themselves, someone tells you to stop, or the work is done), call \`ctx.swarm.slack_leaveThread({ taskId })\` the same way. The swarm then ignores the thread until someone @mentions it. Leave quietly, with no goodbye message.
660
678
  The outcome card publishes your \`output\` verbatim. Keep free-text \`output\` under 120 words by default, with the exceptions in How you write.
661
679
  `,
662
680
  variables: [
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  materializeClaudeMd,
3
3
  stopClaudeMd
4
- } from "./cli-dae4sbgy.js";
4
+ } from "./cli-jm2vfpfd.js";
5
5
  import {
6
6
  summarizeSession
7
- } from "./cli-j4kt1mpb.js";
7
+ } from "./cli-faxe6thg.js";
8
8
  import {
9
9
  contextBoundNoteThreshold,
10
10
  injectClaimedContextBoundNote
11
- } from "./cli-h55y2bjc.js";
11
+ } from "./cli-dhar9qay.js";
12
12
  import {
13
13
  guardGhPrBody,
14
14
  guardGhPrRoom
@@ -32,11 +32,11 @@ import {
32
32
  warnProfileFileTooLarge,
33
33
  buildIndependentIdentityPayloads,
34
34
  init_profile_sync
35
- } from "./cli-ycm6180s.js";
35
+ } from "./cli-a7v854rf.js";
36
36
  import {
37
37
  init_package,
38
38
  package_default
39
- } from "./cli-pe09p6dv.js";
39
+ } from "./cli-e3r2neck.js";
40
40
  import {
41
41
  MAX_PROFILE_FILE_LENGTH,
42
42
  getMcpBaseUrl,
@@ -53,7 +53,7 @@ import {
53
53
  import {
54
54
  scrubSecrets,
55
55
  init_secret_scrubber
56
- } from "./cli-a4btqqft.js";
56
+ } from "./cli-1b7btd38.js";
57
57
 
58
58
  // src/hooks/hook.ts
59
59
  init_package();
@@ -2,13 +2,13 @@ import {
2
2
  getKnownContextWindowSize,
3
3
  clampContextPercent,
4
4
  init_context_window
5
- } from "./cli-rtk9g7av.js";
5
+ } from "./cli-73jzwksr.js";
6
6
  import {
7
7
  resolveTemplateFromCode,
8
8
  resolveTemplateAsync,
9
9
  init_resolver,
10
10
  init_session_templates
11
- } from "./cli-j4kw3rsx.js";
11
+ } from "./cli-cm5yqn35.js";
12
12
 
13
13
  // src/hooks/context-bound-note.ts
14
14
  import { renameSync, writeFileSync } from "node:fs";
@@ -5,12 +5,12 @@ import {
5
5
  validateRuntimeTokenTtlHours,
6
6
  init_swarm_config_guard,
7
7
  init_db4
8
- } from "./cli-1s1dqn1j.js";
8
+ } from "./cli-k2gzwsj2.js";
9
9
  import {
10
10
  registerVolatileSecret,
11
11
  unregisterVolatileSecret,
12
12
  init_secret_scrubber
13
- } from "./cli-a4btqqft.js";
13
+ } from "./cli-1b7btd38.js";
14
14
  import {
15
15
  __esm
16
16
  } from "./cli-242037k3.js";
@@ -8,12 +8,12 @@ import {
8
8
  resolveConfigValueOrThrow,
9
9
  resolveHeadersOrThrow,
10
10
  FileAuthStorageBackend
11
- } from "./cli-edmm9d9y.js";
11
+ } from "./cli-0at8w34w.js";
12
12
  import {
13
13
  oauthSuccessHtml,
14
14
  oauthErrorHtml,
15
15
  init_oauth_page
16
- } from "./cli-wk9md5px.js";
16
+ } from "./cli-436532ck.js";
17
17
  import {
18
18
  __toESM
19
19
  } from "./cli-242037k3.js";
@@ -7,7 +7,7 @@ var package_default;
7
7
  var init_package = __esm(() => {
8
8
  package_default = {
9
9
  name: "@desplega.ai/agent-swarm",
10
- version: "2.7.4",
10
+ version: "2.7.6",
11
11
  description: "agent-swarm.dev — an open-source operating system for AI work: a lead agent breaks goals into tasks, routes them to specialized workers such as Claude Code or Codex, runs each worker in an isolated container, and preserves shared memory, tools, schedules, and review gates so delegated work compounds across sessions.",
12
12
  keywords: [
13
13
  "agent-swarm.dev",
@@ -69,6 +69,7 @@ var init_package = __esm(() => {
69
69
  "packages/*"
70
70
  ],
71
71
  overrides: {
72
+ "@slack/socket-mode": "^2.0.7",
72
73
  react: "19.2.3",
73
74
  "react-dom": "19.2.3"
74
75
  },
@@ -185,12 +186,12 @@ var init_package = __esm(() => {
185
186
  },
186
187
  devDependencies: {
187
188
  "@biomejs/biome": "^2.3.10",
188
- "@desplega.ai/slack-mock": "^0.4.1",
189
+ "@desplega.ai/slack-mock": "^0.5.0",
189
190
  "@desplega/model-catalog": "workspace:*",
190
191
  "@desplega/model-routing": "workspace:*",
191
192
  "@faker-js/faker": "^10.4.0",
192
- "@opencode/plugin": "2.2.1",
193
- "@opencode/sdk": "2.2.1",
193
+ "@opencode/plugin": "2.2.3",
194
+ "@opencode/sdk": "2.2.3",
194
195
  "@oxlint/plugins": "1.78.0",
195
196
  "@types/bun": "latest",
196
197
  "dependency-cruiser": "^18.0.0",
@@ -208,9 +209,9 @@ var init_package = __esm(() => {
208
209
  bun: ">=1.3.12"
209
210
  },
210
211
  dependencies: {
211
- "@agentclientprotocol/sdk": "2.1.0",
212
+ "@agentclientprotocol/sdk": "2.2.0",
212
213
  "@ai-sdk/openai": "^3.0.41",
213
- "@anthropic-ai/claude-agent-sdk": "0.3.312",
214
+ "@anthropic-ai/claude-agent-sdk": "0.3.314",
214
215
  "@anthropic-ai/sdk": "^1.3.0",
215
216
  "@asteasolutions/zod-to-openapi": "^8.0.0",
216
217
  "@aws-sdk/client-bedrock": "3.1048.0",
@@ -229,7 +230,7 @@ var init_package = __esm(() => {
229
230
  "@jitl/quickjs-singlefile-mjs-release-sync": "0.32.0",
230
231
  "@linear/sdk": "^77.0.0",
231
232
  "@modelcontextprotocol/sdk": "1.32.1",
232
- "@openai/codex": "0.165.0",
233
+ "@openai/codex": "0.166.0",
233
234
  "@openfort/openfort-node": "^0.9.1",
234
235
  "@opentelemetry/api": "^1.9.1",
235
236
  "@opentelemetry/api-logs": "^0.218.0",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  contextBoundNoteThreshold,
3
3
  createContextBoundNote
4
- } from "./cli-h55y2bjc.js";
4
+ } from "./cli-dhar9qay.js";
5
5
  import {
6
6
  resolveSlashSkillPrompt
7
7
  } from "./cli-jc1g9ndz.js";
@@ -19,10 +19,10 @@ import {
19
19
  autoIndexMemoryFile,
20
20
  fetchConcurrentContext,
21
21
  summarizeTranscript
22
- } from "./cli-224epwwf.js";
22
+ } from "./cli-yx4kfngt.js";
23
23
  import {
24
24
  applyReasoningEffort
25
- } from "./cli-vqgnyh76.js";
25
+ } from "./cli-98rw5dt5.js";
26
26
  import {
27
27
  fetchInstalledMcpServers
28
28
  } from "./cli-bst1vp7e.js";
@@ -31,7 +31,7 @@ import {
31
31
  getContextWindowSize,
32
32
  clampContextPercent,
33
33
  init_context_window
34
- } from "./cli-rtk9g7av.js";
34
+ } from "./cli-73jzwksr.js";
35
35
  import {
36
36
  swarmRuntimeInstanceId,
37
37
  init_multi_runtime2
@@ -47,7 +47,7 @@ import {
47
47
  openAICompatibleKeyLabels,
48
48
  validateOpencodeCredentials,
49
49
  init_credentials2
50
- } from "./cli-aq58fk5m.js";
50
+ } from "./cli-g83s9ewh.js";
51
51
  import {
52
52
  isEnvFlagEnabled,
53
53
  isSessionSummarySkipped,
@@ -57,7 +57,7 @@ import {
57
57
  scrubSecrets,
58
58
  registerVolatileSecret,
59
59
  init_secret_scrubber
60
- } from "./cli-a4btqqft.js";
60
+ } from "./cli-1b7btd38.js";
61
61
  import {
62
62
  openAICompatibleProviders,
63
63
  providerKeyVars,
@@ -68,7 +68,7 @@ import {
68
68
  openAICompatibleProvider,
69
69
  providerForKeyVar,
70
70
  init_src2
71
- } from "./cli-4r12t6w6.js";
71
+ } from "./cli-5c4hjzne.js";
72
72
 
73
73
  // src/providers/opencode-adapter.ts
74
74
  init_src2();