@desplega.ai/agent-swarm 2.5.3 → 2.6.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 (349) hide show
  1. package/README.md +2 -2
  2. package/dist/{acp-adapter-gr2fcyyj.js → acp-adapter-dgfakfpw.js} +9 -9
  3. package/dist/{actions-wv766ghf.js → actions-fbqma8aa.js} +21 -21
  4. package/dist/{amp-adapter-speb906t.js → amp-adapter-en0jy6hs.js} +4 -4
  5. package/dist/{app-ag29n14f.js → app-k8a5cgpp.js} +3 -3
  6. package/dist/{assistant-3x8bz3eg.js → assistant-a16433gr.js} +30 -26
  7. package/dist/{boot-reembed-jsmfrpzf.js → boot-reembed-6c1sjfnr.js} +1 -1
  8. package/dist/{boot-reembed-5b3d2eea.js → boot-reembed-f4nn561n.js} +1 -1
  9. package/dist/{boot-scrub-sweep-s73gerxy.js → boot-scrub-sweep-d4w9gajf.js} +4 -4
  10. package/dist/{boot-seeds-5zmax2wr.js → boot-seeds-9bmkspyw.js} +4 -4
  11. package/dist/{claude-adapter-hswdnm3t.js → claude-adapter-nys1kjxa.js} +9 -9
  12. package/dist/{claude-managed-adapter-cvbzj1h6.js → claude-managed-adapter-55207973.js} +3 -3
  13. package/dist/{claude-managed-setup-3k8m3hhc.js → claude-managed-setup-3cm35gey.js} +11 -4
  14. package/dist/{claude-sdk-session-fkbyk66x.js → claude-sdk-session-nw5yd8cp.js} +9313 -9260
  15. package/dist/{cli-210xd1f4.js → cli-03gg9pd1.js} +4 -4
  16. package/dist/{cli-kxpfx2xr.js → cli-0z1xjzwa.js} +2 -2
  17. package/dist/cli-1tem6ns9.js +894 -0
  18. package/dist/{cli-25j01dpj.js → cli-24j1jeeb.js} +3 -3
  19. package/dist/{cli-ta8bd7th.js → cli-2sjhpsns.js} +2 -2
  20. package/dist/{cli-p859hcc8.js → cli-39aet655.js} +2 -2
  21. package/dist/{cli-g1cw7xtt.js → cli-39rrw8yp.js} +1 -1
  22. package/dist/{cli-e2ar4bp1.js → cli-3aqd4jaa.js} +121 -47
  23. package/dist/{cli-jjznk3f7.js → cli-3fwqy71j.js} +69 -35
  24. package/dist/{cli-p9rafdrb.js → cli-3gfvmzht.js} +7 -7
  25. package/dist/{cli-03vpq45j.js → cli-3ndmpxxv.js} +2 -2
  26. package/dist/{cli-aecdcr77.js → cli-4hxrf0p4.js} +228 -74
  27. package/dist/{cli-mz9afxxf.js → cli-4rf0f5vg.js} +15 -3
  28. package/dist/{cli-qzme5949.js → cli-5rj83bam.js} +284 -202
  29. package/dist/{cli-fsdprwrg.js → cli-5sckpqcx.js} +2 -2
  30. package/dist/{cli-cz5nmdxt.js → cli-683y0b3a.js} +2 -2
  31. package/dist/{cli-3ngdk5te.js → cli-6y51ryva.js} +2 -2
  32. package/dist/{cli-n4c8e3s5.js → cli-708wdy32.js} +1 -1
  33. package/dist/{cli-pasyvjmm.js → cli-737pyqxr.js} +1 -1
  34. package/dist/{cli-gx4rm0qx.js → cli-7enjwya9.js} +1 -1
  35. package/dist/{cli-6x9ma5w5.js → cli-803188pb.js} +1 -1
  36. package/dist/{cli-avdvgcay.js → cli-9abdgn5t.js} +28 -9
  37. package/dist/{cli-99xgw26r.js → cli-a2rr0fmg.js} +1 -1
  38. package/dist/{cli-e5bxnjps.js → cli-a34pr3w1.js} +7 -7
  39. package/dist/{cli-502eqv93.js → cli-abkm71vr.js} +1 -1
  40. package/dist/{cli-mmhj8vd7.js → cli-ag2yrnt5.js} +11 -2
  41. package/dist/{cli-n45mr7zh.js → cli-aj8djyqt.js} +5 -5
  42. package/dist/{cli-1fc85mvt.js → cli-art7c1zh.js} +5 -5
  43. package/dist/{cli-40jsnrjm.js → cli-az25fn5f.js} +10 -8
  44. package/dist/{cli-9s05422w.js → cli-bqztfyve.js} +1 -1
  45. package/dist/{cli-bn0rewsy.js → cli-c081bj3b.js} +2 -2
  46. package/dist/{cli-svrj71pg.js → cli-c2habvsf.js} +12 -12
  47. package/dist/{cli-s49hpn37.js → cli-ca6banwz.js} +85 -19
  48. package/dist/{cli-hhxjnjzs.js → cli-cz37jqss.js} +12 -10
  49. package/dist/{cli-6n8axjv1.js → cli-d2dpf95n.js} +2 -2
  50. package/dist/{cli-tx00c0h6.js → cli-dqygeeh5.js} +17 -1
  51. package/dist/{cli-z21whrrg.js → cli-emhjcj2y.js} +17 -17
  52. package/dist/{cli-e8jyq7d8.js → cli-esakngh8.js} +7 -3
  53. package/dist/{cli-ha9rmwgq.js → cli-fb8m699c.js} +2 -2
  54. package/dist/{cli-35gtk1p6.js → cli-ffvsj2qw.js} +44 -13
  55. package/dist/{cli-ce0ak9ms.js → cli-g20jjwt4.js} +26 -26
  56. package/dist/{cli-kxawjrxg.js → cli-g8ka5j4j.js} +772 -194
  57. package/dist/{cli-vwn81jbs.js → cli-gf95q3bm.js} +5 -5
  58. package/dist/{cli-s53vp709.js → cli-gnsb1zxa.js} +2 -2
  59. package/dist/{cli-nwyw3zhg.js → cli-gxee0bqa.js} +1 -1
  60. package/dist/{cli-gpv60278.js → cli-hfeb68z4.js} +7 -7
  61. package/dist/{cli-0ebey9hg.js → cli-j6rktc91.js} +1 -1
  62. package/dist/{cli-ewm3pwbq.js → cli-k21gx5ht.js} +46 -23
  63. package/dist/{cli-egjggehm.js → cli-kf4jree9.js} +2 -2
  64. package/dist/{cli-dabehxhp.js → cli-kt907da6.js} +1 -1
  65. package/dist/{cli-p0rzjkya.js → cli-m5a9m0ak.js} +32 -13
  66. package/dist/{cli-fzcn3d87.js → cli-m70bajzr.js} +3 -3
  67. package/dist/{cli-w1zwctj2.js → cli-mtnj4fwa.js} +11 -5
  68. package/dist/{cli-gpsz7g88.js → cli-mvjz5an3.js} +16 -12
  69. package/dist/{cli-hcpj2xqz.js → cli-n7asmce6.js} +225 -3
  70. package/dist/{cli-y561h5a9.js → cli-nn6vx2mq.js} +5 -5
  71. package/dist/cli-nq677csy.js +140 -0
  72. package/dist/{cli-a5ebc95n.js → cli-pfk92eqz.js} +18 -15
  73. package/dist/{cli-p6zs9h4y.js → cli-rr7zx19j.js} +767 -249
  74. package/dist/{cli-qgf8emrn.js → cli-sqma6vw1.js} +10 -7
  75. package/dist/{cli-0xk505e8.js → cli-sxgtf5fw.js} +1 -1
  76. package/dist/{cli-nzfnt2gs.js → cli-tf1n0r0b.js} +1 -1
  77. package/dist/{cli-qqzmjxkf.js → cli-v49fkghp.js} +11 -6
  78. package/dist/{cli-x77gen2p.js → cli-w2656ka1.js} +7 -7
  79. package/dist/{cli-5kqnemen.js → cli-yvy48785.js} +1 -1
  80. package/dist/{cli-8s5wx3nz.js → cli-zqne1qcj.js} +44 -17
  81. package/dist/cli.js +22 -22
  82. package/dist/{codex-adapter-n8ka66vf.js → codex-adapter-d95q4qsn.js} +7 -7
  83. package/dist/{codex-hook-e2he7aca.js → codex-hook-brpnycn5.js} +1 -1
  84. package/dist/{codex-login-rn7c5gxt.js → codex-login-8cg0vhf2.js} +1 -1
  85. package/dist/{codex-session-runner-fsebts37.js → codex-session-runner-gdwd8h0c.js} +8 -8
  86. package/dist/{commands-t04rt2pc.js → commands-jqmgk54b.js} +2 -2
  87. package/dist/{controller-rgna04r2.js → controller-z3jq589f.js} +30 -4
  88. package/dist/{controllers-connect-bqm1rtft.js → controllers-connect-r2za39ef.js} +23 -23
  89. package/dist/{cursor-adapter-swr2k95y.js → cursor-adapter-4mr4jgkw.js} +2 -3
  90. package/dist/{db-a4m7haw0.js → db-ppv2tze7.js} +3 -3
  91. package/dist/{db-24ck09xy.js → db-w36wwb5g.js} +4 -2
  92. package/dist/{devin-adapter-4ycy4vrf.js → devin-adapter-byen2cxt.js} +1 -1
  93. package/dist/{dispatcher-nwf9ss0q.js → dispatcher-pv5h77vf.js} +20 -20
  94. package/dist/{docker-nfy2gc8t.js → docker-fdzyewpz.js} +4 -4
  95. package/dist/{dsh-adapter-kpdnhjst.js → dsh-adapter-d4pdpb3r.js} +2 -3
  96. package/dist/{e2b-9gkdhm3c.js → e2b-222hsajc.js} +2 -2
  97. package/dist/{e2b-cjtf8k1z.js → e2b-fn3zacvt.js} +2 -2
  98. package/dist/{easter-egg-3d-e4qv8dxj.js → easter-egg-3d-4sp4dvmc.js} +1 -1
  99. package/dist/{event-bus-3z78ep5n.js → event-bus-pghg8hqy.js} +1 -1
  100. package/dist/{execute-0xpz8950.js → execute-jev839y1.js} +1 -1
  101. package/dist/{external-channel-j1e2p34p.js → external-channel-y6nkzhnn.js} +2 -2
  102. package/dist/{grok-adapter-qtjz0whk.js → grok-adapter-t08b9ntm.js} +10 -10
  103. package/dist/handlers-eqsnmv95.js +41 -0
  104. package/dist/{heartbeat-vtesda5d.js → heartbeat-vn31xwdk.js} +23 -23
  105. package/dist/{hook-b2hhj6rd.js → hook-6d0zbvvt.js} +6 -5
  106. package/dist/{hook-8wqaszda.js → hook-cpjs8q51.js} +13 -7
  107. package/dist/{http-mxcqhhcs.js → http-9c6medda.js} +1085 -136
  108. package/dist/{index-spwxjgay.js → index-38t35h0n.js} +20 -20
  109. package/dist/{index-1r8wfpzs.js → index-g6k9tctj.js} +1 -1
  110. package/dist/{index-srg522m6.js → index-k0yt1tvq.js} +20 -20
  111. package/dist/{index-31ceyf42.js → index-pkma1yf8.js} +1 -1
  112. package/dist/{index-n1vbvta9.js → index-qhjf2htm.js} +29 -24
  113. package/dist/index-yqgbfgaj.js +43 -0
  114. package/dist/{keepalive-dsd8rtgx.js → keepalive-em0117bp.js} +4 -4
  115. package/dist/lead-23e7z59t.js +79 -0
  116. package/dist/{maintenance-jqmqwnet.js → maintenance-kbme3qy9.js} +1 -1
  117. package/dist/{oauth-refresh-sweep-q2c3bnvm.js → oauth-refresh-sweep-xysj4yse.js} +3 -3
  118. package/dist/{onboard-w4yd7s8t.js → onboard-p6q0vz97.js} +3 -3
  119. package/dist/{opencode-adapter-9tppvxar.js → opencode-adapter-esv3k9yn.js} +7 -7
  120. package/dist/{otel-impl-f36byzbd.js → otel-impl-54qhqh1z.js} +2 -2
  121. package/dist/{pi-mono-adapter-tqsge1ay.js → pi-mono-adapter-mymbwhj0.js} +41 -14
  122. package/dist/{pricing-refresh-xvak5p4v.js → pricing-refresh-yb75wv33.js} +3 -3
  123. package/dist/{rbac-roles-gfn30fb8.js → rbac-roles-1vp2mw4p.js} +2 -2
  124. package/dist/{rbac-roles-682k2mt5.js → rbac-roles-dexhc9x8.js} +1 -1
  125. package/dist/render-v2-tjay5hhf.js +16 -0
  126. package/dist/{resume-2dvq348g.js → resume-8ayf37g5.js} +11 -9
  127. package/dist/{runtime-bt5pkpm1.js → runtime-hqe5cqcd.js} +1 -1
  128. package/dist/{session-access-7f21ekq9.js → session-access-fdhp987s.js} +4 -4
  129. package/dist/session-source-backfill-qgtc86z1.js +110 -0
  130. package/dist/{setup-epffxtbk.js → setup-4rrmqcq3.js} +1 -1
  131. package/dist/{virtual-modules-mnfbh5mr.js → virtual-modules-52km00d6.js} +2 -2
  132. package/dist/{work-objects-xz1a5rqk.js → work-objects-p28fgd70.js} +23 -23
  133. package/dist/worker-e3w7vye1.js +79 -0
  134. package/dist/{x-pbpezr0s.js → x-wxrzvzx8.js} +2 -2
  135. package/openapi.json +1323 -16
  136. package/package.json +5 -5
  137. package/plugin/commands/create-pr.md +2 -2
  138. package/plugin/pi-skills/create-pr/SKILL.md +2 -2
  139. package/src/assets/source-key.ts +95 -0
  140. package/src/be/db/api-keys.ts +80 -0
  141. package/src/be/db/approvals.ts +48 -0
  142. package/src/be/db/session-labels.ts +28 -0
  143. package/src/be/db/session-moves.ts +5 -6
  144. package/src/be/db/session-tree.ts +153 -14
  145. package/src/be/db/tasks/read.ts +11 -0
  146. package/src/be/db/tasks/write.ts +21 -6
  147. package/src/be/db/workflow-idempotency.ts +183 -0
  148. package/src/be/db/workflow-runs.ts +500 -7
  149. package/src/be/db-retention.ts +61 -6
  150. package/src/be/db.ts +126 -131
  151. package/src/be/memory/providers/openai-embedding.ts +5 -1
  152. package/src/be/migrations/242_workflow_idempotency_keys.sql +40 -0
  153. package/src/be/migrations/244_api_key_validation.sql +4 -0
  154. package/src/be/onboarding.ts +4 -0
  155. package/src/be/scripts/typecheck.ts +1 -1
  156. package/src/be/sealed-json.ts +1 -0
  157. package/src/be/seed-scripts/catalog/compound-insights.inline.ts +2 -2
  158. package/src/be/seed-scripts/catalog/compound-insights.ts +2 -2
  159. package/src/be/seed-skills/bundled-files.generated.json +1 -1
  160. package/src/be/session-source-backfill.ts +163 -0
  161. package/src/be/sql-connections.ts +7 -1
  162. package/src/be/swarm-config-guard.ts +3 -0
  163. package/src/be/users.ts +9 -0
  164. package/src/comb/review-batch.ts +28 -1
  165. package/src/comb/templates.ts +7 -2
  166. package/src/commands/claude-managed-setup.ts +7 -1
  167. package/src/commands/controller.ts +33 -0
  168. package/src/commands/credential-refresh.ts +76 -1
  169. package/src/commands/credential-wait.ts +2 -2
  170. package/src/commands/provider-credentials.ts +210 -170
  171. package/src/commands/runner.ts +31 -6
  172. package/src/extensions/apply-task-create.ts +64 -11
  173. package/src/extensions/contract-types.generated.ts +1 -1
  174. package/src/extensions/contract.ts +30 -0
  175. package/src/extensions/dispatcher.ts +4 -0
  176. package/src/extensions/post-bridge.ts +8 -0
  177. package/src/hooks/context-bound-note.ts +196 -0
  178. package/src/hooks/hook.ts +12 -0
  179. package/src/http/all-routes.ts +2 -0
  180. package/src/http/api-keys.ts +53 -0
  181. package/src/http/assets.ts +15 -0
  182. package/src/http/codex-oauth-accounts.ts +191 -0
  183. package/src/http/comb.ts +15 -2
  184. package/src/http/config.ts +49 -17
  185. package/src/http/core.ts +6 -0
  186. package/src/http/fleet-benchmark.ts +5 -2
  187. package/src/http/idempotency-key.ts +117 -0
  188. package/src/http/index.ts +11 -0
  189. package/src/http/integrations.ts +5 -1
  190. package/src/http/kv.ts +8 -3
  191. package/src/http/onboarding.ts +6 -1
  192. package/src/http/pool-keys.ts +354 -0
  193. package/src/http/sessions.ts +37 -12
  194. package/src/http/stats.ts +1 -0
  195. package/src/http/status.ts +26 -12
  196. package/src/http/tasks.ts +3 -0
  197. package/src/http/used-by.ts +7 -2
  198. package/src/http/workflows.ts +207 -33
  199. package/src/integrations/chat-sdk/inbound.ts +27 -0
  200. package/src/kv-reserved-namespaces.ts +19 -0
  201. package/src/prompts/context-bound-note.ts +48 -0
  202. package/src/prompts/session-templates.ts +25 -1
  203. package/src/providers/acp-targets.ts +1 -1
  204. package/src/providers/amp-adapter.ts +30 -8
  205. package/src/providers/claude-adapter.ts +34 -5
  206. package/src/providers/claude-managed-adapter.ts +42 -9
  207. package/src/providers/claude-sdk-session.ts +10 -0
  208. package/src/providers/claude-session-events.ts +13 -0
  209. package/src/providers/codex-adapter.ts +83 -11
  210. package/src/providers/opencode-adapter.ts +18 -0
  211. package/src/providers/pi-mono-adapter.ts +35 -0
  212. package/src/runtime-providers/docker.ts +6 -2
  213. package/src/scheduler/scheduler.ts +3 -2
  214. package/src/scripts-runtime/swarm-sdk.ts +7 -1
  215. package/src/scripts-runtime/types/stdlib.d.ts +1 -1
  216. package/src/scripts-runtime/types/swarm-extension.d.ts +52 -8
  217. package/src/scripts-runtime/types/swarm-sdk.d.ts +1 -1
  218. package/src/slack/assistant.ts +7 -0
  219. package/src/slack/channel-labels.ts +74 -0
  220. package/src/slack/handlers.ts +8 -0
  221. package/src/slack/inbound-files.ts +5 -2
  222. package/src/slack/thread-buffer.ts +4 -0
  223. package/src/tasks/sibling-awareness.ts +12 -3
  224. package/src/telemetry-context.ts +5 -6
  225. package/src/telemetry-identity.ts +3 -3
  226. package/src/tests/amp-adapter.test.ts +97 -0
  227. package/src/tests/api-keys-validation.test.ts +170 -0
  228. package/src/tests/approval-requests.test.ts +10 -7
  229. package/src/tests/approval-sweeps.test.ts +12 -6
  230. package/src/tests/base-prompt.test.ts +1 -1
  231. package/src/tests/claude-hook-output.test.ts +79 -1
  232. package/src/tests/claude-managed-adapter.test.ts +321 -0
  233. package/src/tests/claude-routes-e2e.test.ts +7 -2
  234. package/src/tests/codex-adapter.test.ts +163 -0
  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/config-pool-keys.test.ts +533 -0
  240. package/src/tests/context-bound-note.test.ts +269 -0
  241. package/src/tests/credential-check.test.ts +290 -2
  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/extensions-pre-task.test.ts +325 -0
  248. package/src/tests/fetch-resolved-env.test.ts +17 -0
  249. package/src/tests/fixtures/extensions/record-blocks/hooks.ts +10 -0
  250. package/src/tests/fixtures/extensions/record-blocks/manifest.json +7 -0
  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/fixtures/fake-amp.ts +22 -8
  254. package/src/tests/fixtures/held-template-render.ts +42 -0
  255. package/src/tests/fixtures/workflow-idempotency-trigger.child.ts +73 -0
  256. package/src/tests/fleet-benchmark.test.ts +8 -0
  257. package/src/tests/get-workflow-run-tool.test.ts +98 -0
  258. package/src/tests/integrations-http.test.ts +32 -2
  259. package/src/tests/internal-ai/complete-structured.test.ts +37 -1
  260. package/src/tests/internal-ai/credentials.test.ts +23 -0
  261. package/src/tests/kv-http.test.ts +32 -0
  262. package/src/tests/kv-tool.test.ts +25 -0
  263. package/src/tests/multi-runtime-registration.test.ts +12 -12
  264. package/src/tests/onboarding.test.ts +108 -1
  265. package/src/tests/openai-embedding-credentials.test.ts +35 -0
  266. package/src/tests/openapi-route-headers.test.ts +2 -0
  267. package/src/tests/opencode-adapter.test.ts +134 -0
  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/pi-mono-adapter.test.ts +105 -0
  271. package/src/tests/prompt-template-session.test.ts +4 -3
  272. package/src/tests/provider-key-probes.test.ts +181 -0
  273. package/src/tests/rbac-e2e-helpers.test.ts +88 -1
  274. package/src/tests/rbac-e2e-helpers.ts +36 -11
  275. package/src/tests/runner-push-delivery.test.ts +25 -0
  276. package/src/tests/runtime-controller-liveness.test.ts +133 -0
  277. package/src/tests/runtime-providers-docker.test.ts +2 -0
  278. package/src/tests/script-connections.test.ts +5 -0
  279. package/src/tests/script-run-config-scope.test.ts +91 -3
  280. package/src/tests/script-runs-retention.test.ts +212 -0
  281. package/src/tests/sdk-allowlist.test.ts +39 -0
  282. package/src/tests/session-logs.test.ts +70 -0
  283. package/src/tests/session-source-backfill.test.ts +429 -0
  284. package/src/tests/session-source-keys.test.ts +236 -0
  285. package/src/tests/session-source-labels.test.ts +419 -0
  286. package/src/tests/sessions-detail-batch.test.ts +2 -0
  287. package/src/tests/sessions-move.test.ts +131 -0
  288. package/src/tests/sessions-tree.test.ts +336 -2
  289. package/src/tests/slack-inbound-files.test.ts +103 -23
  290. package/src/tests/status.test.ts +101 -18
  291. package/src/tests/tasks-workflow-run-filter.test.ts +146 -0
  292. package/src/tests/test-net.ts +31 -0
  293. package/src/tests/transcription.test.ts +8 -0
  294. package/src/tests/used-by-route.test.ts +11 -0
  295. package/src/tests/workflow-cascade-cancel.test.ts +1341 -0
  296. package/src/tests/workflow-foreach-supersede-retry.test.ts +488 -0
  297. package/src/tests/workflow-http-v2.test.ts +131 -0
  298. package/src/tests/workflow-idempotency.test.ts +915 -0
  299. package/src/tests/workflow-step-order.test.ts +92 -0
  300. package/src/tests/workflow-sub-workflow.test.ts +30 -0
  301. package/src/tools/get-tasks.ts +8 -0
  302. package/src/tools/kv/kv-read-auth.ts +4 -2
  303. package/src/tools/task-action.ts +1 -1
  304. package/src/tools/workflows/cancel-workflow-run.ts +1 -1
  305. package/src/tools/workflows/get-workflow-run.ts +14 -4
  306. package/src/types.ts +24 -0
  307. package/src/utils/company-profile.ts +51 -1
  308. package/src/utils/context-window.ts +8 -6
  309. package/src/utils/credentials.ts +5 -2
  310. package/src/utils/internal-ai/complete-structured.ts +5 -0
  311. package/src/utils/internal-ai/credentials.ts +4 -3
  312. package/src/utils/provider-key-probes.ts +328 -0
  313. package/src/utils/transcription.ts +4 -1
  314. package/src/workflows/approval-cancel.ts +15 -13
  315. package/src/workflows/approval-notifications.ts +5 -1
  316. package/src/workflows/checkpoint.ts +6 -3
  317. package/src/workflows/engine.ts +30 -8
  318. package/src/workflows/executors/foreach.ts +2 -2
  319. package/src/workflows/executors/sub-workflow.ts +8 -1
  320. package/src/workflows/foreach-driver.ts +10 -3
  321. package/src/workflows/foreach-join.ts +29 -6
  322. package/src/workflows/recovery.ts +6 -1
  323. package/src/workflows/resume.ts +168 -56
  324. package/src/workflows/retry-poller.ts +49 -3
  325. package/src/workflows/task-step-routing.ts +29 -7
  326. package/templates/ai-toolbox.manifest.json +8 -8
  327. package/templates/community/open-prompt-showreel/PLAYBOOK.md +5 -6
  328. package/templates/community/open-prompt-showreel/lead-prompt.md +1 -1
  329. package/templates/community/open-prompt-showreel/skills/open-prompt-showreel/SKILL.md +4 -4
  330. package/templates/skills/agent-browser/SKILL.md +4 -4
  331. package/templates/skills/agent-browser/content.md +4 -4
  332. package/templates/skills/code-quality/config.json +1 -1
  333. package/templates/skills/code-quality/content.md +2 -2
  334. package/templates/skills/delegate-work/content.md +29 -25
  335. package/templates/skills/delegate-work/files/scripts/codex-exec.sh +5 -5
  336. package/templates/skills/qa/content.md +2 -2
  337. package/templates/skills/researching/content.md +4 -0
  338. package/templates/skills/swarm-scripts/SKILL.md +1 -0
  339. package/templates/skills/swarm-scripts/content.md +1 -0
  340. package/templates/skills/work-on-task/SKILL.md +1 -1
  341. package/templates/skills/work-on-task/content.md +1 -1
  342. package/dist/cli-7421jzsw.js +0 -84
  343. package/dist/cli-e45e4m6b.js +0 -413
  344. package/dist/cli-zw88zjba.js +0 -307
  345. package/dist/handlers-19xr6dnz.js +0 -41
  346. package/dist/index-kw2mmat7.js +0 -43
  347. package/dist/lead-zyerk1x2.js +0 -79
  348. package/dist/render-v2-hgytz8nn.js +0 -12
  349. package/dist/worker-42t8emjt.js +0 -79
@@ -8,7 +8,13 @@ import {
8
8
  updateAgentStatus2,
9
9
  updateAgentMaxTasks2,
10
10
  getActiveTaskCount2,
11
+ approvalCancellationNotificationKey,
12
+ init_approvals,
11
13
  getTaskById2,
14
+ WorkflowReplayStateError,
15
+ init_workflow_replay,
16
+ getRunLineageBlock,
17
+ getWorkflowRunStatus,
12
18
  getChildWorkflowRunId,
13
19
  isParentStepAttemptCurrent,
14
20
  createForeachChildSteps,
@@ -23,8 +29,6 @@ import {
23
29
  getOAuthApp,
24
30
  getOAuthTokens,
25
31
  init_oauth,
26
- WorkflowReplayStateError,
27
- init_workflow_replay,
28
32
  createTaskExtended2,
29
33
  getSwarmConfigs2,
30
34
  upsertSwarmConfig2,
@@ -51,30 +55,30 @@ import {
51
55
  releaseApprovalCancellationNotificationClaim2,
52
56
  updateApprovalRequestNotifications2,
53
57
  init_db3
54
- } from "./cli-kxawjrxg.js";
58
+ } from "./cli-g8ka5j4j.js";
55
59
  import {
56
60
  isMultiRuntimeEnabled
57
61
  } from "./cli-e8xyjvfc.js";
58
62
  import {
59
63
  getSlackApp2
60
- } from "./cli-ce0ak9ms.js";
64
+ } from "./cli-g20jjwt4.js";
61
65
  import {
62
66
  externalChannelToolError2,
63
67
  isBlockExternalEnabled2,
64
68
  getChannelBlockReason2
65
- } from "./cli-s53vp709.js";
69
+ } from "./cli-gnsb1zxa.js";
66
70
  import {
67
71
  DEFAULT_MODEL,
68
72
  resolveCredential
69
- } from "./cli-qqzmjxkf.js";
73
+ } from "./cli-v49fkghp.js";
70
74
  import {
71
75
  revokeRuntimeTokensForRuntime,
72
76
  init_users
73
- } from "./cli-e8jyq7d8.js";
77
+ } from "./cli-esakngh8.js";
74
78
  import {
75
79
  TERMINAL_TASK_STATUSES,
76
80
  init_types
77
- } from "./cli-mz9afxxf.js";
81
+ } from "./cli-4rf0f5vg.js";
78
82
  import {
79
83
  getSlackConfiguration,
80
84
  isSlackConfigured,
@@ -83,19 +87,19 @@ import {
83
87
  import {
84
88
  selectCredential,
85
89
  init_credentials
86
- } from "./cli-zw88zjba.js";
87
- import {
88
- deepInterpolate,
89
- init_template,
90
- resolveTemplate,
91
- init_resolver
92
- } from "./cli-tx00c0h6.js";
90
+ } from "./cli-1tem6ns9.js";
93
91
  import {
94
92
  DEFAULT_OPENROUTER_BASE_URL,
95
93
  getOpenRouterBaseUrl,
96
94
  getOpenRouterAttributionHeaders,
97
95
  init_openrouter_base_url
98
96
  } from "./cli-dfyv0jdy.js";
97
+ import {
98
+ deepInterpolate,
99
+ init_template,
100
+ resolveTemplate,
101
+ init_resolver
102
+ } from "./cli-dqygeeh5.js";
99
103
  import {
100
104
  init_zod
101
105
  } from "./cli-4chz1hye.js";
@@ -127,13 +131,13 @@ import {
127
131
  isSensitiveKey,
128
132
  scrubSecrets,
129
133
  init_secret_scrubber
130
- } from "./cli-n4c8e3s5.js";
134
+ } from "./cli-708wdy32.js";
131
135
  import {
132
136
  providerKeyVars,
133
137
  providerBaseUrl,
134
138
  providerForModel,
135
139
  init_src2
136
- } from "./cli-nwyw3zhg.js";
140
+ } from "./cli-gxee0bqa.js";
137
141
 
138
142
  // src/automation-preflight-alert.ts
139
143
  init_constants2();
@@ -145,7 +149,7 @@ async function notifyAutomationPreflightFailure(preflight) {
145
149
  return;
146
150
  }
147
151
  try {
148
- const { getSlackApp } = await import("./app-ag29n14f.js");
152
+ const { getSlackApp } = await import("./app-k8a5cgpp.js");
149
153
  const app = getSlackApp();
150
154
  if (!app) {
151
155
  console.warn("[Automation Preflight] Slack not available, cannot send notification");
@@ -958,6 +962,7 @@ init_secret_scrubber();
958
962
 
959
963
  // src/workflows/approval-notifications.ts
960
964
  init_db3();
965
+ init_approvals();
961
966
  init_resolver();
962
967
 
963
968
  // src/slack/dm.ts
@@ -1124,7 +1129,7 @@ async function postApprovalCancellationUpdates(approvals, reason, client = getSl
1124
1129
  for (const notification of slackThreads) {
1125
1130
  if (notification.channel !== "slack" || !notification.messageTs)
1126
1131
  continue;
1127
- const notificationKey = `${notification.target}:${notification.messageTs}`;
1132
+ const notificationKey = approvalCancellationNotificationKey(notification.target, notification.messageTs);
1128
1133
  const claim = await claimApprovalCancellationNotification2(approval.id, notificationKey);
1129
1134
  if (!claim)
1130
1135
  continue;
@@ -3441,16 +3446,18 @@ class SystemOneDecisionExecutor extends BaseExecutor {
3441
3446
 
3442
3447
  // src/workflows/foreach-join.ts
3443
3448
  init_db3();
3449
+ init_workflow_runs();
3444
3450
 
3445
3451
  // src/workflows/checkpoint.ts
3446
3452
  init_db3();
3453
+ init_workflow_runs();
3447
3454
  async function holdsFence(runId, stepId, fence) {
3448
3455
  const row = await getDbClient2().get(`SELECT 1 AS found
3449
3456
  FROM workflow_run_steps s
3450
3457
  JOIN workflow_runs r ON r.id = s.runId
3451
3458
  WHERE s.id = ? AND s.runId = ? AND s.status = 'running' AND s.retryCount = ?
3452
3459
  AND r.status IN ('running', 'waiting')`, [stepId, runId, fence.retryCount]);
3453
- return row != null;
3460
+ return row != null && await getRunLineageBlock(runId) == null;
3454
3461
  }
3455
3462
  async function checkpointStep(runId, stepId, nodeId, result, ctx, options = {}) {
3456
3463
  return getDbClient2().transaction(async () => {
@@ -3511,6 +3518,8 @@ async function checkpointStepFailure(runId, stepId, error, retryCount, retryPoli
3511
3518
  }
3512
3519
  async function checkpointStepWaiting(runId, stepId, ctx, options = {}) {
3513
3520
  return getDbClient2().transaction(async () => {
3521
+ if (await getRunLineageBlock(runId))
3522
+ return false;
3514
3523
  const step = await getDbClient2().get(`UPDATE workflow_run_steps
3515
3524
  SET status = 'waiting'
3516
3525
  WHERE id = ? AND runId = ? AND status = 'running'
@@ -3547,6 +3556,7 @@ function calculateBackoff(policy, attempt) {
3547
3556
 
3548
3557
  // src/workflows/foreach-driver.ts
3549
3558
  init_db3();
3559
+ init_workflow_runs();
3550
3560
 
3551
3561
  // src/workflows/constants.ts
3552
3562
  var FAILED_TASK_OUTPUT_PREFIX = "[FAILED:";
@@ -3943,12 +3953,16 @@ async function resolveRenderedWorkflowInputs(input) {
3943
3953
  async function startWorkflowExecution2(workflow, triggerData, registry, options = {}) {
3944
3954
  const preflight = preflightAutomation(workflowPreflightInput(workflow), await getAutomationSetupStates());
3945
3955
  if (preflight.state === "needs_setup" && !options.parentStepId) {
3946
- const { runId, recorded } = await recordWorkflowPreflightFailure({
3947
- workflowId: workflow.id,
3948
- triggerType: options.triggerType ?? "manual",
3949
- triggerData,
3950
- failureReason: preflight.failureReason,
3951
- createdBy: options.requestedByUserId
3956
+ const { runId, recorded } = await getDbClient2().transaction(async () => {
3957
+ const failure = await recordWorkflowPreflightFailure({
3958
+ workflowId: workflow.id,
3959
+ triggerType: options.triggerType ?? "manual",
3960
+ triggerData,
3961
+ failureReason: preflight.failureReason,
3962
+ createdBy: options.requestedByUserId
3963
+ });
3964
+ await options.accept?.({ runId: failure.runId, skipped: false });
3965
+ return failure;
3952
3966
  });
3953
3967
  if (recorded)
3954
3968
  await notifyAutomationPreflightFailure(preflight);
@@ -4067,6 +4081,7 @@ async function createRunWithInitialState(workflow, triggerData, options, initial
4067
4081
  });
4068
4082
  await updateWorkflowRun2(runId, initial.status ? { status: initial.status, error: initial.error, finishedAt: initial.finishedAt } : { context: initial.context });
4069
4083
  const preflightAlert = initial.status === "failed" && initial.preflight ? await isFirstWorkflowPreflightFailureToday(workflow.id, runId) : undefined;
4084
+ await options.accept?.({ runId, skipped: initial.status === "skipped" });
4070
4085
  return { runId, created: true, preflightAlert };
4071
4086
  });
4072
4087
  }
@@ -4228,6 +4243,8 @@ async function walkGraphOwned(def, runId, ctx, startNodes, registry, workflowId,
4228
4243
  const run = await getWorkflowRun2(runId);
4229
4244
  if (!run || run.status !== "running")
4230
4245
  return;
4246
+ if (await getRunLineageBlock(runId))
4247
+ return;
4231
4248
  const finalSteps = await getWorkflowRunStepsByRunId2(runId);
4232
4249
  if (hasRunningStep(finalSteps))
4233
4250
  return;
@@ -4336,6 +4353,8 @@ async function executeStep(def, runId, ctx, node, registry, workflowId, secretKe
4336
4353
  if (!run || run.status !== "running" && run.status !== "waiting") {
4337
4354
  return { halted: true };
4338
4355
  }
4356
+ if (await getRunLineageBlock(runId))
4357
+ return { halted: true };
4339
4358
  if (node.type !== "foreach") {
4340
4359
  const current = await getCurrentStepForNode2(runId, node.id, getAllPredecessors(def, node.id));
4341
4360
  if (current && (current.status !== "running" || executingSteps.has(current.id))) {
@@ -4517,7 +4536,7 @@ async function runClaimedStep(def, runId, ctx, node, registry, existingStep, ste
4517
4536
  }
4518
4537
  const waiting = await checkpointStepWaiting(runId, stepId, ctx);
4519
4538
  if (waiting && result.waitFor === "workflow.child.finished") {
4520
- const { resumeFromChildRun } = await import("./resume-2dvq348g.js");
4539
+ const { resumeFromChildRun } = await import("./resume-8ayf37g5.js");
4521
4540
  await resumeFromChildRun(stepId, registry);
4522
4541
  }
4523
4542
  return { outcome: waiting ? "waiting" : "completed", successors: [] };
@@ -4809,7 +4828,7 @@ class ForeachExecutor extends BaseExecutor {
4809
4828
  };
4810
4829
  }));
4811
4830
  const childSteps = (await this.deps.db.getWorkflowRunStepsByRunId(meta.runId)).filter((step) => parseSyntheticNodeId(step.nodeId)?.parentNodeId === meta.nodeId);
4812
- if (childSteps.every((step) => FOREACH_TERMINAL_STEP_STATUSES.has(step.status))) {
4831
+ if (childSteps.every(isForeachChildSettled)) {
4813
4832
  return { status: "success", output: buildForeachAggregate(childSteps) };
4814
4833
  }
4815
4834
  return {
@@ -4979,7 +4998,7 @@ async function runForeachDrive(runId, parentNodeId, registry) {
4979
4998
  if (drive.successors.length > 0) {
4980
4999
  await walkGraph(workflow.definition, runId, ctx, drive.successors, registry, workflow.id, getSecretInputKeys(workflow.input));
4981
5000
  } else {
4982
- const { finalizeOrWait } = await import("./resume-2dvq348g.js");
5001
+ const { finalizeOrWait } = await import("./resume-8ayf37g5.js");
4983
5002
  await finalizeOrWait(runId);
4984
5003
  }
4985
5004
  return drive;
@@ -5018,6 +5037,11 @@ async function claimChildren(def, runId, parentNode) {
5018
5037
  const claimed = [];
5019
5038
  try {
5020
5039
  await getDbClient2().transaction(async () => {
5040
+ const status = await getWorkflowRunStatus(runId);
5041
+ if (status !== "running" && status !== "waiting")
5042
+ return;
5043
+ if (await getRunLineageBlock(runId))
5044
+ return;
5021
5045
  const children = latestForeachChildren(def, parentNode.id, await getWorkflowRunStepsByRunId2(runId));
5022
5046
  for (const child of children) {
5023
5047
  if (child.status === "running" && !ownedChildren.has(child.id)) {
@@ -5025,7 +5049,7 @@ async function claimChildren(def, runId, parentNode) {
5025
5049
  claimed.push(child);
5026
5050
  }
5027
5051
  }
5028
- const inFlight = children.filter((child) => child.status === "running" || child.status === "waiting").length;
5052
+ const inFlight = children.filter((child) => child.status === "running" || child.status === "waiting" || isRetryPending(child)).length;
5029
5053
  let free = foreachConcurrencyCap(parentNode) - inFlight;
5030
5054
  for (const child of children) {
5031
5055
  if (free <= 0)
@@ -5121,7 +5145,7 @@ async function startChild(input) {
5121
5145
  const parked = await getDbClient2().get("UPDATE workflow_run_steps SET status = 'waiting' WHERE id = ? AND status = 'running' RETURNING id", [child.id]);
5122
5146
  if (parked && result.waitFor === "workflow.child.finished") {
5123
5147
  ownedChildren.delete(child.id);
5124
- const { resumeFromChildRun } = await import("./resume-2dvq348g.js");
5148
+ const { resumeFromChildRun } = await import("./resume-8ayf37g5.js");
5125
5149
  await resumeFromChildRun(child.id, registry);
5126
5150
  }
5127
5151
  return null;
@@ -5162,6 +5186,12 @@ var FOREACH_TERMINAL_STEP_STATUSES = new Set([
5162
5186
  "cancelled",
5163
5187
  "skipped"
5164
5188
  ]);
5189
+ function isRetryPending(step) {
5190
+ return step.status === "failed" && step.nextRetryAt != null;
5191
+ }
5192
+ function isForeachChildSettled(step) {
5193
+ return FOREACH_TERMINAL_STEP_STATUSES.has(step.status) && !isRetryPending(step);
5194
+ }
5165
5195
  function parseSyntheticNodeId(nodeId) {
5166
5196
  const separatorIndex = nodeId.indexOf("#");
5167
5197
  if (separatorIndex <= 0 || separatorIndex === nodeId.length - 1)
@@ -5184,7 +5214,7 @@ async function joinForeach(def, runId, childStep, ctx) {
5184
5214
  throw new Error(`Step "${childStep.nodeId}" is not a foreach child`);
5185
5215
  }
5186
5216
  const children = latestForeachChildren(def, parent.id, await getWorkflowRunStepsByRunId2(runId));
5187
- if (children.some((step) => !FOREACH_TERMINAL_STEP_STATUSES.has(step.status))) {
5217
+ if (children.some((step) => !isForeachChildSettled(step))) {
5188
5218
  return { joined: false, parentNodeId: parent.id, successors: [] };
5189
5219
  }
5190
5220
  const parentStep = await getLatestStepForNode2(runId, parent.id);
@@ -5274,6 +5304,8 @@ async function settleForeachChild(def, runId, childStepId, outcome, ctx, options
5274
5304
  });
5275
5305
  if (run.status !== "running" && run.status !== "waiting")
5276
5306
  return unclaimed;
5307
+ if (await getRunLineageBlock(runId))
5308
+ return unclaimed;
5277
5309
  if (outcome.status !== "completed" && effectiveFailurePolicy(parent, def) === "fail-fast") {
5278
5310
  const reason = options.runError ?? outcome.error ?? `foreach item ${current.nodeId} failed`;
5279
5311
  await cancelQueuedForeachChildren(def, runId, parent.id, current.nodeId);
@@ -5303,9 +5335,11 @@ async function cancelQueuedForeachChildren(def, runId, parentNodeId, failedChild
5303
5335
  await getDbClient2().transaction(async () => {
5304
5336
  const children = latestForeachChildren(def, parentNodeId, await getWorkflowRunStepsByRunId2(runId));
5305
5337
  for (const child of children) {
5306
- if (child.status !== "pending")
5338
+ if (child.status !== "pending" && !isRetryPending(child))
5307
5339
  continue;
5308
- const row = await getDbClient2().get("UPDATE workflow_run_steps SET status = 'cancelled', error = ?, finishedAt = ? WHERE id = ? AND status = 'pending' RETURNING id", [error, finishedAt, child.id]);
5340
+ const row = await getDbClient2().get(`UPDATE workflow_run_steps SET status = 'cancelled', error = ?, finishedAt = ?, nextRetryAt = NULL
5341
+ WHERE id = ? AND (status = 'pending' OR (status = 'failed' AND nextRetryAt IS NOT NULL))
5342
+ RETURNING id`, [error, finishedAt, child.id]);
5309
5343
  if (row)
5310
5344
  cancelled++;
5311
5345
  }
@@ -5732,4 +5766,4 @@ function applyDefinitionPatch(def, patch) {
5732
5766
  return { definition: patchedDef, errors };
5733
5767
  }
5734
5768
 
5735
- export { notifyAutomationPreflightFailure, automationIntegrationFixUrl, isNeedsSetupFailure, preflightAutomation, renderAutomationTokens, getAutomationSetupStates, schedulePreflightInput, listEnabledAutomationPreflightInputs, recordSchedulePreflightFailure, BaseExecutor, AGENT_MAX_TASKS_CONFIG_KEY, reconcileAgentMaxTasksPolicy, resetAgentMaxTasksMirror, upsertSwarmConfigWithPolicyMirror, runtimeStaleThresholdMinutes, upsertRuntimeInstance, getRuntimeInstanceById, insertProvisioningRuntime, markRuntimeTerminated, touchRuntimeInstance, markRuntimeInstanceOffline, countActiveRuntimeInstancesForAgent, listRuntimeInstancesForAgent, setRuntimeCredentialReady, reconcileAgentStatusFromRuntimes, agentsWithLiveRuntime, expireStaleRuntimeInstances, listRuntimeInstancesForPool, ConfigQuestionSettingsSchema, ConfigStateSchema, readConfigState, normalizeApprovalQuestions, isConfigQuestion, parseConfigAnswer, skippedConfigResult, keptConfigResult, applyConfigAnswer, resolveSlackConversationId, dispatchApprovalNotifications, postApprovalCancellationUpdates, createApprovalFollowUpTask, HumanInTheLoopExecutor, resolveWorkflowLlmConfig, SYSTEM_ONE_PROVIDER_IDS, SystemOneExtractionExecutor, SYSTEM_ONE_DECISION_NODE_TYPE, SystemOneDecisionConfigSchema, SystemOneDecisionExecutor, checkpointStep, checkpointStepFailure, checkpointStepWaiting, FAILED_TASK_OUTPUT_PREFIX, FOREACH_ITEMS_WAIT_FOR, loadCompletedStepRouting, resolveInputValue, getSecretInputKeys, validateJsonSchema, findJsonSchemaShapeErrors, getMaxWorkflowStepsPerRun, findWorkflowReadinessProblems, formatReadinessProblems, workflowSaveWarnings, withSaveWarnings, runStepValidation, TriggerSchemaError, startWorkflowExecution2, ParentStepNotCurrentError, failRunOnUnreadableReplay, isWorkflowRunActive, isStepExecuting, holdWorkflowRun, walkGraph, hasRunningStep, findReadyNodes, scriptBodyInterpolationError, ForeachExecutor, rebuildNodeExecutionInput, isForeachChildOwned, parkAndDriveForeach, startForeachDrive, runForeachDrive, FOREACH_TERMINAL_STEP_STATUSES, parseSyntheticNodeId, resolveForeachParent, settleForeachChild, resolveStepNode, stepFailureMode, getNextTargets, generateEdges, resolveValidationPort, getSuccessors, definitionNodeIds, validateDefinition, applyDefinitionPatch };
5769
+ export { notifyAutomationPreflightFailure, automationIntegrationFixUrl, isNeedsSetupFailure, preflightAutomation, renderAutomationTokens, getAutomationSetupStates, schedulePreflightInput, listEnabledAutomationPreflightInputs, recordSchedulePreflightFailure, BaseExecutor, AGENT_MAX_TASKS_CONFIG_KEY, reconcileAgentMaxTasksPolicy, resetAgentMaxTasksMirror, upsertSwarmConfigWithPolicyMirror, runtimeStaleThresholdMinutes, upsertRuntimeInstance, getRuntimeInstanceById, insertProvisioningRuntime, markRuntimeTerminated, touchRuntimeInstance, markRuntimeInstanceOffline, countActiveRuntimeInstancesForAgent, listRuntimeInstancesForAgent, setRuntimeCredentialReady, reconcileAgentStatusFromRuntimes, agentsWithLiveRuntime, expireStaleRuntimeInstances, listRuntimeInstancesForPool, ConfigQuestionSettingsSchema, ConfigStateSchema, readConfigState, normalizeApprovalQuestions, isConfigQuestion, parseConfigAnswer, skippedConfigResult, keptConfigResult, applyConfigAnswer, resolveSlackConversationId, dispatchApprovalNotifications, postApprovalCancellationUpdates, createApprovalFollowUpTask, HumanInTheLoopExecutor, resolveWorkflowLlmConfig, SYSTEM_ONE_PROVIDER_IDS, SystemOneExtractionExecutor, SYSTEM_ONE_DECISION_NODE_TYPE, SystemOneDecisionConfigSchema, SystemOneDecisionExecutor, checkpointStep, checkpointStepFailure, checkpointStepWaiting, FAILED_TASK_OUTPUT_PREFIX, FOREACH_ITEMS_WAIT_FOR, loadCompletedStepRouting, resolveInputValue, getSecretInputKeys, validateJsonSchema, findJsonSchemaShapeErrors, getMaxWorkflowStepsPerRun, findWorkflowReadinessProblems, formatReadinessProblems, workflowSaveWarnings, withSaveWarnings, runStepValidation, TriggerSchemaError, startWorkflowExecution2, ParentStepNotCurrentError, failRunOnUnreadableReplay, isWorkflowRunActive, isStepExecuting, holdWorkflowRun, walkGraph, hasRunningStep, findReadyNodes, scriptBodyInterpolationError, ForeachExecutor, rebuildNodeExecutionInput, isForeachChildOwned, parkAndDriveForeach, startForeachDrive, runForeachDrive, FOREACH_TERMINAL_STEP_STATUSES, isRetryPending, parseSyntheticNodeId, resolveForeachParent, settleForeachChild, resolveStepNode, stepFailureMode, getNextTargets, generateEdges, resolveValidationPort, getSuccessors, definitionNodeIds, validateDefinition, applyDefinitionPatch };
@@ -40,14 +40,14 @@ import {
40
40
  getResolvedConfig2,
41
41
  getMcpServerById2,
42
42
  init_db3
43
- } from "./cli-kxawjrxg.js";
43
+ } from "./cli-g8ka5j4j.js";
44
44
  import {
45
45
  generateRandomCodeVerifier,
46
46
  generateRandomState,
47
47
  calculatePKCECodeChallenge,
48
48
  oauthAppRowToProviderConfig,
49
49
  ensureAuthorizationTokenOrThrow
50
- } from "./cli-egjggehm.js";
50
+ } from "./cli-kf4jree9.js";
51
51
  import {
52
52
  detachedProcessGroup,
53
53
  registerProcessGroup,
@@ -60,11 +60,11 @@ import {
60
60
  mintScriptRunToken,
61
61
  revokeSessionToken,
62
62
  init_users
63
- } from "./cli-e8jyq7d8.js";
63
+ } from "./cli-esakngh8.js";
64
64
  import {
65
65
  defaultAssetKey,
66
66
  init_key
67
- } from "./cli-mz9afxxf.js";
67
+ } from "./cli-4rf0f5vg.js";
68
68
  import {
69
69
  init_zod
70
70
  } from "./cli-4chz1hye.js";
@@ -105,7 +105,7 @@ import {
105
105
  refreshSecretScrubberCache,
106
106
  registerVolatileSecret,
107
107
  init_secret_scrubber
108
- } from "./cli-n4c8e3s5.js";
108
+ } from "./cli-708wdy32.js";
109
109
  import {
110
110
  __toESM,
111
111
  __commonJS,
@@ -176111,7 +176111,7 @@ async function resolveSqlDsn(connection, agentId) {
176111
176111
  assertPostgresDsn(dsn);
176112
176112
  return dsn;
176113
176113
  }
176114
- var asTemplate = (text) => Object.assign([text], { raw: [text] });
176114
+ var asTemplate = (text) => Object.freeze(Object.defineProperty([text], "raw", { value: Object.freeze([text]) }));
176115
176115
  var defaultExecutor = async (dsn, query, params, take) => {
176116
176116
  const sql = new Bun.SQL({
176117
176117
  adapter: "postgres",
@@ -184236,7 +184236,7 @@ export interface SwarmSdk {
184236
184236
  workflow_list(args?: { enabled?: boolean; includeFull?: boolean; consecutiveErrorsMin?: number; lastRunStatus?: "running" | "waiting" | "completed" | "failed" | "skipped" | "cancelled" }): Promise<unknown>;
184237
184237
  workflow_get(args: { id: string }): Promise<unknown>;
184238
184238
  workflow_listRuns(args: { workflowId: string; status?: "running" | "waiting" | "completed" | "failed" | "skipped" | "cancelled"; limit?: number; offset?: number }): Promise<unknown>;
184239
- workflow_getRun(args: { id: string }): Promise<unknown>;
184239
+ workflow_getRun(args: { id: string; fields?: "full" | "slim" }): Promise<unknown>;
184240
184240
  // --- prompt templates ---
184241
184241
  prompt_list(args?: { eventType?: string; scope?: "global" | "agent" | "repo"; scopeId?: string; isDefault?: boolean }): Promise<unknown>;
184242
184242
  prompt_get(args: { id: string }): Promise<unknown>;
@@ -9,7 +9,7 @@ import {
9
9
  loadMcpConfig,
10
10
  addMcpServerConfig,
11
11
  removeMcpServerConfig
12
- } from "./cli-x77gen2p.js";
12
+ } from "./cli-w2656ka1.js";
13
13
  import {
14
14
  McpOAuthCredentialStore2,
15
15
  McpSignInCancelledError2,
@@ -17,7 +17,7 @@ import {
17
17
  McpServerLog2,
18
18
  createDefaultTransport2,
19
19
  McpServerConnection2
20
- } from "./cli-cz5nmdxt.js";
20
+ } from "./cli-683y0b3a.js";
21
21
 
22
22
  // node_modules/@earendil-works/pi-coding-agent/dist/extensions/mcp/cli.js
23
23
  import { existsSync } from "node:fs";