@desplega.ai/agent-swarm 1.160.0 → 1.162.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 (398) hide show
  1. package/README.md +4 -3
  2. package/dist/{acp-adapter-2mjwcsfh.js → acp-adapter-74m73ae9.js} +163 -49
  3. package/dist/{actions-e43rxskr.js → actions-4sr14gnt.js} +42 -38
  4. package/dist/{anthropic-messages-5qx80j9k.js → anthropic-messages-8xxrzky9.js} +22 -26
  5. package/dist/{app-mc7xfagn.js → app-pt68fbwp.js} +17 -14
  6. package/dist/{artifact-3v5t9jtg.js → artifact-fey7dvj9.js} +3 -2
  7. package/dist/{assistant-sedkzv3b.js → assistant-cv3jytks.js} +43 -39
  8. package/dist/{azure-openai-responses-nfb21z9a.js → azure-openai-responses-f5cqsyj8.js} +15 -10
  9. package/dist/{boot-reembed-m3656j2n.js → boot-reembed-4ht4gqth.js} +17 -14
  10. package/dist/{boot-reembed-cqz9swn5.js → boot-reembed-nxpcvpj9.js} +16 -13
  11. package/dist/{boot-scrub-logs-xbxf5d7w.js → boot-scrub-logs-k93kyw8k.js} +13 -10
  12. package/dist/boot-seeds-1skcrs0e.js +32 -0
  13. package/dist/{claude-adapter-dc6289mc.js → claude-adapter-r5g0tzge.js} +39 -30
  14. package/dist/{claude-managed-adapter-naaw51me.js → claude-managed-adapter-yxkfxg8j.js} +6 -5
  15. package/dist/{claude-managed-setup-eacvchx0.js → claude-managed-setup-pkyrgshb.js} +27 -27
  16. package/dist/{claude-sdk-session-bqp2xvym.js → claude-sdk-session-jxyxnrwd.js} +8041 -7910
  17. package/dist/{cli-4derpgyk.js → cli-2hhfhfq5.js} +6 -1
  18. package/dist/{cli-rykfmgwg.js → cli-2x0e561b.js} +1 -1
  19. package/dist/{cli-tzx2ke1v.js → cli-2zy95vhm.js} +137 -64
  20. package/dist/{cli-0x01kwrd.js → cli-4cwxn7gp.js} +47 -186
  21. package/dist/{cli-xjcywfsf.js → cli-4dcpaefp.js} +12 -11
  22. package/dist/{cli-v7fn5gms.js → cli-4x0csdjq.js} +164 -76
  23. package/dist/{cli-12tszpk9.js → cli-5bcd7sfy.js} +91 -29
  24. package/dist/{cli-jz4w45qt.js → cli-5k6k8ta3.js} +190 -50
  25. package/dist/{cli-tpq83z89.js → cli-5xhpb3kv.js} +20 -19
  26. package/dist/{cli-r1mxd1xh.js → cli-7af8yhav.js} +6 -179
  27. package/dist/{cli-jajnsm8q.js → cli-7tre70zp.js} +18160 -31345
  28. package/dist/{cli-447dt1h3.js → cli-8ev9xqnx.js} +218 -25
  29. package/dist/cli-bsky8g7w.js +449 -0
  30. package/dist/{cli-0z2v4nhw.js → cli-cat6h73s.js} +1 -1
  31. package/dist/{cli-25fcq4b4.js → cli-cebmgwsc.js} +15 -11
  32. package/dist/{cli-shkxm1vn.js → cli-cvatsam7.js} +189 -13
  33. package/dist/{cli-2658f6at.js → cli-cvk6yzw5.js} +6 -8
  34. package/dist/cli-dbmwby6a.js +9 -0
  35. package/dist/{cli-ptr8h7kp.js → cli-eg0b3p0k.js} +5 -218
  36. package/dist/cli-f9w1semm.js +413 -0
  37. package/dist/{cli-523679eh.js → cli-g739zqzt.js} +6 -5
  38. package/dist/{cli-dv6cdjs2.js → cli-gd4favx9.js} +28 -7
  39. package/dist/{cli-c8a36vcc.js → cli-gpqpmns7.js} +2 -2
  40. package/dist/{cli-5nbmpy8w.js → cli-hb5c2x5y.js} +1 -1
  41. package/dist/{cli-741yb0xx.js → cli-hmsw1gpy.js} +55 -169
  42. package/dist/{cli-qydf22qq.js → cli-jf7wmv1r.js} +2562 -735
  43. package/dist/{cli-mfe5btp9.js → cli-jxs2ygaw.js} +317 -121
  44. package/dist/{cli-kmcpfwn2.js → cli-jyy6pm2f.js} +19 -3
  45. package/dist/cli-kdkwd3yr.js +615 -0
  46. package/dist/{cli-6cs6wzxt.js → cli-kh04eqwe.js} +2 -2
  47. package/dist/{cli-9hsgwz4w.js → cli-kp42yek0.js} +1309 -391
  48. package/dist/cli-ma3zvh39.js +10404 -0
  49. package/dist/{cli-ybgv4kw2.js → cli-mbssg1xv.js} +9 -2
  50. package/dist/{cli-jsp14b6c.js → cli-mzfth0bp.js} +38 -1
  51. package/dist/{cli-r2ap2czm.js → cli-nexqx4ve.js} +6 -0
  52. package/dist/{cli-f8gy6r2r.js → cli-nq7yqw7b.js} +19 -8
  53. package/dist/{cli-10nhj6xq.js → cli-nt8hecg9.js} +34 -33
  54. package/dist/cli-p0r8sxj5.js +303 -0
  55. package/dist/{cli-58e8yr0d.js → cli-pkd6s2wy.js} +4 -2
  56. package/dist/{cli-a8dvhzrt.js → cli-q24re23n.js} +7 -5
  57. package/dist/cli-qjjvzwzd.js +222 -0
  58. package/dist/cli-qrgt5bqf.js +189 -0
  59. package/dist/{cli-et8m9xsv.js → cli-rfjw9jw2.js} +22 -10
  60. package/dist/{cli-7e398j1h.js → cli-rj0gqwwp.js} +3 -3
  61. package/dist/{cli-btfv8y88.js → cli-rnyzn44p.js} +2 -2
  62. package/dist/{cli-d5czme6m.js → cli-s3hwpt9v.js} +4754 -4945
  63. package/dist/{cli-0jwe9034.js → cli-sptrj5f5.js} +3 -3
  64. package/dist/{cli-0q3avq3s.js → cli-sqvfa090.js} +19 -11
  65. package/dist/{cli-azhgzetg.js → cli-swfmp1fx.js} +27 -27
  66. package/dist/{cli-jyk0ynw2.js → cli-t845n9xk.js} +23 -10
  67. package/dist/{cli-zpep9q5e.js → cli-tcen9p5w.js} +20 -15
  68. package/dist/{cli-74h9hscv.js → cli-tre4bdgq.js} +1 -1
  69. package/dist/{cli-pm1rst0h.js → cli-twrh04ap.js} +30 -15
  70. package/dist/{cli-phsaj4xq.js → cli-v0pvvhfq.js} +1 -1
  71. package/dist/{cli-ydmcgve1.js → cli-vc9bp061.js} +5 -5
  72. package/dist/{cli-g2whhdrf.js → cli-vxe6qa4h.js} +1 -1
  73. package/dist/{cli-vctdqs5h.js → cli-vy3ed88x.js} +15 -2
  74. package/dist/{cli-br0qdrnp.js → cli-vyqs9ya8.js} +18 -18
  75. package/dist/{cli-cpvsaqsw.js → cli-w0bwte75.js} +8 -5
  76. package/dist/cli-wbvnn6tk.js +861 -0
  77. package/dist/{cli-r94z9p1z.js → cli-wgbezhw2.js} +3 -0
  78. package/dist/{cli-evvtk35y.js → cli-wjgs5wxe.js} +7 -7
  79. package/dist/cli-wxkkd0e0.js +33 -0
  80. package/dist/{cli-0wgxmwf6.js → cli-xk79303e.js} +20 -7
  81. package/dist/{cli-ktmyrtpn.js → cli-xqpk3rp7.js} +33 -10
  82. package/dist/{cli-ygwm91nt.js → cli-yy6dew39.js} +1 -1
  83. package/dist/cli-zp38xvtm.js +9487 -0
  84. package/dist/{cli-tfky2838.js → cli-zvhd3f64.js} +4 -4
  85. package/dist/{cli-jayjpjmb.js → cli-zxqx25nz.js} +66 -23
  86. package/dist/cli.js +40 -32
  87. package/dist/{cloudflare-workers-ai-system-one-k6fbxw9d.js → cloudflare-workers-ai-system-one-k8ddqjkq.js} +8 -6
  88. package/dist/{codex-adapter-nmxcatww.js → codex-adapter-esvmnhn7.js} +24 -23
  89. package/dist/{codex-hook-20me6byw.js → codex-hook-m73jmqgx.js} +19 -3
  90. package/dist/{codex-login-w6fz4xbz.js → codex-login-cf7mzsgg.js} +2 -2
  91. package/dist/{codex-session-runner-90aa80ev.js → codex-session-runner-ban9excr.js} +24 -23
  92. package/dist/{commands-8wcq1kn7.js → commands-75413p2n.js} +13 -10
  93. package/dist/{db-j40kc4se.js → db-7f5pecwg.js} +17 -10
  94. package/dist/{dispatcher-4zqy768d.js → dispatcher-fh9at8nz.js} +41 -37
  95. package/dist/dsh-adapter-wpze65d4.js +24 -0
  96. package/dist/{e2b-ez07znam.js → e2b-gjgdjp91.js} +12 -9
  97. package/dist/easter-egg-3d-3w5c2n4c.js +1057 -0
  98. package/dist/{execute-6e7qeyk4.js → execute-f50wg9nh.js} +203 -49
  99. package/dist/{google-generative-ai-k6n5nbpp.js → google-generative-ai-jxxpnegy.js} +2 -2
  100. package/dist/{google-vertex-44xxtcvp.js → google-vertex-x7q1angm.js} +5 -5
  101. package/dist/{handlers-kjdce1w5.js → handlers-w13787bb.js} +44 -40
  102. package/dist/{hook-r2t4bqfg.js → hook-46g1jrvx.js} +34 -20
  103. package/dist/{hook-czx13n12.js → hook-4tpts2ry.js} +25 -21
  104. package/dist/{http-3bbb19be.js → http-19pzbfrt.js} +1440 -283
  105. package/dist/{index-668me3f0.js → index-8fd4dm4h.js} +42 -38
  106. package/dist/{index-fg0dsp6c.js → index-dqmp15bq.js} +41 -37
  107. package/dist/{index-kkv84jq9.js → index-qb4q1y3e.js} +41 -37
  108. package/dist/index-s75wc4wd.js +33 -0
  109. package/dist/{index-zg7vp46x.js → index-scptvdxg.js} +64 -38
  110. package/dist/{keepalive-yra8dy57.js → keepalive-xa5ts9cd.js} +15 -12
  111. package/dist/{lead-va0pad2c.js → lead-qp4xkvjq.js} +59 -54
  112. package/dist/{maintenance-hqewtmyg.js → maintenance-rm5885hm.js} +17 -14
  113. package/dist/{mistral-conversations-pc3ntnxt.js → mistral-conversations-rw7fbt22.js} +4 -4
  114. package/dist/{node-a5e00qhp.js → node-8zkdq42h.js} +834 -833
  115. package/dist/node-f0ykebbv.js +2107 -0
  116. package/dist/node-wyamey5r.js +19 -0
  117. package/dist/{oauth-refresh-sweep-7rdt1m9n.js → oauth-refresh-sweep-1csdfebf.js} +14 -11
  118. package/dist/{onboard-j6ms6d0x.js → onboard-r6b78cs4.js} +10 -10
  119. package/dist/{openai-codex-responses-bbancrr0.js → openai-codex-responses-efvrgrq3.js} +4 -4
  120. package/dist/{openai-completions-jpaj5g2b.js → openai-completions-bbbrrz4z.js} +12 -8
  121. package/dist/{openai-responses-200k1wx4.js → openai-responses-9jjyrcm1.js} +15 -10
  122. package/dist/{opencode-adapter-89rabkw2.js → opencode-adapter-kb3g6pkf.js} +12 -9
  123. package/dist/{otel-impl-a792rjz0.js → otel-impl-0y9knpky.js} +6 -6
  124. package/dist/{pi-mono-adapter-g7qzvr3v.js → pi-mono-adapter-z6s1bme2.js} +128 -37
  125. package/dist/{pricing-refresh-wx0tp7cb.js → pricing-refresh-mth26tgp.js} +15 -12
  126. package/dist/{rbac-roles-8tzawacv.js → rbac-roles-kwntb23q.js} +17 -12
  127. package/dist/rbac-roles-vpk4ebm8.js +45 -0
  128. package/dist/{registry-v5wytg0s.js → registry-km6t1jd2.js} +1 -1
  129. package/dist/{render-v2-mm7zswb8.js → render-v2-hcm7h00y.js} +17 -14
  130. package/dist/{runtime-zyssgse0.js → runtime-vfjsfsc5.js} +5 -4
  131. package/dist/{setup-8y70ys6t.js → setup-hbyzd65h.js} +2 -2
  132. package/dist/{virtual-modules-6nmk7h3n.js → virtual-modules-9bv7ry91.js} +9 -7
  133. package/dist/{work-objects-fg6xkb0n.js → work-objects-m09sxnhe.js} +44 -40
  134. package/dist/{worker-wmwhxsph.js → worker-0h35rvk4.js} +59 -54
  135. package/dist/{x-n3e0v3xa.js → x-f1gt1pz3.js} +2 -2
  136. package/openapi.json +699 -26
  137. package/package.json +19 -11
  138. package/src/azure-devops/api.ts +121 -0
  139. package/src/azure-devops/auth.ts +78 -0
  140. package/src/azure-devops/handlers.ts +413 -0
  141. package/src/azure-devops/index.ts +27 -0
  142. package/src/azure-devops/templates.ts +108 -0
  143. package/src/azure-devops/types.ts +90 -0
  144. package/src/be/api-drain.ts +184 -0
  145. package/src/be/db/tasks/read.ts +32 -7
  146. package/src/be/db/tasks/write.ts +21 -4
  147. package/src/be/db-client.ts +11 -2
  148. package/src/be/db-retention.ts +95 -32
  149. package/src/be/db.ts +44 -19
  150. package/src/be/memory/constants.ts +16 -0
  151. package/src/be/memory/graph-expansion.ts +8 -1
  152. package/src/be/memory/index-content.ts +20 -1
  153. package/src/be/memory/key-guard.ts +93 -0
  154. package/src/be/memory/key-paths.ts +103 -0
  155. package/src/be/memory/link-resolver.ts +29 -3
  156. package/src/be/memory/providers/sqlite-store.ts +152 -45
  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/190_memory_rating_model.sql +7 -0
  164. package/src/be/migrations/191_context_versions_previous_index.sql +8 -0
  165. package/src/be/migrations/192_favorites_agent_fs_path.sql +36 -0
  166. package/src/be/onboarding.ts +7 -1
  167. package/src/be/pricing-normalize.ts +4 -2
  168. package/src/be/scripts/typecheck.ts +4 -3
  169. package/src/be/seed-pricing.ts +16 -0
  170. package/src/be/seed-prompt-templates.ts +1 -0
  171. package/src/be/swarm-config-guard.ts +46 -17
  172. package/src/be/task-citations.ts +11 -5
  173. package/src/be/users.ts +3 -0
  174. package/src/cli.tsx +3 -2
  175. package/src/comb/agent-fs.ts +39 -0
  176. package/src/comb/config.ts +37 -0
  177. package/src/comb/markers.ts +37 -0
  178. package/src/comb/review-batch.ts +486 -0
  179. package/src/comb/templates.ts +88 -0
  180. package/src/commands/claude-managed-setup.ts +33 -31
  181. package/src/commands/context-preamble.ts +4 -1
  182. package/src/commands/hook.ts +2 -1
  183. package/src/commands/provider-credentials.ts +28 -15
  184. package/src/commands/runner.ts +458 -110
  185. package/src/commands/templates.ts +10 -0
  186. package/src/e2b/env.ts +2 -0
  187. package/src/extensions/catalog.generated.json +17 -0
  188. package/src/extensions/contract-types.generated.ts +1 -1
  189. package/src/fs/agent-fs-provider.ts +106 -2
  190. package/src/github/handlers.ts +10 -74
  191. package/src/github/reactions.ts +119 -138
  192. package/src/github/task-reactions.ts +34 -11
  193. package/src/heartbeat/heartbeat.ts +4 -0
  194. package/src/hooks/codex-hook.ts +25 -1
  195. package/src/hooks/hook.ts +14 -1
  196. package/src/hooks/pr-body-guard.ts +983 -0
  197. package/src/http/agents.ts +1 -1
  198. package/src/http/all-routes.ts +1 -0
  199. package/src/http/assets.ts +5 -17
  200. package/src/http/comb.ts +131 -0
  201. package/src/http/core.ts +14 -1
  202. package/src/http/extensions.ts +51 -27
  203. package/src/http/fs.ts +9 -17
  204. package/src/http/index.ts +27 -9
  205. package/src/http/mcp-user.ts +8 -13
  206. package/src/http/mcp.ts +19 -12
  207. package/src/http/memory.ts +80 -14
  208. package/src/http/onboarding.ts +21 -2
  209. package/src/http/poll.ts +30 -3
  210. package/src/http/realtime.ts +62 -0
  211. package/src/http/request-principal.ts +22 -0
  212. package/src/http/session-data.ts +6 -4
  213. package/src/http/stats.ts +1 -0
  214. package/src/http/status.ts +34 -2
  215. package/src/http/tasks.ts +17 -3
  216. package/src/http/users.ts +1 -1
  217. package/src/http/webhooks.ts +120 -2
  218. package/src/kv-reserved-namespaces.ts +10 -5
  219. package/src/providers/claude-adapter.ts +84 -16
  220. package/src/providers/claude-managed-adapter.ts +29 -2
  221. package/src/providers/codex-adapter.ts +1 -1
  222. package/src/providers/codex-skill-resolver.ts +6 -0
  223. package/src/providers/dsh-adapter.ts +204 -7
  224. package/src/providers/opencode-adapter.ts +24 -3
  225. package/src/providers/pi-mono-adapter.ts +154 -5
  226. package/src/providers/pi-mono-extension.ts +1 -1
  227. package/src/providers/pricing-sources.md +5 -1
  228. package/src/providers/reasoning-effort.ts +10 -2
  229. package/src/providers/types.ts +1 -1
  230. package/src/rbac/legacy-policy.ts +3 -0
  231. package/src/rbac/permissions.ts +14 -0
  232. package/src/realtime/auth.ts +63 -1
  233. package/src/realtime/tickets.ts +52 -0
  234. package/src/realtime/transport.ts +51 -22
  235. package/src/scripts-runtime/types/stdlib.d.ts +13 -5
  236. package/src/scripts-runtime/types/swarm-extension.d.ts +7 -3
  237. package/src/scripts-runtime/types/swarm-sdk.d.ts +13 -5
  238. package/src/tasks/context-key.ts +38 -1
  239. package/src/telemetry-context.ts +175 -0
  240. package/src/telemetry-contract/EVENTS.md +81 -0
  241. package/src/telemetry-contract/SOURCE.json +9 -0
  242. package/src/telemetry-contract/catalog.json +1335 -0
  243. package/src/telemetry-contract/index.ts +60 -0
  244. package/src/telemetry-contract/types.gen.ts +1971 -0
  245. package/src/telemetry-identity.ts +129 -0
  246. package/src/telemetry-snapshot.ts +211 -0
  247. package/src/telemetry-trigger.ts +125 -0
  248. package/src/telemetry-types.typetest.ts +40 -0
  249. package/src/telemetry.ts +271 -67
  250. package/src/tests/api-drain-e2e.test.ts +249 -0
  251. package/src/tests/api-drain-worker-e2e.test.ts +216 -0
  252. package/src/tests/api-drain.test.ts +351 -0
  253. package/src/tests/azure-devops-auth.test.ts +100 -0
  254. package/src/tests/azure-devops-handlers.test.ts +324 -0
  255. package/src/tests/azure-devops-webhook-malformed.test.ts +96 -0
  256. package/src/tests/claude-default-route.test.ts +260 -0
  257. package/src/tests/claude-managed-adapter.test.ts +47 -0
  258. package/src/tests/claude-managed-setup.test.ts +48 -0
  259. package/src/tests/claude-prompt-body-once.test.ts +117 -0
  260. package/src/tests/claude-routes-e2e.test.ts +316 -0
  261. package/src/tests/comb-config-guard.test.ts +38 -0
  262. package/src/tests/comb-links.test.ts +162 -0
  263. package/src/tests/comb-markers.test.ts +68 -0
  264. package/src/tests/comb-review-batch.test.ts +770 -0
  265. package/src/tests/comb-status.test.ts +152 -0
  266. package/src/tests/context-versions-retention.test.ts +314 -0
  267. package/src/tests/core-auth.test.ts +7 -0
  268. package/src/tests/db-retention.test.ts +14 -14
  269. package/src/tests/db-task-read-contract.test.ts +3 -0
  270. package/src/tests/db-task-write-contract.test.ts +3 -0
  271. package/src/tests/docs-index-footprint.test.js +3 -3
  272. package/src/tests/dsh-adapter.test.ts +134 -2
  273. package/src/tests/dsh-usage.test.ts +153 -0
  274. package/src/tests/extensions-catalog.test.ts +1 -0
  275. package/src/tests/extensions-example-deploy-awareness.test.ts +301 -0
  276. package/src/tests/extensions-http.test.ts +137 -10
  277. package/src/tests/extensions-mcp-tools.test.ts +28 -0
  278. package/src/tests/favorites-agent-fs-path.test.ts +226 -0
  279. package/src/tests/fetch-resolved-env.test.ts +24 -0
  280. package/src/tests/fixtures/azure-devops/pull-request-commented.json +129 -0
  281. package/src/tests/fixtures/azure-devops/pull-request-created.json +88 -0
  282. package/src/tests/fixtures/fake-claude-routes.ts +229 -0
  283. package/src/tests/github-handlers-reactions.test.ts +486 -0
  284. package/src/tests/github-reactions.test.ts +280 -0
  285. package/src/tests/harness-cli-version.test.ts +62 -0
  286. package/src/tests/http-api-integration.test.ts +21 -0
  287. package/src/tests/http-task-write-ownership.test.ts +24 -1
  288. package/src/tests/internal-ai/complete-structured.test.ts +94 -0
  289. package/src/tests/internal-ai/credentials.test.ts +22 -0
  290. package/src/tests/internal-ai/models.test.ts +36 -2
  291. package/src/tests/internal-ai/schema-parity.test.ts +25 -1
  292. package/src/tests/internal-ai/summarize-session.test.ts +23 -7
  293. package/src/tests/mcp-user-route.test.ts +133 -0
  294. package/src/tests/memory-key-paths.test.ts +1055 -0
  295. package/src/tests/memory-link-resolver.test.ts +34 -0
  296. package/src/tests/memory-rate-endpoint.test.ts +66 -0
  297. package/src/tests/memory-rater-llm-summarizer.test.ts +2 -1
  298. package/src/tests/memory-rater-llm.test.ts +73 -0
  299. package/src/tests/memory-rater-store.test.ts +31 -0
  300. package/src/tests/memory-reranker.test.ts +40 -0
  301. package/src/tests/onboarding.test.ts +108 -0
  302. package/src/tests/opencode-adapter.test.ts +57 -0
  303. package/src/tests/opencode-plugin.test.ts +4 -0
  304. package/src/tests/pi-codemode.test.ts +82 -4
  305. package/src/tests/pi-mono-adapter.test.ts +265 -2
  306. package/src/tests/pr-body-leaks.test.ts +789 -0
  307. package/src/tests/preload.ts +14 -0
  308. package/src/tests/provider-registration.test.ts +0 -2
  309. package/src/tests/providers/pi-cost.test.ts +190 -4
  310. package/src/tests/rbac-engine.test.ts +25 -1
  311. package/src/tests/realtime-room-auth.test.ts +104 -1
  312. package/src/tests/realtime-tickets.test.ts +74 -0
  313. package/src/tests/realtime-transport.test.ts +131 -4
  314. package/src/tests/runner-api-drain.test.ts +301 -0
  315. package/src/tests/runner-fallback-output.test.ts +61 -0
  316. package/src/tests/runner-fenced-json-output.test.ts +178 -0
  317. package/src/tests/runner-slot-reconcile.test.ts +199 -0
  318. package/src/tests/script-connections.test.ts +6 -0
  319. package/src/tests/send-task-requested-by.test.ts +133 -15
  320. package/src/tests/session-costs-recompute-all-providers.test.ts +23 -0
  321. package/src/tests/task-lifecycle-telemetry.test.ts +8 -3
  322. package/src/tests/task-reactions.test.ts +29 -6
  323. package/src/tests/telemetry-context.test.ts +314 -0
  324. package/src/tests/telemetry-init.test.ts +51 -19
  325. package/src/tests/telemetry-snapshot.test.ts +229 -0
  326. package/src/tests/telemetry-trigger.test.ts +200 -0
  327. package/src/tests/template-registry-helpers.ts +1 -0
  328. package/src/tests/vcs-azure-devops.test.ts +73 -0
  329. package/src/tests/webhooks-task-blocked.test.ts +23 -0
  330. package/src/tests/workflow-agent-task-retry.test.ts +363 -0
  331. package/src/tests/workflow-definition-telemetry.test.ts +4 -4
  332. package/src/tests/workflow-llm.test.ts +14 -0
  333. package/src/tools/context-diff.ts +20 -0
  334. package/src/tools/extension-install.ts +27 -16
  335. package/src/tools/memory-edit.ts +47 -3
  336. package/src/tools/memory-search.ts +13 -1
  337. package/src/tools/memory-store.ts +55 -3
  338. package/src/tools/poll-task.ts +20 -1
  339. package/src/tools/send-task.ts +9 -1
  340. package/src/tools/task-action.ts +11 -0
  341. package/src/types.ts +45 -8
  342. package/src/utils/api-drain.ts +24 -0
  343. package/src/utils/constants.ts +57 -16
  344. package/src/utils/credentials.test.ts +31 -1
  345. package/src/utils/credentials.ts +20 -9
  346. package/src/utils/dsh-usage.ts +53 -0
  347. package/src/utils/harness-cli-version.ts +6 -4
  348. package/src/utils/internal-ai/complete-structured.ts +26 -3
  349. package/src/utils/internal-ai/credentials.ts +23 -9
  350. package/src/utils/internal-ai/index.ts +8 -1
  351. package/src/utils/internal-ai/models.ts +34 -8
  352. package/src/utils/internal-ai/summarize-session.ts +22 -8
  353. package/src/utils/pr-body-leaks.ts +172 -0
  354. package/src/utils/secret-scrubber.ts +8 -0
  355. package/src/utils/task-attachment-links.ts +14 -8
  356. package/src/vcs/azure-devops.ts +80 -0
  357. package/src/vcs/index.ts +5 -1
  358. package/src/vcs/types.ts +2 -2
  359. package/src/workflows/recovery.ts +26 -1
  360. package/src/workflows/resume.ts +31 -4
  361. package/src/workflows/task-step-routing.ts +75 -2
  362. package/templates/community/open-prompt-showreel/PLAYBOOK.md +336 -0
  363. package/templates/community/open-prompt-showreel/README.md +33 -0
  364. package/templates/community/open-prompt-showreel/example/tla-races/facts.ts +145 -0
  365. package/templates/community/open-prompt-showreel/example/tla-races/facts.v3.json +140 -0
  366. package/templates/community/open-prompt-showreel/example/tla-races/music.mist-city.json +8 -0
  367. package/templates/community/open-prompt-showreel/example/tla-races/reel.html +805 -0
  368. package/templates/community/open-prompt-showreel/example/tla-races/smoke.sh +48 -0
  369. package/templates/community/open-prompt-showreel/lead-prompt.md +89 -0
  370. package/templates/community/open-prompt-showreel/setup.sh +167 -0
  371. package/templates/community/open-prompt-showreel/skills/motion-design-replication/SKILL.md +85 -0
  372. package/templates/community/open-prompt-showreel/skills/motion-design-video-analysis/SKILL.md +115 -0
  373. package/templates/community/open-prompt-showreel/skills/open-prompt-showreel/SKILL.md +147 -0
  374. package/templates/community/open-prompt-showreel/skills/video-generation/SKILL.md +195 -0
  375. package/templates/community/open-prompt-showreel/tools/fetch-music.sh +65 -0
  376. package/templates/community/open-prompt-showreel/tools/music-analyze.py +69 -0
  377. package/templates/community/open-prompt-showreel/tools/music-current.sh +34 -0
  378. package/templates/community/open-prompt-showreel/tools/music-cut.sh +36 -0
  379. package/templates/community/open-prompt-showreel/tools/music-refine.py +39 -0
  380. package/templates/community/open-prompt-showreel/tools/render.mjs +157 -0
  381. package/templates/community/open-prompt-showreel/tools/sheet.sh +44 -0
  382. package/templates/community/open-prompt-showreel/tools/web-compress.sh +17 -0
  383. package/templates/community/open-prompt-showreel/tools/x-reencode.sh +21 -0
  384. package/templates/extensions/README.md +1 -0
  385. package/templates/extensions/deploy-awareness/README.md +28 -0
  386. package/templates/extensions/deploy-awareness/hooks.ts +152 -0
  387. package/templates/extensions/deploy-awareness/manifest.json +8 -0
  388. package/templates/skills/memory/config.json +2 -2
  389. package/templates/skills/memory/content.md +59 -5
  390. package/templates/skills/swarm-extensions/config.json +1 -1
  391. package/templates/skills/swarm-extensions/content.md +28 -5
  392. package/tsconfig.json +3 -0
  393. package/dist/boot-seeds-gsetbs5y.js +0 -28
  394. package/dist/cli-j490egb5.js +0 -5632
  395. package/dist/cli-tjf4cn8z.js +0 -9119
  396. package/dist/cli-tmqt7dpj.js +0 -572
  397. package/dist/dsh-adapter-mpnzgztj.js +0 -19
  398. package/dist/index-7aj368tw.js +0 -30
package/README.md CHANGED
@@ -1,11 +1,12 @@
1
1
  <p align="center"><a href="https://github.com/desplega-ai/agent-swarm/stargazers"><img src="https://img.shields.io/github/stars/desplega-ai/agent-swarm?style=flat-square&color=yellow" alt="GitHub Stars"></a> <a href="https://github.com/desplega-ai/agent-swarm/blob/main/LICENSE"><img src="https://img.shields.io/github/license/desplega-ai/agent-swarm?style=flat-square" alt="MIT License"></a> <a href="https://github.com/desplega-ai/agent-swarm/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen?style=flat-square" alt="PRs Welcome"></a></p>
2
- <p align="center"><b>An engine to make your company AI Native</b><br/><sub>Built by <a href="https://desplega.sh">desplega.sh</a>.</sub></p>
2
+ <p align="center"><b><a href="https://swar.am">Agent Swarm</a> is the open-source, self-hosted AI company operating system built by <a href="https://desplega.sh">Desplega Labs</a>.</b></p>
3
+ <!-- It is not OpenAI Swarm, OpenAI's experimental educational library, replaced by the OpenAI Agents SDK. -->
3
4
 
4
5
  > [!TIP]
5
6
  > **This repo evolves every single day.** [Watch now →](https://github.com/desplega-ai/agent-swarm/subscription)
6
7
  <p align="center"><video src="https://github.com/user-attachments/assets/8d221239-2340-49a2-aed3-5a474c2229a8" controls muted playsinline width="720"></video></p>
7
8
  <p align="center"><sub>▸ <a href="./assets/agent-swarm-every-team.mp4">every team, one swarm</a> · <a href="./assets/agent-swarm.mp4">daily evolution</a> · <a href="./assets/agent-swarm-slack-to-pr.mp4">slack → pr</a> · <a href="./assets/video-source">Making of</a></sub></p>
8
- <p align="center"><a href="https://agent-swarm.dev"><img src="https://img.shields.io/badge/Website-agent--swarm.dev-000?style=for-the-badge" alt="Website"></a> <a href="https://docs.agent-swarm.dev"><img src="https://img.shields.io/badge/Docs-docs.agent--swarm.dev-amber?style=for-the-badge" alt="Docs"></a> <a href="https://app.agent-swarm.dev"><img src="https://img.shields.io/badge/Dashboard-app.agent--swarm.dev-blue?style=for-the-badge" alt="Dashboard"></a> <a href="https://discord.gg/KZgfyyDVZa"><img src="https://img.shields.io/badge/Discord-Join%20Community-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Join Discord"></a> <a href="https://x.com/desplegalabs"><img src="https://img.shields.io/badge/𝕏-@desplegalabs-000?style=for-the-badge&logo=x&logoColor=white" alt="Follow on X"></a> <a href="https://www.linkedin.com/company/desplega-labs/"><img src="https://img.shields.io/badge/LinkedIn-Desplega%20Labs-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white" alt="Desplega Labs on LinkedIn"></a> <a href="https://www.youtube.com/@desplega-labs/videos"><img src="https://img.shields.io/badge/YouTube-Desplega%20Labs-FF0000?style=for-the-badge&logo=youtube&logoColor=white" alt="Desplega Labs on YouTube"></a></p>
9
+ <p align="center"><a href="https://agent-swarm.dev"><img src="https://img.shields.io/badge/Website-agent--swarm.dev-000?style=for-the-badge" alt="Website"></a> <a href="https://docs.agent-swarm.dev"><img src="https://img.shields.io/badge/Docs-docs.agent--swarm.dev-amber?style=for-the-badge" alt="Docs"></a> <a href="https://app.agent-swarm.dev"><img src="https://img.shields.io/badge/Dashboard-app.agent--swarm.dev-blue?style=for-the-badge" alt="Dashboard"></a> <a href="https://discord.gg/KZgfyyDVZa"><img src="https://img.shields.io/badge/Discord-Join%20Community-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Join Discord"></a> <a href="https://x.com/agent__swarm"><img src="https://img.shields.io/badge/𝕏-@agent____swarm-000?style=for-the-badge&logo=x&logoColor=white" alt="Follow on X"></a> <a href="https://www.linkedin.com/company/desplega-labs/"><img src="https://img.shields.io/badge/LinkedIn-Desplega%20Labs-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white" alt="Desplega Labs on LinkedIn"></a> <a href="https://www.youtube.com/@desplega-labs/videos"><img src="https://img.shields.io/badge/YouTube-Desplega%20Labs-FF0000?style=for-the-badge&logo=youtube&logoColor=white" alt="Desplega Labs on YouTube"></a></p>
9
10
 
10
11
  agent-swarm.dev is an open-source operating system for AI work. A lead agent delegates goals to workers such as Claude Code or Codex. Isolated containers, shared memory, tools, schedules, and review gates preserve work across sessions.
11
12
 
@@ -99,7 +100,7 @@ Kubernetes: [install the OCI Helm chart](./charts/agent-swarm/README.md).
99
100
 
100
101
  ## Integrations
101
102
 
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).
103
+ 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
104
 
104
105
  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
106
 
@@ -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-0q3avq3s.js";
33
+ } from "./cli-sqvfa090.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({
@@ -1656,6 +1640,108 @@ var zCompactionSummaryChunk = object({
1656
1640
  return;
1657
1641
  })
1658
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
+ });
1659
1745
  var zSessionUpdate = union([
1660
1746
  zContentChunk.and(object({
1661
1747
  sessionUpdate: literal("user_message_chunk")
@@ -1704,6 +1790,15 @@ var zSessionUpdate = union([
1704
1790
  })),
1705
1791
  zCompactionSummaryChunk.and(object({
1706
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")
1707
1802
  }))
1708
1803
  ]);
1709
1804
  var zSessionNotification = object({
@@ -1719,23 +1814,12 @@ var zCompleteElicitationNotification = object({
1719
1814
  return;
1720
1815
  })
1721
1816
  });
1722
- var zMessageMcpNotification = object({
1723
- connectionId: zMcpConnectionId,
1724
- method: string(),
1725
- params: defaultOnError(record(string(), unknown()).nullish(), () => {
1726
- return;
1727
- }),
1728
- _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1729
- return;
1730
- })
1731
- });
1732
1817
  var zExtNotification = unknown();
1733
1818
  var zAgentNotification = object({
1734
1819
  method: string(),
1735
1820
  params: union([
1736
1821
  zSessionNotification,
1737
1822
  zCompleteElicitationNotification,
1738
- zMessageMcpNotification,
1739
1823
  zExtNotification
1740
1824
  ]).nullish()
1741
1825
  });
@@ -1775,6 +1859,11 @@ var zClientSessionCapabilities = object({
1775
1859
  return;
1776
1860
  })
1777
1861
  });
1862
+ var zSubagentCapabilities = object({
1863
+ _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1864
+ return;
1865
+ })
1866
+ });
1778
1867
  var zPlanCapabilities = object({
1779
1868
  _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
1780
1869
  return;
@@ -1842,6 +1931,9 @@ var zClientCapabilities = object({
1842
1931
  session: defaultOnError(zClientSessionCapabilities.nullish(), () => {
1843
1932
  return;
1844
1933
  }),
1934
+ subagents: defaultOnError(zSubagentCapabilities.nullish(), () => {
1935
+ return;
1936
+ }),
1845
1937
  plan: defaultOnError(zPlanCapabilities.nullish(), () => {
1846
1938
  return;
1847
1939
  }),
@@ -2195,7 +2287,6 @@ var zClientRequest = object({
2195
2287
  zStartNesRequest,
2196
2288
  zSuggestNesRequest,
2197
2289
  zCloseNesRequest,
2198
- zMessageMcpRequest,
2199
2290
  zExtRequest
2200
2291
  ]).nullish()
2201
2292
  });
@@ -2310,17 +2401,29 @@ var zCreateElicitationResponse = preserveCustomPayload(intersection(union([
2310
2401
  return;
2311
2402
  })
2312
2403
  })), "action", ["accept", "cancel", "decline"]);
2313
- var zConnectMcpResponse = object({
2314
- connectionId: zMcpConnectionId,
2315
- _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
2316
- return;
2317
- })
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()
2318
2412
  });
2319
- var zDisconnectMcpResponse = object({
2320
- _meta: defaultOnError(record(string(), unknown()).nullish(), () => {
2321
- 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
+ })
2322
2425
  })
2323
- });
2426
+ ]);
2324
2427
  var zClientResponse = union([
2325
2428
  object({
2326
2429
  id: zRequestId,
@@ -2334,8 +2437,6 @@ var zClientResponse = union([
2334
2437
  zWaitForTerminalExitResponse,
2335
2438
  zKillTerminalResponse,
2336
2439
  zCreateElicitationResponse,
2337
- zConnectMcpResponse,
2338
- zDisconnectMcpResponse,
2339
2440
  zMessageMcpResponse,
2340
2441
  zExtResponse
2341
2442
  ])
@@ -2424,6 +2525,15 @@ var zRejectNesNotification = object({
2424
2525
  return;
2425
2526
  })
2426
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
+ });
2427
2537
  var zClientNotification = object({
2428
2538
  method: string(),
2429
2539
  params: union([
@@ -3441,6 +3551,10 @@ var zGuardElicitationPropertySchemaInteger = zIntegerPropertySchema.and(object({
3441
3551
  var zGuardElicitationPropertySchemaBoolean = zBooleanPropertySchema.and(object({ type: literal("boolean") }));
3442
3552
  var zGuardElicitationPropertySchemaArray = zMultiSelectPropertySchema.and(object({ type: literal("array") }));
3443
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") }));
3444
3558
  var zGuardCreateElicitationResponseAccept = zElicitationAcceptAction.and(object({ action: literal("accept") }));
3445
3559
  var zGuardCreateElicitationResponseDecline = object({
3446
3560
  action: literal("decline")
@@ -1,32 +1,31 @@
1
1
  import {
2
2
  resolveSlackUserId
3
- } from "./cli-c8a36vcc.js";
3
+ } from "./cli-gpqpmns7.js";
4
4
  import {
5
5
  createTaskWithSiblingAwareness
6
- } from "./cli-9hsgwz4w.js";
7
- import"./cli-0z2v4nhw.js";
8
- import"./cli-cpvsaqsw.js";
6
+ } from "./cli-kp42yek0.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-tzx2ke1v.js";
12
- import"./cli-tmqt7dpj.js";
13
- import"./cli-tfky2838.js";
14
- import"./cli-vctdqs5h.js";
15
- import"./cli-tpq83z89.js";
10
+ import"./cli-wxkkd0e0.js";
11
+ import"./cli-zvhd3f64.js";
12
+ import"./cli-vy3ed88x.js";
13
+ import"./cli-5xhpb3kv.js";
16
14
  import"./cli-epan13p1.js";
17
- import"./cli-y89t4nca.js";
18
15
  import"./cli-f14fvzag.js";
19
- import"./cli-12tszpk9.js";
20
- import"./cli-ygwm91nt.js";
16
+ import"./cli-y89t4nca.js";
17
+ import"./cli-5bcd7sfy.js";
18
+ import"./cli-yy6dew39.js";
21
19
  import"./cli-3dpj7atn.js";
22
- import"./cli-10nhj6xq.js";
20
+ import"./cli-2x0e561b.js";
21
+ import"./cli-nt8hecg9.js";
23
22
  import"./cli-rb9m6rpe.js";
24
- import"./cli-rykfmgwg.js";
25
- import"./cli-0jwe9034.js";
26
- import"./cli-6cs6wzxt.js";
23
+ import"./cli-mzfth0bp.js";
24
+ import"./cli-sptrj5f5.js";
25
+ import"./cli-5k6k8ta3.js";
26
+ import"./cli-cebmgwsc.js";
27
+ import"./cli-kh04eqwe.js";
27
28
  import"./cli-fad8m16k.js";
28
- import"./cli-jz4w45qt.js";
29
- import"./cli-25fcq4b4.js";
30
29
  import"./cli-bsakbbkm.js";
31
30
  import"./cli-trc24wk2.js";
32
31
  import"./cli-51tf7ac3.js";
@@ -37,11 +36,20 @@ import {
37
36
  getAgentEmoji,
38
37
  getTaskLink,
39
38
  isSlackRenderV2Enabled
40
- } from "./cli-azhgzetg.js";
39
+ } from "./cli-swfmp1fx.js";
41
40
  import"./cli-q51yprfq.js";
42
41
  import"./cli-3er6gcsn.js";
43
- import"./cli-2658f6at.js";
42
+ import"./cli-cvk6yzw5.js";
44
43
  import"./cli-yatxqynm.js";
44
+ import"./cli-13hw4z91.js";
45
+ import"./cli-ykk5jaax.js";
46
+ import"./cli-btbzvq95.js";
47
+ import"./cli-1m2e086m.js";
48
+ import"./cli-bzr0ftht.js";
49
+ import"./cli-bd957dgb.js";
50
+ import"./cli-pzxba7gw.js";
51
+ import"./cli-2zy95vhm.js";
52
+ import"./cli-kdkwd3yr.js";
45
53
  import {
46
54
  cancelTask,
47
55
  getAgentById,
@@ -50,29 +58,25 @@ import {
50
58
  init_context_key,
51
59
  init_db,
52
60
  slackContextKey
53
- } from "./cli-qydf22qq.js";
61
+ } from "./cli-jf7wmv1r.js";
62
+ import"./cli-xqpk3rp7.js";
54
63
  import"./cli-3qhyh31j.js";
55
- import"./cli-ktmyrtpn.js";
56
- import"./cli-r1mxd1xh.js";
64
+ import"./cli-7af8yhav.js";
57
65
  import"./cli-n7h1kqpf.js";
58
- import"./cli-ptr8h7kp.js";
59
- import"./cli-dv6cdjs2.js";
60
- import"./cli-1a2j50m0.js";
61
- import"./cli-0wgxmwf6.js";
66
+ import"./cli-eg0b3p0k.js";
67
+ import"./cli-xk79303e.js";
62
68
  import"./cli-ywybs5as.js";
69
+ import"./cli-gd4favx9.js";
70
+ import"./cli-qrgt5bqf.js";
71
+ import"./cli-qjjvzwzd.js";
72
+ import"./cli-1a2j50m0.js";
73
+ import"./cli-f9w1semm.js";
63
74
  import"./cli-ej6gbxfb.js";
64
- import"./cli-kmcpfwn2.js";
75
+ import"./cli-jyy6pm2f.js";
65
76
  import"./cli-sd0mxa3c.js";
66
77
  import"./cli-w5e1d1vv.js";
67
- import"./cli-0q3avq3s.js";
68
- import"./cli-r2ap2czm.js";
69
- import"./cli-13hw4z91.js";
70
- import"./cli-btbzvq95.js";
71
- import"./cli-1m2e086m.js";
72
- import"./cli-ykk5jaax.js";
73
- import"./cli-bzr0ftht.js";
74
- import"./cli-bd957dgb.js";
75
- import"./cli-pzxba7gw.js";
78
+ import"./cli-sqvfa090.js";
79
+ import"./cli-nexqx4ve.js";
76
80
  import"./cli-f7kvq46p.js";
77
81
  import"./cli-zf8jjwex.js";
78
82
  import"./cli-bc05qbss.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./cli-67bad0ze.js";
5
5
  import {
6
6
  Anthropic
7
- } from "./cli-tjf4cn8z.js";
7
+ } from "./cli-zp38xvtm.js";
8
8
  import {
9
9
  getPiUserAgent
10
10
  } from "./cli-et1bbwqf.js";
@@ -26,30 +26,28 @@ import {
26
26
  getJsonSchemaToolParameters,
27
27
  resolveJsonSchemaStrictSampling,
28
28
  transformMessages
29
- } from "./cli-ybgv4kw2.js";
29
+ } from "./cli-mbssg1xv.js";
30
30
  import {
31
31
  sanitizeSurrogates
32
32
  } from "./cli-y2apkfe2.js";
33
33
  import {
34
34
  headersToRecord
35
35
  } from "./cli-7kyk9jr3.js";
36
- import {
37
- getProviderEnvValue
38
- } from "./cli-btbzvq95.js";
39
- import {
40
- parseJsonWithRepair,
41
- parseStreamingJson
42
- } from "./cli-1m2e086m.js";
43
36
  import {
44
37
  calculateCost,
45
38
  getCurrentTools,
46
- getDeclaredTools,
47
39
  getInitialSystemMessage,
48
40
  getSystemMessageText,
49
- hasToolRedefinitions,
50
41
  renderSystemMessageUpdate,
51
42
  resolveTranscript
52
43
  } from "./cli-ykk5jaax.js";
44
+ import {
45
+ getProviderEnvValue
46
+ } from "./cli-btbzvq95.js";
47
+ import {
48
+ parseJsonWithRepair,
49
+ parseStreamingJson
50
+ } from "./cli-1m2e086m.js";
53
51
  import {
54
52
  AssistantMessageEventStream,
55
53
  appendAssistantMessageDiagnostic
@@ -144,7 +142,7 @@ var INTERLEAVED_THINKING_BETA = "interleaved-thinking-2025-05-14";
144
142
  var SERVER_SIDE_FALLBACK_BETA = "server-side-fallback-2026-07-01";
145
143
  var MID_CONVERSATION_OUTPUT_CONFIG_BETA = "mid-conversation-output-config-2026-07-01";
146
144
  var THINKING_BINDING_CONTROLS_BETA = "thinking-binding-controls-2026-08-01";
147
- var MID_CONVERSATION_TOOL_CHANGES_BETA = "mid-conversation-tool-changes-2026-07-01";
145
+ var INLINE_TOOLS_BETA = "inline-tools-2026-09-15";
148
146
  var DEFERRED_TOOL_PLACEHOLDER = {
149
147
  name: "__pi_deferred_placeholder__",
150
148
  description: "Reserved placeholder. Never available. Never call this.",
@@ -804,7 +802,7 @@ function getBetaFeatures(model, context, isOAuthToken2, nativeToolChanges, optio
804
802
  features.push(MID_CONVERSATION_OUTPUT_CONFIG_BETA, THINKING_BINDING_CONTROLS_BETA);
805
803
  }
806
804
  if (nativeToolChanges)
807
- features.push(MID_CONVERSATION_TOOL_CHANGES_BETA);
805
+ features.push(INLINE_TOOLS_BETA);
808
806
  return [...new Set(features)];
809
807
  }
810
808
  function buildParams(model, context, isOAuthToken2, options) {
@@ -815,8 +813,8 @@ function buildParams(model, context, isOAuthToken2, options) {
815
813
  const transformedMessages = transformMessages(context.messages, model, normalizeToolCallId);
816
814
  const conversationMessages = initialSystemMessage ? transformedMessages.slice(1) : transformedMessages;
817
815
  const initialTools = initialSystemMessage?.toolsAdded ?? [];
818
- const nativeToolChanges = compat.supportsMidConvoSystemMessages && compat.supportsMidConvoToolChanges && initialTools.length > 0 && !hasToolRedefinitions(context.messages);
819
- const converted = convertMessages(conversationMessages, isOAuthToken2, cacheControl, compat.allowEmptySignature, model.compat?.supportsMidConvoEffort === true ? model.provider : undefined, nativeToolChanges);
816
+ const nativeToolChanges = compat.supportsMidConvoSystemMessages && compat.supportsMidConvoToolChanges && initialTools.length > 0;
817
+ const converted = convertMessages(conversationMessages, isOAuthToken2, cacheControl, compat.allowEmptySignature, model.compat?.supportsMidConvoEffort === true ? model.provider : undefined, nativeToolChanges ? (tools) => convertTools(tools, isOAuthToken2, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools) : undefined);
820
818
  const activeEffort = options?.effort ?? "high";
821
819
  const betaFeatures = getBetaFeatures(model, context, isOAuthToken2, nativeToolChanges, options);
822
820
  const params = {
@@ -855,12 +853,9 @@ function buildParams(model, context, isOAuthToken2, options) {
855
853
  }
856
854
  const toolCacheControl = compat.supportsCacheControlOnTools ? cacheControl : undefined;
857
855
  if (nativeToolChanges) {
858
- const initialNames = new Set(initialTools.map((tool) => tool.name));
859
- const laterTools = getDeclaredTools(context.messages).filter((tool) => !initialNames.has(tool.name));
860
856
  params.tools = [
861
857
  ...convertTools(initialTools, isOAuthToken2, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools, toolCacheControl),
862
- DEFERRED_TOOL_PLACEHOLDER,
863
- ...convertTools(laterTools, isOAuthToken2, compat.supportsEagerToolInputStreaming, compat.supportsStrictTools).map((tool) => ({ ...tool, defer_loading: true }))
858
+ DEFERRED_TOOL_PLACEHOLDER
864
859
  ];
865
860
  } else {
866
861
  const tools = getCurrentTools(context.messages);
@@ -924,7 +919,7 @@ function convertToolResult(msg) {
924
919
  is_error: msg.isError
925
920
  };
926
921
  }
927
- function convertMessages(transformedMessages, isOAuthToken2, cacheControl, allowEmptySignature = false, managedProvider, nativeToolChanges = false) {
922
+ function convertMessages(transformedMessages, isOAuthToken2, cacheControl, allowEmptySignature = false, managedProvider, convertToolDefinitions) {
928
923
  const params = [];
929
924
  const assistantLevels = new Map;
930
925
  const pendingSystemMessages = [];
@@ -939,18 +934,19 @@ function convertMessages(transformedMessages, isOAuthToken2, cacheControl, allow
939
934
  const blocks = [];
940
935
  if (text.length > 0)
941
936
  blocks.push({ type: "text", text: sanitizeSurrogates(text) });
942
- if (nativeToolChanges) {
937
+ if (convertToolDefinitions) {
938
+ const added = msg.toolsAdded ?? [];
939
+ const redefined = new Set(added.map((tool) => tool.name));
943
940
  for (const tool of msg.toolsRemoved ?? []) {
941
+ if (redefined.has(tool.name))
942
+ continue;
944
943
  blocks.push({
945
944
  type: "tool_removal",
946
945
  tool: { type: "tool_reference", name: isOAuthToken2 ? toClaudeCodeName(tool.name) : tool.name }
947
946
  });
948
947
  }
949
- for (const tool of msg.toolsAdded ?? []) {
950
- blocks.push({
951
- type: "tool_addition",
952
- tool: { type: "tool_reference", name: isOAuthToken2 ? toClaudeCodeName(tool.name) : tool.name }
953
- });
948
+ for (const definition of convertToolDefinitions(added)) {
949
+ blocks.push({ type: "tool_addition", tool: { type: "tool_definition", definition } });
954
950
  }
955
951
  }
956
952
  if (blocks.length > 0)
@@ -3,29 +3,32 @@ import {
3
3
  initSlackApp,
4
4
  startSlackApp,
5
5
  stopSlackApp
6
- } from "./cli-azhgzetg.js";
6
+ } from "./cli-swfmp1fx.js";
7
7
  import"./cli-q51yprfq.js";
8
8
  import"./cli-3er6gcsn.js";
9
- import"./cli-2658f6at.js";
9
+ import"./cli-cvk6yzw5.js";
10
10
  import"./cli-yatxqynm.js";
11
- import"./cli-qydf22qq.js";
11
+ import"./cli-bd957dgb.js";
12
+ import"./cli-pzxba7gw.js";
13
+ import"./cli-jf7wmv1r.js";
14
+ import"./cli-xqpk3rp7.js";
12
15
  import"./cli-3qhyh31j.js";
13
- import"./cli-ktmyrtpn.js";
14
- import"./cli-r1mxd1xh.js";
16
+ import"./cli-7af8yhav.js";
15
17
  import"./cli-n7h1kqpf.js";
16
- import"./cli-ptr8h7kp.js";
17
- import"./cli-dv6cdjs2.js";
18
- import"./cli-1a2j50m0.js";
19
- import"./cli-0wgxmwf6.js";
18
+ import"./cli-eg0b3p0k.js";
19
+ import"./cli-xk79303e.js";
20
20
  import"./cli-ywybs5as.js";
21
+ import"./cli-gd4favx9.js";
22
+ import"./cli-qrgt5bqf.js";
23
+ import"./cli-qjjvzwzd.js";
24
+ import"./cli-1a2j50m0.js";
25
+ import"./cli-f9w1semm.js";
21
26
  import"./cli-ej6gbxfb.js";
22
- import"./cli-kmcpfwn2.js";
27
+ import"./cli-jyy6pm2f.js";
23
28
  import"./cli-sd0mxa3c.js";
24
29
  import"./cli-w5e1d1vv.js";
25
- import"./cli-0q3avq3s.js";
26
- import"./cli-r2ap2czm.js";
27
- import"./cli-bd957dgb.js";
28
- import"./cli-pzxba7gw.js";
30
+ import"./cli-sqvfa090.js";
31
+ import"./cli-nexqx4ve.js";
29
32
  import"./cli-zf8jjwex.js";
30
33
  import"./cli-bc05qbss.js";
31
34
  export {