@desplega.ai/agent-swarm 1.159.0 → 1.161.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 (415) hide show
  1. package/README.md +2 -2
  2. package/dist/{acp-adapter-qhch0n2v.js → acp-adapter-xx489vvb.js} +286 -75
  3. package/dist/{actions-dtsh1mfb.js → actions-ykjkn0m9.js} +32 -30
  4. package/dist/{anthropic-messages-f2h06k64.js → anthropic-messages-5qx80j9k.js} +99 -14
  5. package/dist/{app-y1b9srva.js → app-0hdqa4k1.js} +13 -11
  6. package/dist/{assistant-31hwy5xj.js → assistant-am2g5g8a.js} +40 -32
  7. package/dist/{azure-openai-responses-0k1mfax5.js → azure-openai-responses-fszbkp0e.js} +3 -3
  8. package/dist/{boot-reembed-48d2qpkt.js → boot-reembed-gt5gjkt4.js} +14 -12
  9. package/dist/{boot-reembed-w0bryhkr.js → boot-reembed-xy9t7avg.js} +15 -13
  10. package/dist/{boot-scrub-logs-t65wbrn7.js → boot-scrub-logs-9x0985y5.js} +12 -10
  11. package/dist/boot-seeds-trv0d4vg.js +29 -0
  12. package/dist/{claude-adapter-1t6611ne.js → claude-adapter-jb6e1e54.js} +32 -26
  13. package/dist/{claude-managed-adapter-werp659j.js → claude-managed-adapter-yxkfxg8j.js} +7 -7
  14. package/dist/{claude-managed-setup-y6rdgbc1.js → claude-managed-setup-d1q9hv2b.js} +26 -27
  15. package/dist/{claude-sdk-session-zhkyk8yw.js → claude-sdk-session-zga700s2.js} +11737 -11256
  16. package/dist/{cli-79aq9cgb.js → cli-0383bp7f.js} +1222 -406
  17. package/dist/{cli-xgpf00sk.js → cli-0c7ata9h.js} +24 -23
  18. package/dist/{cli-qjxy52w7.js → cli-121ph74b.js} +2 -2
  19. package/dist/{cli-20035trh.js → cli-17xpf7cm.js} +14 -7
  20. package/dist/{cli-cqt19wg6.js → cli-1a2j50m0.js} +11 -2
  21. package/dist/{cli-g9df2m37.js → cli-1cz0c18q.js} +249 -200
  22. package/dist/{cli-fjtp3463.js → cli-1er0rhz8.js} +13 -12
  23. package/dist/{cli-ca2w7zv7.js → cli-2hhfhfq5.js} +11 -6
  24. package/dist/{cli-npssxgaz.js → cli-2pdaysab.js} +52 -2
  25. package/dist/{cli-rykfmgwg.js → cli-2x0e561b.js} +1 -1
  26. package/dist/{cli-503ya656.js → cli-35pj2yva.js} +20 -150
  27. package/dist/cli-3qhyh31j.js +166 -0
  28. package/dist/{cli-cygyqj3b.js → cli-3zc55ctx.js} +8 -6
  29. package/dist/{cli-96qd5psa.js → cli-58e8yr0d.js} +1 -1
  30. package/dist/{cli-4aj25szq.js → cli-5nbmpy8w.js} +2 -2
  31. package/dist/{cli-mg24hkt4.js → cli-5p3x4zna.js} +2 -2
  32. package/dist/{cli-vwbbaecp.js → cli-7119ja3w.js} +3 -3
  33. package/dist/{cli-mzkqpxee.js → cli-798vkbks.js} +2 -2
  34. package/dist/{cli-3gvrr8vj.js → cli-82c1pacn.js} +111 -54
  35. package/dist/{cli-hgqfttfc.js → cli-89s4ngw3.js} +1 -1
  36. package/dist/{cli-9b13ggd1.js → cli-89v6kyq7.js} +1 -0
  37. package/dist/{cli-b6thtzac.js → cli-8g6mc14k.js} +7 -7
  38. package/dist/{cli-eg7cdg68.js → cli-9m03pzga.js} +5 -5
  39. package/dist/cli-9s68w752.js +303 -0
  40. package/dist/{cli-48527fpw.js → cli-a8c82p2t.js} +16 -15
  41. package/dist/{cli-5f2hq128.js → cli-ad4qxm6j.js} +12 -11
  42. package/dist/{cli-e4xnc0qp.js → cli-akfj32vj.js} +33 -7
  43. package/dist/{cli-ejpygnqz.js → cli-bh7jed3k.js} +212 -22
  44. package/dist/{cli-0z2v4nhw.js → cli-cat6h73s.js} +1 -1
  45. package/dist/{cli-e0ndxhtk.js → cli-cfkrztza.js} +190 -13
  46. package/dist/{cli-kc3dp84d.js → cli-d56tgd45.js} +216 -59
  47. package/dist/cli-dbmwby6a.js +9 -0
  48. package/dist/{cli-0n2e4x49.js → cli-ecfxwnyb.js} +15 -2
  49. package/dist/{cli-gzyh0j0g.js → cli-ee8bc46j.js} +66 -166
  50. package/dist/{cli-kdnehe0t.js → cli-et8m9xsv.js} +1 -1
  51. package/dist/cli-f9w1semm.js +413 -0
  52. package/dist/cli-gt4hxb8p.js +99 -0
  53. package/dist/{cli-qv4jv8bx.js → cli-hgmnf38m.js} +2 -2
  54. package/dist/{cli-10ym38qc.js → cli-hn04t9db.js} +3 -3
  55. package/dist/{cli-qvnnx4ct.js → cli-jpf7e1zq.js} +105 -243
  56. package/dist/cli-jyy6pm2f.js +333872 -0
  57. package/dist/{cli-dvjpkkjd.js → cli-kgd3p0bm.js} +7 -7
  58. package/dist/cli-ma3zvh39.js +10404 -0
  59. package/dist/{cli-r2ap2czm.js → cli-nexqx4ve.js} +6 -0
  60. package/dist/{cli-j9z8mfx3.js → cli-nsdxtcbg.js} +37 -20
  61. package/dist/{cli-wgjx0q33.js → cli-phfg8vy8.js} +392 -53
  62. package/dist/{cli-rgjprct3.js → cli-ptr8h7kp.js} +19 -1
  63. package/dist/{cli-s8s499xy.js → cli-qbksc292.js} +3 -2
  64. package/dist/{cli-bv0a38v9.js → cli-qwsnmjdd.js} +515 -229
  65. package/dist/{cli-68bmme5p.js → cli-r6fsxc76.js} +40018 -52654
  66. package/dist/{cli-rrqmqr1s.js → cli-rtx9dygp.js} +1 -1
  67. package/dist/{cli-rfezr056.js → cli-sqm3r5ps.js} +83 -15
  68. package/dist/{cli-zw65mab6.js → cli-t6v2ah3r.js} +67 -13
  69. package/dist/{cli-vn0qv9cj.js → cli-t845n9xk.js} +28 -14
  70. package/dist/cli-trc24wk2.js +143 -0
  71. package/dist/{cli-wd9hz40d.js → cli-tre4bdgq.js} +5 -5
  72. package/dist/{cli-9yg65c1j.js → cli-tsk3nz8a.js} +29 -1
  73. package/dist/{cli-phsaj4xq.js → cli-v0pvvhfq.js} +1 -1
  74. package/dist/{cli-hj65wsts.js → cli-vnnz5ncg.js} +4695 -4915
  75. package/dist/{cli-cpvsaqsw.js → cli-w0bwte75.js} +8 -5
  76. package/dist/{cli-z9x0sh1t.js → cli-we0q7t0e.js} +3 -3
  77. package/dist/{cli-r94z9p1z.js → cli-wgbezhw2.js} +3 -0
  78. package/dist/{cli-19jenss3.js → cli-xk79303e.js} +51 -17
  79. package/dist/{cli-31nkw3g3.js → cli-ybgv4kw2.js} +15 -8
  80. package/dist/{cli-ardpzhjm.js → cli-yrg7c73k.js} +13 -6
  81. package/dist/{cli-de1396j2.js → cli-ywybs5as.js} +7 -1
  82. package/dist/{cli-vhjwh6cz.js → cli-yy6dew39.js} +2 -2
  83. package/dist/{cli-bgv70kym.js → cli-zb6xbk61.js} +3 -2
  84. package/dist/{cli-4tvgz99m.js → cli-ze1d3wzv.js} +79 -27
  85. package/dist/cli.js +33 -32
  86. package/dist/{cloudflare-workers-ai-system-one-1sg586qv.js → cloudflare-workers-ai-system-one-k6fbxw9d.js} +2 -2
  87. package/dist/{codex-adapter-jqfqqa21.js → codex-adapter-04v97vep.js} +23 -20
  88. package/dist/{codex-hook-5eys3dya.js → codex-hook-20me6byw.js} +2 -2
  89. package/dist/{codex-login-he9vrn90.js → codex-login-cf7mzsgg.js} +48 -3
  90. package/dist/{codex-session-runner-zd341dsm.js → codex-session-runner-ax69mqq3.js} +21 -20
  91. package/dist/{commands-vfsysz4s.js → commands-18gy08n1.js} +12 -10
  92. package/dist/{db-s3znhvbn.js → db-d2pvjpyt.js} +22 -10
  93. package/dist/{devin-adapter-8vgkwh29.js → devin-adapter-dpsv6hd9.js} +1 -1
  94. package/dist/{dispatcher-5xn0c7rf.js → dispatcher-8wbwyzjg.js} +31 -29
  95. package/dist/{dsh-adapter-894mgfvs.js → dsh-adapter-ysqk9snv.js} +9 -4
  96. package/dist/{e2b-ez07znam.js → e2b-esmt1r16.js} +3 -1
  97. package/dist/{execute-71ysgv35.js → execute-cmagrbrz.js} +235 -52
  98. package/dist/{google-generative-ai-1nfcdphp.js → google-generative-ai-k6n5nbpp.js} +3 -3
  99. package/dist/{google-vertex-1tqcd7b1.js → google-vertex-44xxtcvp.js} +3 -3
  100. package/dist/{handlers-5w4jwycr.js → handlers-6b69m5kp.js} +34 -32
  101. package/dist/{hook-z0hbxj85.js → hook-k3mydf2n.js} +16 -14
  102. package/dist/{hook-853bxrr6.js → hook-srnkt0hb.js} +16 -14
  103. package/dist/{http-akc3wy3m.js → http-hrf80ca1.js} +836 -189
  104. package/dist/{index-ttpbhnjg.js → index-1asbaj62.js} +32 -30
  105. package/dist/{index-cd151qkq.js → index-45evq4ee.js} +31 -29
  106. package/dist/{index-k661dzzr.js → index-9rxdvj6w.js} +32 -30
  107. package/dist/index-k4nj18qs.js +31 -0
  108. package/dist/{index-5sz16ksh.js → index-xmevk2b9.js} +89 -61
  109. package/dist/{keepalive-8p9rpvz5.js → keepalive-sfdz6ksp.js} +14 -12
  110. package/dist/{lead-jp69z5h3.js → lead-ej91e9hw.js} +52 -50
  111. package/dist/{llama-cpp-classify-t2tccams.js → llama-cpp-classify-tgj35k8d.js} +1 -1
  112. package/dist/{maintenance-fwx4ev0k.js → maintenance-80dnd7ke.js} +15 -13
  113. package/dist/{mistral-conversations-bhvwqcnk.js → mistral-conversations-pc3ntnxt.js} +1 -1
  114. package/dist/node-f0ykebbv.js +2107 -0
  115. package/dist/node-wyamey5r.js +19 -0
  116. package/dist/{oauth-refresh-sweep-cwcq1ctx.js → oauth-refresh-sweep-m1etk2mx.js} +13 -11
  117. package/dist/{onboard-2b4q0t84.js → onboard-0q8sdfqc.js} +2 -2
  118. package/dist/{openai-codex-responses-nekthgks.js → openai-codex-responses-n7n683p2.js} +2 -2
  119. package/dist/{openai-completions-hxtzwj0s.js → openai-completions-jpaj5g2b.js} +2 -2
  120. package/dist/{openai-responses-w4r118w7.js → openai-responses-9a3nme9j.js} +3 -3
  121. package/dist/{opencode-adapter-zz7xvjj6.js → opencode-adapter-4wcgmvgf.js} +13 -11
  122. package/dist/{openrouter-images-b6sqqjgn.js → openrouter-images-8yx3487g.js} +1 -1
  123. package/dist/{otel-impl-g8rs4vwr.js → otel-impl-hnqm9mxq.js} +2 -2
  124. package/dist/pi-logo-animation-e9a0t68z.js +1003 -0
  125. package/dist/{pi-mono-adapter-n0me28wt.js → pi-mono-adapter-d6sqm9wr.js} +301 -78
  126. package/dist/{pricing-refresh-0v77385v.js → pricing-refresh-y60z64pm.js} +14 -13
  127. package/dist/quickjs-r1pq2107.wasm +0 -0
  128. package/dist/{rbac-roles-krjyazbj.js → rbac-roles-8pa0754b.js} +13 -11
  129. package/dist/{render-v2-3wjsp9aw.js → render-v2-418s1vj7.js} +13 -11
  130. package/dist/{runtime-ktjysacx.js → runtime-3pknc168.js} +5 -4
  131. package/dist/{setup-yeqryke6.js → setup-yghdkj4x.js} +2 -2
  132. package/dist/{typesafe-system-one-96960jxp.js → typesafe-system-one-2ef30pec.js} +2 -2
  133. package/dist/{virtual-modules-dzdeq1sf.js → virtual-modules-jcceevt5.js} +8 -6
  134. package/dist/{work-objects-3pakpkw0.js → work-objects-j1sz20v9.js} +34 -32
  135. package/dist/{worker-85testgj.js → worker-d4gcvkjt.js} +52 -50
  136. package/dist/{x-n3e0v3xa.js → x-f1gt1pz3.js} +2 -2
  137. package/openapi.json +587 -19
  138. package/package.json +16 -15
  139. package/src/azure-devops/api.ts +121 -0
  140. package/src/azure-devops/auth.ts +78 -0
  141. package/src/azure-devops/handlers.ts +413 -0
  142. package/src/azure-devops/index.ts +27 -0
  143. package/src/azure-devops/templates.ts +108 -0
  144. package/src/azure-devops/types.ts +90 -0
  145. package/src/be/db/api-keys.ts +70 -0
  146. package/src/be/db/tasks/read.ts +1 -1
  147. package/src/be/db/tasks/write.ts +16 -0
  148. package/src/be/db-client.ts +11 -2
  149. package/src/be/db-retention.ts +95 -32
  150. package/src/be/db.ts +187 -24
  151. package/src/be/memory/constants.ts +16 -0
  152. package/src/be/memory/graph-expansion.ts +8 -1
  153. package/src/be/memory/index-content.ts +20 -1
  154. package/src/be/memory/key-guard.ts +93 -0
  155. package/src/be/memory/key-paths.ts +103 -0
  156. package/src/be/memory/providers/sqlite-store.ts +203 -60
  157. package/src/be/memory/raters/llm-summarizer.ts +10 -4
  158. package/src/be/memory/raters/llm.ts +15 -5
  159. package/src/be/memory/raters/store.ts +6 -3
  160. package/src/be/memory/raters/types.ts +11 -0
  161. package/src/be/memory/reranker.ts +38 -7
  162. package/src/be/memory/types.ts +12 -1
  163. package/src/be/migrations/185_api_key_auth_failures.sql +6 -0
  164. package/src/be/migrations/186_api_key_seat_mismatch.sql +8 -0
  165. package/src/be/migrations/190_memory_rating_model.sql +7 -0
  166. package/src/be/migrations/191_context_versions_previous_index.sql +8 -0
  167. package/src/be/model-tier-keys.ts +16 -1
  168. package/src/be/model-tier-resolution.ts +63 -18
  169. package/src/be/model-validation.ts +86 -10
  170. package/src/be/pricing-normalize.ts +4 -2
  171. package/src/be/scripts/typecheck.ts +4 -3
  172. package/src/be/seed/runner.ts +18 -12
  173. package/src/be/seed/types.ts +1 -0
  174. package/src/be/seed-pricing.ts +16 -0
  175. package/src/be/seed-scripts/catalog/task-failure-audit.ts +26 -26
  176. package/src/be/swarm-config-guard.ts +13 -1
  177. package/src/commands/claude-managed-setup.ts +33 -31
  178. package/src/commands/codex-login.ts +67 -0
  179. package/src/commands/credential-outcome-report.ts +191 -0
  180. package/src/commands/provider-credentials.ts +28 -15
  181. package/src/commands/rate-limit-outcome.ts +34 -4
  182. package/src/commands/runner.ts +479 -228
  183. package/src/commands/seat-mismatch-report.ts +46 -0
  184. package/src/e2b/env.ts +2 -0
  185. package/src/extensions/apply-task-create.ts +27 -1
  186. package/src/extensions/catalog.generated.json +17 -0
  187. package/src/extensions/contract-types.generated.ts +1 -1
  188. package/src/github/handlers.ts +10 -74
  189. package/src/github/reactions.ts +119 -138
  190. package/src/github/task-reactions.ts +34 -11
  191. package/src/heartbeat/heartbeat.ts +15 -2
  192. package/src/hooks/hook.ts +1 -1
  193. package/src/http/agents.ts +15 -2
  194. package/src/http/api-keys.ts +140 -2
  195. package/src/http/codex-oauth-keep-warm.ts +3 -5
  196. package/src/http/core.ts +12 -0
  197. package/src/http/extensions.ts +51 -27
  198. package/src/http/index.ts +4 -0
  199. package/src/http/mcp-user.ts +8 -13
  200. package/src/http/mcp.ts +19 -12
  201. package/src/http/memory.ts +91 -18
  202. package/src/http/poll.ts +9 -1
  203. package/src/http/schedules.ts +17 -2
  204. package/src/http/script-runs.ts +12 -0
  205. package/src/http/session-data.ts +6 -4
  206. package/src/http/stats.ts +1 -0
  207. package/src/http/status.ts +15 -1
  208. package/src/http/tasks.ts +80 -8
  209. package/src/http/users.ts +1 -1
  210. package/src/http/webhooks.ts +120 -2
  211. package/src/http/workflows.ts +11 -0
  212. package/src/mcp-client/http-client.ts +5 -0
  213. package/src/memory/recall-query.ts +74 -0
  214. package/src/prompts/base-prompt.ts +15 -4
  215. package/src/prompts/session-templates.ts +22 -1
  216. package/src/providers/acp-adapter.ts +1 -0
  217. package/src/providers/claude-adapter.ts +98 -21
  218. package/src/providers/claude-managed-adapter.ts +30 -2
  219. package/src/providers/claude-sdk-session.ts +3 -1
  220. package/src/providers/codex-adapter.ts +11 -11
  221. package/src/providers/codex-skill-resolver.ts +6 -0
  222. package/src/providers/devin-adapter.ts +1 -0
  223. package/src/providers/dsh-adapter.ts +205 -7
  224. package/src/providers/harness-version.ts +83 -7
  225. package/src/providers/opencode-adapter.ts +77 -4
  226. package/src/providers/pi-binary-root/src/extensions/codemode/worker.ts +11 -0
  227. package/src/providers/pi-codemode-runtime.ts +17 -0
  228. package/src/providers/pi-mono-adapter.ts +387 -83
  229. package/src/providers/pi-mono-extension.ts +17 -2
  230. package/src/providers/pricing-sources.md +5 -1
  231. package/src/providers/reasoning-effort.ts +10 -2
  232. package/src/providers/types.ts +9 -1
  233. package/src/rbac/legacy-policy.ts +20 -0
  234. package/src/rbac/permissions.ts +15 -0
  235. package/src/scripts-runtime/types/stdlib.d.ts +13 -5
  236. package/src/scripts-runtime/types/swarm-extension.d.ts +4 -2
  237. package/src/scripts-runtime/types/swarm-sdk.d.ts +13 -5
  238. package/src/slack/assistant.ts +13 -0
  239. package/src/slack/render-v2.ts +87 -37
  240. package/src/slack/session-status.ts +541 -0
  241. package/src/tasks/context-key.ts +38 -1
  242. package/src/tasks/sibling-awareness.ts +3 -2
  243. package/src/telemetry.ts +5 -4
  244. package/src/templates.d.ts +6 -0
  245. package/src/tests/api-key-auth-failure-route.test.ts +142 -0
  246. package/src/tests/api-key-tracking.test.ts +368 -1
  247. package/src/tests/azure-devops-auth.test.ts +100 -0
  248. package/src/tests/azure-devops-handlers.test.ts +324 -0
  249. package/src/tests/azure-devops-webhook-malformed.test.ts +96 -0
  250. package/src/tests/base-prompt.test.ts +40 -2
  251. package/src/tests/claude-adapter.test.ts +58 -0
  252. package/src/tests/claude-default-route.test.ts +260 -0
  253. package/src/tests/claude-managed-adapter.test.ts +47 -0
  254. package/src/tests/claude-managed-setup.test.ts +48 -0
  255. package/src/tests/claude-prompt-body-once.test.ts +117 -0
  256. package/src/tests/claude-routes-e2e.test.ts +316 -0
  257. package/src/tests/codex-auth-failure.test.ts +52 -0
  258. package/src/tests/codex-login.test.ts +116 -0
  259. package/src/tests/context-versions-retention.test.ts +314 -0
  260. package/src/tests/core-auth.test.ts +7 -0
  261. package/src/tests/credential-exhaustion-policy.test.ts +118 -3
  262. package/src/tests/credential-outcome-report.test.ts +171 -0
  263. package/src/tests/credential-status-api.test.ts +103 -2
  264. package/src/tests/db-retention.test.ts +14 -14
  265. package/src/tests/db-task-read-contract.test.ts +6 -0
  266. package/src/tests/db-task-write-contract.test.ts +533 -1
  267. package/src/tests/docs-index-footprint.test.js +3 -3
  268. package/src/tests/dokploy-deploy.test.ts +315 -0
  269. package/src/tests/dsh-adapter.test.ts +134 -2
  270. package/src/tests/dsh-usage.test.ts +153 -0
  271. package/src/tests/explicit-model-validation.test.ts +253 -2
  272. package/src/tests/extensions-catalog.test.ts +1 -0
  273. package/src/tests/extensions-example-deploy-awareness.test.ts +301 -0
  274. package/src/tests/extensions-http.test.ts +137 -10
  275. package/src/tests/extensions-mcp-tools.test.ts +28 -0
  276. package/src/tests/extensions-pre-task.test.ts +73 -0
  277. package/src/tests/fetch-resolved-env.test.ts +70 -0
  278. package/src/tests/fixtures/azure-devops/pull-request-commented.json +129 -0
  279. package/src/tests/fixtures/azure-devops/pull-request-created.json +88 -0
  280. package/src/tests/fixtures/fake-claude-routes.ts +229 -0
  281. package/src/tests/github-handlers-reactions.test.ts +486 -0
  282. package/src/tests/github-reactions.test.ts +280 -0
  283. package/src/tests/hang-watchdog-worker.ts +47 -0
  284. package/src/tests/hang-watchdog.test.ts +45 -0
  285. package/src/tests/hang-watchdog.ts +30 -0
  286. package/src/tests/harness-cli-version.test.ts +62 -0
  287. package/src/tests/harness-model-guard.test.ts +123 -0
  288. package/src/tests/harness-version.test.ts +70 -3
  289. package/src/tests/http-api-integration.test.ts +21 -0
  290. package/src/tests/http-task-write-ownership.test.ts +195 -0
  291. package/src/tests/internal-ai/complete-structured.test.ts +94 -0
  292. package/src/tests/internal-ai/credentials.test.ts +22 -0
  293. package/src/tests/internal-ai/models.test.ts +36 -2
  294. package/src/tests/internal-ai/schema-parity.test.ts +25 -1
  295. package/src/tests/internal-ai/summarize-session.test.ts +23 -7
  296. package/src/tests/mcp-user-route.test.ts +133 -0
  297. package/src/tests/memory-fts-populate.test.ts +139 -0
  298. package/src/tests/memory-http-recall-gating.test.ts +125 -1
  299. package/src/tests/memory-key-paths.test.ts +1055 -0
  300. package/src/tests/memory-rate-endpoint.test.ts +66 -0
  301. package/src/tests/memory-rater-llm-summarizer.test.ts +2 -1
  302. package/src/tests/memory-rater-llm.test.ts +73 -0
  303. package/src/tests/memory-rater-store.test.ts +31 -0
  304. package/src/tests/memory-reranker.test.ts +40 -0
  305. package/src/tests/model-rate-limit-windows.test.ts +19 -0
  306. package/src/tests/model-tier-resolution.test.ts +92 -0
  307. package/src/tests/opencode-adapter.test.ts +214 -2
  308. package/src/tests/opencode-plugin.test.ts +4 -0
  309. package/src/tests/pi-codemode.test.ts +324 -0
  310. package/src/tests/pi-mono-adapter.test.ts +3 -0
  311. package/src/tests/pi-native-mcp.test.ts +193 -0
  312. package/src/tests/pi-tool-exposure.test.ts +374 -0
  313. package/src/tests/preload.ts +9 -0
  314. package/src/tests/prompt-template-session.test.ts +5 -3
  315. package/src/tests/provider-registration.test.ts +0 -2
  316. package/src/tests/providers/pi-cost.test.ts +190 -4
  317. package/src/tests/rate-limit-event.test.ts +65 -0
  318. package/src/tests/rate-limit-outcome.test.ts +90 -0
  319. package/src/tests/rbac-engine.test.ts +41 -2
  320. package/src/tests/runner-key-completion-outcome.test.ts +112 -0
  321. package/src/tests/runner-key-outcome-late-reset.test.ts +224 -0
  322. package/src/tests/runner-registration-retry.test.ts +149 -0
  323. package/src/tests/runner-slot-reconcile.test.ts +199 -0
  324. package/src/tests/script-connections.test.ts +8 -0
  325. package/src/tests/seat-mismatch-report.test.ts +85 -0
  326. package/src/tests/seed-scripts.test.ts +49 -0
  327. package/src/tests/seed.test.ts +25 -0
  328. package/src/tests/session-costs-recompute-all-providers.test.ts +23 -0
  329. package/src/tests/slack-render-v2.test.ts +96 -0
  330. package/src/tests/slack-session-status.test.ts +626 -0
  331. package/src/tests/status.test.ts +29 -0
  332. package/src/tests/steering-promotion.test.ts +51 -0
  333. package/src/tests/store-progress-ownership.test.ts +136 -0
  334. package/src/tests/subscription-plans.test.ts +28 -0
  335. package/src/tests/task-citations.test.ts +3 -2
  336. package/src/tests/task-reactions.test.ts +29 -6
  337. package/src/tests/vcs-azure-devops.test.ts +73 -0
  338. package/src/tests/webhooks-task-blocked.test.ts +23 -0
  339. package/src/tests/workflow-agent-task.test.ts +30 -0
  340. package/src/tests/workflow-llm.test.ts +14 -0
  341. package/src/tests/workflow-triggers-v2.test.ts +320 -0
  342. package/src/tools/context-diff.ts +20 -0
  343. package/src/tools/extension-install.ts +27 -16
  344. package/src/tools/memory-edit.ts +47 -3
  345. package/src/tools/memory-search.ts +13 -1
  346. package/src/tools/memory-store.ts +55 -3
  347. package/src/tools/schedules/create-schedule.ts +1 -1
  348. package/src/tools/schedules/patch-schedule.ts +16 -3
  349. package/src/tools/schedules/update-schedule.ts +16 -3
  350. package/src/tools/send-task.ts +10 -7
  351. package/src/tools/store-progress.ts +49 -4
  352. package/src/tools/task-action.ts +2 -1
  353. package/src/tools/workflows/create-workflow.ts +8 -2
  354. package/src/tools/workflows/update-workflow.ts +8 -2
  355. package/src/types.ts +54 -7
  356. package/src/utils/codex-auth-failure.ts +34 -0
  357. package/src/utils/credentials.test.ts +31 -1
  358. package/src/utils/credentials.ts +92 -39
  359. package/src/utils/dsh-usage.ts +53 -0
  360. package/src/utils/error-tracker.ts +80 -0
  361. package/src/utils/harness-cli-version.ts +6 -4
  362. package/src/utils/internal-ai/complete-structured.ts +26 -3
  363. package/src/utils/internal-ai/credentials.ts +23 -9
  364. package/src/utils/internal-ai/index.ts +8 -1
  365. package/src/utils/internal-ai/models.ts +34 -8
  366. package/src/utils/internal-ai/summarize-session.ts +22 -8
  367. package/src/utils/model-rate-limit-windows.ts +12 -0
  368. package/src/utils/runtime-model-catalog.ts +15 -0
  369. package/src/utils/secret-scrubber.ts +8 -0
  370. package/src/utils/spawn-model-guard.ts +43 -0
  371. package/src/utils/subscription-plans.ts +22 -0
  372. package/src/vcs/azure-devops.ts +80 -0
  373. package/src/vcs/index.ts +5 -1
  374. package/src/vcs/types.ts +2 -2
  375. package/src/workflows/executors/agent-task.ts +7 -6
  376. package/src/workflows/model-validation.ts +45 -0
  377. package/src/workflows/patch-definition.ts +5 -0
  378. package/src/workflows/triggers.ts +85 -0
  379. package/templates/community/open-prompt-showreel/PLAYBOOK.md +336 -0
  380. package/templates/community/open-prompt-showreel/README.md +33 -0
  381. package/templates/community/open-prompt-showreel/example/tla-races/facts.ts +145 -0
  382. package/templates/community/open-prompt-showreel/example/tla-races/facts.v3.json +140 -0
  383. package/templates/community/open-prompt-showreel/example/tla-races/music.mist-city.json +8 -0
  384. package/templates/community/open-prompt-showreel/example/tla-races/reel.html +805 -0
  385. package/templates/community/open-prompt-showreel/example/tla-races/smoke.sh +48 -0
  386. package/templates/community/open-prompt-showreel/lead-prompt.md +89 -0
  387. package/templates/community/open-prompt-showreel/setup.sh +167 -0
  388. package/templates/community/open-prompt-showreel/skills/motion-design-replication/SKILL.md +85 -0
  389. package/templates/community/open-prompt-showreel/skills/motion-design-video-analysis/SKILL.md +115 -0
  390. package/templates/community/open-prompt-showreel/skills/open-prompt-showreel/SKILL.md +147 -0
  391. package/templates/community/open-prompt-showreel/skills/video-generation/SKILL.md +195 -0
  392. package/templates/community/open-prompt-showreel/tools/fetch-music.sh +65 -0
  393. package/templates/community/open-prompt-showreel/tools/music-analyze.py +69 -0
  394. package/templates/community/open-prompt-showreel/tools/music-current.sh +34 -0
  395. package/templates/community/open-prompt-showreel/tools/music-cut.sh +36 -0
  396. package/templates/community/open-prompt-showreel/tools/music-refine.py +39 -0
  397. package/templates/community/open-prompt-showreel/tools/render.mjs +157 -0
  398. package/templates/community/open-prompt-showreel/tools/sheet.sh +44 -0
  399. package/templates/community/open-prompt-showreel/tools/web-compress.sh +17 -0
  400. package/templates/community/open-prompt-showreel/tools/x-reencode.sh +21 -0
  401. package/templates/extensions/README.md +1 -0
  402. package/templates/extensions/deploy-awareness/README.md +28 -0
  403. package/templates/extensions/deploy-awareness/hooks.ts +152 -0
  404. package/templates/extensions/deploy-awareness/manifest.json +8 -0
  405. package/templates/skills/memory/config.json +2 -2
  406. package/templates/skills/memory/content.md +59 -5
  407. package/templates/skills/swarm-extensions/config.json +1 -1
  408. package/templates/skills/swarm-extensions/content.md +28 -5
  409. package/templates/skills/workflow-iterate/content.md +1 -0
  410. package/dist/boot-seeds-h7c32hvm.js +0 -27
  411. package/dist/cli-2djtr51b.js +0 -48
  412. package/dist/cli-7zttzetj.js +0 -324
  413. package/dist/cli-j490egb5.js +0 -5632
  414. package/dist/cli-m4excttz.js +0 -333481
  415. package/dist/index-bjmjh9h4.js +0 -29
package/README.md CHANGED
@@ -74,7 +74,7 @@ Or install it as a plugin in your harness:
74
74
  | Harness | Command |
75
75
  |---|---|
76
76
  | Claude Code | `/plugin marketplace add desplega-ai/agent-swarm` then `/plugin install agent-swarm@agent-swarm` |
77
- | Codex | `codex plugin add https://github.com/desplega-ai/agent-swarm` (or use `npx skills` above) |
77
+ | Codex | `codex plugin marketplace add desplega-ai/agent-swarm && codex plugin add agent-swarm@agent-swarm` (or use `npx skills` above) |
78
78
  | Cursor | `/add-plugin desplega-ai/agent-swarm` |
79
79
  | Gemini CLI | `gemini extensions install https://github.com/desplega-ai/agent-swarm` |
80
80
  | Antigravity / Factory Droid | `droid plugin marketplace add https://github.com/desplega-ai/agent-swarm` then `droid plugin install agent-swarm@agent-swarm` |
@@ -99,7 +99,7 @@ Kubernetes: [install the OCI Helm chart](./charts/agent-swarm/README.md).
99
99
 
100
100
  ## Integrations
101
101
 
102
- Slack · GitHub · GitLab · Linear · Jira · AgentMail · WhatsApp (Kapso) · Composio · Sentry · Devin · [Serply search](https://docs.agent-swarm.dev/docs/integrations/serply). [Integration guides](https://docs.agent-swarm.dev/docs/integrations).
102
+ Slack · GitHub · GitLab · Azure DevOps · Linear · Jira · AgentMail · WhatsApp (Kapso) · Composio · Sentry · Devin · [Serply search](https://docs.agent-swarm.dev/docs/integrations/serply). [Integration guides](https://docs.agent-swarm.dev/docs/integrations).
103
103
 
104
104
  AgentMail archives verified inbound deliveries before acknowledging them and retains the archive for 30 days, including mail excluded from task routing. See the [contact inbox triage runbook](runbooks/contact-inbox-triage.md) for retention, coverage limits, and rollout instructions.
105
105
 
@@ -1,10 +1,10 @@
1
+ import {
2
+ fetchInstalledMcpServers
3
+ } from "./cli-tng3131n.js";
1
4
  import {
2
5
  getAcpTargetCatalogEntry,
3
6
  isAcpTarget
4
7
  } from "./cli-dgnj0zcc.js";
5
- import {
6
- fetchInstalledMcpServers
7
- } from "./cli-tng3131n.js";
8
8
  import"./cli-dpvkp2et.js";
9
9
  import {
10
10
  detachedProcessGroup,
@@ -18,6 +18,7 @@ import {
18
18
  int,
19
19
  intersection,
20
20
  literal,
21
+ looseObject,
21
22
  number,
22
23
  object,
23
24
  record,
@@ -29,11 +30,11 @@ import {
29
30
  import {
30
31
  init_package,
31
32
  package_default
32
- } from "./cli-48527fpw.js";
33
+ } from "./cli-a8c82p2t.js";
33
34
  import {
34
35
  init_secret_scrubber,
35
36
  scrubSecrets
36
- } from "./cli-r2ap2czm.js";
37
+ } from "./cli-nexqx4ve.js";
37
38
  import"./cli-bc05qbss.js";
38
39
 
39
40
  // node_modules/@agentclientprotocol/sdk/dist/schema/index.js
@@ -77,9 +78,7 @@ var CLIENT_METHODS = {
77
78
  terminal_release: "terminal/release",
78
79
  terminal_wait_for_exit: "terminal/wait_for_exit",
79
80
  terminal_kill: "terminal/kill",
80
- mcp_connect: "mcp/connect",
81
81
  mcp_message: "mcp/message",
82
- mcp_disconnect: "mcp/disconnect",
83
82
  elicitation_create: "elicitation/create",
84
83
  elicitation_complete: "elicitation/complete"
85
84
  };
@@ -658,27 +657,16 @@ var zCreateElicitationRequest = preserveCustomPayload(intersection(union([
658
657
  })
659
658
  })), "mode", ["form", "url"]);
660
659
  var zMcpServerAcpId = string();
661
- var zConnectMcpRequest = object({
662
- serverId: zMcpServerAcpId,
663
- _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
664
- return;
665
- })
666
- });
667
- var zMcpConnectionId = string();
660
+ var zMcpRequestId = string();
668
661
  var zMessageMcpRequest = object({
669
- connectionId: zMcpConnectionId,
662
+ serverId: zMcpServerAcpId,
663
+ requestId: zMcpRequestId,
670
664
  method: string(),
671
665
  params: record(string(), unknown()).nullish(),
672
666
  _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
673
667
  return;
674
668
  })
675
669
  });
676
- var zDisconnectMcpRequest = object({
677
- connectionId: zMcpConnectionId,
678
- _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
679
- return;
680
- })
681
- });
682
670
  var zExtRequest = unknown();
683
671
  var zAgentRequest = object({
684
672
  id: zRequestId,
@@ -693,9 +681,7 @@ var zAgentRequest = object({
693
681
  zWaitForTerminalExitRequest,
694
682
  zKillTerminalRequest,
695
683
  zCreateElicitationRequest,
696
- zConnectMcpRequest,
697
684
  zMessageMcpRequest,
698
- zDisconnectMcpRequest,
699
685
  zExtRequest
700
686
  ]).nullish()
701
687
  });
@@ -1391,7 +1377,6 @@ var zCloseNesResponse = object({
1391
1377
  })
1392
1378
  });
1393
1379
  var zExtResponse = unknown();
1394
- var zMessageMcpResponse = unknown();
1395
1380
  var zErrorCode = union([
1396
1381
  literal(-32700),
1397
1382
  literal(-32600),
@@ -1437,8 +1422,7 @@ var zAgentResponse = union([
1437
1422
  zStartNesResponse,
1438
1423
  zSuggestNesResponse,
1439
1424
  zCloseNesResponse,
1440
- zExtResponse,
1441
- zMessageMcpResponse
1425
+ zExtResponse
1442
1426
  ])
1443
1427
  }),
1444
1428
  object({
@@ -1612,6 +1596,22 @@ var zUsageUpdate = object({
1612
1596
  return;
1613
1597
  })
1614
1598
  });
1599
+ var zNoticeSeverity = union([
1600
+ literal("info"),
1601
+ literal("warning"),
1602
+ literal("error"),
1603
+ string()
1604
+ ]);
1605
+ var zNotice = object({
1606
+ severity: zNoticeSeverity,
1607
+ title: string().min(1),
1608
+ description: defaultOnError(string().nullish(), () => {
1609
+ return;
1610
+ }),
1611
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1612
+ return;
1613
+ })
1614
+ });
1615
1615
  var zCompactionId = string();
1616
1616
  var zCompactionStatus = union([
1617
1617
  literal("in_progress"),
@@ -1640,6 +1640,108 @@ var zCompactionSummaryChunk = object({
1640
1640
  return;
1641
1641
  })
1642
1642
  });
1643
+ var zSessionCancelCapabilities = object({
1644
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1645
+ return;
1646
+ })
1647
+ });
1648
+ var zSubagentSessionCapabilities = object({
1649
+ cancel: defaultOnError(zSessionCancelCapabilities.nullish(), () => {
1650
+ return;
1651
+ }),
1652
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1653
+ return;
1654
+ })
1655
+ });
1656
+ var zRunningStateUpdate = object({
1657
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1658
+ return;
1659
+ })
1660
+ });
1661
+ var zIdleStateUpdate = object({
1662
+ stopReason: defaultOnError(zStopReason.nullish(), () => {
1663
+ return;
1664
+ }),
1665
+ usage: defaultOnError(zUsage.nullish(), () => {
1666
+ return;
1667
+ }),
1668
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1669
+ return;
1670
+ })
1671
+ });
1672
+ var zRequiresActionStateUpdate = object({
1673
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1674
+ return;
1675
+ })
1676
+ });
1677
+ var zUnknownStateUpdate = object({
1678
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1679
+ return;
1680
+ })
1681
+ });
1682
+ var zStateUpdate = preserveCustomPayload(union([
1683
+ zRunningStateUpdate.and(object({
1684
+ state: literal("running")
1685
+ })),
1686
+ zIdleStateUpdate.and(object({
1687
+ state: literal("idle")
1688
+ })),
1689
+ zRequiresActionStateUpdate.and(object({
1690
+ state: literal("requires_action")
1691
+ })),
1692
+ zUnknownStateUpdate.and(object({
1693
+ state: literal("unknown")
1694
+ })),
1695
+ excludeKnownTags(object({
1696
+ state: string()
1697
+ }), "state", ["idle", "requires_action", "running", "unknown"])
1698
+ ]), "state", ["idle", "requires_action", "running", "unknown"]);
1699
+ var zSubagentUpdate = object({
1700
+ sessionId: zSessionId,
1701
+ title: defaultOnError(string().nullish(), () => {
1702
+ return;
1703
+ }),
1704
+ description: defaultOnError(string().nullish(), () => {
1705
+ return;
1706
+ }),
1707
+ capabilities: defaultOnError(zSubagentSessionCapabilities.nullish(), () => {
1708
+ return;
1709
+ }),
1710
+ state: defaultOnError(zStateUpdate.nullish(), () => {
1711
+ return;
1712
+ }),
1713
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1714
+ return;
1715
+ })
1716
+ });
1717
+ var zSessionMessage = object({
1718
+ messageId: zMessageId,
1719
+ senderSessionId: defaultOnError(zSessionId.nullish(), () => {
1720
+ return;
1721
+ }),
1722
+ recipientSessionId: defaultOnError(zSessionId.nullish(), () => {
1723
+ return;
1724
+ }),
1725
+ content: defaultOnError(vecSkipError(zContentBlock).nullish(), () => {
1726
+ return;
1727
+ }),
1728
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1729
+ return;
1730
+ })
1731
+ });
1732
+ var zSessionMessageChunk = object({
1733
+ messageId: zMessageId,
1734
+ senderSessionId: defaultOnError(zSessionId.nullish(), () => {
1735
+ return;
1736
+ }),
1737
+ recipientSessionId: defaultOnError(zSessionId.nullish(), () => {
1738
+ return;
1739
+ }),
1740
+ content: zContentBlock,
1741
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1742
+ return;
1743
+ })
1744
+ });
1643
1745
  var zSessionUpdate = union([
1644
1746
  zContentChunk.and(object({
1645
1747
  sessionUpdate: literal("user_message_chunk")
@@ -1680,11 +1782,23 @@ var zSessionUpdate = union([
1680
1782
  zUsageUpdate.and(object({
1681
1783
  sessionUpdate: literal("usage_update")
1682
1784
  })),
1785
+ zNotice.and(object({
1786
+ sessionUpdate: literal("notice")
1787
+ })),
1683
1788
  zCompactionUpdate.and(object({
1684
1789
  sessionUpdate: literal("compaction_update")
1685
1790
  })),
1686
1791
  zCompactionSummaryChunk.and(object({
1687
1792
  sessionUpdate: literal("compaction_summary_chunk")
1793
+ })),
1794
+ zSubagentUpdate.and(object({
1795
+ sessionUpdate: literal("subagent_update")
1796
+ })),
1797
+ zSessionMessage.and(object({
1798
+ sessionUpdate: literal("session_message")
1799
+ })),
1800
+ zSessionMessageChunk.and(object({
1801
+ sessionUpdate: literal("session_message_chunk")
1688
1802
  }))
1689
1803
  ]);
1690
1804
  var zSessionNotification = object({
@@ -1700,23 +1814,12 @@ var zCompleteElicitationNotification = object({
1700
1814
  return;
1701
1815
  })
1702
1816
  });
1703
- var zMessageMcpNotification = object({
1704
- connectionId: zMcpConnectionId,
1705
- method: string(),
1706
- params: defaultOnError(record(string(), unknown()).nullish(), () => {
1707
- return;
1708
- }),
1709
- _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1710
- return;
1711
- })
1712
- });
1713
1817
  var zExtNotification = unknown();
1714
1818
  var zAgentNotification = object({
1715
1819
  method: string(),
1716
1820
  params: union([
1717
1821
  zSessionNotification,
1718
1822
  zCompleteElicitationNotification,
1719
- zMessageMcpNotification,
1720
1823
  zExtNotification
1721
1824
  ]).nullish()
1722
1825
  });
@@ -1741,6 +1844,7 @@ var zSessionConfigOptionsCapabilities = object({
1741
1844
  return;
1742
1845
  })
1743
1846
  });
1847
+ var zNoticeCapabilities = record(string(), unknown());
1744
1848
  var zClientSessionCapabilities = object({
1745
1849
  compaction: defaultOnError(zCompactionCapabilities.nullish(), () => {
1746
1850
  return;
@@ -1748,6 +1852,14 @@ var zClientSessionCapabilities = object({
1748
1852
  configOptions: defaultOnError(zSessionConfigOptionsCapabilities.nullish(), () => {
1749
1853
  return;
1750
1854
  }),
1855
+ notices: defaultOnError(zNoticeCapabilities.nullish(), () => {
1856
+ return;
1857
+ }),
1858
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1859
+ return;
1860
+ })
1861
+ });
1862
+ var zSubagentCapabilities = object({
1751
1863
  _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1752
1864
  return;
1753
1865
  })
@@ -1819,6 +1931,9 @@ var zClientCapabilities = object({
1819
1931
  session: defaultOnError(zClientSessionCapabilities.nullish(), () => {
1820
1932
  return;
1821
1933
  }),
1934
+ subagents: defaultOnError(zSubagentCapabilities.nullish(), () => {
1935
+ return;
1936
+ }),
1822
1937
  plan: defaultOnError(zPlanCapabilities.nullish(), () => {
1823
1938
  return;
1824
1939
  }),
@@ -2172,7 +2287,6 @@ var zClientRequest = object({
2172
2287
  zStartNesRequest,
2173
2288
  zSuggestNesRequest,
2174
2289
  zCloseNesRequest,
2175
- zMessageMcpRequest,
2176
2290
  zExtRequest
2177
2291
  ]).nullish()
2178
2292
  });
@@ -2287,17 +2401,29 @@ var zCreateElicitationResponse = preserveCustomPayload(intersection(union([
2287
2401
  return;
2288
2402
  })
2289
2403
  })), "action", ["accept", "cancel", "decline"]);
2290
- var zConnectMcpResponse = object({
2291
- connectionId: zMcpConnectionId,
2292
- _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
2293
- return;
2294
- })
2404
+ var zMcpError = looseObject({
2405
+ code: int().min(-2147483648, {
2406
+ error: "Invalid value: Expected int32 to be >= -2147483648"
2407
+ }).max(2147483647, {
2408
+ error: "Invalid value: Expected int32 to be <= 2147483647"
2409
+ }),
2410
+ message: string(),
2411
+ data: unknown().optional()
2295
2412
  });
2296
- var zDisconnectMcpResponse = object({
2297
- _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
2298
- return;
2413
+ var zMessageMcpResponse = union([
2414
+ object({
2415
+ result: unknown(),
2416
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
2417
+ return;
2418
+ })
2419
+ }),
2420
+ object({
2421
+ error: zMcpError,
2422
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
2423
+ return;
2424
+ })
2299
2425
  })
2300
- });
2426
+ ]);
2301
2427
  var zClientResponse = union([
2302
2428
  object({
2303
2429
  id: zRequestId,
@@ -2311,8 +2437,6 @@ var zClientResponse = union([
2311
2437
  zWaitForTerminalExitResponse,
2312
2438
  zKillTerminalResponse,
2313
2439
  zCreateElicitationResponse,
2314
- zConnectMcpResponse,
2315
- zDisconnectMcpResponse,
2316
2440
  zMessageMcpResponse,
2317
2441
  zExtResponse
2318
2442
  ])
@@ -2401,6 +2525,15 @@ var zRejectNesNotification = object({
2401
2525
  return;
2402
2526
  })
2403
2527
  });
2528
+ var zMessageMcpNotification = object({
2529
+ serverId: zMcpServerAcpId,
2530
+ requestId: zMcpRequestId,
2531
+ method: string(),
2532
+ params: record(string(), unknown()).nullish(),
2533
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
2534
+ return;
2535
+ })
2536
+ });
2404
2537
  var zClientNotification = object({
2405
2538
  method: string(),
2406
2539
  params: union([
@@ -3190,53 +3323,124 @@ function protocolErrorResponse(error) {
3190
3323
  };
3191
3324
  }
3192
3325
 
3326
+ // node_modules/@agentclientprotocol/sdk/dist/stream-limits.js
3327
+ var DEFAULT_MAX_MESSAGE_BYTES = 32 * 1024 * 1024;
3328
+
3329
+ class MessageTooLargeError extends Error {
3330
+ maxMessageBytes;
3331
+ constructor(maxMessageBytes) {
3332
+ super(`Incoming ACP data exceeds the configured ${maxMessageBytes} byte limit`);
3333
+ this.maxMessageBytes = maxMessageBytes;
3334
+ this.name = "MessageTooLargeError";
3335
+ }
3336
+ }
3337
+ function resolveMaxMessageBytes(value) {
3338
+ const maxMessageBytes = value ?? DEFAULT_MAX_MESSAGE_BYTES;
3339
+ if (!Number.isSafeInteger(maxMessageBytes) || maxMessageBytes <= 0) {
3340
+ throw new RangeError("maxMessageBytes must be a positive safe integer");
3341
+ }
3342
+ return maxMessageBytes;
3343
+ }
3344
+
3345
+ class MessageBuffer {
3346
+ #buffer = new Uint8Array(0);
3347
+ #length = 0;
3348
+ #maxMessageBytes;
3349
+ constructor(maxMessageBytes) {
3350
+ this.#maxMessageBytes = resolveMaxMessageBytes(maxMessageBytes);
3351
+ }
3352
+ get byteLength() {
3353
+ return this.#length;
3354
+ }
3355
+ get lastByte() {
3356
+ return this.#buffer[this.#length - 1];
3357
+ }
3358
+ #checkAppend(byteLength) {
3359
+ if (byteLength > this.#maxMessageBytes - this.#length) {
3360
+ this.clear();
3361
+ throw new MessageTooLargeError(this.#maxMessageBytes);
3362
+ }
3363
+ }
3364
+ append(bytes) {
3365
+ this.#checkAppend(bytes.byteLength);
3366
+ const length = this.#length + bytes.byteLength;
3367
+ if (length > this.#buffer.byteLength) {
3368
+ const capacity = Math.min(this.#maxMessageBytes, Math.max(length, this.#buffer.byteLength * 2, 1024));
3369
+ const buffer = new Uint8Array(capacity);
3370
+ buffer.set(this.#buffer.subarray(0, this.#length));
3371
+ this.#buffer = buffer;
3372
+ }
3373
+ this.#buffer.set(bytes, this.#length);
3374
+ this.#length = length;
3375
+ }
3376
+ take() {
3377
+ const bytes = this.#buffer.subarray(0, this.#length);
3378
+ this.clear();
3379
+ return bytes;
3380
+ }
3381
+ clear() {
3382
+ this.#buffer = new Uint8Array(0);
3383
+ this.#length = 0;
3384
+ }
3385
+ }
3386
+
3193
3387
  // node_modules/@agentclientprotocol/sdk/dist/line-buffer.js
3194
3388
  var newline = 10;
3195
3389
 
3196
3390
  class LineBuffer {
3197
- #pending = [];
3198
- push(chunk) {
3199
- const lines = [];
3391
+ #pending;
3392
+ #maxMessageBytes;
3393
+ constructor(maxMessageBytes) {
3394
+ this.#maxMessageBytes = resolveMaxMessageBytes(maxMessageBytes);
3395
+ this.#pending = new MessageBuffer(Math.min(Number.MAX_SAFE_INTEGER, this.#maxMessageBytes + 1));
3396
+ }
3397
+ *push(chunk) {
3200
3398
  let start = 0;
3201
3399
  let newlineIndex = chunk.indexOf(newline, start);
3202
3400
  while (newlineIndex !== -1) {
3203
- lines.push(this.#takeLine(chunk.subarray(start, newlineIndex)));
3401
+ yield this.#takeLine(chunk.subarray(start, newlineIndex));
3204
3402
  start = newlineIndex + 1;
3205
3403
  newlineIndex = chunk.indexOf(newline, start);
3206
3404
  }
3207
3405
  if (start < chunk.byteLength) {
3208
- this.#pending.push(start === 0 ? chunk : new Uint8Array(chunk.subarray(start)));
3406
+ const tail = chunk.subarray(start);
3407
+ this.#checkLine(tail);
3408
+ this.#pending.append(tail);
3209
3409
  }
3210
- return lines;
3211
3410
  }
3212
3411
  flush() {
3213
- if (this.#pending.length === 0) {
3412
+ if (this.#pending.byteLength === 0) {
3214
3413
  return;
3215
3414
  }
3216
- return this.#takeLine(new Uint8Array(0));
3415
+ return stripCarriageReturn(this.#pending.take());
3416
+ }
3417
+ clear() {
3418
+ this.#pending.clear();
3217
3419
  }
3218
3420
  #takeLine(tail) {
3219
- if (this.#pending.length === 0) {
3220
- return tail;
3421
+ this.#checkLine(tail);
3422
+ if (this.#pending.byteLength === 0) {
3423
+ return stripCarriageReturn(tail);
3221
3424
  }
3222
- let total = tail.byteLength;
3223
- for (const part of this.#pending) {
3224
- total += part.byteLength;
3425
+ this.#pending.append(tail);
3426
+ return stripCarriageReturn(this.#pending.take());
3427
+ }
3428
+ #checkLine(tail) {
3429
+ const lastByte = tail.byteLength > 0 ? tail[tail.byteLength - 1] : this.#pending.lastByte;
3430
+ const byteLength = this.#pending.byteLength + tail.byteLength - (lastByte === 13 ? 1 : 0);
3431
+ if (byteLength > this.#maxMessageBytes) {
3432
+ this.clear();
3433
+ throw new MessageTooLargeError(this.#maxMessageBytes);
3225
3434
  }
3226
- const line = new Uint8Array(total);
3227
- let offset = 0;
3228
- for (const part of this.#pending) {
3229
- line.set(part, offset);
3230
- offset += part.byteLength;
3231
- }
3232
- line.set(tail, offset);
3233
- this.#pending = [];
3234
- return line;
3235
3435
  }
3236
3436
  }
3437
+ function stripCarriageReturn(line) {
3438
+ return line[line.byteLength - 1] === 13 ? line.subarray(0, -1) : line;
3439
+ }
3237
3440
 
3238
3441
  // node_modules/@agentclientprotocol/sdk/dist/stream.js
3239
- function ndJsonStream(output, input) {
3442
+ function ndJsonStream(output, input, options = {}) {
3443
+ const maxMessageBytes = resolveMaxMessageBytes(options.maxMessageBytes);
3240
3444
  const textEncoder = new TextEncoder;
3241
3445
  const textDecoder = new TextDecoder;
3242
3446
  let cancelled = false;
@@ -3258,7 +3462,7 @@ function ndJsonStream(output, input) {
3258
3462
  };
3259
3463
  const readable = new ReadableStream({
3260
3464
  async start(controller) {
3261
- const lines = new LineBuffer;
3465
+ const lines = new LineBuffer(maxMessageBytes);
3262
3466
  const enqueueLine = async (lineBytes) => {
3263
3467
  const trimmedLine = textDecoder.decode(lineBytes).trim();
3264
3468
  if (!trimmedLine) {
@@ -3310,8 +3514,10 @@ function ndJsonStream(output, input) {
3310
3514
  return;
3311
3515
  }
3312
3516
  controller.error(err);
3517
+ reader.cancel(err).catch(() => {});
3313
3518
  return;
3314
3519
  } finally {
3520
+ lines.clear();
3315
3521
  if (inputReader === reader) {
3316
3522
  inputReader = undefined;
3317
3523
  }
@@ -3345,6 +3551,10 @@ var zGuardElicitationPropertySchemaInteger = zIntegerPropertySchema.and(object({
3345
3551
  var zGuardElicitationPropertySchemaBoolean = zBooleanPropertySchema.and(object({ type: literal("boolean") }));
3346
3552
  var zGuardElicitationPropertySchemaArray = zMultiSelectPropertySchema.and(object({ type: literal("array") }));
3347
3553
  var zGuardMultiSelectItemsString = zStringMultiSelectItems.and(object({ type: literal("string") }));
3554
+ var zGuardStateUpdateRunning = zRunningStateUpdate.and(object({ state: literal("running") }));
3555
+ var zGuardStateUpdateIdle = zIdleStateUpdate.and(object({ state: literal("idle") }));
3556
+ var zGuardStateUpdateRequiresAction = zRequiresActionStateUpdate.and(object({ state: literal("requires_action") }));
3557
+ var zGuardStateUpdateUnknown = zUnknownStateUpdate.and(object({ state: literal("unknown") }));
3348
3558
  var zGuardCreateElicitationResponseAccept = zElicitationAcceptAction.and(object({ action: literal("accept") }));
3349
3559
  var zGuardCreateElicitationResponseDecline = object({
3350
3560
  action: literal("decline")
@@ -3353,8 +3563,8 @@ var zGuardCreateElicitationResponseCancel = object({
3353
3563
  action: literal("cancel")
3354
3564
  });
3355
3565
  // node_modules/@agentclientprotocol/sdk/dist/acp.js
3356
- function ndJsonStream2(output, input) {
3357
- return ndJsonStream(output, input);
3566
+ function ndJsonStream2(output, input, options) {
3567
+ return ndJsonStream(output, input, options);
3358
3568
  }
3359
3569
  function emptyObjectResponse(response) {
3360
3570
  return response ?? {};
@@ -4945,6 +5155,7 @@ class ACPAdapter {
4945
5155
  name = "acp";
4946
5156
  traits = {
4947
5157
  hasMcp: true,
5158
+ hasToolSearch: false,
4948
5159
  hasLocalEnvironment: true
4949
5160
  };
4950
5161
  async createSession(config) {
@@ -1,34 +1,34 @@
1
1
  import {
2
2
  resolveSlackUserId
3
- } from "./cli-mg24hkt4.js";
3
+ } from "./cli-5p3x4zna.js";
4
4
  import {
5
5
  createTaskWithSiblingAwareness
6
- } from "./cli-79aq9cgb.js";
7
- import"./cli-0z2v4nhw.js";
8
- import"./cli-cpvsaqsw.js";
6
+ } from "./cli-0383bp7f.js";
7
+ import"./cli-cat6h73s.js";
8
+ import"./cli-w0bwte75.js";
9
9
  import"./cli-re8z5p8p.js";
10
- import"./cli-jsp14b6c.js";
11
- import"./cli-z9x0sh1t.js";
12
- import"./cli-9yg65c1j.js";
13
- import"./cli-cygyqj3b.js";
14
- import"./cli-m4excttz.js";
15
- import"./cli-0n2e4x49.js";
16
- import"./cli-fjtp3463.js";
10
+ import"./cli-3zc55ctx.js";
11
+ import"./cli-1er0rhz8.js";
17
12
  import"./cli-epan13p1.js";
18
13
  import"./cli-y89t4nca.js";
19
14
  import"./cli-f14fvzag.js";
20
- import"./cli-rfezr056.js";
21
- import"./cli-vhjwh6cz.js";
15
+ import"./cli-sqm3r5ps.js";
16
+ import"./cli-yy6dew39.js";
22
17
  import"./cli-3dpj7atn.js";
23
- import"./cli-gzyh0j0g.js";
18
+ import"./cli-2x0e561b.js";
19
+ import"./cli-ee8bc46j.js";
24
20
  import"./cli-rb9m6rpe.js";
25
- import"./cli-rykfmgwg.js";
26
- import"./cli-vwbbaecp.js";
27
- import"./cli-qv4jv8bx.js";
21
+ import"./cli-jsp14b6c.js";
22
+ import"./cli-7119ja3w.js";
23
+ import"./cli-hgmnf38m.js";
24
+ import"./cli-we0q7t0e.js";
25
+ import"./cli-tsk3nz8a.js";
26
+ import"./cli-ecfxwnyb.js";
28
27
  import"./cli-fad8m16k.js";
29
- import"./cli-kc3dp84d.js";
30
- import"./cli-10ym38qc.js";
28
+ import"./cli-d56tgd45.js";
29
+ import"./cli-hn04t9db.js";
31
30
  import"./cli-bsakbbkm.js";
31
+ import"./cli-trc24wk2.js";
32
32
  import"./cli-51tf7ac3.js";
33
33
  import {
34
34
  buildCancelledBlocks,
@@ -37,7 +37,7 @@ import {
37
37
  getAgentEmoji,
38
38
  getTaskLink,
39
39
  isSlackRenderV2Enabled
40
- } from "./cli-wgjx0q33.js";
40
+ } from "./cli-phfg8vy8.js";
41
41
  import"./cli-q51yprfq.js";
42
42
  import"./cli-3er6gcsn.js";
43
43
  import"./cli-2658f6at.js";
@@ -50,21 +50,23 @@ import {
50
50
  init_context_key,
51
51
  init_db,
52
52
  slackContextKey
53
- } from "./cli-g9df2m37.js";
54
- import"./cli-e4xnc0qp.js";
55
- import"./cli-ardpzhjm.js";
53
+ } from "./cli-1cz0c18q.js";
54
+ import"./cli-3qhyh31j.js";
55
+ import"./cli-akfj32vj.js";
56
+ import"./cli-yrg7c73k.js";
57
+ import"./cli-ptr8h7kp.js";
58
+ import"./cli-xk79303e.js";
56
59
  import"./cli-n7h1kqpf.js";
57
- import"./cli-rgjprct3.js";
60
+ import"./cli-ywybs5as.js";
58
61
  import"./cli-dv6cdjs2.js";
59
- import"./cli-cqt19wg6.js";
60
- import"./cli-19jenss3.js";
61
- import"./cli-de1396j2.js";
62
+ import"./cli-1a2j50m0.js";
63
+ import"./cli-f9w1semm.js";
62
64
  import"./cli-ej6gbxfb.js";
63
- import"./cli-7zttzetj.js";
65
+ import"./cli-jyy6pm2f.js";
64
66
  import"./cli-sd0mxa3c.js";
65
67
  import"./cli-w5e1d1vv.js";
66
- import"./cli-48527fpw.js";
67
- import"./cli-r2ap2czm.js";
68
+ import"./cli-a8c82p2t.js";
69
+ import"./cli-nexqx4ve.js";
68
70
  import"./cli-13hw4z91.js";
69
71
  import"./cli-btbzvq95.js";
70
72
  import"./cli-1m2e086m.js";