@desplega.ai/agent-swarm 1.165.0 → 1.167.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 (296) hide show
  1. package/dist/acp-adapter-zpvy6321.js +34 -0
  2. package/dist/{actions-jna0b3wm.js → actions-fq2zrwtf.js} +30 -34
  3. package/dist/{amp-adapter-0eve81pz.js → amp-adapter-5gbk7501.js} +7 -7
  4. package/dist/{anthropic-messages-hst62ws9.js → anthropic-messages-13yn502s.js} +4 -4
  5. package/dist/{app-75hm5cfa.js → app-nctetn1e.js} +11 -11
  6. package/dist/{assistant-yzd51j33.js → assistant-0aq8gjvj.js} +31 -35
  7. package/dist/{azure-openai-responses-mh8tvf78.js → azure-openai-responses-9st34pfz.js} +5 -5
  8. package/dist/{boot-reembed-z158xq32.js → boot-reembed-1ze5853n.js} +14 -16
  9. package/dist/{boot-reembed-2ex2mcsh.js → boot-reembed-fmp5ww69.js} +15 -16
  10. package/dist/boot-scrub-sweep-cbp8xd4e.js +212 -0
  11. package/dist/{boot-seeds-2bmnh18p.js → boot-seeds-22tx8a53.js} +13 -12
  12. package/dist/{claude-adapter-jbj1mycz.js → claude-adapter-0jhgeh1d.js} +25 -25
  13. package/dist/{claude-managed-adapter-17ggz09t.js → claude-managed-adapter-tzwxy803.js} +5 -5
  14. package/dist/{claude-managed-setup-ptm1nzm2.js → claude-managed-setup-nrhfx5b0.js} +5 -5
  15. package/dist/{claude-sdk-session-9re1g7r2.js → claude-sdk-session-wh77rh83.js} +2632 -2614
  16. package/dist/{cli-zsh093hk.js → cli-014vns2y.js} +63 -1
  17. package/dist/{cli-qvfk83fy.js → cli-13xwcqvj.js} +2 -2
  18. package/dist/{cli-8gpbwy09.js → cli-1yrcfa5s.js} +5 -5
  19. package/dist/{cli-xtgtyafv.js → cli-577bxkf6.js} +212 -451
  20. package/dist/{cli-ma3zvh39.js → cli-5qkcdv8c.js} +6118 -5874
  21. package/dist/{cli-cwxhbf43.js → cli-5t5my0h8.js} +85 -2
  22. package/dist/{cli-zvckv750.js → cli-69egj654.js} +2 -2
  23. package/dist/{cli-9xb89xca.js → cli-6bpvv8h4.js} +9 -9
  24. package/dist/{cli-90v942q1.js → cli-6qxmjpem.js} +8 -8
  25. package/dist/{cli-9866bd07.js → cli-6vfz44sr.js} +1 -1
  26. package/dist/{cli-32bca7nr.js → cli-7avy4v8w.js} +1 -1
  27. package/dist/{cli-xb3c6aat.js → cli-7mhy3ths.js} +21 -18
  28. package/dist/{cli-q38n4bq0.js → cli-95zs84qw.js} +3 -3
  29. package/dist/cli-a35hzdve.js +33 -0
  30. package/dist/{cli-x3x0qwky.js → cli-bxqez1p0.js} +51 -23
  31. package/dist/{cli-prt9emct.js → cli-c2tpw9ck.js} +3 -3
  32. package/dist/{cli-0n4fasz0.js → cli-c8r99akr.js} +16 -16
  33. package/dist/{cli-5anb0ev3.js → cli-cexctgn5.js} +89 -26
  34. package/dist/{cli-bns5c8k9.js → cli-cf2vgn9d.js} +105 -91
  35. package/dist/{cli-ng97fjq7.js → cli-cmxkbzzs.js} +33 -7
  36. package/dist/{cli-nexwh8zg.js → cli-g7k7zbcz.js} +12 -5
  37. package/dist/{cli-mmzwwptd.js → cli-hf5s9pgf.js} +1 -1
  38. package/dist/{cli-nvvfd8bq.js → cli-jbzbr36n.js} +4091 -3793
  39. package/dist/{cli-zn2v3t8v.js → cli-jvmtxqtc.js} +27 -15
  40. package/dist/{cli-pkke6geq.js → cli-km4x66j0.js} +83 -65
  41. package/dist/cli-kw0jcfje.js +516 -0
  42. package/dist/{cli-28smfvbn.js → cli-m7vmeepg.js} +32 -19
  43. package/dist/{cli-hpryr6em.js → cli-mb75wpxf.js} +1 -1
  44. package/dist/{cli-qdv8kgz7.js → cli-mkdsy1nq.js} +14018 -3333
  45. package/dist/{cli-b0f70z24.js → cli-mn8qkd8v.js} +1 -1
  46. package/dist/{cli-420bdgw0.js → cli-mv2520nm.js} +1 -1
  47. package/dist/{cli-n9ehc28t.js → cli-mxry91sa.js} +31 -10
  48. package/dist/{cli-wfajtmf7.js → cli-mxvnnv5q.js} +596 -13
  49. package/dist/cli-nkqjj42q.js +104 -0
  50. package/dist/{cli-e7t4snpa.js → cli-p8rt8spp.js} +5 -5
  51. package/dist/{cli-gh5yqzpe.js → cli-pkj1w46r.js} +12 -7
  52. package/dist/cli-q1vnz8wv.js +96 -0
  53. package/dist/{cli-fj86xr3c.js → cli-qd97v6z2.js} +2 -2
  54. package/dist/{cli-ba66wyhy.js → cli-qzmzwegq.js} +60 -20
  55. package/dist/{cli-5b2fjjzh.js → cli-r7eeddkq.js} +14 -9
  56. package/dist/{cli-8ssjez7e.js → cli-rhy7z1rp.js} +22 -11
  57. package/dist/{cli-4mevd1hf.js → cli-s9y81s7j.js} +5 -5
  58. package/dist/{cli-59jn5twa.js → cli-tc5zec7v.js} +7 -7
  59. package/dist/{cli-ttbsse3f.js → cli-tmhsxhb8.js} +1 -1
  60. package/dist/{cli-k6xx3pve.js → cli-tx2zvn23.js} +4 -4
  61. package/dist/{cli-pjxnr1jn.js → cli-ty4bzkqr.js} +5 -5
  62. package/dist/{cli-nfygw434.js → cli-v1pwxreq.js} +55 -52
  63. package/dist/{cli-ftry7975.js → cli-v1w7pbd8.js} +3 -2
  64. package/dist/{cli-10zmp1p7.js → cli-vr5avem2.js} +27 -32
  65. package/dist/{cli-bzr0ftht.js → cli-wnb9b2g3.js} +19 -0
  66. package/dist/cli-wt7ccy4r.js +2654 -0
  67. package/dist/{cli-50eg13rj.js → cli-wydz3feg.js} +549 -321
  68. package/dist/{cli-krqm5f11.js → cli-xezn9nkh.js} +16 -13
  69. package/dist/{cli-8kt0bmgx.js → cli-xf713zz0.js} +2 -2
  70. package/dist/{cli-x7afk5wm.js → cli-xvc3q9br.js} +1 -1
  71. package/dist/{cli-9s3h836g.js → cli-xvdgasgy.js} +1 -1
  72. package/dist/{cli-j0pdrmwg.js → cli-y0kjpfm9.js} +3 -3
  73. package/dist/{cli-6zcfw0x7.js → cli-y195hv1a.js} +1 -1
  74. package/dist/{cli-amwhs8h2.js → cli-ykt8f7va.js} +22 -9
  75. package/dist/{cli-1kzfvd1z.js → cli-ymmc1zxg.js} +15 -11
  76. package/dist/{cli-xnzrzets.js → cli-ypgba1a8.js} +2 -2
  77. package/dist/{cli-bdv39kgj.js → cli-z1dqhc9y.js} +31 -20
  78. package/dist/{cli-fw6vdcq5.js → cli-zp67qg5x.js} +34 -1
  79. package/dist/{cli-qbksc292.js → cli-zy39d433.js} +2 -0
  80. package/dist/cli.js +36 -32
  81. package/dist/{cloudflare-workers-ai-system-one-tt484t61.js → cloudflare-workers-ai-system-one-sta45jf9.js} +7 -5
  82. package/dist/{codex-adapter-3qnxshje.js → codex-adapter-cgesnjkr.js} +20 -20
  83. package/dist/{codex-login-brkxhhdg.js → codex-login-g1cyt5zm.js} +2 -2
  84. package/dist/{codex-session-runner-612wnapp.js → codex-session-runner-8kd7ddhr.js} +20 -20
  85. package/dist/{commands-2ybfcxkj.js → commands-h6zaaxym.js} +11 -10
  86. package/dist/{cursor-adapter-p3jgdehv.js → cursor-adapter-v8mm6bp5.js} +7 -7
  87. package/dist/{db-f4ans0jj.js → db-qg3myn53.js} +13 -10
  88. package/dist/{devin-adapter-dhzt01ff.js → devin-adapter-bffjj5n4.js} +2 -2
  89. package/dist/{dispatcher-pk182apd.js → dispatcher-7vnwj9qw.js} +28 -32
  90. package/dist/{dsh-adapter-7twaeps1.js → dsh-adapter-tz6hfp5r.js} +7 -7
  91. package/dist/{e2b-y8t3jzyz.js → e2b-nd50eccg.js} +1 -1
  92. package/dist/{easter-egg-3d-mtpnw06s.js → easter-egg-3d-66zxervv.js} +2 -2
  93. package/dist/{event-bus-w7ac4n3c.js → event-bus-vnfthafg.js} +2 -2
  94. package/dist/{execute-s4ccjq3n.js → execute-h4jgevyw.js} +61 -11
  95. package/dist/{google-generative-ai-d6nphg3q.js → google-generative-ai-b8zxrpax.js} +5 -5
  96. package/dist/{google-vertex-cpshkref.js → google-vertex-nrdd697t.js} +5 -5
  97. package/dist/grok-adapter-jdt2dz2s.js +39 -0
  98. package/dist/{handlers-g2wnr4t9.js → handlers-2qtkpncr.js} +31 -35
  99. package/dist/{hook-f7jt9vnm.js → hook-51yfcgsv.js} +48 -39
  100. package/dist/{hook-bbdpnkb4.js → hook-qnbdgwvd.js} +15 -17
  101. package/dist/{http-w40q4w94.js → http-jsmtag08.js} +536 -231
  102. package/dist/{index-056j5kzn.js → index-2t9kesn1.js} +13 -12
  103. package/dist/{index-cj1r9q83.js → index-bt8wkv1w.js} +29 -33
  104. package/dist/{index-7n70jwbb.js → index-cx1sb9bq.js} +42 -35
  105. package/dist/{index-9bfssf54.js → index-ekywyv2v.js} +28 -32
  106. package/dist/{index-fdk1t4d6.js → index-n0rxa4ca.js} +11962 -9900
  107. package/dist/{index-k8xc083e.js → index-t4g06w93.js} +28 -32
  108. package/dist/{keepalive-1tj10tf4.js → keepalive-4aezx4bj.js} +16 -12
  109. package/dist/{lead-st0bg7v4.js → lead-r44bkpm5.js} +52 -56
  110. package/dist/{llama-cpp-classify-tgj35k8d.js → llama-cpp-classify-6erb7wwv.js} +3 -1
  111. package/dist/{maintenance-nz71zats.js → maintenance-grz5jrzh.js} +12 -13
  112. package/dist/{mistral-conversations-8445ddjn.js → mistral-conversations-059y51zt.js} +4 -4
  113. package/dist/{node-f0ykebbv.js → node-qm9eb6z0.js} +25 -7
  114. package/dist/{oauth-refresh-sweep-aefzwvvq.js → oauth-refresh-sweep-wm4ctjfj.js} +15 -11
  115. package/dist/{onboard-kgpr9mbn.js → onboard-v60zgqf0.js} +2 -2
  116. package/dist/{openai-codex-responses-9ynm88zy.js → openai-codex-responses-jzxkta9b.js} +8 -7
  117. package/dist/{openai-completions-nhqwjmaw.js → openai-completions-663yncfq.js} +4 -4
  118. package/dist/openai-decisions-vj9nkpf8.js +162 -0
  119. package/dist/{openai-responses-xx1c4kgm.js → openai-responses-m3g43rrt.js} +5 -5
  120. package/dist/{opencode-adapter-0c8e70dk.js → opencode-adapter-yjyqynzf.js} +8 -8
  121. package/dist/{openrouter-images-8yx3487g.js → openrouter-images-kr60n6b9.js} +1 -1
  122. package/dist/{otel-impl-x8zp4y5a.js → otel-impl-ghh4dyf8.js} +2 -2
  123. package/dist/{pi-messages-vxdt8v7j.js → pi-messages-xszk613n.js} +1 -1
  124. package/dist/{pi-mono-adapter-t280ah5c.js → pi-mono-adapter-0eg8kw2c.js} +69 -52
  125. package/dist/{pricing-refresh-9e0q7cwk.js → pricing-refresh-mjrqvnvw.js} +12 -11
  126. package/dist/{rbac-roles-790j3ga8.js → rbac-roles-axv4d74x.js} +11 -10
  127. package/dist/{rbac-roles-kcp6zge2.js → rbac-roles-fd5tskj9.js} +11 -10
  128. package/dist/{render-v2-tch4nefj.js → render-v2-k50j33qd.js} +11 -11
  129. package/dist/{runtime-v2t1r79e.js → runtime-h9ha1mq6.js} +4 -4
  130. package/dist/{setup-rcm303ns.js → setup-4syh0pd2.js} +2 -2
  131. package/dist/{typesafe-system-one-datfr82p.js → typesafe-system-one-e988vty7.js} +7 -5
  132. package/dist/{virtual-modules-wm8mxdxx.js → virtual-modules-ftr9kwe8.js} +11 -11
  133. package/dist/{work-objects-ctg7t70w.js → work-objects-jcdbg8rr.js} +32 -36
  134. package/dist/{worker-5dp0xm55.js → worker-x8j8c9sx.js} +52 -56
  135. package/dist/{x-v3yw66zs.js → x-ma4gnfgy.js} +2 -2
  136. package/openapi.json +5 -2
  137. package/package.json +15 -11
  138. package/src/be/automation-preflight.ts +9 -4
  139. package/src/be/boot-scrub-sweep.ts +302 -0
  140. package/src/be/crypto/key-bootstrap.ts +1 -1
  141. package/src/be/db/approvals.ts +15 -1
  142. package/src/be/db/codex-oauth-device-flows.ts +40 -0
  143. package/src/be/db/config-secrets.ts +31 -0
  144. package/src/be/db/runtime.ts +4 -0
  145. package/src/be/db/script-runs.ts +15 -0
  146. package/src/be/db/tasks/write.ts +1 -1
  147. package/src/be/db-queries/mcp-oauth.ts +5 -0
  148. package/src/be/db-queries/oauth.ts +77 -0
  149. package/src/be/db.ts +162 -59
  150. package/src/be/events.ts +17 -1
  151. package/src/be/memory/index-content.ts +2 -2
  152. package/src/be/memory/providers/openai-embedding.ts +7 -2
  153. package/src/be/memory/providers/sqlite-store.ts +63 -11
  154. package/src/be/memory/raters/llm-summarizer.ts +7 -2
  155. package/src/be/memory/types.ts +14 -0
  156. package/src/be/migrations/201_workflow_replay_columns.sql +10 -0
  157. package/src/be/migrations/202_codex_oauth_device_flows.sql +24 -0
  158. package/src/be/modelsdev-cache.json +61 -0
  159. package/src/be/scripts/db.ts +28 -4
  160. package/src/be/scripts/source-secrets.ts +37 -0
  161. package/src/be/scrub-json.ts +32 -0
  162. package/src/be/sealed-json.ts +59 -0
  163. package/src/be/secret-registry.ts +131 -0
  164. package/src/be/seed-pricing.ts +84 -53
  165. package/src/be/swarm-config-guard.ts +13 -0
  166. package/src/be/workflow-replay.ts +77 -0
  167. package/src/commands/provider-credentials.ts +28 -5
  168. package/src/commands/runner.ts +7 -12
  169. package/src/heartbeat/heartbeat.ts +91 -19
  170. package/src/hooks/hook.ts +72 -27
  171. package/src/http/codex-oauth-device.ts +8 -10
  172. package/src/http/db-query-bounded.ts +3 -0
  173. package/src/http/db-query-shared.ts +107 -15
  174. package/src/http/db-query.ts +10 -2
  175. package/src/http/index.ts +23 -6
  176. package/src/http/mcp.ts +5 -0
  177. package/src/http/onboarding.ts +2 -0
  178. package/src/http/script-runs.ts +9 -1
  179. package/src/http/scripts.ts +15 -0
  180. package/src/http/workflows.ts +3 -2
  181. package/src/oauth/mcp-wrapper.ts +1 -1
  182. package/src/providers/acp-adapter.ts +25 -11
  183. package/src/providers/acp-target-catalog.ts +35 -1
  184. package/src/providers/acp-targets.ts +78 -7
  185. package/src/providers/amp-adapter.ts +1 -1
  186. package/src/providers/claude-adapter.ts +26 -0
  187. package/src/providers/codex-adapter.ts +30 -3
  188. package/src/providers/codex-oauth/auth-json.ts +21 -4
  189. package/src/providers/codex-oauth/types.ts +2 -0
  190. package/src/providers/cursor-adapter.ts +1 -1
  191. package/src/providers/dsh-adapter.ts +10 -1
  192. package/src/providers/grok-adapter.ts +18 -2
  193. package/src/providers/opencode-adapter.ts +21 -5
  194. package/src/providers/pi-mono-extension.ts +56 -25
  195. package/src/providers/pricing-sources.md +2 -0
  196. package/src/script-workflows/supervisor.ts +11 -2
  197. package/src/scripts-runtime/eval-harness.ts +2 -12
  198. package/src/scripts-runtime/executors/quickjs-bundle.ts +152 -0
  199. package/src/scripts-runtime/executors/quickjs-prelude.ts +285 -0
  200. package/src/scripts-runtime/executors/quickjs-runner.ts +580 -0
  201. package/src/scripts-runtime/executors/quickjs-worker.ts +81 -0
  202. package/src/scripts-runtime/executors/quickjs.ts +196 -0
  203. package/src/scripts-runtime/executors/registry.ts +2 -0
  204. package/src/scripts-runtime/executors/sourcemap.ts +79 -0
  205. package/src/scripts-runtime/script-error-hints.ts +14 -0
  206. package/src/server.ts +66 -4
  207. package/src/tests/acp-adapter.test.ts +277 -12
  208. package/src/tests/boot-scrub-sweep.test.ts +390 -0
  209. package/src/tests/check-text-columns.test.ts +145 -0
  210. package/src/tests/ci-unit-test-report.test.ts +73 -0
  211. package/src/tests/claude-default-route.test.ts +75 -0
  212. package/src/tests/claude-hook-output.test.ts +233 -0
  213. package/src/tests/claude-sdk-process.fixture.ts +13 -2
  214. package/src/tests/codex-adapter-pool-auth-revalidate.test.ts +4 -2
  215. package/src/tests/codex-adapter.test.ts +166 -26
  216. package/src/tests/codex-oauth-auth-timestamps.test.ts +76 -0
  217. package/src/tests/codex-oauth-device.test.ts +23 -37
  218. package/src/tests/codex-oauth.test.ts +4 -1
  219. package/src/tests/context-window.test.ts +2 -2
  220. package/src/tests/credential-check.test.ts +51 -1
  221. package/src/tests/db-query-denylist.test.ts +202 -0
  222. package/src/tests/db-task-read-contract.test.ts +1 -0
  223. package/src/tests/db-task-write-contract.test.ts +1 -0
  224. package/src/tests/dsh-adapter.test.ts +23 -1
  225. package/src/tests/enabled-tools.test.ts +269 -0
  226. package/src/tests/entrypoint-acp-target-binary.test.ts +31 -1
  227. package/src/tests/entrypoint-codex-oauth-seed.test.ts +12 -0
  228. package/src/tests/events-scrub.test.ts +88 -0
  229. package/src/tests/fixtures/secret-corpus.ts +320 -0
  230. package/src/tests/grok-adapter.test.ts +13 -0
  231. package/src/tests/haiku-5-5-pricing.test.ts +38 -0
  232. package/src/tests/heartbeat-checklist.test.ts +158 -1
  233. package/src/tests/onboarding.test.ts +44 -0
  234. package/src/tests/opencode-adapter.test.ts +66 -3
  235. package/src/tests/opencode-plugin.test.ts +37 -0
  236. package/src/tests/openrouter-attribution-call-sites.test.ts +204 -0
  237. package/src/tests/openrouter-base-url.test.ts +30 -39
  238. package/src/tests/pi-mono-extension.test.ts +161 -2
  239. package/src/tests/pricing-refresh.test.ts +70 -1
  240. package/src/tests/reasoning-effort.test.ts +3 -1
  241. package/src/tests/script-connections.test.ts +5 -0
  242. package/src/tests/script-executor-conformance.test.ts +3 -0
  243. package/src/tests/script-executor-quickjs.test.ts +442 -0
  244. package/src/tests/script-executor-registry.test.ts +6 -1
  245. package/src/tests/script-runs-http.test.ts +88 -1
  246. package/src/tests/script-runs-scrub.test.ts +275 -0
  247. package/src/tests/scripts-http.test.ts +82 -1
  248. package/src/tests/scrubbed-text-12e.test.ts +289 -0
  249. package/src/tests/sealed-key-guard.test.ts +166 -0
  250. package/src/tests/secret-canary-sweep.test.ts +958 -0
  251. package/src/tests/secret-registry.test.ts +355 -0
  252. package/src/tests/secret-rules.test.ts +230 -0
  253. package/src/tests/secret-scrubber.test.ts +3 -2
  254. package/src/tests/telemetry-trigger.test.ts +12 -1
  255. package/src/tests/workflow-llm.test.ts +14 -0
  256. package/src/tests/workflow-replay.test.ts +518 -0
  257. package/src/tests/workflow-scrub.test.ts +242 -0
  258. package/src/tests/workflow-system-one-decision-providers.test.ts +33 -0
  259. package/src/tools/db-query.ts +1 -1
  260. package/src/tools/inject-learning.ts +1 -1
  261. package/src/tools/request-human-input.ts +7 -2
  262. package/src/tools/workflows/get-workflow-run.ts +3 -2
  263. package/src/types.ts +1 -1
  264. package/src/utils/enabled-tools.ts +27 -0
  265. package/src/utils/internal-ai/complete-structured.ts +11 -3
  266. package/src/utils/openrouter-base-url.ts +23 -0
  267. package/src/utils/secret-rules.generated.ts +2055 -0
  268. package/src/utils/secret-scrubber.ts +363 -29
  269. package/src/workflows/engine.ts +39 -4
  270. package/src/workflows/executors/raw-llm.ts +1 -0
  271. package/src/workflows/executors/system-one-decision.ts +2 -0
  272. package/src/workflows/executors/validate.ts +1 -0
  273. package/src/workflows/executors/workflow-llm.ts +9 -2
  274. package/src/workflows/recovery.ts +10 -1
  275. package/src/workflows/resume.ts +62 -3
  276. package/src/workflows/retry-poller.ts +3 -0
  277. package/templates/skills/agent-browser/SKILL.md +2 -0
  278. package/templates/skills/agent-browser/content.md +2 -0
  279. package/templates/skills/code-quality/content.md +1 -0
  280. package/templates/skills/heartbeat-runbook/content.md +1 -1
  281. package/templates/skills/work-on-task/SKILL.md +4 -0
  282. package/templates/skills/work-on-task/content.md +4 -0
  283. package/templates/skills/workflow-iterate/content.md +9 -0
  284. package/dist/acp-adapter-w6zws6me.js +0 -23
  285. package/dist/boot-scrub-logs-246yn076.js +0 -99
  286. package/dist/cli-3a4m1aws.js +0 -572
  287. package/dist/cli-3dpj7atn.js +0 -11
  288. package/dist/cli-a87b04k8.js +0 -951
  289. package/dist/cli-cvk6yzw5.js +0 -40
  290. package/dist/cli-gvcgmx69.js +0 -183
  291. package/dist/cli-h1spv8v4.js +0 -427
  292. package/dist/cli-jqt9hrnz.js +0 -168
  293. package/dist/cli-yhmwmv0g.js +0 -9281
  294. package/dist/grok-adapter-yt9pab3k.js +0 -29
  295. package/src/be/boot-scrub-logs.ts +0 -132
  296. package/dist/{codex-hook-d2rkvf39.js → codex-hook-15dgc4cb.js} +1 -1
@@ -5,14 +5,14 @@ import {
5
5
  CONTEXT_FORMULA,
6
6
  clampContextPercent,
7
7
  computeContextUsedUnified
8
- } from "./cli-32bca7nr.js";
8
+ } from "./cli-7avy4v8w.js";
9
9
  import {
10
10
  applyReasoningEffort
11
- } from "./cli-ttbsse3f.js";
11
+ } from "./cli-tmhsxhb8.js";
12
12
  import {
13
13
  ampBillsCacheWrites,
14
14
  resolveAmpModel
15
- } from "./cli-420bdgw0.js";
15
+ } from "./cli-mv2520nm.js";
16
16
  import {
17
17
  swarmRuntimeInstanceId
18
18
  } from "./cli-re8z5p8p.js";
@@ -28,7 +28,7 @@ import {
28
28
  init_secret_scrubber,
29
29
  registerVolatileSecret,
30
30
  scrubSecrets
31
- } from "./cli-h1spv8v4.js";
31
+ } from "./cli-wt7ccy4r.js";
32
32
 
33
33
  // src/providers/amp-adapter.ts
34
34
  import { existsSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
@@ -36,7 +36,7 @@ import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
36
36
  import { tmpdir } from "node:os";
37
37
  import { join } from "node:path";
38
38
  init_secret_scrubber();
39
- var AMP_PACKAGE = "@ampcode/cli@0.0.1791360091-gfb32ce";
39
+ var AMP_PACKAGE = "@ampcode/cli@0.0.1791460855-g1f688c";
40
40
  var AMP_MCP_SERVER_NAME = "agent-swarm";
41
41
  var AMP_PLUGIN_MODE_KEY = "agent-swarm";
42
42
  var AMP_LIVE_TEST_TIMEOUT_MS = 5000;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getDb,
3
- init_db
4
- } from "./cli-qdv8kgz7.js";
3
+ init_db1 as init_db
4
+ } from "./cli-mkdsy1nq.js";
5
5
 
6
6
  // src/be/seed-pricing.ts
7
7
  init_db();
@@ -152,16 +152,47 @@ function projectCostBlock(provider, model, cost, opts = {}) {
152
152
  }
153
153
  return rows;
154
154
  }
155
- function buildModelsDevSeedRows(cache) {
155
+ function outranksSource(candidate, current, key) {
156
+ const a = candidate.toLowerCase();
157
+ const b = current.toLowerCase();
158
+ if (a === key !== (b === key))
159
+ return a === key;
160
+ return a > b;
161
+ }
162
+ function collapseNormalizedIds(sourced) {
163
+ const modelKey = (row) => `${row.provider}\x00${row.model}`;
164
+ const winners = new Map;
165
+ for (const { sourceId, row } of sourced) {
166
+ const current = winners.get(modelKey(row));
167
+ if (current === undefined || outranksSource(sourceId, current, row.model)) {
168
+ winners.set(modelKey(row), sourceId);
169
+ }
170
+ }
171
+ const seen = new Set;
156
172
  const rows = [];
173
+ for (const { sourceId, row } of sourced) {
174
+ if (winners.get(modelKey(row)) !== sourceId)
175
+ continue;
176
+ const rowKey = `${modelKey(row)}\x00${row.tokenClass}`;
177
+ if (seen.has(rowKey))
178
+ continue;
179
+ seen.add(rowKey);
180
+ rows.push(row);
181
+ }
182
+ return rows;
183
+ }
184
+ function buildModelsDevSeedRows(cache) {
185
+ const sourced = [];
186
+ const add = (sourceId, projected) => {
187
+ for (const row of projected)
188
+ sourced.push({ sourceId, row });
189
+ };
157
190
  const anthropic = cache.anthropic?.models ?? {};
158
191
  for (const [id, model] of Object.entries(anthropic)) {
159
192
  if (!model?.cost)
160
193
  continue;
161
194
  for (const provider of ["claude", "claude-managed"]) {
162
- for (const row of projectCostBlock(provider, id, model.cost)) {
163
- rows.push(row);
164
- }
195
+ add(id, projectCostBlock(provider, id, model.cost));
165
196
  }
166
197
  }
167
198
  for (const [shortname, fullId] of Object.entries(ANTHROPIC_SHORTNAME_TO_MODELSDEV)) {
@@ -169,96 +200,68 @@ function buildModelsDevSeedRows(cache) {
169
200
  if (!cost)
170
201
  continue;
171
202
  for (const provider of ["claude", "claude-managed"]) {
172
- for (const row of projectCostBlock(provider, shortname, cost)) {
173
- rows.push(row);
174
- }
203
+ add(shortname, projectCostBlock(provider, shortname, cost));
175
204
  }
176
205
  }
177
206
  for (const [shortname, fullId] of Object.entries(ANTHROPIC_SHORTNAME_TO_MODELSDEV)) {
178
207
  const cost = anthropic[fullId]?.cost ?? (cache.anthropic ? ANTHROPIC_SHORTNAME_PRICING_FALLBACKS[fullId] : undefined);
179
208
  if (!cost)
180
209
  continue;
181
- for (const row of projectCostBlock("pi", shortname, cost, { anthropicBilled: true })) {
182
- rows.push(row);
183
- }
210
+ add(shortname, projectCostBlock("pi", shortname, cost, { anthropicBilled: true }));
184
211
  }
185
212
  for (const section of ["anthropic", "openai", "google", "fireworks-ai"]) {
186
213
  for (const [id, model] of Object.entries(cache[section]?.models ?? {})) {
187
214
  if (!model?.cost)
188
215
  continue;
189
- for (const row of projectCostBlock("amp", id, model.cost)) {
190
- rows.push(row);
191
- }
216
+ add(id, projectCostBlock("amp", id, model.cost));
192
217
  }
193
218
  }
194
219
  const openai = cache.openai?.models ?? {};
195
220
  for (const [id, model] of Object.entries(openai)) {
196
221
  if (!model?.cost)
197
222
  continue;
198
- for (const row of projectCostBlock("codex", id, model.cost)) {
199
- rows.push(row);
200
- }
201
- for (const row of projectCostBlock("pi", id, model.cost)) {
202
- rows.push(row);
203
- }
223
+ add(id, projectCostBlock("codex", id, model.cost));
224
+ add(id, projectCostBlock("pi", id, model.cost));
204
225
  }
205
226
  for (const vendor of ["openai", "anthropic", "google", "xai"]) {
206
227
  for (const [id, model] of Object.entries(cache[vendor]?.models ?? {})) {
207
228
  if (!model?.cost)
208
229
  continue;
209
- for (const row of projectCostBlock("cursor", id, model.cost, { anthropicBilled: false })) {
210
- rows.push(row);
211
- }
230
+ add(id, projectCostBlock("cursor", id, model.cost, { anthropicBilled: false }));
212
231
  }
213
232
  }
214
233
  for (const [id, model] of Object.entries(cache.xai?.models ?? {})) {
215
234
  if (!model?.cost)
216
235
  continue;
217
- for (const row of projectCostBlock("grok", id, model.cost, { anthropicBilled: false })) {
218
- rows.push(row);
219
- }
236
+ add(id, projectCostBlock("grok", id, model.cost, { anthropicBilled: false }));
220
237
  }
221
238
  const deepseek = cache.deepseek?.models ?? {};
222
239
  for (const [id, model] of Object.entries(deepseek)) {
223
240
  if (!model?.cost)
224
241
  continue;
225
- for (const row of projectCostBlock("dsh", id, model.cost)) {
226
- rows.push(row);
227
- }
242
+ add(id, projectCostBlock("dsh", id, model.cost));
228
243
  }
229
244
  const openrouter = cache.openrouter?.models ?? {};
230
245
  for (const [id, model] of Object.entries(openrouter)) {
231
246
  if (!model?.cost)
232
247
  continue;
233
- for (const row of projectCostBlock("opencode", id, model.cost)) {
234
- rows.push(row);
235
- }
236
- for (const row of projectCostBlock("pi", id, model.cost, {
248
+ add(id, projectCostBlock("opencode", id, model.cost));
249
+ add(id, projectCostBlock("pi", id, model.cost, {
237
250
  anthropicBilled: id.startsWith("anthropic/")
238
- })) {
239
- rows.push(row);
240
- }
241
- for (const row of projectCostBlock("dsh", id, model.cost, {
251
+ }));
252
+ add(id, projectCostBlock("dsh", id, model.cost, {
242
253
  anthropicBilled: id.startsWith("anthropic/")
243
- })) {
244
- rows.push(row);
245
- }
246
- for (const row of projectCostBlock("grok", id, model.cost, {
254
+ }));
255
+ add(id, projectCostBlock("grok", id, model.cost, {
247
256
  anthropicBilled: id.startsWith("anthropic/")
248
- })) {
249
- rows.push(row);
250
- }
257
+ }));
251
258
  if (id.startsWith("google/")) {
252
259
  const geminiKey = id.replace(/^google\//, "");
253
- for (const row of projectCostBlock("gemini", geminiKey, model.cost)) {
254
- rows.push(row);
255
- }
256
- for (const row of projectCostBlock("gemini", id, model.cost)) {
257
- rows.push(row);
258
- }
260
+ add(geminiKey, projectCostBlock("gemini", geminiKey, model.cost));
261
+ add(id, projectCostBlock("gemini", id, model.cost));
259
262
  }
260
263
  }
261
- return rows;
264
+ return collapseNormalizedIds(sourced);
262
265
  }
263
266
  function buildPricingSeedRows(cache) {
264
267
  const modelsdevRows = cache ? buildModelsDevSeedRows(cache) : [];
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  init_secret_scrubber,
7
7
  scrubSecrets
8
- } from "./cli-h1spv8v4.js";
8
+ } from "./cli-wt7ccy4r.js";
9
9
 
10
10
  // src/providers/codex-oauth/flow.ts
11
11
  init_secret_scrubber();
@@ -366,7 +366,8 @@ function credentialsToAuthJson(creds, opts = {}) {
366
366
  refresh_token: includeRefreshToken ? creds.refresh : "",
367
367
  account_id: creds.accountId
368
368
  },
369
- last_refresh: new Date(creds.expires).toISOString()
369
+ last_refresh: new Date().toISOString(),
370
+ expires: creds.expires
370
371
  };
371
372
  }
372
373
 
@@ -1,3 +1,10 @@
1
+ import {
2
+ ProjectTrustStore,
3
+ addMcpServerConfig,
4
+ loadMcpConfig,
5
+ openBrowser,
6
+ removeMcpServerConfig
7
+ } from "./cli-13xwcqvj.js";
1
8
  import {
2
9
  McpOAuthCredentialStore,
3
10
  McpServerConnection,
@@ -5,24 +12,17 @@ import {
5
12
  McpSignInCancelledError,
6
13
  createDefaultTransport,
7
14
  signInMcpServer
8
- } from "./cli-x3x0qwky.js";
9
- import {
10
- ProjectTrustStore,
11
- addMcpServerConfig,
12
- loadMcpConfig,
13
- openBrowser,
14
- removeMcpServerConfig
15
- } from "./cli-qvfk83fy.js";
15
+ } from "./cli-bxqez1p0.js";
16
16
  import {
17
17
  getMcpToolExposure,
18
18
  validateMcpServerConfig
19
- } from "./cli-krqm5f11.js";
20
- import"./cli-8ssjez7e.js";
19
+ } from "./cli-xezn9nkh.js";
20
+ import"./cli-rhy7z1rp.js";
21
21
  import {
22
22
  APP_NAME,
23
23
  CONFIG_DIR_NAME,
24
24
  source_default
25
- } from "./cli-cwxhbf43.js";
25
+ } from "./cli-5t5my0h8.js";
26
26
  import"./cli-5bfdm1ah.js";
27
27
  import"./cli-0m7wct0d.js";
28
28
  import"./cli-2x0e561b.js";
@@ -451,8 +451,9 @@ async function login(entry, connection, url, timeoutMs, options, credentials, lo
451
451
  ${authorizationUrl.href}`);
452
452
  openUrl(authorizationUrl.href);
453
453
  },
454
- promptForRedirectUrl: (signal) => waitForRedirectUrl(signal, timeoutMs, interactive)
455
- }
454
+ promptForRedirectUrl: (signal) => waitForRedirectUrl(signal, interactive)
455
+ },
456
+ signal: AbortSignal.timeout(timeoutMs)
456
457
  });
457
458
  } catch (signInError) {
458
459
  error(signInError instanceof McpSignInCancelledError ? `Sign-in to MCP server "${name}" was cancelled or not completed within ${Math.round(timeoutMs / 1000)} seconds.` : `Sign-in to MCP server "${name}" failed: ${errorMessage(signInError)}`);
@@ -468,27 +469,21 @@ ${authorizationUrl.href}`);
468
469
  log(`Signed in to MCP server "${name}" (${connection.tools.length} tools).`);
469
470
  return 0;
470
471
  }
471
- async function waitForRedirectUrl(signal, timeoutMs, interactive) {
472
- const controller = new AbortController;
473
- const abort = () => controller.abort();
474
- signal.addEventListener("abort", abort, { once: true });
475
- const timer = setTimeout(abort, timeoutMs);
472
+ async function waitForRedirectUrl(signal, interactive) {
473
+ if (!interactive) {
474
+ if (!signal.aborted)
475
+ await new Promise((resolve) => signal.addEventListener("abort", resolve, { once: true }));
476
+ return;
477
+ }
478
+ const readline = createInterface({ input: process.stdin, output: process.stderr });
476
479
  try {
477
- if (!interactive) {
478
- await new Promise((resolve) => controller.signal.addEventListener("abort", () => resolve(), { once: true }));
479
- return;
480
- }
481
- const readline = createInterface({ input: process.stdin, output: process.stderr });
482
- try {
483
- return await readline.question("If the browser cannot reach this machine, paste the URL it was redirected to: ", { signal: controller.signal });
484
- } catch {
485
- return;
486
- } finally {
487
- readline.close();
488
- }
480
+ return await readline.question("If the browser cannot reach this machine, paste the URL it was redirected to: ", {
481
+ signal
482
+ });
483
+ } catch {
484
+ return;
489
485
  } finally {
490
- clearTimeout(timer);
491
- signal.removeEventListener("abort", abort);
486
+ readline.close();
492
487
  }
493
488
  }
494
489
  export {
@@ -77,6 +77,8 @@ class EventStream {
77
77
  }
78
78
 
79
79
  class AssistantMessageEventStream extends EventStream {
80
+ #startedAt = Date.now();
81
+ #startedAtMonotonic = performance.now();
80
82
  constructor() {
81
83
  super((event) => event.type === "done" || event.type === "error", (event) => {
82
84
  if (event.type === "done") {
@@ -87,6 +89,23 @@ class AssistantMessageEventStream extends EventStream {
87
89
  throw new Error("Unexpected event type for final result");
88
90
  });
89
91
  }
92
+ push(event) {
93
+ if (event.type === "done")
94
+ this.#time(event.message);
95
+ else if (event.type === "error")
96
+ this.#time(event.error);
97
+ super.push(event);
98
+ }
99
+ end(result) {
100
+ if (result !== undefined)
101
+ this.#time(result);
102
+ super.end(result);
103
+ }
104
+ #time(message) {
105
+ if (this.done || message.durationMs !== undefined || message.timestamp < this.#startedAt)
106
+ return;
107
+ message.durationMs = Math.max(0, Math.round(performance.now() - this.#startedAtMonotonic));
108
+ }
90
109
  }
91
110
  function createAssistantMessageEventStream() {
92
111
  return new AssistantMessageEventStream;