@desplega.ai/agent-swarm 1.158.0 → 1.160.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 (378) hide show
  1. package/README.md +1 -1
  2. package/dist/{acp-adapter-xaq4n6pc.js → acp-adapter-2mjwcsfh.js} +124 -27
  3. package/dist/{actions-p9hz5yat.js → actions-e43rxskr.js} +35 -30
  4. package/dist/{anthropic-messages-51pz26qe.js → anthropic-messages-5qx80j9k.js} +106 -16
  5. package/dist/{app-g26wdcz6.js → app-mc7xfagn.js} +12 -10
  6. package/dist/{assistant-wydfqkb3.js → assistant-sedkzv3b.js} +42 -31
  7. package/dist/{azure-openai-responses-8gksqtmz.js → azure-openai-responses-nfb21z9a.js} +13 -14
  8. package/dist/{boot-reembed-se8zmdcp.js → boot-reembed-cqz9swn5.js} +13 -12
  9. package/dist/{boot-reembed-g5ckg9yb.js → boot-reembed-m3656j2n.js} +14 -13
  10. package/dist/{boot-scrub-logs-wfxqan61.js → boot-scrub-logs-xbxf5d7w.js} +11 -9
  11. package/dist/boot-seeds-gsetbs5y.js +28 -0
  12. package/dist/{claude-adapter-tv2x4f36.js → claude-adapter-dc6289mc.js} +28 -23
  13. package/dist/{claude-managed-adapter-41b2s7fd.js → claude-managed-adapter-naaw51me.js} +4 -3
  14. package/dist/{claude-managed-setup-60g8aazx.js → claude-managed-setup-eacvchx0.js} +12 -3
  15. package/dist/claude-sdk-session-bqp2xvym.js +29722 -0
  16. package/dist/{cli-987hg0aa.js → cli-0jwe9034.js} +2 -2
  17. package/dist/{cli-vj6h9kc2.js → cli-0m7wct0d.js} +59 -1
  18. package/dist/{cli-c07r9a2m.js → cli-0q3avq3s.js} +12 -11
  19. package/dist/{cli-19jenss3.js → cli-0wgxmwf6.js} +31 -10
  20. package/dist/cli-0x01kwrd.js +491 -0
  21. package/dist/cli-0xqde53b.js +176 -0
  22. package/dist/cli-10nhj6xq.js +8355 -0
  23. package/dist/{cli-tt9k8r35.js → cli-12tszpk9.js} +479 -910
  24. package/dist/{cli-5b6b62tz.js → cli-13hw4z91.js} +1 -1
  25. package/dist/{cli-cqt19wg6.js → cli-1a2j50m0.js} +11 -2
  26. package/dist/{cli-xberxa1r.js → cli-25fcq4b4.js} +2 -2
  27. package/dist/{cli-npssxgaz.js → cli-2pdaysab.js} +52 -2
  28. package/dist/cli-3qhyh31j.js +166 -0
  29. package/dist/cli-447dt1h3.js +3828 -0
  30. package/dist/cli-4derpgyk.js +115 -0
  31. package/dist/{cli-00w2c66p.js → cli-523679eh.js} +13 -2
  32. package/dist/{cli-y95wp3tg.js → cli-58e8yr0d.js} +1 -1
  33. package/dist/{cli-24k806sc.js → cli-5nbmpy8w.js} +3 -3
  34. package/dist/{cli-53sz8gkz.js → cli-6cs6wzxt.js} +1 -1
  35. package/dist/cli-741yb0xx.js +1027 -0
  36. package/dist/cli-74h9hscv.js +69 -0
  37. package/dist/cli-7cxw8b60.js +14910 -0
  38. package/dist/{cli-xhaeg2nc.js → cli-7e398j1h.js} +1 -1
  39. package/dist/cli-7kyk9jr3.js +22 -0
  40. package/dist/cli-89s4ngw3.js +183 -0
  41. package/dist/{cli-9b13ggd1.js → cli-89v6kyq7.js} +1 -0
  42. package/dist/{cli-ftfvggzx.js → cli-9hsgwz4w.js} +1045 -581
  43. package/dist/{cli-rqz8qbw7.js → cli-a8dvhzrt.js} +59 -20
  44. package/dist/{cli-j57qkrpq.js → cli-azhgzetg.js} +395 -56
  45. package/dist/cli-br0qdrnp.js +2150 -0
  46. package/dist/{cli-rj19hc34.js → cli-btfv8y88.js} +1 -1
  47. package/dist/{cli-8qmme6vd.js → cli-c8a36vcc.js} +2 -2
  48. package/dist/cli-cpvsaqsw.js +333 -0
  49. package/dist/cli-d5czme6m.js +17805 -0
  50. package/dist/{cli-h38x0qhg.js → cli-et8m9xsv.js} +4 -3
  51. package/dist/{cli-x24pshtq.js → cli-evvtk35y.js} +6 -6
  52. package/dist/{cli-7s3syk22.js → cli-f8gy6r2r.js} +5 -5
  53. package/dist/{cli-zt1227k1.js → cli-fkqhbg8g.js} +5 -3
  54. package/dist/{cli-9httdpyq.js → cli-g2whhdrf.js} +1 -1
  55. package/dist/cli-gt4hxb8p.js +99 -0
  56. package/dist/{cli-s8eet254.js → cli-jajnsm8q.js} +37184 -53838
  57. package/dist/{cli-7gtvvpbh.js → cli-jayjpjmb.js} +21 -12
  58. package/dist/{cli-68w09sjw.js → cli-jyk0ynw2.js} +27 -89
  59. package/dist/{cli-aehm1rbq.js → cli-jz4w45qt.js} +1152 -61
  60. package/dist/cli-kmcpfwn2.js +333856 -0
  61. package/dist/{cli-4198qc9v.js → cli-ktmyrtpn.js} +19 -3
  62. package/dist/{cli-j55n64b6.js → cli-mfe5btp9.js} +505 -189
  63. package/dist/{cli-q67y4wzm.js → cli-phsaj4xq.js} +24 -2
  64. package/dist/{cli-1hkrch3k.js → cli-pm1rst0h.js} +46 -7
  65. package/dist/{cli-pw9rj5t9.js → cli-pqetb83f.js} +1 -176
  66. package/dist/{cli-ggm92wcn.js → cli-ptr8h7kp.js} +20 -1
  67. package/dist/{cli-s8s499xy.js → cli-qbksc292.js} +3 -2
  68. package/dist/{cli-47m6dkd3.js → cli-qydf22qq.js} +597 -346
  69. package/dist/{cli-3gmcwfyx.js → cli-r1mxd1xh.js} +13 -6
  70. package/dist/cli-rb9m6rpe.js +4980 -0
  71. package/dist/cli-rykfmgwg.js +102 -0
  72. package/dist/{cli-5d10vd2m.js → cli-shkxm1vn.js} +6 -5
  73. package/dist/{cli-eetrvv91.js → cli-t3p77qk1.js} +1 -1
  74. package/dist/cli-tfky2838.js +756 -0
  75. package/dist/{cli-g8djp6qe.js → cli-tmqt7dpj.js} +40 -0
  76. package/dist/{cli-fgqxwrpv.js → cli-tpq83z89.js} +1631 -127
  77. package/dist/cli-trc24wk2.js +143 -0
  78. package/dist/{cli-aky8tctm.js → cli-tzx2ke1v.js} +3 -3
  79. package/dist/cli-v7fn5gms.js +1425 -0
  80. package/dist/{cli-wscdvcqz.js → cli-vctdqs5h.js} +1 -1
  81. package/dist/{cli-cw9zck8j.js → cli-xjcywfsf.js} +8 -4
  82. package/dist/{cli-k0g1sjzm.js → cli-ybgv4kw2.js} +18 -11
  83. package/dist/{cli-rjehvrts.js → cli-ydmcgve1.js} +8 -8
  84. package/dist/{cli-vhjwh6cz.js → cli-ygwm91nt.js} +1 -1
  85. package/dist/{cli-mcnhgnn1.js → cli-ykk5jaax.js} +184 -26
  86. package/dist/{cli-de1396j2.js → cli-ywybs5as.js} +7 -1
  87. package/dist/cli-zpep9q5e.js +491 -0
  88. package/dist/cli.js +41 -32
  89. package/dist/cloudflare-workers-ai-system-one-k6fbxw9d.js +46 -0
  90. package/dist/{codex-adapter-cnm8wk11.js → codex-adapter-nmxcatww.js} +26 -17
  91. package/dist/{codex-hook-9hptmdhj.js → codex-hook-20me6byw.js} +2 -2
  92. package/dist/{codex-login-x3jk4etn.js → codex-login-w6fz4xbz.js} +50 -5
  93. package/dist/{codex-session-runner-gfg547zj.js → codex-session-runner-90aa80ev.js} +24 -17
  94. package/dist/{commands-e3bn0p75.js → commands-8wcq1kn7.js} +11 -9
  95. package/dist/{db-03v9kzr2.js → db-j40kc4se.js} +25 -11
  96. package/dist/{devin-adapter-8vgkwh29.js → devin-adapter-dpsv6hd9.js} +1 -1
  97. package/dist/{dispatcher-nrmg8yht.js → dispatcher-4zqy768d.js} +34 -29
  98. package/dist/{dsh-adapter-k03nfqa6.js → dsh-adapter-mpnzgztj.js} +3 -3
  99. package/dist/{e2b-93x1k0j5.js → e2b-ez07znam.js} +4 -3
  100. package/dist/execute-6e7qeyk4.js +1017 -0
  101. package/dist/{google-generative-ai-bxmv50nc.js → google-generative-ai-k6n5nbpp.js} +6 -5
  102. package/dist/{google-vertex-809af514.js → google-vertex-44xxtcvp.js} +6 -5
  103. package/dist/{handlers-aqcedbyb.js → handlers-kjdce1w5.js} +37 -32
  104. package/dist/{hook-ybvmrmhq.js → hook-czx13n12.js} +19 -15
  105. package/dist/{hook-7vkskkre.js → hook-r2t4bqfg.js} +18 -14
  106. package/dist/{http-2eqa8t24.js → http-3bbb19be.js} +900 -145
  107. package/dist/{index-f6cryxwe.js → index-4a5njnm1.js} +2 -59
  108. package/dist/{index-x71bvq0p.js → index-668me3f0.js} +35 -30
  109. package/dist/{index-c6zsv1bd.js → index-7aj368tw.js} +13 -12
  110. package/dist/{index-1yks3qcr.js → index-fg0dsp6c.js} +34 -29
  111. package/dist/{index-chgdkq36.js → index-kkv84jq9.js} +34 -29
  112. package/dist/{index-a3vn96n8.js → index-zg7vp46x.js} +198 -54
  113. package/dist/{keepalive-vtkf5n99.js → keepalive-yra8dy57.js} +13 -11
  114. package/dist/{lead-h3sp357x.js → lead-va0pad2c.js} +54 -49
  115. package/dist/llama-cpp-classify-tgj35k8d.js +335 -0
  116. package/dist/{maintenance-jzeqtk3q.js → maintenance-hqewtmyg.js} +14 -13
  117. package/dist/{mistral-conversations-zx0kn554.js → mistral-conversations-pc3ntnxt.js} +14 -17
  118. package/dist/{oauth-refresh-sweep-qp3dzmdp.js → oauth-refresh-sweep-7rdt1m9n.js} +12 -10
  119. package/dist/{onboard-tmsp0qbz.js → onboard-j6ms6d0x.js} +6 -5
  120. package/dist/{openai-codex-responses-4vjqzvjp.js → openai-codex-responses-bbancrr0.js} +21 -8
  121. package/dist/{openai-completions-9hjrqbw8.js → openai-completions-jpaj5g2b.js} +9 -12
  122. package/dist/{openai-responses-7b1pn0xt.js → openai-responses-200k1wx4.js} +23 -18
  123. package/dist/{opencode-adapter-x6x2da1z.js → opencode-adapter-89rabkw2.js} +8 -7
  124. package/dist/{openrouter-images-9f9ek4rw.js → openrouter-images-8yx3487g.js} +5 -7
  125. package/dist/{otel-impl-9mz73q65.js → otel-impl-a792rjz0.js} +1 -1
  126. package/dist/{pi-messages-txpjj39q.js → pi-messages-vxdt8v7j.js} +2 -1
  127. package/dist/{pi-mono-adapter-m6dvv0dz.js → pi-mono-adapter-g7qzvr3v.js} +295 -70
  128. package/dist/pricing-refresh-wx0tp7cb.js +39 -0
  129. package/dist/quickjs-r1pq2107.wasm +0 -0
  130. package/dist/{rbac-roles-c9wqz83x.js → rbac-roles-8tzawacv.js} +12 -10
  131. package/dist/{render-v2-gryrh9h8.js → render-v2-mm7zswb8.js} +12 -10
  132. package/dist/runtime-zyssgse0.js +24 -0
  133. package/dist/{setup-q9720bt6.js → setup-8y70ys6t.js} +6 -5
  134. package/dist/typesafe-system-one-2ef30pec.js +27 -0
  135. package/dist/{virtual-modules-3htpgn8x.js → virtual-modules-6nmk7h3n.js} +22 -13
  136. package/dist/{work-objects-b76x7deb.js → work-objects-fg6xkb0n.js} +37 -32
  137. package/dist/{worker-6vrxbv41.js → worker-wmwhxsph.js} +54 -49
  138. package/openapi.json +1314 -91
  139. package/package.json +12 -11
  140. package/src/be/db/agents.ts +20 -0
  141. package/src/be/db/api-keys.ts +70 -0
  142. package/src/be/db/tasks/human-free.ts +442 -0
  143. package/src/be/db/tasks/read.ts +56 -1
  144. package/src/be/db/tasks/write.ts +107 -11
  145. package/src/be/db.ts +274 -188
  146. package/src/be/harness-model-support.ts +182 -0
  147. package/src/be/human-free-drain.ts +67 -0
  148. package/src/be/memory/providers/sqlite-store.ts +51 -15
  149. package/src/be/migrations/182_task_human_free_flag.sql +63 -0
  150. package/src/be/migrations/183_human_free_reclassify_queue.sql +25 -0
  151. package/src/be/migrations/184_model_catalog.sql +120 -0
  152. package/src/be/migrations/185_api_key_auth_failures.sql +6 -0
  153. package/src/be/migrations/186_api_key_seat_mismatch.sql +8 -0
  154. package/src/be/model-catalog-store.ts +644 -0
  155. package/src/be/model-tier-keys.ts +46 -0
  156. package/src/be/model-tier-resolution.ts +534 -0
  157. package/src/be/model-validation.ts +188 -0
  158. package/src/be/models-catalog.ts +61 -7
  159. package/src/be/modelsdev-cache.json +82 -0
  160. package/src/be/modelsdev-cache.ts +2 -0
  161. package/src/be/pricing-refresh.ts +154 -12
  162. package/src/be/scripts/typecheck.ts +15 -0
  163. package/src/be/seed/runner.ts +18 -12
  164. package/src/be/seed/types.ts +1 -0
  165. package/src/be/seed-scripts/catalog/task-failure-audit.ts +61 -9
  166. package/src/be/swarm-config-guard.ts +8 -0
  167. package/src/cli.tsx +10 -0
  168. package/src/commands/claude-managed-setup.ts +3 -1
  169. package/src/commands/codex-login.ts +67 -0
  170. package/src/commands/credential-outcome-report.ts +191 -0
  171. package/src/commands/rate-limit-outcome.ts +34 -4
  172. package/src/commands/runner.ts +357 -186
  173. package/src/commands/seat-mismatch-report.ts +46 -0
  174. package/src/extensions/apply-task-create.ts +27 -1
  175. package/src/extensions/contract-types.generated.ts +1 -1
  176. package/src/heartbeat/heartbeat.ts +79 -17
  177. package/src/heartbeat/templates.ts +2 -2
  178. package/src/http/agents.ts +62 -1
  179. package/src/http/api-keys.ts +140 -2
  180. package/src/http/codex-oauth-keep-warm.ts +3 -5
  181. package/src/http/index.ts +8 -0
  182. package/src/http/memory.ts +12 -5
  183. package/src/http/models-catalog.ts +357 -8
  184. package/src/http/poll.ts +54 -3
  185. package/src/http/schedules.ts +51 -6
  186. package/src/http/script-runs.ts +12 -0
  187. package/src/http/session-data.ts +2 -5
  188. package/src/http/stats.ts +6 -8
  189. package/src/http/status.ts +15 -1
  190. package/src/http/tasks.ts +90 -7
  191. package/src/http/usage-cache.ts +56 -15
  192. package/src/http/workflows.ts +46 -8
  193. package/src/mcp-client/http-client.ts +5 -0
  194. package/src/memory/recall-query.ts +74 -0
  195. package/src/prompts/base-prompt.ts +15 -4
  196. package/src/prompts/session-templates.ts +23 -1
  197. package/src/providers/acp-adapter.ts +1 -0
  198. package/src/providers/claude-adapter.ts +14 -5
  199. package/src/providers/claude-managed-adapter.ts +1 -0
  200. package/src/providers/claude-managed-models.ts +47 -161
  201. package/src/providers/claude-sdk-session.ts +3 -1
  202. package/src/providers/codex-adapter.ts +14 -14
  203. package/src/providers/codex-models.ts +65 -198
  204. package/src/providers/devin-adapter.ts +1 -0
  205. package/src/providers/dsh-adapter.ts +2 -1
  206. package/src/providers/harness-version.ts +83 -7
  207. package/src/providers/opencode-adapter.ts +53 -1
  208. package/src/providers/pi-binary-root/src/extensions/codemode/worker.ts +11 -0
  209. package/src/providers/pi-codemode-runtime.ts +17 -0
  210. package/src/providers/pi-mono-adapter.ts +361 -83
  211. package/src/providers/pi-mono-extension.ts +16 -1
  212. package/src/providers/reasoning-effort.ts +44 -140
  213. package/src/providers/types.ts +8 -0
  214. package/src/rbac/legacy-policy.ts +43 -0
  215. package/src/rbac/permissions.ts +15 -0
  216. package/src/scripts-runtime/sdk-allowlist.ts +4 -0
  217. package/src/scripts-runtime/types/stdlib.d.ts +15 -0
  218. package/src/scripts-runtime/types/swarm-extension.d.ts +3 -0
  219. package/src/scripts-runtime/types/swarm-sdk.d.ts +15 -0
  220. package/src/server.ts +6 -0
  221. package/src/slack/assistant.ts +13 -0
  222. package/src/slack/message-text.ts +56 -2
  223. package/src/slack/render-v2.ts +87 -37
  224. package/src/slack/session-status.ts +541 -0
  225. package/src/slack/thread-buffer.ts +10 -2
  226. package/src/tasks/sibling-awareness.ts +3 -2
  227. package/src/telemetry.ts +5 -4
  228. package/src/templates.d.ts +6 -0
  229. package/src/tests/agents-list-model-display.test.ts +4 -6
  230. package/src/tests/api-key-auth-failure-route.test.ts +142 -0
  231. package/src/tests/api-key-tracking.test.ts +368 -1
  232. package/src/tests/base-prompt.test.ts +43 -2
  233. package/src/tests/claude-adapter.test.ts +68 -0
  234. package/src/tests/claude-managed-adapter.test.ts +12 -18
  235. package/src/tests/codex-adapter.test.ts +2 -1
  236. package/src/tests/codex-auth-failure.test.ts +52 -0
  237. package/src/tests/codex-gpt6-release.test.ts +66 -5
  238. package/src/tests/codex-login.test.ts +116 -0
  239. package/src/tests/context-window.test.ts +7 -5
  240. package/src/tests/credential-exhaustion-policy.test.ts +118 -3
  241. package/src/tests/credential-outcome-report.test.ts +171 -0
  242. package/src/tests/credential-status-api.test.ts +103 -2
  243. package/src/tests/db-extraction-contract.test.ts +1 -0
  244. package/src/tests/db-task-read-contract.test.ts +10 -1
  245. package/src/tests/db-task-write-contract.test.ts +535 -2
  246. package/src/tests/docs-index-footprint.test.js +3 -3
  247. package/src/tests/dokploy-deploy.test.ts +315 -0
  248. package/src/tests/dsh-adapter.test.ts +1 -1
  249. package/src/tests/explicit-model-validation.test.ts +583 -0
  250. package/src/tests/extensions-pre-task.test.ts +73 -0
  251. package/src/tests/fetch-resolved-env.test.ts +46 -0
  252. package/src/tests/hang-watchdog-worker.ts +47 -0
  253. package/src/tests/hang-watchdog.test.ts +45 -0
  254. package/src/tests/hang-watchdog.ts +30 -0
  255. package/src/tests/harness-model-guard.test.ts +123 -0
  256. package/src/tests/harness-model-support.test.ts +374 -0
  257. package/src/tests/harness-version.test.ts +70 -3
  258. package/src/tests/heartbeat-checklist-config.test.ts +71 -0
  259. package/src/tests/heartbeat-checklist.test.ts +4 -2
  260. package/src/tests/heartbeat-orphan-resume.test.ts +48 -0
  261. package/src/tests/http-task-write-ownership.test.ts +172 -0
  262. package/src/tests/human-free-flag.test.ts +279 -0
  263. package/src/tests/human-free-oracle.ts +57 -0
  264. package/src/tests/human-free-reclassify.test.ts +669 -0
  265. package/src/tests/memory-fts-populate.test.ts +139 -0
  266. package/src/tests/memory-http-recall-gating.test.ts +125 -1
  267. package/src/tests/migration-046-budgets.test.ts +3 -3
  268. package/src/tests/model-catalog-migration.test.ts +134 -0
  269. package/src/tests/model-catalog-table.test.ts +249 -0
  270. package/src/tests/model-catalog-write-access.test.ts +387 -0
  271. package/src/tests/model-rate-limit-windows.test.ts +19 -0
  272. package/src/tests/model-tier-resolution.test.ts +611 -0
  273. package/src/tests/models-catalog.test.ts +1 -1
  274. package/src/tests/multi-runtime-enabled-stats.test.ts +65 -1
  275. package/src/tests/opencode-adapter.test.ts +157 -2
  276. package/src/tests/package-publish.test.ts +137 -36
  277. package/src/tests/pi-codemode.test.ts +246 -0
  278. package/src/tests/pi-mono-adapter.test.ts +3 -0
  279. package/src/tests/pi-native-mcp.test.ts +193 -0
  280. package/src/tests/pi-tool-exposure.test.ts +374 -0
  281. package/src/tests/preload.ts +3 -0
  282. package/src/tests/pricing-routes.test.ts +2 -2
  283. package/src/tests/prompt-template-session.test.ts +5 -3
  284. package/src/tests/rate-limit-event.test.ts +65 -0
  285. package/src/tests/rate-limit-outcome.test.ts +90 -0
  286. package/src/tests/rbac-engine.test.ts +77 -3
  287. package/src/tests/reasoning-effort.test.ts +109 -0
  288. package/src/tests/refresh-modelsdev-carryforward.test.ts +5 -5
  289. package/src/tests/runner-key-completion-outcome.test.ts +112 -0
  290. package/src/tests/runner-key-outcome-late-reset.test.ts +224 -0
  291. package/src/tests/runner-registration-retry.test.ts +149 -0
  292. package/src/tests/runtime-model-catalog.test.ts +86 -0
  293. package/src/tests/script-connections.test.ts +9 -0
  294. package/src/tests/seat-mismatch-report.test.ts +85 -0
  295. package/src/tests/seed-scripts.test.ts +138 -0
  296. package/src/tests/seed.test.ts +25 -0
  297. package/src/tests/session-costs.test.ts +14 -11
  298. package/src/tests/slack-message-text.test.ts +101 -0
  299. package/src/tests/slack-render-v2.test.ts +96 -0
  300. package/src/tests/slack-session-status.test.ts +626 -0
  301. package/src/tests/slack-thread-buffer-context.test.ts +93 -0
  302. package/src/tests/status.test.ts +29 -0
  303. package/src/tests/steering-promotion.test.ts +51 -0
  304. package/src/tests/store-progress-ownership.test.ts +136 -0
  305. package/src/tests/subscription-plans.test.ts +28 -0
  306. package/src/tests/task-cascade-fail.test.ts +148 -2
  307. package/src/tests/task-citations.test.ts +3 -2
  308. package/src/tests/tool-annotations.test.ts +1 -1
  309. package/src/tests/usage-cache.test.ts +166 -0
  310. package/src/tests/workflow-agent-task.test.ts +30 -0
  311. package/src/tests/workflow-executors.test.ts +5 -2
  312. package/src/tests/workflow-system-one-decision-review.test.ts +1021 -0
  313. package/src/tests/workflow-system-one-decision-save-warnings.test.ts +365 -0
  314. package/src/tests/workflow-system-one-decision.test.ts +2063 -0
  315. package/src/tests/workflow-triggers-v2.test.ts +320 -0
  316. package/src/tools/model-catalog/index.ts +137 -0
  317. package/src/tools/schedules/create-schedule.ts +17 -2
  318. package/src/tools/schedules/patch-schedule.ts +31 -1
  319. package/src/tools/schedules/update-schedule.ts +31 -1
  320. package/src/tools/send-task.ts +18 -1
  321. package/src/tools/store-progress.ts +49 -4
  322. package/src/tools/task-action.ts +14 -1
  323. package/src/tools/tool-config.ts +3 -1
  324. package/src/tools/workflows/create-workflow.ts +17 -4
  325. package/src/tools/workflows/patch-workflow-node.ts +17 -7
  326. package/src/tools/workflows/patch-workflow.ts +9 -2
  327. package/src/tools/workflows/update-workflow.ts +17 -4
  328. package/src/types.ts +41 -1
  329. package/src/utils/codex-auth-failure.ts +34 -0
  330. package/src/utils/context-window.ts +47 -53
  331. package/src/utils/credentials.ts +72 -30
  332. package/src/utils/error-tracker.ts +80 -0
  333. package/src/utils/harness-cli-version.ts +115 -0
  334. package/src/utils/harness-model-error.ts +33 -0
  335. package/src/utils/model-rate-limit-windows.ts +12 -0
  336. package/src/utils/runtime-model-catalog.ts +152 -0
  337. package/src/utils/spawn-model-guard.ts +43 -0
  338. package/src/utils/subscription-plans.ts +22 -0
  339. package/src/workflows/approval-resolution.ts +39 -0
  340. package/src/workflows/definition.ts +7 -0
  341. package/src/workflows/engine.ts +69 -1
  342. package/src/workflows/executors/agent-task.ts +16 -6
  343. package/src/workflows/executors/base.ts +53 -0
  344. package/src/workflows/executors/human-in-the-loop.ts +8 -8
  345. package/src/workflows/executors/index.ts +1 -0
  346. package/src/workflows/executors/registry.ts +2 -0
  347. package/src/workflows/executors/system-one-decision.ts +1232 -0
  348. package/src/workflows/executors/system-one-providers.ts +301 -0
  349. package/src/workflows/executors/workflow-llm.ts +13 -1
  350. package/src/workflows/model-validation.ts +45 -0
  351. package/src/workflows/patch-definition.ts +5 -0
  352. package/src/workflows/readiness.ts +86 -0
  353. package/src/workflows/recovery.ts +12 -12
  354. package/src/workflows/resume.ts +23 -9
  355. package/src/workflows/triggers.ts +85 -0
  356. package/templates/schedules/daily-blocker-digest/content.md +4 -5
  357. package/templates/skills/agent-browser/SKILL.md +6 -5
  358. package/templates/skills/agent-browser/content.md +6 -5
  359. package/templates/skills/heartbeat-runbook/config.json +1 -1
  360. package/templates/skills/heartbeat-runbook/content.md +2 -2
  361. package/templates/skills/swarm-scripts/SKILL.md +1 -1
  362. package/templates/skills/swarm-scripts/content.md +1 -1
  363. package/templates/skills/workflow-iterate/content.md +82 -1
  364. package/templates/workflows/claude-code-changelog-watch/content.md +2 -0
  365. package/templates/workflows/pr-review-status-sweep/content.md +2 -0
  366. package/dist/boot-seeds-s3q01xj3.js +0 -26
  367. package/dist/claude-sdk-session-t442qz6f.js +0 -39108
  368. package/dist/cli-0xjkj1j7.js +0 -61
  369. package/dist/cli-20cj37vt.js +0 -335561
  370. package/dist/cli-2djtr51b.js +0 -48
  371. package/dist/cli-65hjmev5.js +0 -1141
  372. package/dist/cli-aw1jwp1r.js +0 -14075
  373. package/dist/cli-h967nb6r.js +0 -6603
  374. package/dist/cli-vapyk8sw.js +0 -20
  375. package/dist/cli-ws6rqycm.js +0 -247
  376. package/dist/pricing-refresh-v1cbr9te.js +0 -27
  377. package/src/providers/modelsdev-reasoning.json +0 -6453
  378. package/dist/{index-f24115ge.js → index-2wsdsnmm.js} +3 -3
@@ -1,63 +1,90 @@
1
+ import {
2
+ readPkgVersion
3
+ } from "./cli-gt4hxb8p.js";
1
4
  import {
2
5
  DefaultResourceLoader,
3
6
  ModelRuntime,
4
7
  SessionManager,
8
+ SettingsManager,
5
9
  createAgentSession,
6
- getAgentDir
7
- } from "./cli-s8eet254.js";
8
- import"./cli-5bfdm1ah.js";
10
+ createCodemodeExtension,
11
+ createMcpExtension,
12
+ createToolSearchExtension
13
+ } from "./cli-jajnsm8q.js";
14
+ import"./cli-0x01kwrd.js";
15
+ import"./cli-741yb0xx.js";
16
+ import"./cli-447dt1h3.js";
9
17
  import {
10
- readPkgVersion
11
- } from "./cli-2djtr51b.js";
18
+ getAgentDir,
19
+ setEmbeddedQuickJSWasmPath
20
+ } from "./cli-d5czme6m.js";
21
+ import"./cli-5bfdm1ah.js";
22
+ import"./cli-0m7wct0d.js";
12
23
  import {
13
24
  summarizeSession
14
- } from "./cli-cw9zck8j.js";
25
+ } from "./cli-xjcywfsf.js";
15
26
  import {
16
27
  checkToolLoop,
17
28
  clearToolHistory
18
29
  } from "./cli-hp1n6zq3.js";
30
+ import {
31
+ fetchInstalledMcpServers
32
+ } from "./cli-tng3131n.js";
19
33
  import {
20
34
  applyReasoningEffort
21
- } from "./cli-h967nb6r.js";
22
- import"./cli-vj6h9kc2.js";
35
+ } from "./cli-4derpgyk.js";
23
36
  import"./cli-7nxes1hs.js";
24
37
  import {
25
38
  buildRatingsFromLlm,
26
39
  fetchRetrievalsForTask,
27
40
  getMemoryRaterNames,
28
41
  postRatings
29
- } from "./cli-tt9k8r35.js";
30
- import"./cli-vhjwh6cz.js";
42
+ } from "./cli-cpvsaqsw.js";
31
43
  import {
32
44
  swarmRuntimeInstanceId
33
45
  } from "./cli-re8z5p8p.js";
46
+ import {
47
+ McpHttpClient
48
+ } from "./cli-epan13p1.js";
49
+ import"./cli-12tszpk9.js";
50
+ import"./cli-ygwm91nt.js";
34
51
  import {
35
52
  DEFAULT_OPENROUTER_BASE_URL,
36
53
  getOpenRouterBaseUrl
37
54
  } from "./cli-3dpj7atn.js";
38
55
  import {
39
- exports_typebox,
40
56
  getBuiltinModel,
41
57
  getBuiltinModels
42
- } from "./cli-aw1jwp1r.js";
58
+ } from "./cli-10nhj6xq.js";
43
59
  import {
44
- McpHttpClient
45
- } from "./cli-epan13p1.js";
60
+ exports_typebox
61
+ } from "./cli-rb9m6rpe.js";
62
+ import"./cli-rykfmgwg.js";
46
63
  import"./cli-bsakbbkm.js";
64
+ import"./cli-trc24wk2.js";
47
65
  import"./cli-3er6gcsn.js";
48
- import"./cli-cqt19wg6.js";
49
- import"./cli-ej6gbxfb.js";
66
+ import {
67
+ CORE_TOOLS,
68
+ init_tool_config
69
+ } from "./cli-3qhyh31j.js";
70
+ import"./cli-1a2j50m0.js";
71
+ import {
72
+ init_env_flag,
73
+ parseEnvFlag
74
+ } from "./cli-ej6gbxfb.js";
75
+ import"./cli-kmcpfwn2.js";
50
76
  import"./cli-sd0mxa3c.js";
51
77
  import"./cli-w5e1d1vv.js";
52
78
  import {
53
79
  init_secret_scrubber,
54
80
  scrubSecrets
55
81
  } from "./cli-r2ap2czm.js";
56
- import"./cli-pw9rj5t9.js";
57
- import"./cli-5b6b62tz.js";
82
+ import"./cli-0xqde53b.js";
83
+ import"./cli-pqetb83f.js";
84
+ import"./cli-13hw4z91.js";
58
85
  import"./cli-btbzvq95.js";
59
86
  import"./cli-1m2e086m.js";
60
- import"./cli-mcnhgnn1.js";
87
+ import"./cli-ykk5jaax.js";
61
88
  import"./cli-bzr0ftht.js";
62
89
  import {
63
90
  __require,
@@ -68,6 +95,15 @@ import {
68
95
  import { existsSync, lstatSync, symlinkSync, unlinkSync } from "node:fs";
69
96
  import { join } from "node:path";
70
97
 
98
+ // node_modules/quickjs-wasi/quickjs.wasm
99
+ var quickjs_default = "./quickjs-r1pq2107.wasm";
100
+
101
+ // src/providers/pi-codemode-runtime.ts
102
+ setEmbeddedQuickJSWasmPath(quickjs_default);
103
+
104
+ // src/providers/pi-mono-adapter.ts
105
+ init_tool_config();
106
+
71
107
  // src/utils/aws-error-classifier.ts
72
108
  var AWS_ERROR_RULES = [
73
109
  {
@@ -121,6 +157,7 @@ function classifyAwsSdkError(text) {
121
157
  }
122
158
 
123
159
  // src/providers/pi-mono-adapter.ts
160
+ init_env_flag();
124
161
  init_secret_scrubber();
125
162
 
126
163
  // src/providers/pi-mono-extension.ts
@@ -394,6 +431,13 @@ function createSwarmHooksExtension(config) {
394
431
  return (pi) => {
395
432
  let lastContextPostTime = 0;
396
433
  pi.on("session_start", async (_event, _ctx) => {
434
+ for (const [name, server] of Object.entries(config.mcpServers ?? {})) {
435
+ try {
436
+ pi.registerMcpServer(name, server);
437
+ } catch (err) {
438
+ console.warn(`[pi] Failed to register MCP server "${name}": ${err}`);
439
+ }
440
+ }
397
441
  fireAndForget(`${config.apiUrl}/ping`, {
398
442
  method: "POST",
399
443
  headers: apiHeaders(config)
@@ -692,12 +736,27 @@ async function checkPiMonoCredentials(env, opts = {}) {
692
736
  function jsonSchemaToTypeBox(schema) {
693
737
  return exports_typebox.Unsafe(schema);
694
738
  }
695
- function mcpToolsToDefinitions(mcpClient, tools) {
739
+ var SWARM_TOOL_NAMESPACE = { name: "agent-swarm" };
740
+ function isPiToolDeferralEnabled(env = process.env) {
741
+ return parseEnvFlag(env.PI_TOOL_DEFERRAL, false);
742
+ }
743
+ function isPiCodemodeEnabled(env = process.env) {
744
+ return parseEnvFlag(env.PI_CODEMODE, false);
745
+ }
746
+ function isCoreSwarmTool(tool) {
747
+ return CORE_TOOLS.has(tool.name) || tool._meta?.["anthropic/alwaysLoad"] === true;
748
+ }
749
+ function mcpToolsToDefinitions(mcpClient, tools, options = {}) {
696
750
  return tools.map((tool) => ({
697
751
  name: tool.name,
698
752
  label: tool.name,
699
753
  description: tool.description || tool.name,
700
754
  parameters: jsonSchemaToTypeBox(tool.inputSchema),
755
+ ...tool.outputSchema && { outputSchema: jsonSchemaToTypeBox(tool.outputSchema) },
756
+ ...options.namespace && { namespace: options.namespace },
757
+ ...options.deferNonCore && {
758
+ exposure: isCoreSwarmTool(tool) ? "direct" : "deferred"
759
+ },
701
760
  async execute(_toolCallId, params) {
702
761
  const result = await mcpClient.callTool(tool.name, params);
703
762
  const text = result.content.map((c) => c.text ?? "").filter(Boolean).join(`
@@ -707,7 +766,10 @@ function mcpToolsToDefinitions(mcpClient, tools) {
707
766
  }
708
767
  return {
709
768
  content: [{ type: "text", text: text || "(no output)" }],
710
- details: undefined
769
+ details: undefined,
770
+ ...result.structuredContent && {
771
+ structuredContent: result.structuredContent
772
+ }
711
773
  };
712
774
  }
713
775
  }));
@@ -1192,20 +1254,181 @@ class PiMonoSession {
1192
1254
  }
1193
1255
  }
1194
1256
  }
1257
+ function createSwarmMcpExtension() {
1258
+ return createMcpExtension({
1259
+ loadConfig: () => ({ servers: [], errors: [], autoEnableCodemode: false })
1260
+ });
1261
+ }
1262
+ function piExtensionFactories(swarmExtension, features) {
1263
+ const factories = [swarmExtension];
1264
+ if (features.toolDeferral)
1265
+ factories.push(createToolSearchExtension());
1266
+ if (features.installedMcp)
1267
+ factories.push(createSwarmMcpExtension());
1268
+ if (features.codemode)
1269
+ factories.push(createBoundedCodemodeExtension());
1270
+ return factories;
1271
+ }
1272
+ var PI_CODEMODE_TIMEOUT_MS = 120000;
1273
+ var PI_CODEMODE_MAX_NESTED_CALLS = 32;
1274
+ var PI_CODEMODE_MAX_CONCURRENT_CALLS = 4;
1275
+ var DEFAULT_CODEMODE_LIMITS = {
1276
+ timeoutMs: PI_CODEMODE_TIMEOUT_MS,
1277
+ maxNestedCalls: PI_CODEMODE_MAX_NESTED_CALLS,
1278
+ maxConcurrentCalls: PI_CODEMODE_MAX_CONCURRENT_CALLS
1279
+ };
1280
+ function createBoundedCodemodeExtension(limits = DEFAULT_CODEMODE_LIMITS) {
1281
+ const codemode = createCodemodeExtension({ mode: "on", models: false });
1282
+ return (pi) => codemode(new Proxy(pi, {
1283
+ get(target, prop) {
1284
+ if (prop === "registerTool") {
1285
+ return (tool) => target.registerTool(boundCodemodeTool(tool, limits));
1286
+ }
1287
+ const value = Reflect.get(target, prop, target);
1288
+ return typeof value === "function" ? value.bind(target) : value;
1289
+ }
1290
+ }));
1291
+ }
1292
+ function boundCodemodeTool(tool, limits) {
1293
+ return {
1294
+ ...tool,
1295
+ execute: async (toolCallId, params, signal, onUpdate, ctx) => {
1296
+ const script = new AbortController;
1297
+ const stop = (message) => {
1298
+ if (!script.signal.aborted)
1299
+ script.abort(new Error(message));
1300
+ };
1301
+ const onOuterAbort = () => script.abort(signal?.reason ?? new Error("Codemode script cancelled"));
1302
+ if (signal?.aborted)
1303
+ onOuterAbort();
1304
+ else
1305
+ signal?.addEventListener("abort", onOuterAbort, { once: true });
1306
+ const timer = setTimeout(() => stop(`Codemode script exceeded its ${limits.timeoutMs} ms deadline`), limits.timeoutMs);
1307
+ let started = 0;
1308
+ let running = 0;
1309
+ const waiters = [];
1310
+ const release = () => {
1311
+ running--;
1312
+ waiters.shift()?.();
1313
+ };
1314
+ const executeTool = async (name, args, options) => {
1315
+ if (script.signal.aborted)
1316
+ throw new Error("Codemode script already stopped");
1317
+ if (++started > limits.maxNestedCalls) {
1318
+ const message = `Codemode script exceeded its budget of ${limits.maxNestedCalls} nested tool calls`;
1319
+ stop(message);
1320
+ throw new Error(message);
1321
+ }
1322
+ while (running >= limits.maxConcurrentCalls) {
1323
+ await new Promise((resolve) => {
1324
+ waiters.push(resolve);
1325
+ script.signal.addEventListener("abort", () => resolve(), { once: true });
1326
+ });
1327
+ if (script.signal.aborted) {
1328
+ waiters.shift()?.();
1329
+ throw new Error("Codemode script already stopped");
1330
+ }
1331
+ }
1332
+ running++;
1333
+ try {
1334
+ return await ctx.executeTool(name, args, {
1335
+ ...options,
1336
+ signal: options?.signal ?? script.signal
1337
+ });
1338
+ } finally {
1339
+ release();
1340
+ }
1341
+ };
1342
+ const boundedCtx = ctx ? Object.defineProperties({}, {
1343
+ ...Object.getOwnPropertyDescriptors(ctx),
1344
+ executeTool: { value: executeTool, enumerable: true }
1345
+ }) : ctx;
1346
+ try {
1347
+ return await tool.execute(toolCallId, params, script.signal, onUpdate, boundedCtx);
1348
+ } finally {
1349
+ clearTimeout(timer);
1350
+ signal?.removeEventListener("abort", onOuterAbort);
1351
+ }
1352
+ }
1353
+ };
1354
+ }
1355
+ function escapePiConfigValue(value) {
1356
+ const escaped = value.replace(/\$/g, () => "$$");
1357
+ return escaped.startsWith("!") ? `$${escaped}` : escaped;
1358
+ }
1359
+ function escapeValues(values) {
1360
+ const out = {};
1361
+ if (!values || typeof values !== "object")
1362
+ return out;
1363
+ for (const [key, value] of Object.entries(values)) {
1364
+ if (typeof value === "string")
1365
+ out[key] = escapePiConfigValue(value);
1366
+ }
1367
+ return out;
1368
+ }
1369
+ function toPiMcpServers(installed) {
1370
+ const servers = {};
1371
+ for (const [name, entry] of Object.entries(installed ?? {})) {
1372
+ if (typeof entry.command === "string") {
1373
+ servers[name] = {
1374
+ type: "stdio",
1375
+ command: entry.command,
1376
+ args: Array.isArray(entry.args) ? entry.args.map(String) : [],
1377
+ env: escapeValues(entry.env),
1378
+ exposure: "direct"
1379
+ };
1380
+ } else if (typeof entry.url === "string") {
1381
+ servers[name] = {
1382
+ type: "http",
1383
+ url: entry.url,
1384
+ headers: escapeValues(entry.headers),
1385
+ exposure: "direct"
1386
+ };
1387
+ }
1388
+ }
1389
+ return servers;
1390
+ }
1391
+ function piDefaultToolAdditions(features) {
1392
+ const additions = [];
1393
+ if (features.toolDeferral)
1394
+ additions.push("+tool_search");
1395
+ if (features.codemode)
1396
+ additions.push("+codemode");
1397
+ return additions;
1398
+ }
1399
+ async function createPiResourceLoader(opts) {
1400
+ const settingsManager = SettingsManager.create(opts.cwd, opts.agentDir, {
1401
+ projectTrusted: false
1402
+ });
1403
+ const resourceLoader = new DefaultResourceLoader({
1404
+ cwd: opts.cwd,
1405
+ agentDir: opts.agentDir,
1406
+ settingsManager,
1407
+ noContextFiles: true,
1408
+ appendSystemPrompt: opts.systemPrompt ? [opts.systemPrompt] : undefined,
1409
+ extensionFactories: opts.extensionFactories
1410
+ });
1411
+ await resourceLoader.reload();
1412
+ return { resourceLoader, settingsManager };
1413
+ }
1195
1414
 
1196
1415
  class PiMonoAdapter {
1197
1416
  name = "pi";
1198
- traits = {
1199
- hasMcp: true,
1200
- nativeSkillDiscovery: true,
1201
- hasLocalEnvironment: true,
1202
- steerModes: ["steer", "queue"]
1203
- };
1417
+ get traits() {
1418
+ return {
1419
+ hasMcp: true,
1420
+ hasToolSearch: isPiToolDeferralEnabled(),
1421
+ nativeSkillDiscovery: true,
1422
+ hasLocalEnvironment: true,
1423
+ steerModes: ["steer", "queue"]
1424
+ };
1425
+ }
1204
1426
  lastCwd = ".";
1205
1427
  async createSession(config) {
1206
1428
  this.lastCwd = config.cwd;
1207
1429
  console.log(`\x1B[2m[${config.role}]\x1B[0m \x1B[35m▸\x1B[0m Spawning pi-mono for task ${config.taskId.slice(0, 8)}`);
1208
1430
  const createdSymlink = createAgentsMdSymlink(config.cwd);
1431
+ const deferTools = isPiToolDeferralEnabled();
1209
1432
  let customTools = [];
1210
1433
  if (config.apiUrl && config.apiKey) {
1211
1434
  try {
@@ -1216,47 +1439,20 @@ class PiMonoAdapter {
1216
1439
  }
1217
1440
  await mcpClient.initialize();
1218
1441
  const tools = await mcpClient.listTools();
1219
- customTools = mcpToolsToDefinitions(mcpClient, tools);
1220
- console.log(`\x1B[2m[${config.role}]\x1B[0m Discovered ${tools.length} MCP tools from swarm`);
1442
+ customTools = mcpToolsToDefinitions(mcpClient, tools, {
1443
+ deferNonCore: deferTools,
1444
+ namespace: SWARM_TOOL_NAMESPACE
1445
+ });
1446
+ const deferredCount = deferTools ? tools.filter((t) => !isCoreSwarmTool(t)).length : 0;
1447
+ console.log(`\x1B[2m[${config.role}]\x1B[0m Discovered ${tools.length} MCP tools from swarm` + (deferTools ? ` (${deferredCount} deferred behind tool_search)` : ""));
1221
1448
  } catch (err) {
1222
1449
  console.warn(`\x1B[33m[${config.role}] Failed to discover MCP tools: ${err}\x1B[0m`);
1223
1450
  }
1224
- try {
1225
- const mcpServersRes = await fetch(`${config.apiUrl}/api/agents/${config.agentId}/mcp-servers?resolveSecrets=true`, {
1226
- headers: {
1227
- Authorization: `Bearer ${config.apiKey}`,
1228
- "X-Agent-ID": config.agentId
1229
- }
1230
- });
1231
- if (mcpServersRes.ok) {
1232
- const mcpServersData = await mcpServersRes.json();
1233
- const httpServers = mcpServersData.servers.filter((s) => s.isActive && s.isEnabled && (s.transport === "http" || s.transport === "sse") && s.url);
1234
- for (const srv of httpServers) {
1235
- try {
1236
- const srvClient = new McpHttpClient(srv.url, "", "");
1237
- srvClient.useRawUrl = true;
1238
- let parsedHeaders = {};
1239
- try {
1240
- parsedHeaders = srv.headers ? JSON.parse(srv.headers) : {};
1241
- } catch {}
1242
- srvClient.customHeaders = {
1243
- ...parsedHeaders,
1244
- ...srv.resolvedHeaders || {}
1245
- };
1246
- await srvClient.initialize();
1247
- const srvTools = await srvClient.listTools();
1248
- const prefixed = mcpToolsToDefinitions(srvClient, srvTools).map((t) => ({
1249
- ...t,
1250
- name: `mcp__${srv.name}__${t.name}`
1251
- }));
1252
- customTools.push(...prefixed);
1253
- console.log(`\x1B[2m[${config.role}]\x1B[0m Discovered ${srvTools.length} tools from MCP server "${srv.name}"`);
1254
- } catch (srvErr) {
1255
- console.warn(`\x1B[33m[${config.role}] Failed to discover tools from MCP server "${srv.name}": ${srvErr}\x1B[0m`);
1256
- }
1257
- }
1258
- }
1259
- } catch {}
1451
+ }
1452
+ const installedMcpServers = config.apiUrl && config.apiKey && config.agentId ? await fetchInstalledMcpServers(config.apiUrl, config.apiKey, config.agentId, "claude") : null;
1453
+ const piMcpServers = toPiMcpServers(installedMcpServers);
1454
+ if (Object.keys(piMcpServers).length > 0) {
1455
+ console.log(`\x1B[2m[${config.role}]\x1B[0m Registering ${Object.keys(piMcpServers).length} installed MCP server(s) with pi`);
1260
1456
  }
1261
1457
  const sessionEnv = config.env ?? process.env;
1262
1458
  await ensureOpenRouterModelsOverride(getAgentDir(), sessionEnv);
@@ -1269,14 +1465,27 @@ class PiMonoAdapter {
1269
1465
  agentId: config.agentId,
1270
1466
  taskId: config.taskId,
1271
1467
  isLead: config.role === "lead",
1272
- env: sessionEnv
1468
+ env: sessionEnv,
1469
+ mcpServers: piMcpServers
1273
1470
  });
1274
- const resourceLoader = new DefaultResourceLoader({
1471
+ const features = {
1472
+ toolDeferral: deferTools,
1473
+ installedMcp: Object.keys(piMcpServers).length > 0,
1474
+ codemode: isPiCodemodeEnabled()
1475
+ };
1476
+ if (features.codemode) {
1477
+ console.log(`\x1B[2m[${config.role}]\x1B[0m codemode on`);
1478
+ }
1479
+ const { resourceLoader, settingsManager } = await createPiResourceLoader({
1275
1480
  cwd: config.cwd,
1276
1481
  agentDir: getAgentDir(),
1277
- appendSystemPrompt: config.systemPrompt ? [config.systemPrompt] : undefined,
1278
- extensionFactories: [swarmExtension]
1482
+ systemPrompt: config.systemPrompt,
1483
+ extensionFactories: piExtensionFactories(swarmExtension, features)
1279
1484
  });
1485
+ const extraDefaultTools = piDefaultToolAdditions(features);
1486
+ if (extraDefaultTools.length > 0) {
1487
+ settingsManager.applyOverrides({ defaultTools: extraDefaultTools });
1488
+ }
1280
1489
  const reasoningApplication = applyReasoningEffort("pi", config.model, config.reasoningEffort);
1281
1490
  const reasoningSessionOptions = reasoningApplication.kind === "pi-session" ? reasoningApplication.sessionOptions : {};
1282
1491
  const appliedReasoningEffort = reasoningApplication.kind === "pi-session" ? config.reasoningEffort ?? null : null;
@@ -1285,10 +1494,12 @@ class PiMonoAdapter {
1285
1494
  model,
1286
1495
  customTools,
1287
1496
  resourceLoader,
1497
+ settingsManager,
1288
1498
  modelRuntime,
1289
1499
  ...reasoningSessionOptions
1290
1500
  };
1291
1501
  const { session } = await createAgentSession(sessionOptions);
1502
+ await session.bindExtensions({});
1292
1503
  return new PiMonoSession(session, config, createdSymlink, appliedReasoningEffort);
1293
1504
  }
1294
1505
  async canResume(sessionId) {
@@ -1305,13 +1516,27 @@ class PiMonoAdapter {
1305
1516
  }
1306
1517
  }
1307
1518
  export {
1519
+ PI_CODEMODE_MAX_CONCURRENT_CALLS,
1520
+ PI_CODEMODE_MAX_NESTED_CALLS,
1521
+ PI_CODEMODE_TIMEOUT_MS,
1308
1522
  PiMonoAdapter,
1309
1523
  PiMonoSession,
1524
+ SWARM_TOOL_NAMESPACE,
1525
+ boundCodemodeTool,
1310
1526
  checkPiMonoCredentials,
1527
+ createBoundedCodemodeExtension,
1528
+ createPiResourceLoader,
1311
1529
  createPiRuntimeAuth,
1530
+ createSwarmMcpExtension,
1312
1531
  ensureOpenRouterModelsOverride,
1313
1532
  extractPiAssistantText,
1533
+ isCoreSwarmTool,
1534
+ isPiCodemodeEnabled,
1535
+ isPiToolDeferralEnabled,
1314
1536
  mcpToolsToDefinitions,
1537
+ piDefaultToolAdditions,
1538
+ piExtensionFactories,
1315
1539
  resolveModel,
1316
- runBedrockSdkProbeAndEnumerate
1540
+ runBedrockSdkProbeAndEnumerate,
1541
+ toPiMcpServers
1317
1542
  };
@@ -0,0 +1,39 @@
1
+ import {
2
+ MODEL_CATALOG_FORCE_COOLDOWN_MS,
3
+ MODEL_CATALOG_FRESH_MS,
4
+ PRICING_REFRESH_INTERVAL_MS,
5
+ refreshModelCatalog,
6
+ refreshPricingFromModelsDev,
7
+ requestModelCatalogRefresh,
8
+ resetModelCatalogRefreshGuardForTests,
9
+ startPricingRefreshLoop
10
+ } from "./cli-tfky2838.js";
11
+ import"./cli-vctdqs5h.js";
12
+ import"./cli-qydf22qq.js";
13
+ import"./cli-3qhyh31j.js";
14
+ import"./cli-ktmyrtpn.js";
15
+ import"./cli-r1mxd1xh.js";
16
+ import"./cli-n7h1kqpf.js";
17
+ import"./cli-ptr8h7kp.js";
18
+ import"./cli-dv6cdjs2.js";
19
+ import"./cli-1a2j50m0.js";
20
+ import"./cli-0wgxmwf6.js";
21
+ import"./cli-ywybs5as.js";
22
+ import"./cli-ej6gbxfb.js";
23
+ import"./cli-kmcpfwn2.js";
24
+ import"./cli-sd0mxa3c.js";
25
+ import"./cli-w5e1d1vv.js";
26
+ import"./cli-0q3avq3s.js";
27
+ import"./cli-r2ap2czm.js";
28
+ import"./cli-zf8jjwex.js";
29
+ import"./cli-bc05qbss.js";
30
+ export {
31
+ MODEL_CATALOG_FORCE_COOLDOWN_MS,
32
+ MODEL_CATALOG_FRESH_MS,
33
+ PRICING_REFRESH_INTERVAL_MS,
34
+ refreshModelCatalog,
35
+ refreshPricingFromModelsDev,
36
+ requestModelCatalogRefresh,
37
+ resetModelCatalogRefreshGuardForTests,
38
+ startPricingRefreshLoop
39
+ };
Binary file
@@ -1,26 +1,28 @@
1
1
  import {
2
2
  PermissionVerbSchema
3
- } from "./cli-g8djp6qe.js";
3
+ } from "./cli-tmqt7dpj.js";
4
4
  import {
5
5
  getDb,
6
6
  getDbClient,
7
7
  init_db
8
- } from "./cli-47m6dkd3.js";
9
- import"./cli-4198qc9v.js";
10
- import"./cli-3gmcwfyx.js";
11
- import"./cli-ggm92wcn.js";
12
- import"./cli-19jenss3.js";
13
- import"./cli-dv6cdjs2.js";
8
+ } from "./cli-qydf22qq.js";
9
+ import"./cli-3qhyh31j.js";
10
+ import"./cli-ktmyrtpn.js";
11
+ import"./cli-r1mxd1xh.js";
14
12
  import"./cli-n7h1kqpf.js";
15
- import"./cli-de1396j2.js";
16
- import"./cli-cqt19wg6.js";
13
+ import"./cli-ptr8h7kp.js";
14
+ import"./cli-dv6cdjs2.js";
15
+ import"./cli-1a2j50m0.js";
16
+ import"./cli-0wgxmwf6.js";
17
+ import"./cli-ywybs5as.js";
17
18
  import {
18
19
  init_env_flag,
19
20
  isEnvFlagEnabled
20
21
  } from "./cli-ej6gbxfb.js";
22
+ import"./cli-kmcpfwn2.js";
21
23
  import"./cli-sd0mxa3c.js";
22
24
  import"./cli-w5e1d1vv.js";
23
- import"./cli-c07r9a2m.js";
25
+ import"./cli-0q3avq3s.js";
24
26
  import"./cli-r2ap2czm.js";
25
27
  import"./cli-zf8jjwex.js";
26
28
  import"./cli-bc05qbss.js";
@@ -16,24 +16,26 @@ import {
16
16
  slackErrorSummary,
17
17
  streamOutcomeCard,
18
18
  withStatusLead
19
- } from "./cli-j57qkrpq.js";
19
+ } from "./cli-azhgzetg.js";
20
20
  import"./cli-q51yprfq.js";
21
21
  import"./cli-3er6gcsn.js";
22
22
  import"./cli-2658f6at.js";
23
23
  import"./cli-yatxqynm.js";
24
- import"./cli-47m6dkd3.js";
25
- import"./cli-4198qc9v.js";
26
- import"./cli-3gmcwfyx.js";
27
- import"./cli-ggm92wcn.js";
28
- import"./cli-19jenss3.js";
29
- import"./cli-dv6cdjs2.js";
24
+ import"./cli-qydf22qq.js";
25
+ import"./cli-3qhyh31j.js";
26
+ import"./cli-ktmyrtpn.js";
27
+ import"./cli-r1mxd1xh.js";
30
28
  import"./cli-n7h1kqpf.js";
31
- import"./cli-de1396j2.js";
32
- import"./cli-cqt19wg6.js";
29
+ import"./cli-ptr8h7kp.js";
30
+ import"./cli-dv6cdjs2.js";
31
+ import"./cli-1a2j50m0.js";
32
+ import"./cli-0wgxmwf6.js";
33
+ import"./cli-ywybs5as.js";
33
34
  import"./cli-ej6gbxfb.js";
35
+ import"./cli-kmcpfwn2.js";
34
36
  import"./cli-sd0mxa3c.js";
35
37
  import"./cli-w5e1d1vv.js";
36
- import"./cli-c07r9a2m.js";
38
+ import"./cli-0q3avq3s.js";
37
39
  import"./cli-r2ap2czm.js";
38
40
  import"./cli-bd957dgb.js";
39
41
  import"./cli-pzxba7gw.js";
@@ -0,0 +1,24 @@
1
+ import {
2
+ McpOAuthCredentialStore,
3
+ McpServerConnection,
4
+ McpServerLog,
5
+ McpSignInCancelledError,
6
+ createDefaultTransport,
7
+ signInMcpServer
8
+ } from "./cli-v7fn5gms.js";
9
+ import"./cli-447dt1h3.js";
10
+ import"./cli-d5czme6m.js";
11
+ import"./cli-5bfdm1ah.js";
12
+ import"./cli-0m7wct0d.js";
13
+ import"./cli-rykfmgwg.js";
14
+ import"./cli-0xqde53b.js";
15
+ import"./cli-pqetb83f.js";
16
+ import"./cli-bc05qbss.js";
17
+ export {
18
+ McpOAuthCredentialStore,
19
+ McpServerConnection,
20
+ McpServerLog,
21
+ McpSignInCancelledError,
22
+ createDefaultTransport,
23
+ signInMcpServer
24
+ };
@@ -4,14 +4,14 @@ import {
4
4
  createDefaultMcpJson,
5
5
  createDefaultSettingsLocal,
6
6
  createHooksConfig
7
- } from "./cli-9httdpyq.js";
7
+ } from "./cli-g2whhdrf.js";
8
8
  import {
9
9
  require_jsx_dev_runtime
10
- } from "./cli-eetrvv91.js";
10
+ } from "./cli-t3p77qk1.js";
11
11
  import {
12
12
  getApiKey
13
13
  } from "./cli-f14fvzag.js";
14
- import"./cli-c07r9a2m.js";
14
+ import"./cli-0q3avq3s.js";
15
15
  import {
16
16
  Box_default,
17
17
  Spinner,
@@ -19,8 +19,9 @@ import {
19
19
  TextInput,
20
20
  require_react,
21
21
  use_app_default
22
- } from "./cli-zt1227k1.js";
23
- import"./cli-pw9rj5t9.js";
22
+ } from "./cli-fkqhbg8g.js";
23
+ import"./cli-0xqde53b.js";
24
+ import"./cli-pqetb83f.js";
24
25
  import {
25
26
  __toESM
26
27
  } from "./cli-bc05qbss.js";