@desplega.ai/agent-swarm 1.164.1 → 1.166.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 (328) hide show
  1. package/README.md +1 -1
  2. package/dist/acp-adapter-yzfxn8vj.js +23 -0
  3. package/dist/{actions-hp2h32dx.js → actions-qz3m692w.js} +24 -28
  4. package/dist/{amp-adapter-zfd7djyx.js → amp-adapter-j1xbmsqz.js} +7 -7
  5. package/dist/{app-w2d26h4f.js → app-43vrdmv8.js} +9 -10
  6. package/dist/{assistant-45pc4en7.js → assistant-ertffmka.js} +25 -29
  7. package/dist/{boot-reembed-k1q2s4fc.js → boot-reembed-998jtpdg.js} +12 -15
  8. package/dist/{boot-reembed-6rhcpsjf.js → boot-reembed-s7k7c6v2.js} +13 -15
  9. package/dist/boot-scrub-sweep-nepsk4t1.js +211 -0
  10. package/dist/{boot-seeds-ex93edx7.js → boot-seeds-vvzs1zhk.js} +12 -12
  11. package/dist/{claude-adapter-hcxd0szm.js → claude-adapter-2zvmekrp.js} +15 -17
  12. package/dist/{claude-managed-adapter-fz7xps2r.js → claude-managed-adapter-s49wbk8t.js} +5 -5
  13. package/dist/{claude-managed-setup-xx6f15h9.js → claude-managed-setup-cvhqq8qn.js} +4 -4
  14. package/dist/{claude-sdk-session-6nb9raem.js → claude-sdk-session-kkbxtw5q.js} +2624 -2606
  15. package/dist/{cli-etbrt8x1.js → cli-0nhdwxd5.js} +4 -4
  16. package/dist/{cli-jeefgppq.js → cli-0qjcsxgz.js} +7 -7
  17. package/dist/{cli-6behs2bt.js → cli-32bca7nr.js} +1 -1
  18. package/dist/{cli-gt8v96qx.js → cli-3ddybbbx.js} +4 -4
  19. package/dist/{acp-adapter-rxvek4ym.js → cli-3qn4r334.js} +317 -35
  20. package/dist/{cli-1d3w4xm3.js → cli-4r1sjfc4.js} +14 -6
  21. package/dist/{cli-691f2rxm.js → cli-66zh26sp.js} +68 -16
  22. package/dist/{cli-et8wdyqh.js → cli-68r1j4sg.js} +9 -9
  23. package/dist/{cli-xb7kyanp.js → cli-8kgvmkak.js} +3 -3
  24. package/dist/{cli-fdpkw8vk.js → cli-8t229cmr.js} +8 -8
  25. package/dist/{cli-gc54qc0p.js → cli-aqcey741.js} +1 -1
  26. package/dist/{cli-4q4cmr4t.js → cli-cpfmqz3n.js} +8 -8
  27. package/dist/{cli-a9bw0xxt.js → cli-df56tqdw.js} +997 -408
  28. package/dist/{cli-n7h1kqpf.js → cli-dmtrxqhg.js} +6 -1
  29. package/dist/{cli-xfb7333f.js → cli-dw2q9f7g.js} +5 -5
  30. package/dist/{cli-4drstbb9.js → cli-ecknp7p1.js} +81 -23
  31. package/dist/{cli-v0pvvhfq.js → cli-efnd2kce.js} +36 -1
  32. package/dist/{cli-1wetf34q.js → cli-f2n17zhp.js} +1 -1
  33. package/dist/{cli-2c8eky5y.js → cli-feh3dkah.js} +1 -1
  34. package/dist/cli-fn697bnt.js +126 -0
  35. package/dist/{cli-v5pr2fgt.js → cli-gt8azyet.js} +3 -3
  36. package/dist/{cli-dbszf3rw.js → cli-h3x613ze.js} +4 -4
  37. package/dist/{cli-nwhb8y2e.js → cli-hf5s9pgf.js} +1 -1
  38. package/dist/cli-j2jbr8af.js +516 -0
  39. package/dist/{cli-agjzafns.js → cli-jhm6hzjn.js} +593 -10
  40. package/dist/{cli-j0tmc908.js → cli-jvj6a0cv.js} +484 -477
  41. package/dist/{cli-xxz89c2n.js → cli-mb75wpxf.js} +1 -1
  42. package/dist/{cli-07s39g1n.js → cli-mv2520nm.js} +1 -1
  43. package/dist/{cli-v90vfwyb.js → cli-mwegs4af.js} +5 -5
  44. package/dist/{cli-bz1gbac9.js → cli-p4ztb80h.js} +2 -2
  45. package/dist/{cli-1wd1n2ya.js → cli-rfphkzh5.js} +1 -1
  46. package/dist/{cli-976r1zqx.js → cli-rggdq8wq.js} +5 -5
  47. package/dist/{cli-3ajw5v5v.js → cli-rsy933yz.js} +6 -6
  48. package/dist/{cli-yj790e19.js → cli-tadfgd0t.js} +8 -1
  49. package/dist/{cli-cn53e7vc.js → cli-ttbsse3f.js} +6 -1
  50. package/dist/{cli-dyqsrqcf.js → cli-v2a8x45d.js} +4 -4
  51. package/dist/{cli-wbvnn6tk.js → cli-v6vv7dy8.js} +91 -9
  52. package/dist/{cli-z2ap2c0c.js → cli-vzc73wet.js} +90 -55
  53. package/dist/cli-wt7ccy4r.js +2654 -0
  54. package/dist/{cli-4cn19jvn.js → cli-x7kpr72a.js} +3 -3
  55. package/dist/{cli-003785v9.js → cli-xvc3q9br.js} +1 -1
  56. package/dist/{cli-v0e7jpr5.js → cli-xvdgasgy.js} +13 -4
  57. package/dist/{cli-asqeg4ve.js → cli-y59h2pk9.js} +2 -2
  58. package/dist/{cli-0wn3ypqv.js → cli-yshaazs1.js} +14121 -3478
  59. package/dist/{cli-wg8yjqtw.js → cli-ysnyhws9.js} +16 -3
  60. package/dist/cli-zp67qg5x.js +92 -0
  61. package/dist/{cli-g3qgrzck.js → cli-zsh093hk.js} +71 -3
  62. package/dist/{cli-ma3zvh39.js → cli-zy7vwsne.js} +6066 -5829
  63. package/dist/cli.js +79 -26
  64. package/dist/{codex-adapter-pcxdn10v.js → codex-adapter-dw1wxqt8.js} +10 -10
  65. package/dist/{codex-hook-b1fb7c2k.js → codex-hook-d2rkvf39.js} +1 -1
  66. package/dist/{codex-login-059nm145.js → codex-login-terbdsqq.js} +2 -2
  67. package/dist/{codex-session-runner-xzwwddp8.js → codex-session-runner-3cgb8y1g.js} +10 -10
  68. package/dist/{commands-98at8mkn.js → commands-mhxam6z2.js} +9 -9
  69. package/dist/{cursor-adapter-dkg6qnkp.js → cursor-adapter-2qda3st7.js} +6 -6
  70. package/dist/{db-01g8wtvw.js → db-sjks418k.js} +11 -9
  71. package/dist/{devin-adapter-qmttt2fz.js → devin-adapter-bffjj5n4.js} +2 -2
  72. package/dist/{dispatcher-nn2k1wxd.js → dispatcher-1es759rn.js} +22 -26
  73. package/dist/{dsh-adapter-w4d4vwdq.js → dsh-adapter-bek4cyw9.js} +6 -6
  74. package/dist/{e2b-9e4g2hvt.js → e2b-nd50eccg.js} +1 -1
  75. package/dist/{event-bus-z7v2t26e.js → event-bus-vnfthafg.js} +2 -2
  76. package/dist/grok-adapter-ar9cw9jg.js +29 -0
  77. package/dist/{handlers-b0kqsbg8.js → handlers-1gkbhktr.js} +25 -29
  78. package/dist/{hook-sap7v1aj.js → hook-ds2zxq9v.js} +16 -18
  79. package/dist/{hook-pz50gqep.js → hook-vxa3tcsy.js} +10 -12
  80. package/dist/{http-ncr8rmd0.js → http-3h21z9md.js} +679 -227
  81. package/dist/{index-c4aqcyz1.js → index-9b65j1m5.js} +11 -11
  82. package/dist/{index-r46s01nq.js → index-bn6cy8ps.js} +22 -26
  83. package/dist/{index-38kqdt3e.js → index-dkfxpkmm.js} +23 -27
  84. package/dist/{index-630kj5vd.js → index-f8xnqrye.js} +55 -43
  85. package/dist/{index-fdk1t4d6.js → index-n0rxa4ca.js} +11962 -9900
  86. package/dist/{index-9nrj7797.js → index-n99fycq7.js} +22 -26
  87. package/dist/{keepalive-31613r2h.js → keepalive-3xspa9jw.js} +14 -11
  88. package/dist/{lead-mx59tr5s.js → lead-6qphc124.js} +43 -43
  89. package/dist/{maintenance-55ff39ca.js → maintenance-0teem1bb.js} +10 -12
  90. package/dist/{node-f0ykebbv.js → node-9sg7ajby.js} +25 -7
  91. package/dist/{oauth-refresh-sweep-anma954w.js → oauth-refresh-sweep-sh9q25xp.js} +13 -10
  92. package/dist/{onboard-b2fy8ftb.js → onboard-54qmnqxe.js} +4 -3
  93. package/dist/{opencode-adapter-p1s92tmy.js → opencode-adapter-wjfa2wvd.js} +6 -6
  94. package/dist/{otel-impl-9brvt7xv.js → otel-impl-ycqzp2a1.js} +2 -2
  95. package/dist/{pi-mono-adapter-kz4rrwvd.js → pi-mono-adapter-e77e9zst.js} +6 -6
  96. package/dist/{pricing-refresh-7w8mbmva.js → pricing-refresh-atnkngqs.js} +10 -10
  97. package/dist/{rbac-roles-ejp7qwvb.js → rbac-roles-9pjphh9q.js} +10 -10
  98. package/dist/{rbac-roles-nhk4r7bc.js → rbac-roles-j78wdksm.js} +10 -10
  99. package/dist/{render-v2-2gzt8skq.js → render-v2-pxjs49fx.js} +9 -10
  100. package/dist/{setup-5et8t412.js → setup-ymej0xtx.js} +2 -2
  101. package/dist/{work-objects-tb0er7qa.js → work-objects-3nh4ymzb.js} +26 -30
  102. package/dist/{worker-62cv075d.js → worker-qa9fkz5s.js} +43 -43
  103. package/dist/{x-vbxb31jr.js → x-ma4gnfgy.js} +2 -2
  104. package/openapi.json +457 -31
  105. package/package.json +14 -6
  106. package/plugin/commands/create-pr.md +7 -1
  107. package/plugin/pi-skills/create-pr/SKILL.md +7 -1
  108. package/src/agentmail/app.ts +5 -4
  109. package/src/be/automation-preflight.ts +11 -9
  110. package/src/be/boot-scrub-sweep.ts +302 -0
  111. package/src/be/connector-codes.ts +81 -0
  112. package/src/be/crypto/key-bootstrap.ts +1 -1
  113. package/src/be/db/approvals.ts +15 -1
  114. package/src/be/db/codex-oauth-device-flows.ts +40 -0
  115. package/src/be/db/config-secrets.ts +31 -0
  116. package/src/be/db/runtime.ts +4 -0
  117. package/src/be/db/script-runs.ts +15 -0
  118. package/src/be/db/tasks/write.ts +1 -1
  119. package/src/be/db-queries/mcp-oauth.ts +5 -0
  120. package/src/be/db-queries/oauth.ts +77 -0
  121. package/src/be/db.ts +162 -59
  122. package/src/be/events.ts +17 -1
  123. package/src/be/memory/index-content.ts +2 -2
  124. package/src/be/memory/providers/sqlite-store.ts +63 -11
  125. package/src/be/memory/types.ts +14 -0
  126. package/src/be/migrations/197_connector_codes.sql +23 -0
  127. package/src/be/migrations/198_permission_audit_guest.sql +33 -0
  128. package/src/be/migrations/200_backfill_auto_memory_expiry.sql +20 -0
  129. package/src/be/migrations/201_workflow_replay_columns.sql +10 -0
  130. package/src/be/migrations/202_codex_oauth_device_flows.sql +24 -0
  131. package/src/be/model-tier-resolution.ts +2 -1
  132. package/src/be/model-validation.ts +1 -1
  133. package/src/be/pricing-normalize.ts +3 -0
  134. package/src/be/rbac-audit.ts +2 -1
  135. package/src/be/scripts/db.ts +28 -4
  136. package/src/be/scripts/source-secrets.ts +37 -0
  137. package/src/be/scripts/typecheck.ts +23 -2
  138. package/src/be/scrub-json.ts +32 -0
  139. package/src/be/sealed-json.ts +59 -0
  140. package/src/be/secret-registry.ts +131 -0
  141. package/src/be/seed-pricing.ts +14 -0
  142. package/src/be/users.ts +7 -1
  143. package/src/be/workflow-replay.ts +77 -0
  144. package/src/cli.tsx +7 -0
  145. package/src/commands/provider-credentials.ts +46 -8
  146. package/src/commands/runner.ts +2 -10
  147. package/src/extensions/contract-types.generated.ts +1 -1
  148. package/src/github/app.ts +4 -4
  149. package/src/heartbeat/heartbeat.ts +20 -8
  150. package/src/hooks/pr-body-guard.ts +1 -1
  151. package/src/http/agents.ts +1 -0
  152. package/src/http/approval-requests.ts +1 -0
  153. package/src/http/apps.ts +3 -0
  154. package/src/http/auth.ts +4 -1
  155. package/src/http/codex-oauth-device.ts +8 -10
  156. package/src/http/codex-oauth-keep-warm.ts +2 -2
  157. package/src/http/config-values.ts +59 -0
  158. package/src/http/config.ts +5 -0
  159. package/src/http/db-query-bounded.ts +3 -0
  160. package/src/http/db-query-shared.ts +107 -15
  161. package/src/http/db-query.ts +10 -2
  162. package/src/http/extensions.ts +1 -0
  163. package/src/http/index.ts +23 -6
  164. package/src/http/integrations.ts +1 -38
  165. package/src/http/ip-rate-limit.ts +82 -0
  166. package/src/http/kv.ts +38 -4
  167. package/src/http/mcp-servers.ts +1 -0
  168. package/src/http/memory.ts +9 -0
  169. package/src/http/models-catalog.ts +2 -0
  170. package/src/http/operator-actor.ts +4 -0
  171. package/src/http/page-proxy.ts +22 -0
  172. package/src/http/pages.ts +4 -2
  173. package/src/http/realtime.ts +1 -1
  174. package/src/http/request-principal.ts +14 -1
  175. package/src/http/script-connections.ts +8 -0
  176. package/src/http/script-runs.ts +12 -4
  177. package/src/http/scripts.ts +15 -0
  178. package/src/http/session-cost-recompute.ts +3 -2
  179. package/src/http/tasks.ts +9 -0
  180. package/src/http/users.ts +226 -0
  181. package/src/http/workflows.ts +3 -2
  182. package/src/http.ts +1 -0
  183. package/src/integrations/kapso/client.ts +3 -1
  184. package/src/jira/app.ts +2 -2
  185. package/src/kv-view.ts +324 -0
  186. package/src/linear/app.ts +2 -2
  187. package/src/oauth/mcp-wrapper.ts +1 -1
  188. package/src/prompts/memories.ts +42 -1
  189. package/src/providers/acp-adapter.ts +85 -24
  190. package/src/providers/acp-target-catalog.ts +54 -1
  191. package/src/providers/acp-targets.ts +358 -4
  192. package/src/providers/amp-adapter.ts +1 -1
  193. package/src/providers/cursor-adapter.ts +1 -1
  194. package/src/providers/grok-adapter.ts +186 -0
  195. package/src/providers/index.ts +5 -1
  196. package/src/providers/pricing-sources.md +6 -0
  197. package/src/providers/reasoning-effort.ts +17 -1
  198. package/src/providers/types.ts +2 -1
  199. package/src/rbac/can.ts +4 -3
  200. package/src/rbac/legacy-policy.ts +3 -3
  201. package/src/rbac/types.ts +6 -0
  202. package/src/script-workflows/supervisor.ts +11 -2
  203. package/src/scripts-runtime/eval-harness.ts +2 -12
  204. package/src/scripts-runtime/executors/quickjs-bundle.ts +152 -0
  205. package/src/scripts-runtime/executors/quickjs-prelude.ts +285 -0
  206. package/src/scripts-runtime/executors/quickjs-runner.ts +580 -0
  207. package/src/scripts-runtime/executors/quickjs-worker.ts +81 -0
  208. package/src/scripts-runtime/executors/quickjs.ts +196 -0
  209. package/src/scripts-runtime/executors/registry.ts +2 -0
  210. package/src/scripts-runtime/executors/sourcemap.ts +79 -0
  211. package/src/scripts-runtime/script-error-hints.ts +14 -0
  212. package/src/scripts-runtime/swarm-sdk.ts +9 -2
  213. package/src/scripts-runtime/types/stdlib.d.ts +27 -8
  214. package/src/scripts-runtime/types/swarm-extension.d.ts +3 -0
  215. package/src/scripts-runtime/types/swarm-sdk.d.ts +27 -8
  216. package/src/server-user.ts +2 -20
  217. package/src/server.ts +3 -1
  218. package/src/slack/app.ts +4 -0
  219. package/src/slack/config.ts +3 -1
  220. package/src/slack/egress-scrub.ts +87 -0
  221. package/src/tests/acp-adapter.test.ts +191 -2
  222. package/src/tests/boot-scrub-sweep.test.ts +390 -0
  223. package/src/tests/budget-user-scope.test.ts +7 -21
  224. package/src/tests/check-pr-body.test.ts +149 -6
  225. package/src/tests/check-text-columns.test.ts +145 -0
  226. package/src/tests/claude-adapter-binary.test.ts +1 -1
  227. package/src/tests/claude-sdk-process.fixture.ts +13 -2
  228. package/src/tests/codex-oauth-device.test.ts +23 -37
  229. package/src/tests/codex-oauth-keep-warm.test.ts +29 -0
  230. package/src/tests/console-scrub.test.ts +141 -0
  231. package/src/tests/credential-check.test.ts +90 -0
  232. package/src/tests/db-query-denylist.test.ts +202 -0
  233. package/src/tests/db-task-read-contract.test.ts +1 -0
  234. package/src/tests/db-task-write-contract.test.ts +1 -0
  235. package/src/tests/docs-index-footprint.test.js +3 -3
  236. package/src/tests/entrypoint-acp-target-binary.test.ts +44 -1
  237. package/src/tests/events-scrub.test.ts +88 -0
  238. package/src/tests/explicit-model-validation.test.ts +81 -0
  239. package/src/tests/extensions-pre-task.test.ts +33 -1
  240. package/src/tests/fixtures/grok/acp-updates-recorded.jsonl +53 -0
  241. package/src/tests/fixtures/grok/prompt-response-meta.json +36 -0
  242. package/src/tests/fixtures/secret-corpus.ts +320 -0
  243. package/src/tests/grok-adapter.test.ts +647 -0
  244. package/src/tests/heartbeat-checklist.test.ts +44 -0
  245. package/src/tests/integration-disable-flags.test.ts +156 -0
  246. package/src/tests/kv-http.test.ts +34 -0
  247. package/src/tests/kv-tool.test.ts +274 -1
  248. package/src/tests/kv-view.test.ts +147 -0
  249. package/src/tests/mcp-user-route.test.ts +257 -15
  250. package/src/tests/memory-injection-outcome.test.ts +143 -0
  251. package/src/tests/model-tier-resolution.test.ts +76 -3
  252. package/src/tests/page-guest-session.test.ts +424 -0
  253. package/src/tests/page-proxy.test.ts +1 -1
  254. package/src/tests/page-viewer-auth.test.ts +22 -1
  255. package/src/tests/pr-body-leaks.test.ts +157 -2
  256. package/src/tests/preload.ts +10 -0
  257. package/src/tests/provider-registration.test.ts +3 -1
  258. package/src/tests/rbac-audit.test.ts +32 -0
  259. package/src/tests/rbac-mcp-admission-e2e.test.ts +4 -62
  260. package/src/tests/script-connections.test.ts +9 -0
  261. package/src/tests/script-executor-conformance.test.ts +3 -0
  262. package/src/tests/script-executor-quickjs.test.ts +442 -0
  263. package/src/tests/script-executor-registry.test.ts +6 -1
  264. package/src/tests/script-runs-http.test.ts +126 -1
  265. package/src/tests/script-runs-scrub.test.ts +275 -0
  266. package/src/tests/scripts-http.test.ts +82 -1
  267. package/src/tests/scripts-mcp-e2e.test.ts +42 -6
  268. package/src/tests/scripts-runtime.test.ts +37 -0
  269. package/src/tests/scrubbed-text-12e.test.ts +289 -0
  270. package/src/tests/sealed-key-guard.test.ts +166 -0
  271. package/src/tests/secret-canary-sweep.test.ts +958 -0
  272. package/src/tests/secret-registry.test.ts +355 -0
  273. package/src/tests/secret-rules.test.ts +230 -0
  274. package/src/tests/secret-scrubber.test.ts +317 -1
  275. package/src/tests/session-costs-golden.test.ts +17 -0
  276. package/src/tests/slack-egress-scrub.test.ts +216 -0
  277. package/src/tests/swarm-tool-result-gate.test.ts +143 -30
  278. package/src/tests/task-tools-ctx.test.ts +3 -0
  279. package/src/tests/user-token-routes.test.ts +342 -3
  280. package/src/tests/workflow-replay.test.ts +518 -0
  281. package/src/tests/workflow-scrub.test.ts +242 -0
  282. package/src/tests/workflow-system-one-decision-providers.test.ts +737 -0
  283. package/src/tools/db-query.ts +1 -1
  284. package/src/tools/inject-learning.ts +1 -1
  285. package/src/tools/kv/kv-get.ts +136 -6
  286. package/src/tools/send-task.ts +61 -17
  287. package/src/tools/utils.ts +186 -43
  288. package/src/tools/workflows/get-workflow-run.ts +3 -2
  289. package/src/types.ts +16 -1
  290. package/src/utils/console-scrub-install.ts +5 -0
  291. package/src/utils/console-scrub.ts +57 -0
  292. package/src/utils/credentials.ts +8 -0
  293. package/src/utils/page-session.ts +6 -2
  294. package/src/utils/pr-body-leaks.ts +149 -10
  295. package/src/utils/request-auth-context.ts +2 -0
  296. package/src/utils/secret-rules.generated.ts +2055 -0
  297. package/src/utils/secret-scrubber.ts +662 -36
  298. package/src/workflows/engine.ts +39 -4
  299. package/src/workflows/executors/notify.ts +6 -1
  300. package/src/workflows/executors/system-one-decision.ts +31 -12
  301. package/src/workflows/executors/system-one-openai-wire.ts +168 -0
  302. package/src/workflows/executors/system-one-providers.ts +112 -11
  303. package/src/workflows/executors/system-one-wire.ts +79 -0
  304. package/src/workflows/recovery.ts +10 -1
  305. package/src/workflows/resume.ts +62 -3
  306. package/src/workflows/retry-poller.ts +3 -0
  307. package/templates/ai-toolbox.manifest.json +2 -2
  308. package/templates/skills/agent-browser/SKILL.md +5 -5
  309. package/templates/skills/agent-browser/config.json +1 -1
  310. package/templates/skills/agent-browser/content.md +4 -4
  311. package/templates/skills/artifacts/content.md +17 -7
  312. package/templates/skills/jira-interaction/config.json +1 -1
  313. package/templates/skills/jira-interaction/content.md +56 -205
  314. package/templates/skills/linear-interaction/config.json +1 -1
  315. package/templates/skills/linear-interaction/content.md +31 -50
  316. package/templates/skills/pages/content.md +8 -4
  317. package/templates/skills/qa/content.md +2 -2
  318. package/templates/skills/workflow-iterate/content.md +4 -4
  319. package/tsconfig.json +3 -3
  320. package/dist/boot-scrub-logs-t8xg7wd7.js +0 -99
  321. package/dist/cli-0a7r5331.js +0 -168
  322. package/dist/cli-93rxw9yd.js +0 -951
  323. package/dist/cli-cvk6yzw5.js +0 -40
  324. package/dist/cli-dgnj0zcc.js +0 -40
  325. package/dist/cli-qt5wzq6v.js +0 -256
  326. package/dist/cli-v7fqehqd.js +0 -9281
  327. package/dist/cli-vbr859rz.js +0 -572
  328. package/src/be/boot-scrub-logs.ts +0 -132
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getDb,
3
- init_db
4
- } from "./cli-0wn3ypqv.js";
3
+ init_db1 as init_db
4
+ } from "./cli-yshaazs1.js";
5
5
 
6
6
  // src/be/seed-pricing.ts
7
7
  init_db();
@@ -44,7 +44,8 @@ var ROUTING_PREFIXES_BY_PROVIDER = {
44
44
  acp: [],
45
45
  dsh: ["openrouter/"],
46
46
  amp: ["anthropic/", "openai/", "google-vertex/", "google/"],
47
- cursor: []
47
+ cursor: [],
48
+ grok: ["openrouter/", "xai/"]
48
49
  };
49
50
  var AMP_DATED_SUFFIX = /-\d{4}-\d{2}-\d{2}$/;
50
51
  function normalizeModelKey(provider, model) {
@@ -210,6 +211,13 @@ function buildModelsDevSeedRows(cache) {
210
211
  }
211
212
  }
212
213
  }
214
+ for (const [id, model] of Object.entries(cache.xai?.models ?? {})) {
215
+ if (!model?.cost)
216
+ continue;
217
+ for (const row of projectCostBlock("grok", id, model.cost, { anthropicBilled: false })) {
218
+ rows.push(row);
219
+ }
220
+ }
213
221
  const deepseek = cache.deepseek?.models ?? {};
214
222
  for (const [id, model] of Object.entries(deepseek)) {
215
223
  if (!model?.cost)
@@ -235,6 +243,11 @@ function buildModelsDevSeedRows(cache) {
235
243
  })) {
236
244
  rows.push(row);
237
245
  }
246
+ for (const row of projectCostBlock("grok", id, model.cost, {
247
+ anthropicBilled: id.startsWith("anthropic/")
248
+ })) {
249
+ rows.push(row);
250
+ }
238
251
  if (id.startsWith("google/")) {
239
252
  const geminiKey = id.replace(/^google\//, "");
240
253
  for (const row of projectCostBlock("gemini", geminiKey, model.cost)) {
@@ -0,0 +1,92 @@
1
+ // src/providers/acp-target-catalog.ts
2
+ var ACP_TARGET_IDS = ["opencode", "gemini", "copilot", "custom"];
3
+ var ACP_TARGET_CATALOG = [
4
+ {
5
+ id: "opencode",
6
+ label: "OpenCode",
7
+ description: "OpenCode's ACP server, launched with `opencode acp`.",
8
+ command: "opencode",
9
+ args: ["acp"],
10
+ envKeys: [
11
+ "ANTHROPIC_API_KEY",
12
+ "OPENAI_API_KEY",
13
+ "OPENROUTER_API_KEY",
14
+ "OPENROUTER_BASE_URL",
15
+ "GOOGLE_API_KEY",
16
+ "GEMINI_API_KEY",
17
+ "OPENCODE_CONFIG",
18
+ "OPENCODE_CONFIG_CONTENT",
19
+ "OPENCODE_CONFIG_DIR",
20
+ "XDG_CONFIG_HOME",
21
+ "XDG_DATA_HOME"
22
+ ],
23
+ knobs: [{ id: "model", label: "Model", category: "model" }]
24
+ },
25
+ {
26
+ id: "gemini",
27
+ label: "Gemini CLI",
28
+ description: "Google's Gemini CLI, launched with `gemini --acp`.",
29
+ command: "gemini",
30
+ args: ["--acp"],
31
+ envKeys: [
32
+ "GEMINI_API_KEY",
33
+ "GOOGLE_API_KEY",
34
+ "GOOGLE_GENAI_USE_VERTEXAI",
35
+ "GOOGLE_CLOUD_PROJECT",
36
+ "GOOGLE_CLOUD_LOCATION",
37
+ "GOOGLE_APPLICATION_CREDENTIALS",
38
+ "GOOGLE_GEMINI_BASE_URL",
39
+ "GOOGLE_VERTEX_BASE_URL",
40
+ "GEMINI_CLI_HOME"
41
+ ],
42
+ knobs: [{ id: "model", label: "Model", category: "model" }]
43
+ },
44
+ {
45
+ id: "copilot",
46
+ label: "GitHub Copilot CLI",
47
+ description: "GitHub Copilot CLI's ACP server, launched with `copilot --acp`. Uses a Copilot-entitled COPILOT_GITHUB_TOKEN, or a BYOK provider via COPILOT_PROVIDER_*.",
48
+ command: "copilot",
49
+ args: ["--acp"],
50
+ envKeys: [
51
+ "COPILOT_GITHUB_TOKEN",
52
+ "COPILOT_GH_HOST",
53
+ "GH_HOST",
54
+ "COPILOT_HOME",
55
+ "COPILOT_MODEL",
56
+ "COPILOT_AUTO_TIER",
57
+ "COPILOT_OFFLINE",
58
+ "COPILOT_PROVIDER_BASE_URL",
59
+ "COPILOT_PROVIDER_TYPE",
60
+ "COPILOT_PROVIDER_API_KEY",
61
+ "COPILOT_PROVIDER_API_KEY_COMMAND",
62
+ "COPILOT_PROVIDER_BEARER_TOKEN",
63
+ "COPILOT_PROVIDER_WIRE_API",
64
+ "COPILOT_PROVIDER_TRANSPORT",
65
+ "COPILOT_PROVIDER_AZURE_API_VERSION",
66
+ "COPILOT_PROVIDER_MODEL_ID",
67
+ "COPILOT_PROVIDER_WIRE_MODEL",
68
+ "COPILOT_PROVIDER_MAX_PROMPT_TOKENS",
69
+ "COPILOT_PROVIDER_MAX_OUTPUT_TOKENS",
70
+ "COPILOT_PROVIDER_HEADERS",
71
+ "HTTP_PROXY",
72
+ "HTTPS_PROXY",
73
+ "NO_PROXY"
74
+ ],
75
+ knobs: [{ id: "model", label: "Model", category: "model" }]
76
+ },
77
+ {
78
+ id: "custom",
79
+ label: "Custom",
80
+ description: "An operator-supplied ACP command and explicit environment allowlist.",
81
+ envKeys: [],
82
+ knobs: [{ id: "model", label: "Model", category: "model" }]
83
+ }
84
+ ];
85
+ function isAcpTarget(value) {
86
+ return ACP_TARGET_IDS.includes(value);
87
+ }
88
+ function getAcpTargetCatalogEntry(target) {
89
+ return ACP_TARGET_CATALOG.find((entry) => entry.id === target);
90
+ }
91
+
92
+ export { ACP_TARGET_IDS, isAcpTarget, getAcpTargetCatalogEntry };
@@ -149,6 +149,12 @@ var init_resolve_alias = __esm(() => {
149
149
  function harnessCatalogSection(harness) {
150
150
  return HARNESS_CATALOG_SECTION[harness] ?? null;
151
151
  }
152
+ function isHarnessModelJudged(harness) {
153
+ return !!harness && (harnessCatalogSection(harness) !== null || harness === "grok");
154
+ }
155
+ function normalizeGrokModel(model) {
156
+ return model.trim().replace(XAI_PREFIX_RE, "");
157
+ }
152
158
  function isHarnessCatalogModel(harness, id, model = {}) {
153
159
  const lower = id.toLowerCase();
154
160
  if (model.status === "deprecated")
@@ -219,6 +225,8 @@ function buildClaudeShortnameMap(models) {
219
225
  return out;
220
226
  }
221
227
  function harnessModelMismatch(model, harness, sections, context = {}) {
228
+ if (harness === "grok")
229
+ return grokModelMismatch(model, sections, context);
222
230
  const section = harness ? harnessCatalogSection(harness) : null;
223
231
  if (!harness || !section)
224
232
  return null;
@@ -253,6 +261,48 @@ function harnessModelMismatch(model, harness, sections, context = {}) {
253
261
  }
254
262
  return null;
255
263
  }
264
+ function grokModelMismatch(model, sections, context) {
265
+ const id = model.trim();
266
+ if (!id)
267
+ return null;
268
+ const fail = () => grokMismatchMessage(id, sections, context);
269
+ if (isAlias(id)) {
270
+ const parsed = parseAlias(id);
271
+ if (!parsed)
272
+ return null;
273
+ return parsed.kind === "openrouter" ? null : fail();
274
+ }
275
+ if (/^openrouter\/./i.test(id))
276
+ return null;
277
+ const bare = normalizeGrokModel(id);
278
+ if (!bare || bare.includes("/"))
279
+ return fail();
280
+ if (GROK_ID_RE.test(bare) || Object.hasOwn(sections.xai?.models ?? {}, bare))
281
+ return null;
282
+ for (const [name, other] of Object.entries(sections)) {
283
+ if (name === "xai")
284
+ continue;
285
+ if (other?.models && Object.hasOwn(other.models, bare))
286
+ return fail();
287
+ }
288
+ return null;
289
+ }
290
+ function grokMismatchMessage(model, sections, context) {
291
+ const agent = context.agentId ? ` of agent "${context.agentName ?? context.agentId}" (${context.agentId})` : "";
292
+ const pool = sections.xai?.models ? [sections.xai.models] : Object.values(sections).map((section) => section?.models ?? {});
293
+ const best = new Map;
294
+ for (const models of pool) {
295
+ for (const [id, m] of Object.entries(models)) {
296
+ if (m.status === "deprecated" || !GROK_ID_RE.test(id) || best.has(id))
297
+ continue;
298
+ best.set(id, { id, release_date: m.release_date ?? null });
299
+ }
300
+ }
301
+ const ids = [...best.values()].sort(compareNewestFirst).map((m) => m.id);
302
+ const extra = ids.length - MAX_EXAMPLE_IDS;
303
+ const examples = ids.length ? ` (for example: ${ids.slice(0, MAX_EXAMPLE_IDS).join(", ")}${extra > 0 ? ` and ${extra} more` : ""})` : "";
304
+ return `Model "${model}" does not run on the grok harness${agent}. The grok harness accepts xai catalog models${examples} and openrouter/<vendor>/<id>. Use modelTier (smol, regular, smart, ultra) for portable intent, or omit model and let the assignee resolve it.`;
305
+ }
256
306
  function harnessMismatchMessage(model, harness, section, own, context) {
257
307
  const agent = context.agentId ? ` of agent "${context.agentName ?? context.agentId}" (${context.agentId})` : "";
258
308
  const ids = harnessModelIds(harness, own);
@@ -260,7 +310,7 @@ function harnessMismatchMessage(model, harness, section, own, context) {
260
310
  const examples = ids.slice(0, MAX_EXAMPLE_IDS).join(", ") + (extra > 0 ? ` and ${extra} more` : "");
261
311
  return `Model "${model}" does not run on the ${harness} harness${agent}. The ${harness} harness accepts ${section} catalog models, for example: ${examples}. Use modelTier (smol, regular, smart, ultra) for portable intent, or omit model and let the assignee resolve it.`;
262
312
  }
263
- var HARNESS_CATALOG_SECTION, DATED_ID_RE3, ISO_DATED_ID_RE, CODEX_EXCLUDED_TOKENS, CODEX_MIN_GPT_MAJOR = 5, CONTEXT_SUFFIX_RE, MAX_EXAMPLE_IDS = 8;
313
+ var HARNESS_CATALOG_SECTION, XAI_PREFIX_RE, GROK_ID_RE, DATED_ID_RE3, ISO_DATED_ID_RE, CODEX_EXCLUDED_TOKENS, CODEX_MIN_GPT_MAJOR = 5, CONTEXT_SUFFIX_RE, MAX_EXAMPLE_IDS = 8;
264
314
  var init_harness_models = __esm(() => {
265
315
  init_resolve_alias();
266
316
  HARNESS_CATALOG_SECTION = {
@@ -268,6 +318,8 @@ var init_harness_models = __esm(() => {
268
318
  "claude-managed": "anthropic",
269
319
  codex: "openai"
270
320
  };
321
+ XAI_PREFIX_RE = /^xai\//i;
322
+ GROK_ID_RE = /^grok-[^/]+$/i;
271
323
  DATED_ID_RE3 = /-\d{8}$/;
272
324
  ISO_DATED_ID_RE = /-\d{4}-\d{2}-\d{2}$/;
273
325
  CODEX_EXCLUDED_TOKENS = new Set([
@@ -296,6 +348,13 @@ function dshCatalogRef(model) {
296
348
  }
297
349
  return { providerId: "deepseek", modelId: model };
298
350
  }
351
+ function grokCatalogRef(model) {
352
+ const id = normalizeGrokModel(model);
353
+ if (id.startsWith("openrouter/")) {
354
+ return { providerId: "openrouter", modelId: id.slice("openrouter/".length) };
355
+ }
356
+ return { providerId: "xai", modelId: id };
357
+ }
299
358
  function cursorCatalogRef(model) {
300
359
  const id = model.trim().toLowerCase();
301
360
  if (/^(gpt-|o\d)/.test(id))
@@ -365,7 +424,16 @@ var REASONING_EFFORT_LEVELS, REASONING_HARNESSES, FALLBACK_LEVELS, EFFORT_VALUE_
365
424
  var init_reasoning = __esm(() => {
366
425
  init_harness_models();
367
426
  REASONING_EFFORT_LEVELS = ["off", "low", "medium", "high", "xhigh", "max"];
368
- REASONING_HARNESSES = ["claude", "codex", "pi", "opencode", "dsh", "cursor", "amp"];
427
+ REASONING_HARNESSES = [
428
+ "claude",
429
+ "codex",
430
+ "pi",
431
+ "opencode",
432
+ "dsh",
433
+ "cursor",
434
+ "amp",
435
+ "grok"
436
+ ];
369
437
  FALLBACK_LEVELS = ["low", "medium", "high"];
370
438
  EFFORT_VALUE_MAP = {
371
439
  none: "off",
@@ -333881,4 +333949,4 @@ var init_runtime_model_catalog = __esm(() => {
333881
333949
  mergedSections = new Map;
333882
333950
  });
333883
333951
 
333884
- export { isAlias, parseAlias, resolveAlias, harnessCatalogSection, harnessModelIds, modelFamilyKey, buildClaudeShortnameMap, harnessModelMismatch, dshCatalogRef, cursorCatalogRef, reasoningLevelsFor, claudeCatalogModelId, init_src, setRuntimeModelCatalog, runtimeCatalogSection, runtimeHarnessSections, runtimeCatalogModel, refreshRuntimeModelCatalog, init_runtime_model_catalog };
333952
+ export { isAlias, parseAlias, resolveAlias, harnessCatalogSection, isHarnessModelJudged, normalizeGrokModel, harnessModelIds, modelFamilyKey, buildClaudeShortnameMap, harnessModelMismatch, dshCatalogRef, grokCatalogRef, cursorCatalogRef, reasoningLevelsFor, claudeCatalogModelId, init_src, setRuntimeModelCatalog, runtimeCatalogSection, runtimeHarnessSections, runtimeCatalogModel, refreshRuntimeModelCatalog, init_runtime_model_catalog };