@desplega.ai/agent-swarm 1.173.0 → 2.1.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 (511) hide show
  1. package/README.md +1 -1
  2. package/dist/{acp-adapter-ccm9xrep.js → acp-adapter-kr4abrsk.js} +17 -16
  3. package/dist/{actions-sgeyv08k.js → actions-eh4g6w2r.js} +39 -34
  4. package/dist/{amp-adapter-gpxp3kc9.js → amp-adapter-7h7wdt8q.js} +8 -7
  5. package/dist/{app-km9qnv2f.js → app-7k8s9w5p.js} +18 -14
  6. package/dist/{assistant-5r8tcvvd.js → assistant-wswt2y7p.js} +40 -35
  7. package/dist/{boot-reembed-16rv9843.js → boot-reembed-9apm9qw6.js} +10 -9
  8. package/dist/{boot-reembed-swwzdgd7.js → boot-reembed-whzbdthj.js} +10 -9
  9. package/dist/{boot-scrub-sweep-zkr6vkqb.js → boot-scrub-sweep-ndzmvmgt.js} +11 -10
  10. package/dist/{boot-seeds-d8sp49t2.js → boot-seeds-e9sta0yt.js} +16 -13
  11. package/dist/{claude-adapter-yzzzh8jp.js → claude-adapter-4mqd3r6r.js} +19 -18
  12. package/dist/{claude-managed-adapter-xgxhqrt2.js → claude-managed-adapter-9wswb52m.js} +7 -5
  13. package/dist/{claude-managed-setup-bnmjarjc.js → claude-managed-setup-tpe1effx.js} +6 -4
  14. package/dist/{claude-sdk-session-4whxere4.js → claude-sdk-session-q49ghmh9.js} +12402 -11850
  15. package/dist/{cli-ne7smj1b.js → cli-01xvj1rq.js} +10 -10
  16. package/dist/{cli-nwrdx840.js → cli-035vekcw.js} +3 -3
  17. package/dist/{cli-9xf7fdtp.js → cli-0pd8hzhc.js} +29 -6
  18. package/dist/{cli-tmhsxhb8.js → cli-0veb92a3.js} +28 -6
  19. package/dist/{cli-c3rk1v0x.js → cli-10jesr25.js} +3 -3
  20. package/dist/{cli-6thk4jz3.js → cli-1y7yywmj.js} +6 -6
  21. package/dist/{cli-6r2f7edk.js → cli-20krdhz5.js} +47 -19
  22. package/dist/{cli-rfs4vddv.js → cli-29rja109.js} +39 -20
  23. package/dist/cli-2m1ktfzz.js +17795 -0
  24. package/dist/{cli-na2pxe4f.js → cli-2pwa0q4d.js} +15 -4
  25. package/dist/{cli-7a93cv8c.js → cli-4mengw46.js} +441 -43
  26. package/dist/{cli-94b48jhk.js → cli-5twdke5x.js} +16 -14
  27. package/dist/{cli-7a0sde2x.js → cli-6cagzc96.js} +9 -0
  28. package/dist/cli-6cvfxs8r.js +47 -0
  29. package/dist/{cli-w1apjecb.js → cli-711vwbxn.js} +2 -2
  30. package/dist/{cli-r4fqfpwf.js → cli-78vv7446.js} +50 -27
  31. package/dist/{cli-srqq3gc5.js → cli-7n6s5man.js} +5 -5
  32. package/dist/{cli-m89t9jdf.js → cli-7x0g4sn1.js} +15416 -16024
  33. package/dist/{cli-2bw3w47j.js → cli-8wwxw8a3.js} +1 -1
  34. package/dist/{cli-yatxqynm.js → cli-9ha6hs2d.js} +1 -290
  35. package/dist/{cli-ywm1azg9.js → cli-9jzdj90z.js} +8 -4
  36. package/dist/cli-9traj3dn.js +638 -0
  37. package/dist/{cli-smcrrmhy.js → cli-agzebbd5.js} +9 -9
  38. package/dist/{cli-c5km5znr.js → cli-c8r3kzzb.js} +1 -1
  39. package/dist/cli-cvv9k0hh.js +10143 -0
  40. package/dist/{cli-anzdk0z4.js → cli-d9286m9h.js} +2 -2
  41. package/dist/cli-e3g5mbkz.js +776 -0
  42. package/dist/cli-f527ce74.js +781 -0
  43. package/dist/{cli-gmdajfw5.js → cli-gxzkg1de.js} +5020 -1729
  44. package/dist/{cli-451ks6aw.js → cli-h1arqn31.js} +1 -1
  45. package/dist/cli-hjwmhcg1.js +10622 -0
  46. package/dist/{cli-jpc4r224.js → cli-hqr88ew6.js} +19 -3
  47. package/dist/{cli-h7k0xtry.js → cli-hvqbtna4.js} +4 -1256
  48. package/dist/{cli-cd0hv9nh.js → cli-j67mh2vg.js} +2 -2
  49. package/dist/cli-jta2eyzc.js +619 -0
  50. package/dist/{cli-wd0hz6ah.js → cli-kbrt8gqa.js} +9 -91
  51. package/dist/cli-kceah1eh.js +92 -0
  52. package/dist/{cli-d603qf86.js → cli-ksphgh48.js} +10 -8
  53. package/dist/{cli-3nxdmjrc.js → cli-mgz4nbgg.js} +4 -4
  54. package/dist/{cli-saqyage0.js → cli-mz5as5ha.js} +179 -27
  55. package/dist/cli-n2wq4j7m.js +6985 -0
  56. package/dist/{cli-ppy4nnnh.js → cli-n8ndw8j7.js} +2 -2
  57. package/dist/{cli-1w0vj3gw.js → cli-naqzr17j.js} +7 -7
  58. package/dist/{cli-0a7mm3zp.js → cli-nm1p8jfr.js} +25 -21
  59. package/dist/{cli-wrh08zjd.js → cli-p3zbc1rw.js} +5 -18
  60. package/dist/{cli-hsem16hb.js → cli-pe05f8yk.js} +29 -6
  61. package/dist/{cli-5wpw4rab.js → cli-qmzsbkvy.js} +5 -5
  62. package/dist/{cli-bv2etw2y.js → cli-qnm4e9e4.js} +99 -590
  63. package/dist/{cli-1x7da0de.js → cli-qqy4q48b.js} +8 -8
  64. package/dist/{cli-r44t9wqc.js → cli-r106725k.js} +2 -2
  65. package/dist/{cli-5er5gjbm.js → cli-r35rw5de.js} +15 -15
  66. package/dist/{cli-v3zhnxsb.js → cli-r610p9bs.js} +2 -2
  67. package/dist/{cli-7jykv7ef.js → cli-rc6pf5kv.js} +1 -1
  68. package/dist/{cli-x119kdba.js → cli-rdxm77k3.js} +1 -1
  69. package/dist/cli-rhs9pz33.js +294 -0
  70. package/dist/{cli-0p3enk35.js → cli-s69nfyeh.js} +9 -1
  71. package/dist/{cli-0kxf81jj.js → cli-sawv63e8.js} +2 -2
  72. package/dist/{cli-e3pmyt39.js → cli-sg19gbf0.js} +1 -1
  73. package/dist/{cli-d161g69q.js → cli-shk7r5cs.js} +57 -6
  74. package/dist/{cli-7pz3b7x5.js → cli-sksetb2q.js} +36 -1
  75. package/dist/{cli-014vns2y.js → cli-stfs0k5s.js} +208 -525
  76. package/dist/{cli-db3m6zdt.js → cli-t02z59f2.js} +1 -1
  77. package/dist/{cli-b07hr3bt.js → cli-txqb9s38.js} +2 -2
  78. package/dist/{cli-s8z6x4b4.js → cli-v7g551te.js} +225 -113
  79. package/dist/{cli-rfz2ve55.js → cli-vgqzp4em.js} +3341 -955
  80. package/dist/{cli-7avy4v8w.js → cli-w1q7h2r2.js} +5 -3
  81. package/dist/{cli-rcp5aqdw.js → cli-w7m81tb7.js} +1 -1
  82. package/dist/cli-wfnemr1t.js +86 -0
  83. package/dist/cli-wmgrkscj.js +23254 -0
  84. package/dist/{cli-qm1448f9.js → cli-wms6x9db.js} +8 -8
  85. package/dist/{cli-tadfgd0t.js → cli-x1r545x8.js} +33 -4
  86. package/dist/{cli-xc7p7s3g.js → cli-xczsgshn.js} +6 -6
  87. package/dist/{cli-fmhj1ehj.js → cli-y3167wt1.js} +882 -271
  88. package/dist/{cli-r0byd61h.js → cli-yjmqpxt3.js} +17 -16
  89. package/dist/{cli-81r1wjyv.js → cli-z780ec7c.js} +1 -1
  90. package/dist/{cli-phcqp1b9.js → cli-zm9t2vde.js} +2 -2
  91. package/dist/cli.js +34 -49
  92. package/dist/{codex-adapter-r3dn4fp5.js → codex-adapter-4z16v9n0.js} +15 -14
  93. package/dist/{codex-login-841kv5fk.js → codex-login-pkepy2j1.js} +3 -2
  94. package/dist/{codex-session-runner-fwt793h4.js → codex-session-runner-rvms9y2x.js} +15 -14
  95. package/dist/{commands-z8fq9qna.js → commands-2a9rtyat.js} +11 -10
  96. package/dist/{controller-hq5ggpcp.js → controller-3k3madbn.js} +5 -4
  97. package/dist/{controllers-connect-3mf2btyj.js → controllers-connect-v9yn8zb9.js} +42 -37
  98. package/dist/{cursor-adapter-q8pgv5qa.js → cursor-adapter-98gbhyzn.js} +7 -6
  99. package/dist/{db-qfpq4bt7.js → db-eywwsnjw.js} +30 -9
  100. package/dist/{db-yyhqqrbf.js → db-ncypk9np.js} +12 -11
  101. package/dist/{devin-adapter-xgtj680j.js → devin-adapter-zeq8b9gz.js} +3 -2
  102. package/dist/{dispatcher-x0x7qfcq.js → dispatcher-w94kc575.js} +38 -33
  103. package/dist/{docker-f503k9p0.js → docker-b1e4cqab.js} +3 -2
  104. package/dist/{dsh-adapter-34etvb5m.js → dsh-adapter-47ztej36.js} +7 -6
  105. package/dist/{e2b-66xra4az.js → e2b-bbt8ey45.js} +4 -3
  106. package/dist/{e2b-xwhyj8cw.js → e2b-dp804sen.js} +4 -3
  107. package/dist/{event-bus-vjtv82gm.js → event-bus-j2jdg3qb.js} +3 -2
  108. package/dist/{external-channel-h1fjecwe.js → external-channel-zrkg8ar9.js} +11 -10
  109. package/dist/{google-generative-ai-szdxbpqg.js → google-generative-ai-g8db7x0f.js} +4 -2
  110. package/dist/{google-vertex-qzw3p36d.js → google-vertex-r2692q0r.js} +4 -2
  111. package/dist/{grok-adapter-e7mr287e.js → grok-adapter-s9ncp9vy.js} +18 -17
  112. package/dist/{handlers-znb9n7d4.js → handlers-kqftvjgw.js} +41 -36
  113. package/dist/{heartbeat-bm4qkn8d.js → heartbeat-9q96p8v9.js} +43 -38
  114. package/dist/{hook-254r4mza.js → hook-56qe10dp.js} +11 -23
  115. package/dist/{hook-xaa3q80s.js → hook-yy6rw42k.js} +12 -11
  116. package/dist/{http-3dgrgp8y.js → http-r2dnb8f8.js} +2411 -275
  117. package/dist/{index-fx3jqq1e.js → index-3gtmkhc6.js} +38 -33
  118. package/dist/{index-bdsqa799.js → index-3k5hkz7r.js} +43 -38
  119. package/dist/index-52j1aja4.js +3465 -0
  120. package/dist/{index-g2byveez.js → index-5e101240.js} +38 -33
  121. package/dist/{index-2ybk7khy.js → index-5wyfjc2c.js} +845 -683
  122. package/dist/index-9gw58n4k.js +193 -0
  123. package/dist/index-9j87mcm8.js +56305 -0
  124. package/dist/index-bsmcresk.js +79424 -0
  125. package/dist/index-mh85qhec.js +475 -0
  126. package/dist/{index-jd7sejm2.js → index-vxvhxxbn.js} +10 -9
  127. package/dist/index-we27kd31.js +12810 -0
  128. package/dist/{keepalive-6ywhpja1.js → keepalive-psj6j54c.js} +12 -11
  129. package/dist/{lead-cw45n21s.js → lead-hajz4688.js} +61 -56
  130. package/dist/{maintenance-ss1a1ge9.js → maintenance-ps02sb5m.js} +10 -9
  131. package/dist/{node-fkajaq96.js → node-mwb5r697.js} +2 -1
  132. package/dist/{oauth-refresh-sweep-3c6f8vyy.js → oauth-refresh-sweep-0284h93b.js} +11 -10
  133. package/dist/{onboard-8hzdhc1k.js → onboard-rbf6bg01.js} +11 -3
  134. package/dist/{opencode-adapter-qbchbcfz.js → opencode-adapter-13dcatgq.js} +18 -13
  135. package/dist/{otel-impl-e6mnvc4v.js → otel-impl-zvqcbhp7.js} +242 -868
  136. package/dist/{pi-mono-adapter-3c9g9snh.js → pi-mono-adapter-xxy47q4v.js} +244 -106
  137. package/dist/{pricing-refresh-gedkjdw0.js → pricing-refresh-kefx9v3t.js} +12 -11
  138. package/dist/{rbac-roles-dt4vh1yy.js → rbac-roles-3m36rxm2.js} +11 -10
  139. package/dist/{rbac-roles-eszdg6pm.js → rbac-roles-z76xv0hq.js} +12 -11
  140. package/dist/{render-v2-907cy6sa.js → render-v2-wz73bs25.js} +18 -14
  141. package/dist/{resume-42stcaz0.js → resume-k4wzge8w.js} +25 -21
  142. package/dist/{runtime-qfry88v2.js → runtime-sa2vr16g.js} +2 -2
  143. package/dist/{setup-adbc1c10.js → setup-2fp2pypp.js} +2 -2
  144. package/dist/{virtual-modules-rtmt494q.js → virtual-modules-9gkxqrap.js} +6 -5
  145. package/dist/{work-objects-wpj8ck95.js → work-objects-6k0ywz3m.js} +41 -36
  146. package/dist/{worker-bzdra9rf.js → worker-5v3rxsdh.js} +61 -56
  147. package/dist/{x-qfmygqqv.js → x-4mtdeym1.js} +3 -2
  148. package/openapi.json +1279 -329
  149. package/package.json +15 -15
  150. package/src/agentmail/handlers.ts +21 -11
  151. package/src/apps/definition.ts +16 -0
  152. package/src/azure-devops/api.ts +52 -2
  153. package/src/azure-devops/boards-sync.ts +50 -20
  154. package/src/azure-devops/index.ts +1 -0
  155. package/src/azure-devops/outbound.ts +95 -0
  156. package/src/be/boot-seeds.ts +11 -0
  157. package/src/be/config-refs.ts +60 -0
  158. package/src/be/db/model-profiles.ts +315 -0
  159. package/src/be/db/page-versions.ts +15 -0
  160. package/src/be/db/runtime.ts +35 -8
  161. package/src/be/db/skill-name-resolution.ts +36 -0
  162. package/src/be/db/tasks/read.ts +237 -0
  163. package/src/be/db/tasks/write.ts +7 -0
  164. package/src/be/db.ts +87 -36
  165. package/src/be/migrations/215_swarm_config_export_to_env.sql +34 -0
  166. package/src/be/migrations/216_task_resolved_effort.sql +5 -0
  167. package/src/be/migrations/217_chat_sdk_state.sql +104 -0
  168. package/src/be/migrations/219_relabel_pi_context_compactions.sql +22 -0
  169. package/src/be/migrations/220_model_profiles.sql +137 -0
  170. package/src/be/model-catalog-store.ts +5 -1
  171. package/src/be/model-tier-resolution.ts +155 -10
  172. package/src/be/model-validation.ts +12 -2
  173. package/src/be/models-catalog.ts +26 -1
  174. package/src/be/modelsdev-cache.json +198 -63
  175. package/src/be/modelsdev-cache.ts +9 -1
  176. package/src/be/script-credential-broker.ts +39 -2
  177. package/src/be/scripts/run-saved.ts +1 -0
  178. package/src/be/scripts/typecheck.ts +22 -8
  179. package/src/be/secret-registry.ts +6 -2
  180. package/src/be/seed/runner.ts +13 -1
  181. package/src/be/seed/state-db.ts +5 -0
  182. package/src/be/seed/types.ts +6 -0
  183. package/src/be/seed-model-profiles.ts +41 -0
  184. package/src/be/seed-pricing.ts +19 -2
  185. package/src/be/seed-scripts/catalog/heartbeat-jev-gate.ts +368 -0
  186. package/src/be/seed-scripts/catalog/ops-catalog-audit.inline.ts +1 -1
  187. package/src/be/seed-scripts/catalog/ops-catalog-audit.ts +1 -1
  188. package/src/be/seed-scripts/index.ts +9 -0
  189. package/src/be/seed-skills/bundled-files.generated.json +0 -18
  190. package/src/be/seed-skills/index.ts +104 -3
  191. package/src/be/swarm-config-guard.ts +53 -0
  192. package/src/cli.tsx +0 -16
  193. package/src/commands/onboard/non-interactive.ts +4 -2
  194. package/src/commands/provider-credentials.ts +52 -6
  195. package/src/commands/runner.ts +193 -71
  196. package/src/e2b/env.ts +5 -0
  197. package/src/extensions/catalog.generated.json +17 -0
  198. package/src/extensions/contract-types.generated.ts +1 -1
  199. package/src/extensions/contract.ts +45 -0
  200. package/src/extensions/dispatcher.ts +7 -0
  201. package/src/extensions/loader.ts +10 -5
  202. package/src/extensions/post-bridge.ts +40 -0
  203. package/src/github/handlers.ts +11 -4
  204. package/src/heartbeat/heartbeat.ts +2 -1
  205. package/src/heartbeat/templates.ts +8 -5
  206. package/src/hooks/hook.ts +0 -26
  207. package/src/http/agents.ts +49 -2
  208. package/src/http/all-routes.ts +1 -1
  209. package/src/http/apps.ts +30 -3
  210. package/src/http/config.ts +62 -19
  211. package/src/http/core.ts +8 -0
  212. package/src/http/index.ts +25 -3
  213. package/src/http/integrations.ts +88 -1
  214. package/src/http/mcp.ts +15 -5
  215. package/src/http/model-profiles.ts +303 -0
  216. package/src/http/page-proxy.ts +2 -4
  217. package/src/http/pages-public.ts +13 -7
  218. package/src/http/pages.ts +3 -13
  219. package/src/http/poll.ts +42 -71
  220. package/src/http/requested-by.ts +54 -0
  221. package/src/http/script-runs.ts +1 -1
  222. package/src/http/scripts.ts +26 -2
  223. package/src/http/stats.ts +1 -30
  224. package/src/http/tasks.ts +79 -5
  225. package/src/http/utils.ts +14 -0
  226. package/src/http/webhooks.ts +160 -3
  227. package/src/http/x.ts +1 -0
  228. package/src/integrations/chat-sdk/adapters.ts +129 -0
  229. package/src/integrations/chat-sdk/attachments.ts +232 -0
  230. package/src/integrations/chat-sdk/background.ts +36 -0
  231. package/src/integrations/chat-sdk/commands.ts +194 -0
  232. package/src/integrations/chat-sdk/config.ts +198 -0
  233. package/src/integrations/chat-sdk/discord-api.ts +63 -0
  234. package/src/integrations/chat-sdk/discord-gateway.ts +185 -0
  235. package/src/integrations/chat-sdk/handlers.ts +28 -0
  236. package/src/integrations/chat-sdk/inbound.ts +426 -0
  237. package/src/integrations/chat-sdk/limits.ts +48 -0
  238. package/src/integrations/chat-sdk/logger.ts +81 -0
  239. package/src/integrations/chat-sdk/outbound.ts +123 -0
  240. package/src/integrations/chat-sdk/relay.ts +172 -0
  241. package/src/integrations/chat-sdk/router.ts +169 -0
  242. package/src/integrations/chat-sdk/runtime.ts +351 -0
  243. package/src/integrations/chat-sdk/schema.ts +245 -0
  244. package/src/integrations/chat-sdk/state.ts +243 -0
  245. package/src/integrations/chat-sdk/status.ts +244 -0
  246. package/src/integrations/chat-sdk/steering.ts +58 -0
  247. package/src/integrations/chat-sdk/teams-origin.ts +77 -0
  248. package/src/integrations/chat-sdk/telegram-api.ts +56 -0
  249. package/src/integrations/chat-sdk/templates.ts +16 -0
  250. package/src/integrations/chat-sdk/test-hooks.ts +37 -0
  251. package/src/integrations/chat-sdk/thread-buffer.ts +100 -0
  252. package/src/integrations/chat-sdk/typing.ts +65 -0
  253. package/src/{artifact-sdk → pages}/feedback-overlay.ts +65 -6
  254. package/src/pages/version.ts +4 -5
  255. package/src/prompts/base-prompt.ts +111 -45
  256. package/src/providers/acp-target-catalog.ts +6 -0
  257. package/src/providers/acp-targets.ts +56 -3
  258. package/src/providers/amp-adapter.ts +1 -1
  259. package/src/providers/claude-adapter.ts +1 -1
  260. package/src/providers/claude-flag-settings.ts +17 -5
  261. package/src/providers/claude-managed-adapter.ts +1 -1
  262. package/src/providers/claude-session-events.ts +6 -1
  263. package/src/providers/dsh-adapter.ts +1 -1
  264. package/src/providers/opencode-adapter.ts +243 -26
  265. package/src/providers/opencode-swarm-plugin.ts +31 -0
  266. package/src/providers/pi-mono-adapter.ts +398 -153
  267. package/src/providers/pi-mono-extension.ts +17 -3
  268. package/src/providers/pricing-sources.md +33 -2
  269. package/src/providers/reasoning-effort.ts +37 -0
  270. package/src/providers/types.ts +6 -2
  271. package/src/rbac/legacy-policy.ts +16 -2
  272. package/src/rbac/permissions.ts +26 -0
  273. package/src/scheduler/deferred-task-waits.ts +18 -5
  274. package/src/scheduler/scheduler.ts +11 -3
  275. package/src/scripts-runtime/executors/quickjs-prelude.ts +75 -6
  276. package/src/scripts-runtime/executors/quickjs-runner.ts +85 -8
  277. package/src/scripts-runtime/executors/quickjs-web-shims.ts +1041 -0
  278. package/src/scripts-runtime/extract-args-schema.ts +9 -8
  279. package/src/scripts-runtime/loader.ts +19 -7
  280. package/src/scripts-runtime/quickjs-compat.ts +464 -0
  281. package/src/scripts-runtime/sdk-allowlist.ts +12 -6
  282. package/src/scripts-runtime/swarm-sdk.ts +0 -11
  283. package/src/scripts-runtime/types/stdlib.d.ts +39 -15
  284. package/src/scripts-runtime/types/swarm-extension.d.ts +66 -1
  285. package/src/scripts-runtime/types/swarm-sdk.d.ts +39 -15
  286. package/src/server.ts +62 -19
  287. package/src/slack/blocks.ts +4 -2
  288. package/src/slack/event-dedup.ts +1 -1
  289. package/src/slack/reaction-shortcode.ts +14 -0
  290. package/src/slack/render-v2.ts +12 -7
  291. package/src/slack/responses.ts +5 -4
  292. package/src/slack/thread-buffer.ts +41 -22
  293. package/src/tasks/additive-buffer.ts +4 -2
  294. package/src/tasks/context-key.ts +60 -1
  295. package/src/tasks/model-pin.ts +67 -0
  296. package/src/tasks/worker-follow-up.ts +15 -33
  297. package/src/tests/acp-adapter.test.ts +42 -0
  298. package/src/tests/agentmail-filters.test.ts +47 -0
  299. package/src/tests/api-drain-worker-e2e.test.ts +1 -6
  300. package/src/tests/apps-spike2.test.ts +35 -0
  301. package/src/tests/azure-devops-outbound.test.ts +420 -0
  302. package/src/tests/base-prompt.test.ts +58 -54
  303. package/src/tests/chat-sdk-commands.test.ts +191 -0
  304. package/src/tests/chat-sdk-config.test.ts +334 -0
  305. package/src/tests/chat-sdk-discord-api.test.ts +68 -0
  306. package/src/tests/chat-sdk-discord-gateway.test.ts +252 -0
  307. package/src/tests/chat-sdk-discord-webhook.test.ts +126 -0
  308. package/src/tests/chat-sdk-fields-sync.test.ts +50 -0
  309. package/src/tests/chat-sdk-harness.ts +146 -0
  310. package/src/tests/chat-sdk-inbound.test.ts +363 -0
  311. package/src/tests/chat-sdk-relay.test.ts +470 -0
  312. package/src/tests/chat-sdk-reload.test.ts +128 -0
  313. package/src/tests/chat-sdk-shutdown.test.ts +220 -0
  314. package/src/tests/chat-sdk-slack.test.ts +268 -0
  315. package/src/tests/chat-sdk-state.test.ts +163 -0
  316. package/src/tests/chat-sdk-status-route.test.ts +382 -0
  317. package/src/tests/chat-sdk-teams.test.ts +277 -0
  318. package/src/tests/chat-sdk-tools.test.ts +520 -0
  319. package/src/tests/chat-sdk-typing.test.ts +120 -0
  320. package/src/tests/chat-sdk-webhook-telegram.test.ts +200 -0
  321. package/src/tests/claude-adapter-binary.test.ts +9 -4
  322. package/src/tests/claude-flag-settings.test.ts +11 -3
  323. package/src/tests/claude-managed-adapter.test.ts +1 -1
  324. package/src/tests/claude-sdk-lifecycle.test.ts +9 -3
  325. package/src/tests/claude-thinking-tokens.test.ts +57 -0
  326. package/src/tests/claude-worker-parity.test.ts +2 -7
  327. package/src/tests/config-env-export-chat-sdk.test.ts +11 -0
  328. package/src/tests/config-refs.test.ts +66 -0
  329. package/src/tests/context-key.test.ts +19 -0
  330. package/src/tests/cors-allowlist.test.ts +25 -0
  331. package/src/tests/create-page-tool.test.ts +18 -0
  332. package/src/tests/credential-check.test.ts +139 -0
  333. package/src/tests/credentials.test.ts +21 -0
  334. package/src/tests/db-runtime.test.ts +61 -0
  335. package/src/tests/db-task-read-contract.test.ts +22 -0
  336. package/src/tests/db-task-write-contract.test.ts +11 -0
  337. package/src/tests/deferred-task-wake.test.ts +78 -1
  338. package/src/tests/docs-index-footprint.test.js +3 -3
  339. package/src/tests/dsh-adapter.test.ts +1 -1
  340. package/src/tests/enabled-capabilities.test.ts +20 -0
  341. package/src/tests/entrypoint-api-readiness.test.ts +14 -8
  342. package/src/tests/entrypoint-config-env-export.test.ts +5 -2
  343. package/src/tests/entrypoint-export-to-env.test.ts +78 -0
  344. package/src/tests/env-flag.test.ts +1 -0
  345. package/src/tests/explicit-model-validation.test.ts +105 -1
  346. package/src/tests/extensions-catalog.test.ts +1 -0
  347. package/src/tests/extensions-example-comms-adherence-gate.test.ts +413 -0
  348. package/src/tests/extensions-example-route-chat-channel.test.ts +154 -0
  349. package/src/tests/extensions-loader.test.ts +15 -0
  350. package/src/tests/extensions-post-bridge.test.ts +51 -0
  351. package/src/tests/fetch-resolved-env.test.ts +128 -0
  352. package/src/tests/fixtures/chat-sdk/telegram-private-text.json +10 -0
  353. package/src/tests/fixtures/extensions/route-chat-channel-to-agent/hooks.ts +27 -0
  354. package/src/tests/fixtures/extensions/route-chat-channel-to-agent/manifest.json +9 -0
  355. package/src/tests/fixtures/openai-compatible-registry-extension.child.ts +146 -0
  356. package/src/tests/fixtures/runner-legacy-resume-prompt.ts +122 -0
  357. package/src/tests/github-handlers.test.ts +35 -0
  358. package/src/tests/harness-provider-resolution.test.ts +12 -0
  359. package/src/tests/heartbeat-checklist.test.ts +3 -2
  360. package/src/tests/heartbeat-jev-gate-credentials.test.ts +168 -0
  361. package/src/tests/heartbeat-jev-gate.test.ts +385 -0
  362. package/src/tests/hook-runtime-close.test.ts +0 -2
  363. package/src/tests/http-api-integration.test.ts +0 -25
  364. package/src/tests/migration-046-budgets.test.ts +17 -16
  365. package/src/tests/migration-217-chat-sdk-state.test.ts +113 -0
  366. package/src/tests/model-profile-backcompat.test.ts +327 -0
  367. package/src/tests/model-profile-providers.test.ts +302 -0
  368. package/src/tests/model-profile-runtime-secrets.test.ts +223 -0
  369. package/src/tests/model-profiles-api.test.ts +614 -0
  370. package/src/tests/model-tier-resolution.test.ts +93 -0
  371. package/src/tests/models-catalog.test.ts +42 -1
  372. package/src/tests/openai-compatible-providers.test.ts +134 -0
  373. package/src/tests/openai-compatible-registry-extension.test.ts +42 -0
  374. package/src/tests/opencode-adapter.test.ts +216 -2
  375. package/src/tests/opencode-helmcode-sdk.test.ts +201 -0
  376. package/src/tests/opencode-shell-env.test.ts +145 -0
  377. package/src/tests/openrouter-base-url.test.ts +101 -151
  378. package/src/tests/page-proxy.test.ts +1 -1
  379. package/src/tests/pages-browser-sdk.test.ts +76 -0
  380. package/src/tests/pages-feedback-keys.test.ts +121 -0
  381. package/src/tests/pages-feedback.test.ts +4 -1
  382. package/src/tests/paused-tasks-requested-by.test.ts +102 -0
  383. package/src/tests/pi-context-compaction.test.ts +193 -0
  384. package/src/tests/pi-custom-provider-fake-server.test.ts +442 -0
  385. package/src/tests/pi-mono-adapter.test.ts +385 -5
  386. package/src/tests/pi-shell-env.test.ts +170 -0
  387. package/src/tests/profile-claim.test.ts +269 -0
  388. package/src/tests/prompt-template-remaining.test.ts +35 -0
  389. package/src/tests/quickjs-compat.test.ts +213 -0
  390. package/src/tests/rbac-engine.test.ts +32 -3
  391. package/src/tests/runner-exit-after-tasks.test.ts +0 -4
  392. package/src/tests/runner-legacy-resume-prompt.test.ts +64 -0
  393. package/src/tests/script-connections.test.ts +6 -0
  394. package/src/tests/script-executor-conformance.test.ts +252 -1
  395. package/src/tests/script-executor-quickjs.test.ts +96 -0
  396. package/src/tests/script-runs-http.test.ts +89 -0
  397. package/src/tests/scripts-http.test.ts +217 -1
  398. package/src/tests/scripts-only-gating.test.ts +2 -3
  399. package/src/tests/scripts-runtime.test.ts +58 -40
  400. package/src/tests/secret-scrubber.test.ts +96 -0
  401. package/src/tests/seed-model-profiles.test.ts +174 -0
  402. package/src/tests/seed-scripts.test.ts +2 -2
  403. package/src/tests/seed-skills-bundled-files.test.ts +45 -53
  404. package/src/tests/seed-skills-retire.test.ts +182 -0
  405. package/src/tests/send-task-requester-gate.test.ts +58 -0
  406. package/src/tests/session-cost-recompute-unit.test.ts +46 -0
  407. package/src/tests/skill-get-name-resolution.test.ts +137 -0
  408. package/src/tests/skill-invocations.test.ts +4 -2
  409. package/src/tests/slack-blocks.test.ts +36 -0
  410. package/src/tests/slack-inline-output.test.ts +14 -0
  411. package/src/tests/slack-reaction-config.test.ts +20 -0
  412. package/src/tests/slack-render-v2.test.ts +37 -0
  413. package/src/tests/slack-thread-buffer.test.ts +98 -1
  414. package/src/tests/sonnet-5-5-registry.test.ts +9 -1
  415. package/src/tests/swarm-config-export-to-env.test.ts +267 -0
  416. package/src/tests/swarm-config-reserved-keys.test.ts +16 -0
  417. package/src/tests/swarm-diff.test.ts +1 -1
  418. package/src/tests/task-model-effort-rerun.test.ts +164 -0
  419. package/src/tests/task-session-prompts.test.ts +132 -0
  420. package/src/tests/task-tool-manifest.test.ts +14 -0
  421. package/src/tests/task-tools-ctx.test.ts +2 -0
  422. package/src/tests/tool-annotations.test.ts +6 -6
  423. package/src/tests/ui-logs-parser.test.ts +43 -0
  424. package/src/tests/used-by-route.test.ts +6 -0
  425. package/src/tests/vercel-ai-gateway.test.ts +149 -0
  426. package/src/tests/workflow-llm.test.ts +61 -0
  427. package/src/tests/workflow-swarm-script.test.ts +38 -0
  428. package/src/tests/workflow-wait-filter.test.ts +5 -3
  429. package/src/tools/chat-access.ts +41 -0
  430. package/src/tools/chat-open-dm.ts +59 -0
  431. package/src/tools/chat-post.ts +74 -0
  432. package/src/tools/chat-read-thread.ts +100 -0
  433. package/src/tools/chat-reply.ts +75 -0
  434. package/src/tools/create-page.ts +3 -13
  435. package/src/tools/model-catalog/index.ts +2 -1
  436. package/src/tools/model-profiles/list-model-profiles.ts +54 -0
  437. package/src/tools/register-chat-channel.ts +139 -0
  438. package/src/tools/request-human-input.ts +11 -3
  439. package/src/tools/script-apis.ts +5 -1
  440. package/src/tools/script-upsert.ts +4 -1
  441. package/src/tools/send-task.ts +48 -1
  442. package/src/tools/skills/skill-get.ts +17 -9
  443. package/src/tools/swarm-config/get-config.ts +2 -1
  444. package/src/tools/swarm-config/list-config.ts +2 -1
  445. package/src/tools/swarm-config/set-config.ts +16 -3
  446. package/src/tools/system-one-decide.ts +104 -0
  447. package/src/tools/task-action.ts +22 -1
  448. package/src/tools/tool-config.ts +14 -6
  449. package/src/types.ts +48 -3
  450. package/src/utils/config-env-export.ts +74 -0
  451. package/src/utils/credentials.test.ts +92 -0
  452. package/src/utils/credentials.ts +52 -4
  453. package/src/utils/harness-provider.ts +15 -6
  454. package/src/utils/runtime-model-catalog.ts +11 -1
  455. package/src/utils/secret-scrubber.ts +86 -10
  456. package/src/utils/task-tool-manifest.ts +19 -2
  457. package/src/utils/vcs-repo-match.ts +29 -0
  458. package/src/workflows/executors/raw-llm.ts +8 -3
  459. package/src/workflows/executors/swarm-script.ts +1 -0
  460. package/src/workflows/executors/system-one-decision.ts +21 -11
  461. package/src/workflows/executors/workflow-llm.ts +22 -0
  462. package/src/workflows/index.ts +21 -12
  463. package/templates/extensions/README.md +1 -0
  464. package/templates/extensions/comms-adherence-gate/README.md +88 -0
  465. package/templates/extensions/comms-adherence-gate/hooks.ts +489 -0
  466. package/templates/extensions/comms-adherence-gate/manifest.json +8 -0
  467. package/templates/skills/agent-browser/SKILL.md +1 -1
  468. package/templates/skills/agent-browser/content.md +1 -1
  469. package/templates/skills/apps/SKILL.md +8 -1
  470. package/templates/skills/apps/content.md +8 -1
  471. package/templates/skills/chat-sdk/config.json +14 -0
  472. package/templates/skills/chat-sdk/content.md +84 -0
  473. package/templates/skills/composio-gmail/content.md +7 -0
  474. package/templates/skills/composio-google-docs/content.md +1 -1
  475. package/templates/skills/email-domain-health/config.json +14 -0
  476. package/templates/skills/email-domain-health/content.md +131 -0
  477. package/templates/skills/kv-storage/content.md +2 -2
  478. package/templates/skills/pages/content.md +8 -10
  479. package/templates/skills/swarm-extensions/content.md +2 -0
  480. package/templates/skills/swarm-scripts/SKILL.md +4 -2
  481. package/templates/skills/swarm-scripts/config.json +1 -1
  482. package/templates/skills/swarm-scripts/content.md +4 -2
  483. package/templates/skills/workflow-iterate/content.md +38 -0
  484. package/dist/artifact-eczsknc3.js +0 -3843
  485. package/dist/cli-42qhyvwx.js +0 -33
  486. package/dist/cli-bd957dgb.js +0 -153
  487. package/dist/cli-q51yprfq.js +0 -1104
  488. package/dist/cli-t1ze64h3.js +0 -811
  489. package/dist/cli-tcc4wd5d.js +0 -56471
  490. package/dist/index-9ch1n761.js +0 -1102
  491. package/src/artifact-sdk/index.ts +0 -2
  492. package/src/artifact-sdk/localtunnel.d.ts +0 -20
  493. package/src/artifact-sdk/port.ts +0 -12
  494. package/src/artifact-sdk/server.ts +0 -183
  495. package/src/artifact-sdk/tunnel.ts +0 -19
  496. package/src/commands/artifact.ts +0 -249
  497. package/src/http/ecosystem.ts +0 -77
  498. package/src/tests/artifact-commands.test.ts +0 -92
  499. package/src/tests/artifact-sdk.test.ts +0 -793
  500. package/src/tests/register-service-security.test.ts +0 -194
  501. package/src/tools/list-services.ts +0 -107
  502. package/src/tools/register-service.ts +0 -177
  503. package/src/tools/unregister-service.ts +0 -73
  504. package/src/tools/update-service-status.ts +0 -96
  505. package/templates/skills/artifacts/config.json +0 -14
  506. package/templates/skills/artifacts/content.md +0 -344
  507. package/templates/skills/artifacts/files/examples/approval-flow.ts +0 -34
  508. package/templates/skills/artifacts/files/examples/hono-dashboard.ts +0 -31
  509. package/templates/skills/artifacts/files/examples/multi-artifact.ts +0 -20
  510. package/templates/skills/artifacts/files/examples/static-report.sh +0 -17
  511. /package/src/{artifact-sdk → pages}/browser-sdk.ts +0 -0
@@ -4,27 +4,23 @@ import {
4
4
  import {
5
5
  clampContextPercent,
6
6
  getContextWindowSize
7
- } from "./cli-7avy4v8w.js";
7
+ } from "./cli-w1q7h2r2.js";
8
8
  import {
9
9
  applyReasoningEffort
10
- } from "./cli-tmhsxhb8.js";
10
+ } from "./cli-0veb92a3.js";
11
11
  import {
12
12
  swarmRuntimeInstanceId
13
13
  } from "./cli-re8z5p8p.js";
14
14
  import {
15
15
  DEFAULT_MODEL_TIER_MAP,
16
16
  init_types
17
- } from "./cli-hsem16hb.js";
17
+ } from "./cli-pe05f8yk.js";
18
18
  import {
19
19
  init_resolver,
20
20
  init_session_templates,
21
21
  resolveTemplateAsync,
22
22
  resolveTemplateFromCode
23
23
  } from "./cli-fdvbjtbw.js";
24
- import {
25
- cursorCatalogRef,
26
- init_src
27
- } from "./cli-014vns2y.js";
28
24
  import {
29
25
  init_env_flag,
30
26
  parseEnvFlag
@@ -33,7 +29,11 @@ import {
33
29
  init_secret_scrubber,
34
30
  registerVolatileSecret,
35
31
  scrubSecrets
36
- } from "./cli-d161g69q.js";
32
+ } from "./cli-shk7r5cs.js";
33
+ import {
34
+ cursorCatalogRef,
35
+ init_src
36
+ } from "./cli-e3g5mbkz.js";
37
37
  import {
38
38
  __require
39
39
  } from "./cli-bc05qbss.js";
@@ -795,7 +795,7 @@ GFS4: `);
795
795
  }
796
796
  });
797
797
 
798
- // node_modules/retry/lib/retry_operation.js
798
+ // node_modules/proper-lockfile/node_modules/retry/lib/retry_operation.js
799
799
  var require_retry_operation = __commonJS(function(exports, module) {
800
800
  function RetryOperation(timeouts, options) {
801
801
  if (typeof options === "boolean") {
@@ -924,7 +924,7 @@ var require_retry_operation = __commonJS(function(exports, module) {
924
924
  };
925
925
  });
926
926
 
927
- // node_modules/retry/lib/retry.js
927
+ // node_modules/proper-lockfile/node_modules/retry/lib/retry.js
928
928
  var require_retry = __commonJS(function(exports) {
929
929
  var RetryOperation = require_retry_operation();
930
930
  exports.operation = function(options) {
@@ -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: "1.173.0",
10
+ version: "2.1.0",
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",
@@ -175,11 +175,6 @@ var init_package = __esm(() => {
175
175
  "docs:mcp": "bun scripts/generate-mcp-docs.ts",
176
176
  "docs:openapi": "bun scripts/generate-openapi.ts",
177
177
  "docs:business-use": "bun scripts/generate-business-use-docs.ts",
178
- "pm2-start": "pm2 start ecosystem.config.cjs",
179
- "pm2-stop": "pm2 stop ecosystem.config.cjs",
180
- "pm2-restart": "pm2 restart ecosystem.config.cjs",
181
- "pm2-logs": "pm2 logs swarm-api swarm-ui swarm-lead swarm-worker",
182
- "pm2-status": "pm2 status swarm-api swarm-ui swarm-lead swarm-worker",
183
178
  seed: "bun scripts/seed.ts",
184
179
  "seed:clean": "bun scripts/seed.ts --clean",
185
180
  "seed:people": "bun scripts/seed-people.ts",
@@ -187,16 +182,17 @@ var init_package = __esm(() => {
187
182
  },
188
183
  devDependencies: {
189
184
  "@biomejs/biome": "^2.3.10",
190
- "@desplega.ai/slack-mock": "^0.4.0",
185
+ "@desplega.ai/slack-mock": "^0.4.1",
191
186
  "@desplega/model-catalog": "workspace:*",
192
187
  "@desplega/model-routing": "workspace:*",
193
188
  "@faker-js/faker": "^10.4.0",
194
- "@opencode/plugin": "2.0.29",
195
- "@opencode/sdk": "2.0.29",
189
+ "@opencode/plugin": "2.0.31",
190
+ "@opencode/sdk": "2.0.31",
196
191
  "@oxlint/plugins": "1.78.0",
197
192
  "@types/bun": "latest",
198
193
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
199
194
  "dependency-cruiser": "^18.0.0",
195
+ "happy-dom": "^20.14.5",
200
196
  konsistent: "1.0.0-beta.1",
201
197
  "openapi-typescript": "^7",
202
198
  oxlint: "1.78.0",
@@ -210,15 +206,18 @@ var init_package = __esm(() => {
210
206
  bun: ">=1.3.12"
211
207
  },
212
208
  dependencies: {
213
- "@agentclientprotocol/sdk": "1.8.0",
209
+ "@agentclientprotocol/sdk": "1.9.0",
214
210
  "@ai-sdk/openai": "^3.0.41",
215
- "@anthropic-ai/claude-agent-sdk": "0.3.299",
216
- "@anthropic-ai/sdk": "^0.133.0",
211
+ "@anthropic-ai/claude-agent-sdk": "0.3.301",
212
+ "@anthropic-ai/sdk": "^0.135.0",
217
213
  "@asteasolutions/zod-to-openapi": "^8.0.0",
218
214
  "@aws-sdk/client-bedrock": "3.1048.0",
215
+ "@chat-adapter/discord": "4.41.1",
216
+ "@chat-adapter/slack": "4.41.1",
217
+ "@chat-adapter/teams": "4.41.1",
218
+ "@chat-adapter/telegram": "4.41.1",
219
219
  "@cursor/sdk": "1.0.37",
220
220
  "@desplega.ai/business-use": "^0.4.2",
221
- "@desplega.ai/localtunnel": "^2.2.0",
222
221
  "@earendil-works/pi-agent-core": "^1.2.0",
223
222
  "@earendil-works/pi-ai": "^1.2.0",
224
223
  "@earendil-works/pi-coding-agent": "^1.2.0",
@@ -226,7 +225,7 @@ var init_package = __esm(() => {
226
225
  "@jitl/quickjs-singlefile-mjs-release-sync": "0.32.0",
227
226
  "@linear/sdk": "^77.0.0",
228
227
  "@modelcontextprotocol/sdk": "1.31.0",
229
- "@openai/codex": "0.162.1",
228
+ "@openai/codex": "0.163.0",
230
229
  "@openfort/openfort-node": "^0.9.1",
231
230
  "@opentelemetry/api": "^1.9.1",
232
231
  "@opentelemetry/api-logs": "^0.218.0",
@@ -237,15 +236,16 @@ var init_package = __esm(() => {
237
236
  "@opentelemetry/sdk-node": "^0.218.0",
238
237
  "@opentelemetry/semantic-conventions": "^1.41.1",
239
238
  "@slack/bolt": "^4.6.0",
239
+ "@slack/web-api": "7.13.0",
240
240
  "@types/react": "^19.2.7",
241
241
  "@x402/core": "^2.5.0",
242
242
  "@x402/evm": "^2.5.0",
243
243
  "@x402/fetch": "^2.5.0",
244
244
  ai: "^6.0.116",
245
+ chat: "4.41.1",
245
246
  "cron-parser": "^5.4.0",
246
247
  "date-fns": "^4.1.0",
247
248
  e2b: "2.26.0",
248
- hono: "^4.12.3",
249
249
  ink: "^6.5.1",
250
250
  oauth4webapi: "^3.8.5",
251
251
  openai: "^6.22.0",
@@ -4,7 +4,7 @@ import {
4
4
  init_db1 as init_db,
5
5
  sweepExpiredKv,
6
6
  upsertKv
7
- } from "./cli-fmhj1ehj.js";
7
+ } from "./cli-y3167wt1.js";
8
8
  import {
9
9
  init_env_flag,
10
10
  isEnvFlagEnabled
@@ -12,7 +12,7 @@ import {
12
12
  import {
13
13
  init_secret_scrubber,
14
14
  scrubSecrets
15
- } from "./cli-d161g69q.js";
15
+ } from "./cli-shk7r5cs.js";
16
16
 
17
17
  // src/slack/external-channel.ts
18
18
  init_db();
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  init_secret_scrubber,
7
7
  scrubSecrets
8
- } from "./cli-d161g69q.js";
8
+ } from "./cli-shk7r5cs.js";
9
9
 
10
10
  // src/providers/codex-oauth/flow.ts
11
11
  init_secret_scrubber();
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_package,
3
3
  package_default
4
- } from "./cli-5er5gjbm.js";
4
+ } from "./cli-r35rw5de.js";
5
5
 
6
6
  // src/commands/shared/client-config.ts
7
7
  init_package();
@@ -0,0 +1,294 @@
1
+ import {
2
+ __commonJS
3
+ } from "./cli-bc05qbss.js";
4
+
5
+ // node_modules/retry/lib/retry_operation.js
6
+ var require_retry_operation = __commonJS(function(exports, module) {
7
+ function RetryOperation(timeouts, options) {
8
+ if (typeof options === "boolean") {
9
+ options = { forever: options };
10
+ }
11
+ this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));
12
+ this._timeouts = timeouts;
13
+ this._options = options || {};
14
+ this._maxRetryTime = options && options.maxRetryTime || Infinity;
15
+ this._fn = null;
16
+ this._errors = [];
17
+ this._attempts = 1;
18
+ this._operationTimeout = null;
19
+ this._operationTimeoutCb = null;
20
+ this._timeout = null;
21
+ this._operationStart = null;
22
+ this._timer = null;
23
+ if (this._options.forever) {
24
+ this._cachedTimeouts = this._timeouts.slice(0);
25
+ }
26
+ }
27
+ module.exports = RetryOperation;
28
+ RetryOperation.prototype.reset = function() {
29
+ this._attempts = 1;
30
+ this._timeouts = this._originalTimeouts.slice(0);
31
+ };
32
+ RetryOperation.prototype.stop = function() {
33
+ if (this._timeout) {
34
+ clearTimeout(this._timeout);
35
+ }
36
+ if (this._timer) {
37
+ clearTimeout(this._timer);
38
+ }
39
+ this._timeouts = [];
40
+ this._cachedTimeouts = null;
41
+ };
42
+ RetryOperation.prototype.retry = function(err) {
43
+ if (this._timeout) {
44
+ clearTimeout(this._timeout);
45
+ }
46
+ if (!err) {
47
+ return false;
48
+ }
49
+ var currentTime = new Date().getTime();
50
+ if (err && currentTime - this._operationStart >= this._maxRetryTime) {
51
+ this._errors.push(err);
52
+ this._errors.unshift(new Error("RetryOperation timeout occurred"));
53
+ return false;
54
+ }
55
+ this._errors.push(err);
56
+ var timeout = this._timeouts.shift();
57
+ if (timeout === undefined) {
58
+ if (this._cachedTimeouts) {
59
+ this._errors.splice(0, this._errors.length - 1);
60
+ timeout = this._cachedTimeouts.slice(-1);
61
+ } else {
62
+ return false;
63
+ }
64
+ }
65
+ var self = this;
66
+ this._timer = setTimeout(function() {
67
+ self._attempts++;
68
+ if (self._operationTimeoutCb) {
69
+ self._timeout = setTimeout(function() {
70
+ self._operationTimeoutCb(self._attempts);
71
+ }, self._operationTimeout);
72
+ if (self._options.unref) {
73
+ self._timeout.unref();
74
+ }
75
+ }
76
+ self._fn(self._attempts);
77
+ }, timeout);
78
+ if (this._options.unref) {
79
+ this._timer.unref();
80
+ }
81
+ return true;
82
+ };
83
+ RetryOperation.prototype.attempt = function(fn, timeoutOps) {
84
+ this._fn = fn;
85
+ if (timeoutOps) {
86
+ if (timeoutOps.timeout) {
87
+ this._operationTimeout = timeoutOps.timeout;
88
+ }
89
+ if (timeoutOps.cb) {
90
+ this._operationTimeoutCb = timeoutOps.cb;
91
+ }
92
+ }
93
+ var self = this;
94
+ if (this._operationTimeoutCb) {
95
+ this._timeout = setTimeout(function() {
96
+ self._operationTimeoutCb();
97
+ }, self._operationTimeout);
98
+ }
99
+ this._operationStart = new Date().getTime();
100
+ this._fn(this._attempts);
101
+ };
102
+ RetryOperation.prototype.try = function(fn) {
103
+ console.log("Using RetryOperation.try() is deprecated");
104
+ this.attempt(fn);
105
+ };
106
+ RetryOperation.prototype.start = function(fn) {
107
+ console.log("Using RetryOperation.start() is deprecated");
108
+ this.attempt(fn);
109
+ };
110
+ RetryOperation.prototype.start = RetryOperation.prototype.try;
111
+ RetryOperation.prototype.errors = function() {
112
+ return this._errors;
113
+ };
114
+ RetryOperation.prototype.attempts = function() {
115
+ return this._attempts;
116
+ };
117
+ RetryOperation.prototype.mainError = function() {
118
+ if (this._errors.length === 0) {
119
+ return null;
120
+ }
121
+ var counts = {};
122
+ var mainError = null;
123
+ var mainErrorCount = 0;
124
+ for (var i = 0;i < this._errors.length; i++) {
125
+ var error = this._errors[i];
126
+ var message = error.message;
127
+ var count = (counts[message] || 0) + 1;
128
+ counts[message] = count;
129
+ if (count >= mainErrorCount) {
130
+ mainError = error;
131
+ mainErrorCount = count;
132
+ }
133
+ }
134
+ return mainError;
135
+ };
136
+ });
137
+
138
+ // node_modules/retry/lib/retry.js
139
+ var require_retry = __commonJS(function(exports) {
140
+ var RetryOperation = require_retry_operation();
141
+ exports.operation = function(options) {
142
+ var timeouts = exports.timeouts(options);
143
+ return new RetryOperation(timeouts, {
144
+ forever: options && (options.forever || options.retries === Infinity),
145
+ unref: options && options.unref,
146
+ maxRetryTime: options && options.maxRetryTime
147
+ });
148
+ };
149
+ exports.timeouts = function(options) {
150
+ if (options instanceof Array) {
151
+ return [].concat(options);
152
+ }
153
+ var opts = {
154
+ retries: 10,
155
+ factor: 2,
156
+ minTimeout: 1 * 1000,
157
+ maxTimeout: Infinity,
158
+ randomize: false
159
+ };
160
+ for (var key in options) {
161
+ opts[key] = options[key];
162
+ }
163
+ if (opts.minTimeout > opts.maxTimeout) {
164
+ throw new Error("minTimeout is greater than maxTimeout");
165
+ }
166
+ var timeouts = [];
167
+ for (var i = 0;i < opts.retries; i++) {
168
+ timeouts.push(this.createTimeout(i, opts));
169
+ }
170
+ if (options && options.forever && !timeouts.length) {
171
+ timeouts.push(this.createTimeout(i, opts));
172
+ }
173
+ timeouts.sort(function(a, b) {
174
+ return a - b;
175
+ });
176
+ return timeouts;
177
+ };
178
+ exports.createTimeout = function(attempt, opts) {
179
+ var random = opts.randomize ? Math.random() + 1 : 1;
180
+ var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));
181
+ timeout = Math.min(timeout, opts.maxTimeout);
182
+ return timeout;
183
+ };
184
+ exports.wrap = function(obj, options, methods) {
185
+ if (options instanceof Array) {
186
+ methods = options;
187
+ options = null;
188
+ }
189
+ if (!methods) {
190
+ methods = [];
191
+ for (var key in obj) {
192
+ if (typeof obj[key] === "function") {
193
+ methods.push(key);
194
+ }
195
+ }
196
+ }
197
+ for (var i = 0;i < methods.length; i++) {
198
+ var method = methods[i];
199
+ var original = obj[method];
200
+ obj[method] = function retryWrapper(original2) {
201
+ var op = exports.operation(options);
202
+ var args = Array.prototype.slice.call(arguments, 1);
203
+ var callback = args.pop();
204
+ args.push(function(err) {
205
+ if (op.retry(err)) {
206
+ return;
207
+ }
208
+ if (err) {
209
+ arguments[0] = op.mainError();
210
+ }
211
+ callback.apply(this, arguments);
212
+ });
213
+ op.attempt(function() {
214
+ original2.apply(obj, args);
215
+ });
216
+ }.bind(obj, original);
217
+ obj[method].options = options;
218
+ }
219
+ };
220
+ });
221
+
222
+ // node_modules/p-retry/index.js
223
+ var require_p_retry = __commonJS(function(exports, module) {
224
+ var retry = require_retry();
225
+ var networkErrorMsgs = [
226
+ "Failed to fetch",
227
+ "NetworkError when attempting to fetch resource.",
228
+ "The Internet connection appears to be offline.",
229
+ "Network request failed"
230
+ ];
231
+
232
+ class AbortError extends Error {
233
+ constructor(message) {
234
+ super();
235
+ if (message instanceof Error) {
236
+ this.originalError = message;
237
+ ({ message } = message);
238
+ } else {
239
+ this.originalError = new Error(message);
240
+ this.originalError.stack = this.stack;
241
+ }
242
+ this.name = "AbortError";
243
+ this.message = message;
244
+ }
245
+ }
246
+ var decorateErrorWithCounts = (error, attemptNumber, options) => {
247
+ const retriesLeft = options.retries - (attemptNumber - 1);
248
+ error.attemptNumber = attemptNumber;
249
+ error.retriesLeft = retriesLeft;
250
+ return error;
251
+ };
252
+ var isNetworkError = (errorMessage) => networkErrorMsgs.includes(errorMessage);
253
+ var pRetry = (input, options) => new Promise((resolve, reject) => {
254
+ options = {
255
+ onFailedAttempt: () => {},
256
+ retries: 10,
257
+ ...options
258
+ };
259
+ const operation = retry.operation(options);
260
+ operation.attempt(async (attemptNumber) => {
261
+ try {
262
+ resolve(await input(attemptNumber));
263
+ } catch (error) {
264
+ if (!(error instanceof Error)) {
265
+ reject(new TypeError(`Non-error was thrown: "${error}". You should only throw errors.`));
266
+ return;
267
+ }
268
+ if (error instanceof AbortError) {
269
+ operation.stop();
270
+ reject(error.originalError);
271
+ } else if (error instanceof TypeError && !isNetworkError(error.message)) {
272
+ operation.stop();
273
+ reject(error);
274
+ } else {
275
+ decorateErrorWithCounts(error, attemptNumber, options);
276
+ try {
277
+ await options.onFailedAttempt(error);
278
+ } catch (error2) {
279
+ reject(error2);
280
+ return;
281
+ }
282
+ if (!operation.retry(error)) {
283
+ reject(operation.mainError());
284
+ }
285
+ }
286
+ }
287
+ });
288
+ });
289
+ module.exports = pRetry;
290
+ module.exports.default = pRetry;
291
+ module.exports.AbortError = AbortError;
292
+ });
293
+
294
+ export { require_p_retry };
@@ -6,7 +6,12 @@ import {
6
6
  init_secret_scrubber,
7
7
  isSensitiveKey,
8
8
  scrubSecrets
9
- } from "./cli-d161g69q.js";
9
+ } from "./cli-shk7r5cs.js";
10
+ import {
11
+ init_src,
12
+ openAICompatibleBaseUrlVars,
13
+ openAICompatibleKeyVars
14
+ } from "./cli-e3g5mbkz.js";
10
15
  import {
11
16
  __esm
12
17
  } from "./cli-bc05qbss.js";
@@ -147,6 +152,7 @@ function absolutePath(path, cwd = process.cwd()) {
147
152
  }
148
153
  var DEFAULT_E2B_API_BASE = "https://api.e2b.app", DEFAULT_E2B_TEMPLATE_NAMES, DEFAULT_E2B_FORWARD_KEYS;
149
154
  var init_env = __esm(() => {
155
+ init_src();
150
156
  init_api_key();
151
157
  init_secret_scrubber();
152
158
  DEFAULT_E2B_TEMPLATE_NAMES = {
@@ -161,6 +167,8 @@ var init_env = __esm(() => {
161
167
  "CLAUDE_CODE_OAUTH_TOKEN",
162
168
  "OPENAI_API_KEY",
163
169
  "OPENROUTER_API_KEY",
170
+ ...openAICompatibleKeyVars(),
171
+ ...openAICompatibleBaseUrlVars(),
164
172
  "GITHUB_TOKEN",
165
173
  "GITLAB_TOKEN",
166
174
  "AZURE_DEVOPS_TOKEN",
@@ -13,11 +13,11 @@ import {
13
13
  parseClaudeMdPendingRecord,
14
14
  planClaudeMdSync,
15
15
  withFileLock
16
- } from "./cli-r4fqfpwf.js";
16
+ } from "./cli-78vv7446.js";
17
17
  import {
18
18
  init_secret_scrubber,
19
19
  scrubSecrets
20
- } from "./cli-d161g69q.js";
20
+ } from "./cli-shk7r5cs.js";
21
21
 
22
22
  // src/commands/claude-md-session.ts
23
23
  init_file_lock();
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_secret_scrubber,
3
3
  scrubSecrets
4
- } from "./cli-d161g69q.js";
4
+ } from "./cli-shk7r5cs.js";
5
5
 
6
6
  // src/providers/devin-adapter.ts
7
7
  init_secret_scrubber();
@@ -1,3 +1,7 @@
1
+ import {
2
+ init_src,
3
+ openAICompatibleKeyVars
4
+ } from "./cli-e3g5mbkz.js";
1
5
  import {
2
6
  __esm
3
7
  } from "./cli-bc05qbss.js";
@@ -2312,6 +2316,15 @@ function computeIsSensitiveKey(key) {
2312
2316
  return true;
2313
2317
  return false;
2314
2318
  }
2319
+ function credentialCandidates(value) {
2320
+ const candidates = new Set([value, value.trim()]);
2321
+ if (value.includes(",")) {
2322
+ for (const member of value.split(","))
2323
+ candidates.add(member.trim());
2324
+ }
2325
+ candidates.delete("");
2326
+ return [...candidates];
2327
+ }
2315
2328
  function buildCache() {
2316
2329
  const entries = [];
2317
2330
  const seen = new Set;
@@ -2320,10 +2333,7 @@ function buildCache() {
2320
2333
  continue;
2321
2334
  if (!isSensitiveKey(key))
2322
2335
  continue;
2323
- const candidates = rawValue.includes(",") ? [rawValue, ...rawValue.split(",").map((s) => s.trim())] : [rawValue];
2324
- for (const candidate of candidates) {
2325
- if (!candidate)
2326
- continue;
2336
+ for (const candidate of credentialCandidates(rawValue)) {
2327
2337
  if (candidate.length < MIN_VALUE_LENGTH)
2328
2338
  continue;
2329
2339
  for (const form of escapedForms(candidate)) {
@@ -2455,6 +2465,37 @@ function scrubObject(value, seen = new WeakSet) {
2455
2465
  }
2456
2466
  return out;
2457
2467
  }
2468
+ function createValueScrubber(entries) {
2469
+ const names = new Map;
2470
+ for (const { value, name } of entries) {
2471
+ if (!value)
2472
+ continue;
2473
+ for (const form of escapedForms(value))
2474
+ if (!names.has(form))
2475
+ names.set(form, name);
2476
+ }
2477
+ if (names.size === 0)
2478
+ return { text: (text2) => text2, object: (value) => value };
2479
+ const pattern = [...names.keys()].sort((a, b) => b.length - a.length).map(escapeRegExp).join("|");
2480
+ const re = new RegExp(pattern, "g");
2481
+ const text = (input) => input.replace(re, (match) => `[REDACTED:${names.get(match) ?? "secret"}]`);
2482
+ const object = (value, seen = new WeakSet) => {
2483
+ if (typeof value === "string")
2484
+ return text(value);
2485
+ if (value === null || typeof value !== "object")
2486
+ return value;
2487
+ if (seen.has(value))
2488
+ return "[Circular]";
2489
+ seen.add(value);
2490
+ if (Array.isArray(value))
2491
+ return value.map((item) => object(item, seen));
2492
+ return Object.fromEntries(Object.entries(value).map(([key, child]) => [
2493
+ text(key),
2494
+ object(child, seen)
2495
+ ]));
2496
+ };
2497
+ return { text, object: (value) => object(value) };
2498
+ }
2458
2499
  function refreshSecretScrubberCache() {
2459
2500
  cache = null;
2460
2501
  }
@@ -2468,6 +2509,14 @@ function registerVolatileSecret(value, name) {
2468
2509
  volatileGeneration++;
2469
2510
  }
2470
2511
  }
2512
+ function registerEnvSecrets(env) {
2513
+ for (const [key, value] of Object.entries(env)) {
2514
+ if (!value || !isSensitiveKey(key))
2515
+ continue;
2516
+ for (const candidate of credentialCandidates(value))
2517
+ registerVolatileSecret(candidate, key);
2518
+ }
2519
+ }
2471
2520
  function unregisterVolatileSecret(name) {
2472
2521
  for (const [value, registeredName] of volatileSecrets) {
2473
2522
  if (registeredName !== name)
@@ -2483,8 +2532,9 @@ function registerSensitiveKeyName(key) {
2483
2532
  sensitiveKeyVerdicts.clear();
2484
2533
  cache = null;
2485
2534
  }
2486
- var SCRUBBER_RULES_VERSION = 6, SENSITIVE_KEY_EXACT, SENSITIVE_KEY_SUFFIXES, NON_SECRET_EXCEPTIONS, MIN_VALUE_LENGTH = 12, QUOTE_EOL, JSON_DQ, RAW_DQ, SQ, BARE, ASSIGNMENT_RE, LINE_START, LINE_END, LINE_VALUE, INI_ASSIGNMENT_RE, YAML_KEY_RE, JSON_KEY, JSON_KEY_RE, ESCAPED_JSON_KEY_RE, TOKEN68, HEADER_SEP, AUTH_HEADER_RE, API_KEY_HEADER_RE, CURL_PASSWORD_RE, CURL_USER_RE, URL_USERINFO_RE, PEM_RE, PEM_MARKER = "[REDACTED:private_key]", TB, TOKEN_REGEXES, gitleaks = null, gitleaksPassEnabled = true, cache = null, matcher = null, volatileSecrets, volatileGeneration = 0, registeredSensitiveKeys, sensitiveKeyVerdicts, MAX_KEY_VERDICTS = 4096;
2535
+ var SCRUBBER_RULES_VERSION = 8, SENSITIVE_KEY_EXACT, SENSITIVE_KEY_SUFFIXES, NON_SECRET_EXCEPTIONS, MIN_VALUE_LENGTH = 12, QUOTE_EOL, JSON_DQ, RAW_DQ, SQ, BARE, ASSIGNMENT_RE, LINE_START, LINE_END, LINE_VALUE, INI_ASSIGNMENT_RE, YAML_KEY_RE, JSON_KEY, JSON_KEY_RE, ESCAPED_JSON_KEY_RE, TOKEN68, HEADER_SEP, AUTH_HEADER_RE, API_KEY_HEADER_RE, CURL_PASSWORD_RE, CURL_USER_RE, URL_USERINFO_RE, PEM_RE, PEM_MARKER = "[REDACTED:private_key]", TB, TOKEN_REGEXES, gitleaks = null, gitleaksPassEnabled = true, cache = null, matcher = null, volatileSecrets, volatileGeneration = 0, registeredSensitiveKeys, sensitiveKeyVerdicts, MAX_KEY_VERDICTS = 4096;
2487
2536
  var init_secret_scrubber = __esm(() => {
2537
+ init_src();
2488
2538
  init_secret_rules_generated();
2489
2539
  SENSITIVE_KEY_EXACT = new Set([
2490
2540
  "API_KEY",
@@ -2497,6 +2547,7 @@ var init_secret_scrubber = __esm(() => {
2497
2547
  "ANTHROPIC_API_KEY",
2498
2548
  "OPENAI_API_KEY",
2499
2549
  "OPENROUTER_API_KEY",
2550
+ ...openAICompatibleKeyVars(),
2500
2551
  "SLACK_BOT_TOKEN",
2501
2552
  "SLACK_SIGNING_SECRET",
2502
2553
  "SLACK_CLIENT_SECRET",
@@ -2659,4 +2710,4 @@ var init_secret_scrubber = __esm(() => {
2659
2710
  sensitiveKeyVerdicts = new Map;
2660
2711
  });
2661
2712
 
2662
- export { SCRUBBER_RULES_VERSION, isSensitiveKey, scrubSecrets, findSecretsIn, scrubObject, refreshSecretScrubberCache, registerVolatileSecret, unregisterVolatileSecret, registerSensitiveKeyName, init_secret_scrubber };
2713
+ export { SCRUBBER_RULES_VERSION, isSensitiveKey, scrubSecrets, findSecretsIn, scrubObject, createValueScrubber, refreshSecretScrubberCache, registerVolatileSecret, registerEnvSecrets, unregisterVolatileSecret, registerSensitiveKeyName, init_secret_scrubber };