@desplega.ai/agent-swarm 1.166.0 → 1.168.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 (221) hide show
  1. package/dist/acp-adapter-zhejfecx.js +34 -0
  2. package/dist/{actions-qz3m692w.js → actions-7jg840nr.js} +25 -25
  3. package/dist/{amp-adapter-j1xbmsqz.js → amp-adapter-ye6rnetm.js} +4 -4
  4. package/dist/{anthropic-messages-hst62ws9.js → anthropic-messages-13yn502s.js} +4 -4
  5. package/dist/{app-43vrdmv8.js → app-ffes2kyf.js} +10 -9
  6. package/dist/{assistant-ertffmka.js → assistant-fhm5smyz.js} +26 -26
  7. package/dist/{azure-openai-responses-mh8tvf78.js → azure-openai-responses-9st34pfz.js} +5 -5
  8. package/dist/{boot-reembed-998jtpdg.js → boot-reembed-20q3nzvg.js} +9 -8
  9. package/dist/{boot-reembed-s7k7c6v2.js → boot-reembed-jvfadhsk.js} +9 -8
  10. package/dist/{boot-scrub-sweep-nepsk4t1.js → boot-scrub-sweep-jtfajzve.js} +10 -9
  11. package/dist/{boot-seeds-vvzs1zhk.js → boot-seeds-9qt0j8j2.js} +12 -11
  12. package/dist/{claude-adapter-2zvmekrp.js → claude-adapter-a8znhthz.js} +24 -22
  13. package/dist/{claude-managed-adapter-s49wbk8t.js → claude-managed-adapter-tzwxy803.js} +4 -4
  14. package/dist/{claude-managed-setup-cvhqq8qn.js → claude-managed-setup-nrhfx5b0.js} +3 -3
  15. package/dist/{claude-sdk-session-kkbxtw5q.js → claude-sdk-session-7x7chdrs.js} +7608 -7596
  16. package/dist/{cli-zsh093hk.js → cli-014vns2y.js} +63 -1
  17. package/dist/{cli-8kgvmkak.js → cli-0jngabtb.js} +1 -1
  18. package/dist/{cli-qvfk83fy.js → cli-13xwcqvj.js} +2 -2
  19. package/dist/{cli-0nhdwxd5.js → cli-43jg9xdw.js} +3 -3
  20. package/dist/{cli-cpfmqz3n.js → cli-47zfzshm.js} +5 -5
  21. package/dist/{cli-zy7vwsne.js → cli-5qkcdv8c.js} +16 -9
  22. package/dist/{cli-cwxhbf43.js → cli-5t5my0h8.js} +85 -2
  23. package/dist/{cli-y59h2pk9.js → cli-69egj654.js} +1 -1
  24. package/dist/{cli-68r1j4sg.js → cli-6bpvv8h4.js} +3 -3
  25. package/dist/{cli-yshaazs1.js → cli-74ez9b66.js} +63 -20
  26. package/dist/{cli-32bca7nr.js → cli-7avy4v8w.js} +1 -1
  27. package/dist/{cli-f2n17zhp.js → cli-7mhy3ths.js} +21 -18
  28. package/dist/{cli-q38n4bq0.js → cli-95zs84qw.js} +3 -3
  29. package/dist/{cli-fn697bnt.js → cli-9q0bh411.js} +21 -8
  30. package/dist/{cli-rggdq8wq.js → cli-9q24yyvs.js} +3 -3
  31. package/dist/cli-a35hzdve.js +33 -0
  32. package/dist/{cli-3qn4r334.js → cli-aj1e0h0d.js} +20 -14
  33. package/dist/{cli-rsy933yz.js → cli-bcspch6h.js} +30 -19
  34. package/dist/{cli-x3x0qwky.js → cli-bxqez1p0.js} +51 -23
  35. package/dist/{cli-ng97fjq7.js → cli-cmxkbzzs.js} +33 -7
  36. package/dist/{cli-df56tqdw.js → cli-ee0402n1.js} +198 -70
  37. package/dist/{cli-mwegs4af.js → cli-ew0c3a1j.js} +3 -3
  38. package/dist/{cli-ysnyhws9.js → cli-ewhwpyrb.js} +54 -51
  39. package/dist/{cli-j2jbr8af.js → cli-fhj4y16f.js} +1 -1
  40. package/dist/{cli-8t229cmr.js → cli-fqq06kkb.js} +30 -17
  41. package/dist/{cli-jvj6a0cv.js → cli-g6gx2dn1.js} +54 -19
  42. package/dist/{cli-nexwh8zg.js → cli-g7k7zbcz.js} +12 -5
  43. package/dist/{cli-ecknp7p1.js → cli-j05x7pnb.js} +10 -10
  44. package/dist/{cli-gt8azyet.js → cli-jb931ba2.js} +1 -1
  45. package/dist/{cli-nvvfd8bq.js → cli-jbzbr36n.js} +4091 -3793
  46. package/dist/{cli-3ddybbbx.js → cli-jvmtxqtc.js} +26 -14
  47. package/dist/{cli-pkke6geq.js → cli-km4x66j0.js} +83 -65
  48. package/dist/{cli-b0f70z24.js → cli-mn8qkd8v.js} +1 -1
  49. package/dist/{cli-0qjcsxgz.js → cli-nctfv2yy.js} +99 -9
  50. package/dist/{cli-4r1sjfc4.js → cli-ng1pmdx6.js} +10 -10
  51. package/dist/cli-nkqjj42q.js +104 -0
  52. package/dist/{cli-aqcey741.js → cli-p5jqk8fr.js} +1 -1
  53. package/dist/{cli-66zh26sp.js → cli-pgehz8e1.js} +57 -17
  54. package/dist/cli-q1vnz8wv.js +96 -0
  55. package/dist/{cli-fj86xr3c.js → cli-qd97v6z2.js} +2 -2
  56. package/dist/{cli-p4ztb80h.js → cli-r7eeddkq.js} +13 -8
  57. package/dist/{cli-8ssjez7e.js → cli-rhy7z1rp.js} +22 -11
  58. package/dist/{cli-vzc73wet.js → cli-rr5z1j4p.js} +87 -69
  59. package/dist/{cli-4mevd1hf.js → cli-s9y81s7j.js} +5 -5
  60. package/dist/{cli-dw2q9f7g.js → cli-svah6b6w.js} +4 -4
  61. package/dist/{cli-h3x613ze.js → cli-tc5zec7v.js} +6 -6
  62. package/dist/{cli-ttbsse3f.js → cli-tmhsxhb8.js} +1 -1
  63. package/dist/{cli-feh3dkah.js → cli-v1w7pbd8.js} +2 -1
  64. package/dist/{cli-10zmp1p7.js → cli-vr5avem2.js} +27 -32
  65. package/dist/{cli-bzr0ftht.js → cli-wnb9b2g3.js} +19 -0
  66. package/dist/{cli-krqm5f11.js → cli-xezn9nkh.js} +16 -13
  67. package/dist/{cli-8kt0bmgx.js → cli-xf713zz0.js} +2 -2
  68. package/dist/{cli-6zcfw0x7.js → cli-y195hv1a.js} +1 -1
  69. package/dist/{cli-x7kpr72a.js → cli-ytmmyj7f.js} +2 -2
  70. package/dist/{cli-v2a8x45d.js → cli-z48ggfyq.js} +11 -6
  71. package/dist/{cli-qbksc292.js → cli-zy39d433.js} +2 -0
  72. package/dist/cli.js +28 -28
  73. package/dist/{cloudflare-workers-ai-system-one-tt484t61.js → cloudflare-workers-ai-system-one-sta45jf9.js} +7 -5
  74. package/dist/{codex-adapter-dw1wxqt8.js → codex-adapter-n63k33d3.js} +18 -18
  75. package/dist/{codex-login-terbdsqq.js → codex-login-g1cyt5zm.js} +1 -1
  76. package/dist/{codex-session-runner-3cgb8y1g.js → codex-session-runner-xkxfd81a.js} +18 -18
  77. package/dist/{commands-mhxam6z2.js → commands-q4mfhn51.js} +9 -8
  78. package/dist/{cursor-adapter-2qda3st7.js → cursor-adapter-v8mm6bp5.js} +5 -5
  79. package/dist/{db-sjks418k.js → db-1t0bj3pc.js} +9 -8
  80. package/dist/{dispatcher-1es759rn.js → dispatcher-k1fhavcf.js} +24 -24
  81. package/dist/{dsh-adapter-bek4cyw9.js → dsh-adapter-5423p70m.js} +5 -5
  82. package/dist/{easter-egg-3d-mtpnw06s.js → easter-egg-3d-66zxervv.js} +2 -2
  83. package/dist/{execute-s4ccjq3n.js → execute-h4jgevyw.js} +61 -11
  84. package/dist/{google-generative-ai-d6nphg3q.js → google-generative-ai-b8zxrpax.js} +5 -5
  85. package/dist/{google-vertex-cpshkref.js → google-vertex-nrdd697t.js} +5 -5
  86. package/dist/{grok-adapter-ar9cw9jg.js → grok-adapter-phrndeb8.js} +18 -8
  87. package/dist/{handlers-1gkbhktr.js → handlers-59ywqwzh.js} +27 -27
  88. package/dist/{hook-vxa3tcsy.js → hook-atj0swc2.js} +14 -14
  89. package/dist/{hook-ds2zxq9v.js → hook-mew1chq9.js} +42 -31
  90. package/dist/{http-3h21z9md.js → http-ef2fnn9v.js} +953 -98
  91. package/dist/{index-n99fycq7.js → index-48pb9erw.js} +24 -24
  92. package/dist/{index-bn6cy8ps.js → index-9fc2h7ww.js} +24 -24
  93. package/dist/{index-9b65j1m5.js → index-gr69c43q.js} +9 -8
  94. package/dist/{index-f8xnqrye.js → index-h26wjcfy.js} +43 -24
  95. package/dist/{index-dkfxpkmm.js → index-w2yhye23.js} +25 -25
  96. package/dist/{keepalive-3xspa9jw.js → keepalive-qhcqz56v.js} +11 -10
  97. package/dist/{lead-6qphc124.js → lead-hpk5r3b1.js} +47 -47
  98. package/dist/{llama-cpp-classify-tgj35k8d.js → llama-cpp-classify-6erb7wwv.js} +3 -1
  99. package/dist/{maintenance-0teem1bb.js → maintenance-nvkyp2xe.js} +9 -8
  100. package/dist/{mistral-conversations-8445ddjn.js → mistral-conversations-059y51zt.js} +4 -4
  101. package/dist/{node-9sg7ajby.js → node-qm9eb6z0.js} +1 -1
  102. package/dist/{oauth-refresh-sweep-sh9q25xp.js → oauth-refresh-sweep-ngskthwh.js} +10 -9
  103. package/dist/{onboard-54qmnqxe.js → onboard-yfnkqhxc.js} +2 -2
  104. package/dist/{openai-codex-responses-9ynm88zy.js → openai-codex-responses-jzxkta9b.js} +8 -7
  105. package/dist/{openai-completions-nhqwjmaw.js → openai-completions-663yncfq.js} +4 -4
  106. package/dist/openai-decisions-vj9nkpf8.js +162 -0
  107. package/dist/{openai-responses-xx1c4kgm.js → openai-responses-m3g43rrt.js} +5 -5
  108. package/dist/{opencode-adapter-wjfa2wvd.js → opencode-adapter-yjyqynzf.js} +7 -7
  109. package/dist/{openrouter-images-8yx3487g.js → openrouter-images-kr60n6b9.js} +1 -1
  110. package/dist/{otel-impl-ycqzp2a1.js → otel-impl-hhm64r6m.js} +1 -1
  111. package/dist/{pi-messages-vxdt8v7j.js → pi-messages-xszk613n.js} +1 -1
  112. package/dist/{pi-mono-adapter-e77e9zst.js → pi-mono-adapter-0eg8kw2c.js} +68 -51
  113. package/dist/{pricing-refresh-atnkngqs.js → pricing-refresh-35f91nx2.js} +11 -10
  114. package/dist/{rbac-roles-j78wdksm.js → rbac-roles-97w370qj.js} +10 -9
  115. package/dist/{rbac-roles-9pjphh9q.js → rbac-roles-z6sje3gy.js} +9 -8
  116. package/dist/{render-v2-pxjs49fx.js → render-v2-n4v66bj3.js} +10 -9
  117. package/dist/{runtime-v2t1r79e.js → runtime-h9ha1mq6.js} +4 -4
  118. package/dist/{setup-ymej0xtx.js → setup-m3hhyv5f.js} +2 -2
  119. package/dist/{typesafe-system-one-datfr82p.js → typesafe-system-one-e988vty7.js} +7 -5
  120. package/dist/{virtual-modules-wm8mxdxx.js → virtual-modules-ftr9kwe8.js} +11 -11
  121. package/dist/{work-objects-3nh4ymzb.js → work-objects-mxf2c842.js} +27 -27
  122. package/dist/{worker-qa9fkz5s.js → worker-9t07z1gq.js} +47 -47
  123. package/openapi.json +72 -1
  124. package/package.json +10 -10
  125. package/src/be/memory/providers/openai-embedding.ts +7 -2
  126. package/src/be/memory/raters/llm-summarizer.ts +7 -2
  127. package/src/be/modelsdev-cache.json +61 -0
  128. package/src/be/script-connections.ts +40 -6
  129. package/src/be/seed-pricing.ts +84 -53
  130. package/src/be/swarm-config-guard.ts +14 -0
  131. package/src/commands/provider-credentials.ts +28 -5
  132. package/src/commands/runner.ts +7 -12
  133. package/src/extensions/catalog.generated.json +17 -0
  134. package/src/heartbeat/heartbeat.ts +91 -19
  135. package/src/hooks/hook.ts +72 -27
  136. package/src/http/mcp.ts +5 -0
  137. package/src/http/onboarding.ts +2 -0
  138. package/src/http/script-connections.ts +35 -0
  139. package/src/providers/acp-targets.ts +10 -5
  140. package/src/providers/amp-adapter.ts +1 -1
  141. package/src/providers/claude-adapter.ts +32 -0
  142. package/src/providers/claude-background-keepalive.ts +100 -0
  143. package/src/providers/claude-sdk-session.ts +6 -0
  144. package/src/providers/codex-adapter.ts +30 -3
  145. package/src/providers/codex-oauth/auth-json.ts +21 -4
  146. package/src/providers/codex-oauth/types.ts +2 -0
  147. package/src/providers/dsh-adapter.ts +11 -2
  148. package/src/providers/grok-adapter.ts +18 -2
  149. package/src/providers/opencode-adapter.ts +21 -5
  150. package/src/providers/pi-mono-extension.ts +56 -25
  151. package/src/providers/pricing-sources.md +2 -0
  152. package/src/scheduler/scheduler.ts +82 -13
  153. package/src/scripts-runtime/executors/registry.ts +1 -1
  154. package/src/server.ts +63 -3
  155. package/src/tests/acp-adapter.test.ts +152 -12
  156. package/src/tests/ci-unit-test-report.test.ts +73 -0
  157. package/src/tests/claude-background-keepalive-wiring.test.ts +220 -0
  158. package/src/tests/claude-background-keepalive.fixture.ts +162 -0
  159. package/src/tests/claude-background-keepalive.test.ts +139 -0
  160. package/src/tests/claude-default-route.test.ts +75 -0
  161. package/src/tests/claude-hook-output.test.ts +233 -0
  162. package/src/tests/codex-adapter-pool-auth-revalidate.test.ts +4 -2
  163. package/src/tests/codex-adapter.test.ts +166 -26
  164. package/src/tests/codex-oauth-auth-timestamps.test.ts +76 -0
  165. package/src/tests/codex-oauth.test.ts +4 -1
  166. package/src/tests/connection-embedded-auth.test.ts +51 -0
  167. package/src/tests/context-window.test.ts +2 -2
  168. package/src/tests/credential-check.test.ts +51 -1
  169. package/src/tests/docs-index-footprint.test.js +3 -3
  170. package/src/tests/dsh-adapter.test.ts +24 -2
  171. package/src/tests/enabled-tools.test.ts +269 -0
  172. package/src/tests/entrypoint-codex-oauth-seed.test.ts +12 -0
  173. package/src/tests/extensions-catalog.test.ts +1 -0
  174. package/src/tests/extensions-example-slack-reply-gate.test.ts +756 -0
  175. package/src/tests/grok-adapter.test.ts +13 -0
  176. package/src/tests/haiku-5-5-pricing.test.ts +38 -0
  177. package/src/tests/heartbeat-checklist.test.ts +158 -1
  178. package/src/tests/onboarding.test.ts +44 -0
  179. package/src/tests/opencode-adapter.test.ts +66 -3
  180. package/src/tests/opencode-plugin.test.ts +37 -0
  181. package/src/tests/openrouter-attribution-call-sites.test.ts +204 -0
  182. package/src/tests/openrouter-base-url.test.ts +30 -39
  183. package/src/tests/pi-mono-extension.test.ts +161 -2
  184. package/src/tests/pricing-refresh.test.ts +70 -1
  185. package/src/tests/reasoning-effort.test.ts +3 -1
  186. package/src/tests/schedule-target-type.test.ts +136 -0
  187. package/src/tests/script-connections-http.test.ts +45 -0
  188. package/src/tests/script-connections-mcp.test.ts +41 -0
  189. package/src/tests/script-executor-registry.test.ts +18 -0
  190. package/src/tests/send-task-self-send.test.ts +107 -0
  191. package/src/tests/telemetry-trigger.test.ts +12 -1
  192. package/src/tests/workflow-llm.test.ts +14 -0
  193. package/src/tests/workflow-system-one-decision-providers.test.ts +33 -0
  194. package/src/tools/request-human-input.ts +7 -2
  195. package/src/tools/script-connections/tool.ts +35 -3
  196. package/src/tools/send-task.ts +9 -1
  197. package/src/utils/enabled-tools.ts +27 -0
  198. package/src/utils/internal-ai/complete-structured.ts +11 -3
  199. package/src/utils/openrouter-base-url.ts +23 -0
  200. package/src/workflows/executors/raw-llm.ts +1 -0
  201. package/src/workflows/executors/system-one-decision.ts +2 -0
  202. package/src/workflows/executors/validate.ts +1 -0
  203. package/src/workflows/executors/workflow-llm.ts +9 -2
  204. package/templates/extensions/README.md +1 -0
  205. package/templates/extensions/slack-reply-gate/README.md +98 -0
  206. package/templates/extensions/slack-reply-gate/hooks.ts +582 -0
  207. package/templates/extensions/slack-reply-gate/manifest.json +8 -0
  208. package/templates/skills/agent-browser/SKILL.md +2 -0
  209. package/templates/skills/agent-browser/content.md +2 -0
  210. package/templates/skills/code-quality/content.md +1 -0
  211. package/templates/skills/heartbeat-runbook/content.md +1 -1
  212. package/templates/skills/swarm-scripts/SKILL.md +10 -0
  213. package/templates/skills/swarm-scripts/content.md +10 -0
  214. package/templates/skills/work-on-task/SKILL.md +4 -0
  215. package/templates/skills/work-on-task/content.md +4 -0
  216. package/templates/skills/workflow-iterate/content.md +9 -0
  217. package/dist/acp-adapter-yzfxn8vj.js +0 -23
  218. package/dist/cli-3dpj7atn.js +0 -11
  219. package/dist/cli-gvcgmx69.js +0 -183
  220. package/dist/{cli-jhm6hzjn.js → cli-mxvnnv5q.js} +7 -7
  221. package/dist/{codex-hook-d2rkvf39.js → codex-hook-15dgc4cb.js} +1 -1
@@ -1,98 +1,98 @@
1
1
  import {
2
2
  runAgent
3
- } from "./cli-vzc73wet.js";
3
+ } from "./cli-rr5z1j4p.js";
4
4
  import"./cli-9q3wt23f.js";
5
- import"./cli-68r1j4sg.js";
6
- import"./cli-fn697bnt.js";
7
- import"./cli-3qn4r334.js";
8
- import"./cli-8t229cmr.js";
9
- import"./cli-h3x613ze.js";
5
+ import"./cli-6bpvv8h4.js";
6
+ import"./cli-9q0bh411.js";
7
+ import"./cli-aj1e0h0d.js";
8
+ import"./cli-9k7mqz00.js";
9
+ import"./cli-fqq06kkb.js";
10
+ import"./cli-tc5zec7v.js";
10
11
  import"./cli-hsxj0yar.js";
11
12
  import"./cli-hf5s9pgf.js";
12
- import"./cli-3ddybbbx.js";
13
- import"./cli-v2a8x45d.js";
14
- import"./cli-mwegs4af.js";
15
- import"./cli-9k7mqz00.js";
13
+ import"./cli-jvmtxqtc.js";
16
14
  import"./cli-gt4hxb8p.js";
17
- import"./cli-0qjcsxgz.js";
18
- import"./cli-rsy933yz.js";
19
- import"./cli-y59h2pk9.js";
20
- import"./cli-v6vv7dy8.js";
21
- import"./cli-q2j38vre.js";
22
- import"./cli-zm7njwzd.js";
23
- import"./cli-ptcz1cqy.js";
24
- import"./cli-32bca7nr.js";
25
- import"./cli-p4ztb80h.js";
26
- import"./cli-hp1n6zq3.js";
27
- import"./cli-tng3131n.js";
15
+ import"./cli-z48ggfyq.js";
16
+ import"./cli-ew0c3a1j.js";
28
17
  import"./cli-5bfdm1ah.js";
29
18
  import"./cli-efnd2kce.js";
30
19
  import"./cli-zp67qg5x.js";
31
20
  import"./cli-bqjfjex4.js";
21
+ import"./cli-nctfv2yy.js";
22
+ import"./cli-bcspch6h.js";
23
+ import"./cli-69egj654.js";
24
+ import"./cli-v6vv7dy8.js";
25
+ import"./cli-q2j38vre.js";
26
+ import"./cli-r7eeddkq.js";
27
+ import"./cli-hp1n6zq3.js";
28
+ import"./cli-tng3131n.js";
29
+ import"./cli-zm7njwzd.js";
30
+ import"./cli-ptcz1cqy.js";
31
+ import"./cli-7avy4v8w.js";
32
32
  import"./cli-eree7rnv.js";
33
33
  import"./cli-2pdaysab.js";
34
- import"./cli-ttbsse3f.js";
35
- import"./cli-zy7vwsne.js";
34
+ import"./cli-tmhsxhb8.js";
35
+ import"./cli-5qkcdv8c.js";
36
36
  import"./cli-dpvkp2et.js";
37
37
  import {
38
38
  getEnabledCapabilities
39
- } from "./cli-df56tqdw.js";
39
+ } from "./cli-ee0402n1.js";
40
40
  import"./cli-xvc3q9br.js";
41
41
  import"./cli-mv2520nm.js";
42
42
  import"./cli-w0bwte75.js";
43
43
  import"./cli-re8z5p8p.js";
44
- import"./cli-0nhdwxd5.js";
45
- import"./cli-rggdq8wq.js";
46
- import"./cli-ysnyhws9.js";
47
- import"./cli-jvj6a0cv.js";
44
+ import"./cli-43jg9xdw.js";
45
+ import"./cli-9q24yyvs.js";
46
+ import"./cli-ewhwpyrb.js";
47
+ import"./cli-g6gx2dn1.js";
48
48
  import"./cli-epan13p1.js";
49
49
  import"./cli-f14fvzag.js";
50
+ import"./cli-7mhy3ths.js";
51
+ import"./cli-v1w7pbd8.js";
50
52
  import"./cli-zt3w1cn1.js";
51
- import"./cli-f2n17zhp.js";
52
- import"./cli-feh3dkah.js";
53
- import"./cli-3dpj7atn.js";
54
- import"./cli-2x0e561b.js";
55
- import"./cli-pkke6geq.js";
53
+ import"./cli-km4x66j0.js";
56
54
  import"./cli-rb9m6rpe.js";
55
+ import"./cli-2x0e561b.js";
56
+ import"./cli-fhj4y16f.js";
57
57
  import"./cli-mzfth0bp.js";
58
- import"./cli-j2jbr8af.js";
59
58
  import"./cli-fad8m16k.js";
60
59
  import"./cli-bsakbbkm.js";
61
60
  import"./cli-zxg80zs9.js";
62
61
  import"./cli-51tf7ac3.js";
63
62
  import"./cli-ydt3zkwv.js";
64
- import"./cli-ecknp7p1.js";
63
+ import"./cli-j05x7pnb.js";
65
64
  import"./cli-q51yprfq.js";
66
65
  import"./cli-3er6gcsn.js";
67
66
  import"./cli-yatxqynm.js";
68
- import"./cli-b0f70z24.js";
69
- import"./cli-nexwh8zg.js";
67
+ import"./cli-mn8qkd8v.js";
68
+ import"./cli-g7k7zbcz.js";
70
69
  import"./cli-btbzvq95.js";
71
70
  import"./cli-1m2e086m.js";
72
- import"./cli-bzr0ftht.js";
71
+ import"./cli-wnb9b2g3.js";
73
72
  import"./cli-bd957dgb.js";
74
73
  import"./cli-pzxba7gw.js";
75
- import"./cli-8kgvmkak.js";
74
+ import"./cli-0jngabtb.js";
76
75
  import"./cli-rfphkzh5.js";
77
- import"./cli-yshaazs1.js";
78
- import"./cli-xvdgasgy.js";
76
+ import"./cli-74ez9b66.js";
79
77
  import"./cli-3qhyh31j.js";
80
- import"./cli-jhm6hzjn.js";
78
+ import"./cli-xvdgasgy.js";
79
+ import"./cli-mxvnnv5q.js";
81
80
  import"./cli-7mm2r1kp.js";
82
81
  import"./cli-g5erf0zt.js";
83
82
  import"./cli-dmtrxqhg.js";
84
- import"./cli-tadfgd0t.js";
85
- import"./cli-ywybs5as.js";
86
- import"./cli-gd4favx9.js";
87
83
  import"./cli-agamgm0p.js";
88
84
  import"./cli-5c2j5yvx.js";
89
85
  import"./cli-1a2j50m0.js";
86
+ import"./cli-tadfgd0t.js";
87
+ import"./cli-ywybs5as.js";
90
88
  import"./cli-f9w1semm.js";
89
+ import"./cli-a35hzdve.js";
90
+ import"./cli-gd4favx9.js";
91
91
  import"./cli-ej6gbxfb.js";
92
- import"./cli-zsh093hk.js";
92
+ import"./cli-014vns2y.js";
93
93
  import"./cli-sd0mxa3c.js";
94
94
  import"./cli-w5e1d1vv.js";
95
- import"./cli-4r1sjfc4.js";
95
+ import"./cli-ng1pmdx6.js";
96
96
  import"./cli-mb75wpxf.js";
97
97
  import"./cli-zf8jjwex.js";
98
98
  import"./cli-wt7ccy4r.js";
package/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "Agent Swarm API",
5
- "version": "1.166.0",
5
+ "version": "1.168.0",
6
6
  "description": "Multi-agent orchestration API for Claude Code, Codex, and Gemini CLI. Enables task distribution, agent communication, and service discovery.\n\nMCP tools are documented separately in [MCP.md](./MCP.md)."
7
7
  },
8
8
  "servers": [
@@ -37248,6 +37248,77 @@
37248
37248
  }
37249
37249
  }
37250
37250
  }
37251
+ },
37252
+ "delete": {
37253
+ "operationId": "script_connections_delete",
37254
+ "summary": "Delete a script connection",
37255
+ "description": "Hard-deletes the connection, its auto-managed credential binding, and any derived inline secret it owns.",
37256
+ "tags": [
37257
+ "Script Connections"
37258
+ ],
37259
+ "security": [
37260
+ {
37261
+ "bearerAuth": []
37262
+ }
37263
+ ],
37264
+ "parameters": [
37265
+ {
37266
+ "schema": {
37267
+ "type": "string",
37268
+ "format": "uuid"
37269
+ },
37270
+ "required": true,
37271
+ "name": "id",
37272
+ "in": "path"
37273
+ }
37274
+ ],
37275
+ "responses": {
37276
+ "200": {
37277
+ "description": "Script connection deleted",
37278
+ "content": {
37279
+ "application/json": {
37280
+ "schema": {
37281
+ "type": "object",
37282
+ "properties": {
37283
+ "deleted": {
37284
+ "type": "boolean",
37285
+ "enum": [
37286
+ true
37287
+ ]
37288
+ },
37289
+ "id": {
37290
+ "type": "string"
37291
+ }
37292
+ },
37293
+ "required": [
37294
+ "deleted",
37295
+ "id"
37296
+ ]
37297
+ }
37298
+ }
37299
+ }
37300
+ },
37301
+ "403": {
37302
+ "description": "Only the lead agent can manage script connections",
37303
+ "content": {
37304
+ "application/json": {
37305
+ "schema": {
37306
+ "$ref": "#/components/schemas/ErrorResponse"
37307
+ }
37308
+ }
37309
+ }
37310
+ },
37311
+ "404": {
37312
+ "description": "Script connection not found",
37313
+ "content": {
37314
+ "application/json": {
37315
+ "schema": {
37316
+ "$ref": "#/components/schemas/ErrorResponse"
37317
+ }
37318
+ }
37319
+ }
37320
+ }
37321
+ }
37251
37322
  }
37252
37323
  },
37253
37324
  "/api/script-connections/{id}/refresh": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@desplega.ai/agent-swarm",
3
- "version": "1.166.0",
3
+ "version": "1.168.0",
4
4
  "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.",
5
5
  "keywords": [
6
6
  "agent-swarm.dev",
@@ -147,8 +147,8 @@
147
147
  "start:portless": "portless api.swarm bun --expose-gc src/http.ts",
148
148
  "inspector": "bunx @modelcontextprotocol/inspector --transport stdio bun src/stdio.ts",
149
149
  "inspector:http": "bunx @modelcontextprotocol/inspector --transport http https://api.swarm.localhost:1355/mcp",
150
- "lint": "biome check src apps/evals packages/ui-e2e packages/model-routing",
151
- "lint:fix": "biome check --write src apps/evals packages/ui-e2e packages/model-routing",
150
+ "lint": "biome check src apps/evals packages/ui-e2e packages/model-routing packages/model-catalog",
151
+ "lint:fix": "biome check --write src apps/evals packages/ui-e2e packages/model-routing packages/model-catalog",
152
152
  "format": "biome format --write src",
153
153
  "build:binary": "bun build ./src/cli.tsx ./src/providers/pi-binary-root/src/extensions/codemode/worker.ts --root ./src/providers/pi-binary-root --compile --bytecode --format=esm --compile-exec-argv='--expose-gc' --target=bun-linux-x64 --outfile ./dist/agent-swarm",
154
154
  "build:binary:arm64": "bun build ./src/cli.tsx ./src/providers/pi-binary-root/src/extensions/codemode/worker.ts --root ./src/providers/pi-binary-root --compile --bytecode --format=esm --compile-exec-argv='--expose-gc' --target=bun-linux-arm64 --outfile ./dist/agent-swarm",
@@ -202,21 +202,21 @@
202
202
  "dependencies": {
203
203
  "@agentclientprotocol/sdk": "1.7.0",
204
204
  "@ai-sdk/openai": "^3.0.41",
205
- "@anthropic-ai/claude-agent-sdk": "0.3.293",
206
- "@anthropic-ai/sdk": "^0.132.0",
205
+ "@anthropic-ai/claude-agent-sdk": "0.3.295",
206
+ "@anthropic-ai/sdk": "^0.132.1",
207
207
  "@asteasolutions/zod-to-openapi": "^8.0.0",
208
208
  "@aws-sdk/client-bedrock": "3.1048.0",
209
209
  "@cursor/sdk": "1.0.37",
210
210
  "@desplega.ai/business-use": "^0.4.2",
211
211
  "@desplega.ai/localtunnel": "^2.2.0",
212
- "@earendil-works/pi-agent-core": "^1.0.4",
213
- "@earendil-works/pi-ai": "^1.0.4",
214
- "@earendil-works/pi-coding-agent": "^1.0.4",
212
+ "@earendil-works/pi-agent-core": "^1.1.0",
213
+ "@earendil-works/pi-ai": "^1.1.0",
214
+ "@earendil-works/pi-coding-agent": "^1.1.0",
215
215
  "@inkjs/ui": "^2.0.0",
216
216
  "@jitl/quickjs-singlefile-mjs-release-sync": "0.32.0",
217
217
  "@linear/sdk": "^77.0.0",
218
- "@modelcontextprotocol/sdk": "1.29.0",
219
- "@openai/codex": "0.161.0",
218
+ "@modelcontextprotocol/sdk": "1.31.0",
219
+ "@openai/codex": "0.162.0",
220
220
  "@opencode-ai/sdk": "^1.18.35",
221
221
  "@openfort/openfort-node": "^0.9.1",
222
222
  "@opentelemetry/api": "^1.9.1",
@@ -1,4 +1,5 @@
1
1
  import OpenAI from "openai";
2
+ import { getOpenRouterAttributionHeaders } from "../../../utils/openrouter-base-url";
2
3
  import { DEFAULT_EMBEDDING_MODEL, EMBEDDING_DIMENSIONS } from "../constants";
3
4
  import type { EmbeddingProvider } from "../types";
4
5
 
@@ -34,11 +35,15 @@ export class OpenAIEmbeddingProvider implements EmbeddingProvider {
34
35
 
35
36
  private getClient(): OpenAI | null {
36
37
  if (!this.apiKey) return null;
37
- if (!this.client)
38
+ if (!this.client) {
39
+ const baseURL = process.env.EMBEDDING_API_BASE_URL; // Optional custom base URL
38
40
  this.client = new OpenAI({
39
- baseURL: process.env.EMBEDDING_API_BASE_URL, // Optional custom base URL
41
+ baseURL,
40
42
  apiKey: this.apiKey,
43
+ // Only an openrouter.ai base URL gets attribution; OpenAI and gateways get none.
44
+ defaultHeaders: getOpenRouterAttributionHeaders(baseURL ?? ""),
41
45
  });
46
+ }
42
47
  return this.client;
43
48
  }
44
49
 
@@ -12,7 +12,10 @@
12
12
  */
13
13
  import { z } from "zod";
14
14
  import { MEMORY_RATER_DEFAULT_MODEL } from "../../../utils/internal-ai/models";
15
- import { getOpenRouterBaseUrl } from "../../../utils/openrouter-base-url";
15
+ import {
16
+ getOpenRouterAttributionHeaders,
17
+ getOpenRouterBaseUrl,
18
+ } from "../../../utils/openrouter-base-url";
16
19
  import { type SummaryWithRatings, SummaryWithRatingsSchema } from "./llm";
17
20
 
18
21
  /**
@@ -150,11 +153,13 @@ export async function runMemoryRater(opts: RunMemoryRaterOpts): Promise<RunMemor
150
153
  const model = opts.model ?? getMemoryRaterModel();
151
154
  const responseLogCap = opts.responseLogCap ?? 200;
152
155
 
156
+ const url = openRouterChatCompletionsUrl();
153
157
  let res: Response;
154
158
  try {
155
- res = await fetchFn(openRouterChatCompletionsUrl(), {
159
+ res = await fetchFn(url, {
156
160
  method: "POST",
157
161
  headers: {
162
+ ...getOpenRouterAttributionHeaders(url),
158
163
  "Content-Type": "application/json",
159
164
  Authorization: `Bearer ${opts.apiKey}`,
160
165
  },
@@ -147175,6 +147175,67 @@
147175
147175
  "name": "Anthropic",
147176
147176
  "doc": "https://docs.anthropic.com/en/docs/about-claude/models",
147177
147177
  "models": {
147178
+ "claude-haiku-5-5": {
147179
+ "id": "claude-haiku-5-5",
147180
+ "name": "Claude Haiku 5.5",
147181
+ "description": "Fast Claude model for responsive assistance, classification, and lightweight agents",
147182
+ "family": "claude-haiku",
147183
+ "attachment": true,
147184
+ "reasoning": true,
147185
+ "reasoning_options": [
147186
+ {
147187
+ "type": "toggle"
147188
+ },
147189
+ {
147190
+ "type": "effort",
147191
+ "values": [
147192
+ "low",
147193
+ "medium",
147194
+ "high",
147195
+ "xhigh",
147196
+ "max"
147197
+ ]
147198
+ }
147199
+ ],
147200
+ "tool_call": true,
147201
+ "structured_output": true,
147202
+ "temperature": false,
147203
+ "knowledge": "2026-06",
147204
+ "modalities": {
147205
+ "input": [
147206
+ "text",
147207
+ "image",
147208
+ "pdf"
147209
+ ],
147210
+ "output": [
147211
+ "text"
147212
+ ]
147213
+ },
147214
+ "open_weights": false,
147215
+ "limit": {
147216
+ "context": 1000000,
147217
+ "output": 128000
147218
+ },
147219
+ "cost": {
147220
+ "input": 0.1,
147221
+ "output": 0.5,
147222
+ "cache_read": 0.01,
147223
+ "cache_write": 0.125,
147224
+ "tiers": [
147225
+ {
147226
+ "input": 0.5,
147227
+ "output": 2.5,
147228
+ "cache_read": 0.05,
147229
+ "cache_write": 0.625,
147230
+ "tier": {
147231
+ "type": "context",
147232
+ "size": 100000
147233
+ }
147234
+ }
147235
+ ]
147236
+ },
147237
+ "canonical_model_id": "anthropic/claude-haiku-5-5"
147238
+ },
147178
147239
  "claude-sonnet-5-5": {
147179
147240
  "id": "claude-sonnet-5-5",
147180
147241
  "name": "Claude Sonnet 5.5",
@@ -1137,8 +1137,8 @@ async function deriveConnectionBinding(
1137
1137
  // connection references this key, so every path that supersedes or removes
1138
1138
  // the connection's inline-secret auth MUST delete this swarm_config row via
1139
1139
  // deleteManagedConnectionSecret() (the managed binding CASCADEs, this does
1140
- // not). upsertScriptConnection handles supersession; a future
1141
- // connection-delete path must handle deletion.
1140
+ // not). upsertScriptConnection handles supersession; deleteScriptConnection
1141
+ // handles deletion.
1142
1142
  configKey = `connection.${ctx.slug}.secret`;
1143
1143
  secretWrite = { scope: ctx.scope, scopeId: ctx.scopeId, key: configKey, value: auth.secret };
1144
1144
  } else if (auth.configKey) {
@@ -1308,10 +1308,8 @@ async function deleteManagedBindingForConnection(connectionId: string): Promise<
1308
1308
  * 1. upsertScriptConnection, when an upsert SUPERSEDES a previously-derived
1309
1309
  * inline secret (slug change, or the new auth no longer uses that derived
1310
1310
  * key). Handled below.
1311
- * 2. FUTURE connection-delete path: there is no deleteScriptConnection today
1312
- * (only mcp_server_id CASCADE), but any such path MUST call this for the
1313
- * connection's derived `connection.<slug>.secret` key (when auth_type used a
1314
- * derived inline secret) so the secret is not orphaned.
1311
+ * 2. deleteScriptConnection, for the connection's derived
1312
+ * `connection.<slug>.secret` key (when auth used a derived inline secret).
1315
1313
  */
1316
1314
  async function deleteManagedConnectionSecret(input: {
1317
1315
  scope: ScriptConnectionScope;
@@ -2079,6 +2077,42 @@ export async function setScriptConnectionEnabled(
2079
2077
  return row ? connectionFromRow(row) : null;
2080
2078
  }
2081
2079
 
2080
+ /**
2081
+ * Hard-delete a script connection. Returns the deleted record, or null when no
2082
+ * connection has that id.
2083
+ *
2084
+ * The auto-managed credential binding CASCADEs (and is deleted explicitly too);
2085
+ * a derived inline secret (`connection.<slug>.secret`) is deleted here because
2086
+ * nothing CASCADEs it. Concurrent upserts read the row's `version` and update
2087
+ * with a `version` predicate, so they fail with ScriptConnectionConflictError
2088
+ * once the row is gone instead of resurrecting it.
2089
+ */
2090
+ export async function deleteScriptConnection(id: string): Promise<ScriptConnectionRecord | null> {
2091
+ const deleted = await getDbClient().transaction(
2092
+ async (tx): Promise<ScriptConnectionRecord | null> => {
2093
+ await tx.run("PRAGMA defer_foreign_keys = ON");
2094
+ const row = await tx.get<ConnectionRow>("SELECT * FROM script_connections WHERE id = ?", [
2095
+ id,
2096
+ ]);
2097
+ if (!row) return null;
2098
+ const connection = connectionFromRow(row);
2099
+ await deleteManagedBindingForConnection(id);
2100
+ await tx.run("DELETE FROM script_connections WHERE id = ?", [id]);
2101
+ const secretKey = derivedInlineSecretKey(connection);
2102
+ if (secretKey) {
2103
+ await deleteManagedConnectionSecret({
2104
+ scope: connection.scope,
2105
+ scopeId: connection.scopeId,
2106
+ key: secretKey,
2107
+ });
2108
+ }
2109
+ return connection;
2110
+ },
2111
+ );
2112
+ if (deleted && derivedInlineSecretKey(deleted)) refreshSecretScrubberCache();
2113
+ return deleted;
2114
+ }
2115
+
2082
2116
  export function getScriptApiConnectionDescriptors(
2083
2117
  context: { agentId?: string; repoId?: string } = {},
2084
2118
  ): ScriptApiConnectionDescriptor[] {