@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
@@ -0,0 +1,212 @@
1
+ import {
2
+ breaksJsonValidity,
3
+ getDbClient,
4
+ getMemoryStore,
5
+ init_db1 as init_db,
6
+ init_memory,
7
+ init_scrub_json,
8
+ init_sealed_json,
9
+ sealJson
10
+ } from "./cli-mkdsy1nq.js";
11
+ import"./cli-3qhyh31j.js";
12
+ import"./cli-xvdgasgy.js";
13
+ import {
14
+ contentSha256,
15
+ init_profile_sync
16
+ } from "./cli-mxvnnv5q.js";
17
+ import"./cli-7mm2r1kp.js";
18
+ import"./cli-g5erf0zt.js";
19
+ import"./cli-dmtrxqhg.js";
20
+ import"./cli-agamgm0p.js";
21
+ import"./cli-5c2j5yvx.js";
22
+ import"./cli-1a2j50m0.js";
23
+ import"./cli-tadfgd0t.js";
24
+ import"./cli-ywybs5as.js";
25
+ import"./cli-f9w1semm.js";
26
+ import"./cli-a35hzdve.js";
27
+ import"./cli-gd4favx9.js";
28
+ import"./cli-ej6gbxfb.js";
29
+ import"./cli-014vns2y.js";
30
+ import"./cli-sd0mxa3c.js";
31
+ import"./cli-w5e1d1vv.js";
32
+ import"./cli-ymmc1zxg.js";
33
+ import"./cli-zf8jjwex.js";
34
+ import {
35
+ SCRUBBER_RULES_VERSION,
36
+ init_secret_scrubber,
37
+ scrubSecrets
38
+ } from "./cli-wt7ccy4r.js";
39
+ import {
40
+ __require
41
+ } from "./cli-bc05qbss.js";
42
+
43
+ // src/be/boot-scrub-sweep.ts
44
+ init_profile_sync();
45
+ init_secret_scrubber();
46
+ init_db();
47
+ init_memory();
48
+ init_scrub_json();
49
+ init_sealed_json();
50
+ var DEFAULT_BATCH_SIZE = 200;
51
+ var yieldTick = () => new Promise((r) => setTimeout(r, 5));
52
+ var BOOT_SCRUB_TARGETS = [
53
+ { table: "session_logs", columns: ["content"] },
54
+ { table: "agent_tasks", columns: ["task", "output", "failureReason", "progress"] },
55
+ { table: "agent_memory", columns: ["name", "content", "summary"], memory: true },
56
+ {
57
+ table: "agent_memory_version",
58
+ columns: ["content"],
59
+ hash: { column: "contentHash", of: "content" }
60
+ },
61
+ { table: "events", columns: ["data"] },
62
+ {
63
+ table: "workflow_run_steps",
64
+ columns: ["input", "output", "error", "diagnostics"],
65
+ replay: { output: "output_replay" }
66
+ },
67
+ {
68
+ table: "workflow_runs",
69
+ columns: ["triggerData", "context", "error"],
70
+ replay: { context: "context_replay" }
71
+ }
72
+ ];
73
+ function bootScrubDoneKey(version) {
74
+ return `boot-scrub-v${version}`;
75
+ }
76
+ function bootScrubCursorKey(version, table) {
77
+ return `boot-scrub-v${version}:${table}:cursor`;
78
+ }
79
+ async function runBootScrubSweep(opts = {}) {
80
+ const version = opts.version ?? SCRUBBER_RULES_VERSION;
81
+ const doneKey = bootScrubDoneKey(version);
82
+ const done = await getDbClient().get("SELECT key FROM seed_state WHERE kind = 'maintenance' AND key = ?", [doneKey]);
83
+ if (done)
84
+ return null;
85
+ const tag = `boot-scrub-v${version}`;
86
+ console.log(`[${tag}] starting`);
87
+ const stats = [];
88
+ for (const target of BOOT_SCRUB_TARGETS) {
89
+ const tableStats = await sweepTarget(target, version, opts);
90
+ stats.push(tableStats);
91
+ console.log(`${tag}: ${target.table} scanned=${tableStats.scanned} changed=${tableStats.changed} skipped_invalid_json=${tableStats.skippedInvalidJson}`);
92
+ }
93
+ await getDbClient().transaction(async (tx) => {
94
+ await tx.run(`INSERT INTO seed_state (kind, key, seededHash, seededAt)
95
+ VALUES ('maintenance', ?, 'done', datetime('now'))
96
+ ON CONFLICT (kind, key) DO UPDATE SET seededHash = 'done', seededAt = datetime('now')`, [doneKey]);
97
+ await tx.run("DELETE FROM seed_state WHERE kind = 'maintenance' AND key LIKE ? ESCAPE '!'", [
98
+ `${doneKey.replace(/[!%_]/g, "!$&")}:%:cursor`
99
+ ]);
100
+ });
101
+ console.log(`[${tag}] complete`);
102
+ const memoryChanged = stats.find((s) => s.table === "agent_memory")?.changed ?? 0;
103
+ if (memoryChanged > 0 && opts.reembed !== false) {
104
+ const { runBootReembed } = await import("./boot-reembed-fmp5ww69.js");
105
+ await runBootReembed();
106
+ }
107
+ return stats;
108
+ }
109
+ async function sweepTarget(target, version, opts) {
110
+ const client = getDbClient();
111
+ const scrub = opts.scrub ?? scrubSecrets;
112
+ const batchSize = opts.batchSize ?? DEFAULT_BATCH_SIZE;
113
+ const cursorKey = bootScrubCursorKey(version, target.table);
114
+ const stats = {
115
+ table: target.table,
116
+ scanned: 0,
117
+ changed: 0,
118
+ skippedInvalidJson: 0
119
+ };
120
+ let cursor = (await client.get("SELECT seededHash FROM seed_state WHERE kind = 'maintenance' AND key = ?", [cursorKey]))?.seededHash ?? "";
121
+ const selectCols = [
122
+ "id",
123
+ ...target.columns,
124
+ ...target.hash && !target.columns.includes(target.hash.column) ? [target.hash.column] : [],
125
+ ...Object.values(target.replay ?? {})
126
+ ];
127
+ for (;; ) {
128
+ const rows = await client.query(`SELECT ${selectCols.join(", ")} FROM ${target.table}
129
+ WHERE id > ? ORDER BY id ASC LIMIT ?`, [cursor, batchSize]);
130
+ if (rows.length === 0)
131
+ break;
132
+ const pending = [];
133
+ for (const row of rows) {
134
+ const after = {};
135
+ let differs = false;
136
+ let breaksJson = false;
137
+ for (const col of target.columns) {
138
+ const value = row[col];
139
+ if (typeof value !== "string" || value.length === 0) {
140
+ after[col] = value ?? null;
141
+ continue;
142
+ }
143
+ const cleaned = scrub(value);
144
+ after[col] = cleaned;
145
+ if (cleaned !== value) {
146
+ differs = true;
147
+ if (breaksJsonValidity(value, cleaned))
148
+ breaksJson = true;
149
+ }
150
+ }
151
+ if (!differs)
152
+ continue;
153
+ if (breaksJson) {
154
+ stats.skippedInvalidJson++;
155
+ continue;
156
+ }
157
+ for (const [col, replayCol] of Object.entries(target.replay ?? {})) {
158
+ const value = row[col];
159
+ if (after[col] === value || typeof value !== "string" || row[replayCol] != null)
160
+ continue;
161
+ try {
162
+ after[replayCol] = sealJson(JSON.parse(value));
163
+ } catch {}
164
+ }
165
+ pending.push({ id: row.id, before: row, after });
166
+ }
167
+ const batchLastId = rows[rows.length - 1].id;
168
+ await client.transaction(async (tx) => {
169
+ for (const { id, before, after } of pending) {
170
+ const wrote = target.memory ? await rewriteMemoryRow(id, before, after) : await rewriteRow(tx, target, id, before, after);
171
+ if (wrote)
172
+ stats.changed++;
173
+ }
174
+ await tx.run(`INSERT INTO seed_state (kind, key, seededHash, seededAt)
175
+ VALUES ('maintenance', ?, ?, datetime('now'))
176
+ ON CONFLICT (kind, key) DO UPDATE SET seededHash = excluded.seededHash, seededAt = datetime('now')`, [cursorKey, batchLastId]);
177
+ });
178
+ stats.scanned += rows.length;
179
+ cursor = batchLastId;
180
+ await opts.afterBatch?.({ table: target.table, ids: rows.map((r) => r.id) });
181
+ await yieldTick();
182
+ }
183
+ return stats;
184
+ }
185
+ async function rewriteRow(tx, target, id, before, after) {
186
+ const changedCols = target.columns.filter((c) => after[c] !== before[c]);
187
+ const sealedCols = Object.values(target.replay ?? {}).filter((c) => after[c] !== undefined);
188
+ const sets = [...changedCols, ...sealedCols].map((c) => `${c} = ?`);
189
+ const params = [...changedCols, ...sealedCols].map((c) => after[c] ?? null);
190
+ if (target.hash && changedCols.includes(target.hash.of)) {
191
+ sets.push(`${target.hash.column} = ?`);
192
+ params.push(contentSha256(after[target.hash.of] ?? ""));
193
+ }
194
+ const guards = [...changedCols.map((c) => `${c} IS ?`), ...sealedCols.map((c) => `${c} IS NULL`)];
195
+ params.push(id, ...changedCols.map((c) => before[c] ?? null));
196
+ const result = await tx.run(`UPDATE ${target.table} SET ${sets.join(", ")} WHERE id = ? AND ${guards.join(" AND ")}`, params);
197
+ return result.changes > 0;
198
+ }
199
+ async function rewriteMemoryRow(id, before, after) {
200
+ const pick = (r) => ({
201
+ name: r.name ?? "",
202
+ content: r.content ?? "",
203
+ summary: r.summary ?? null
204
+ });
205
+ return getMemoryStore().rewriteForScrub(id, pick(before), pick(after));
206
+ }
207
+ export {
208
+ BOOT_SCRUB_TARGETS,
209
+ bootScrubCursorKey,
210
+ bootScrubDoneKey,
211
+ runBootScrubSweep
212
+ };
@@ -1,31 +1,32 @@
1
1
  import {
2
2
  ensurePricingSeeded,
3
3
  ensureRbacSeeded
4
- } from "./cli-k6xx3pve.js";
5
- import"./cli-nfygw434.js";
6
- import"./cli-xnzrzets.js";
4
+ } from "./cli-tx2zvn23.js";
5
+ import"./cli-v1pwxreq.js";
6
+ import"./cli-ypgba1a8.js";
7
7
  import"./cli-rfphkzh5.js";
8
- import"./cli-qdv8kgz7.js";
9
- import"./cli-9s3h836g.js";
8
+ import"./cli-mkdsy1nq.js";
10
9
  import"./cli-3qhyh31j.js";
11
- import"./cli-3a4m1aws.js";
10
+ import"./cli-xvdgasgy.js";
11
+ import"./cli-mxvnnv5q.js";
12
12
  import"./cli-7mm2r1kp.js";
13
13
  import"./cli-g5erf0zt.js";
14
14
  import"./cli-dmtrxqhg.js";
15
- import"./cli-tadfgd0t.js";
16
- import"./cli-ywybs5as.js";
17
- import"./cli-gd4favx9.js";
18
15
  import"./cli-agamgm0p.js";
19
16
  import"./cli-5c2j5yvx.js";
20
17
  import"./cli-1a2j50m0.js";
18
+ import"./cli-tadfgd0t.js";
19
+ import"./cli-ywybs5as.js";
21
20
  import"./cli-f9w1semm.js";
21
+ import"./cli-a35hzdve.js";
22
+ import"./cli-gd4favx9.js";
22
23
  import"./cli-ej6gbxfb.js";
23
- import"./cli-zsh093hk.js";
24
+ import"./cli-014vns2y.js";
24
25
  import"./cli-sd0mxa3c.js";
25
26
  import"./cli-w5e1d1vv.js";
26
- import"./cli-1kzfvd1z.js";
27
+ import"./cli-ymmc1zxg.js";
27
28
  import"./cli-zf8jjwex.js";
28
- import"./cli-h1spv8v4.js";
29
+ import"./cli-wt7ccy4r.js";
29
30
  import"./cli-bc05qbss.js";
30
31
  export {
31
32
  ensurePricingSeeded,
@@ -4,6 +4,7 @@ import {
4
4
  buildClaudeCodeRuntimeEnv,
5
5
  buildClaudeSessionEnvironment,
6
6
  checkClaudeCredentials,
7
+ claudeOpenRouterAttributionEnv,
7
8
  cleanupTaskFile,
8
9
  createSessionMcpConfig,
9
10
  getSystemPromptFilePath,
@@ -20,57 +21,55 @@ import {
20
21
  resolveClaudeTrustDirs,
21
22
  runClaudeSessionSummary,
22
23
  withClaudeRouteEnv
23
- } from "./cli-n9ehc28t.js";
24
- import"./cli-bdv39kgj.js";
25
- import"./cli-zvckv750.js";
24
+ } from "./cli-mxry91sa.js";
25
+ import"./cli-z1dqhc9y.js";
26
+ import"./cli-69egj654.js";
26
27
  import"./cli-v6vv7dy8.js";
27
28
  import"./cli-q2j38vre.js";
28
- import"./cli-zm7njwzd.js";
29
- import"./cli-ptcz1cqy.js";
30
- import"./cli-32bca7nr.js";
31
- import"./cli-5b2fjjzh.js";
29
+ import"./cli-r7eeddkq.js";
32
30
  import"./cli-hp1n6zq3.js";
33
31
  import"./cli-tng3131n.js";
32
+ import"./cli-zm7njwzd.js";
33
+ import"./cli-ptcz1cqy.js";
34
+ import"./cli-7avy4v8w.js";
34
35
  import"./cli-eree7rnv.js";
35
36
  import"./cli-2pdaysab.js";
36
- import"./cli-ttbsse3f.js";
37
+ import"./cli-tmhsxhb8.js";
37
38
  import"./cli-w0bwte75.js";
38
39
  import"./cli-re8z5p8p.js";
39
40
  import"./cli-f14fvzag.js";
41
+ import"./cli-7mhy3ths.js";
42
+ import"./cli-v1w7pbd8.js";
40
43
  import"./cli-zt3w1cn1.js";
41
- import"./cli-xb3c6aat.js";
42
- import"./cli-ftry7975.js";
43
- import"./cli-3dpj7atn.js";
44
- import"./cli-2x0e561b.js";
45
- import"./cli-pkke6geq.js";
44
+ import"./cli-km4x66j0.js";
46
45
  import"./cli-rb9m6rpe.js";
47
- import"./cli-wfajtmf7.js";
46
+ import"./cli-2x0e561b.js";
48
47
  import"./cli-bsakbbkm.js";
49
48
  import"./cli-zxg80zs9.js";
50
49
  import"./cli-ydt3zkwv.js";
51
- import"./cli-cvk6yzw5.js";
52
- import"./cli-b0f70z24.js";
53
- import"./cli-nexwh8zg.js";
50
+ import"./cli-mn8qkd8v.js";
51
+ import"./cli-g7k7zbcz.js";
54
52
  import"./cli-btbzvq95.js";
55
53
  import"./cli-1m2e086m.js";
56
- import"./cli-bzr0ftht.js";
57
- import"./cli-3a4m1aws.js";
54
+ import"./cli-wnb9b2g3.js";
55
+ import"./cli-mxvnnv5q.js";
58
56
  import"./cli-7mm2r1kp.js";
59
57
  import"./cli-g5erf0zt.js";
60
58
  import"./cli-dmtrxqhg.js";
61
- import"./cli-tadfgd0t.js";
62
- import"./cli-ywybs5as.js";
63
- import"./cli-gd4favx9.js";
64
59
  import"./cli-agamgm0p.js";
65
60
  import"./cli-5c2j5yvx.js";
66
61
  import"./cli-1a2j50m0.js";
62
+ import"./cli-tadfgd0t.js";
63
+ import"./cli-ywybs5as.js";
67
64
  import"./cli-f9w1semm.js";
65
+ import"./cli-a35hzdve.js";
66
+ import"./cli-gd4favx9.js";
68
67
  import"./cli-ej6gbxfb.js";
69
- import"./cli-zsh093hk.js";
68
+ import"./cli-014vns2y.js";
70
69
  import"./cli-sd0mxa3c.js";
71
70
  import"./cli-w5e1d1vv.js";
72
- import"./cli-1kzfvd1z.js";
73
- import"./cli-h1spv8v4.js";
71
+ import"./cli-ymmc1zxg.js";
72
+ import"./cli-wt7ccy4r.js";
74
73
  import"./cli-knd276ed.js";
75
74
  import"./cli-bc05qbss.js";
76
75
  export {
@@ -79,6 +78,7 @@ export {
79
78
  buildClaudeCodeRuntimeEnv,
80
79
  buildClaudeSessionEnvironment,
81
80
  checkClaudeCredentials,
81
+ claudeOpenRouterAttributionEnv,
82
82
  cleanupTaskFile,
83
83
  createSessionMcpConfig,
84
84
  getSystemPromptFilePath,
@@ -3,15 +3,15 @@ import {
3
3
  checkClaudeManagedCredentials,
4
4
  composeManagedUserMessage,
5
5
  normalizeRepoUrl
6
- } from "./cli-59jn5twa.js";
6
+ } from "./cli-tc5zec7v.js";
7
7
  import"./cli-hsxj0yar.js";
8
8
  import"./cli-gt4hxb8p.js";
9
- import"./cli-32bca7nr.js";
10
9
  import"./cli-hp1n6zq3.js";
11
- import"./cli-ma3zvh39.js";
10
+ import"./cli-7avy4v8w.js";
11
+ import"./cli-5qkcdv8c.js";
12
12
  import"./cli-51tf7ac3.js";
13
- import"./cli-zsh093hk.js";
14
- import"./cli-h1spv8v4.js";
13
+ import"./cli-014vns2y.js";
14
+ import"./cli-wt7ccy4r.js";
15
15
  import"./cli-bc05qbss.js";
16
16
  export {
17
17
  ClaudeManagedAdapter,
@@ -5,22 +5,22 @@ import {
5
5
  Anthropic,
6
6
  ConflictError,
7
7
  toFile
8
- } from "./cli-ma3zvh39.js";
8
+ } from "./cli-5qkcdv8c.js";
9
9
  import {
10
10
  getApiKey
11
11
  } from "./cli-f14fvzag.js";
12
- import"./cli-ftry7975.js";
12
+ import"./cli-v1w7pbd8.js";
13
13
  import"./cli-51tf7ac3.js";
14
14
  import {
15
15
  DEFAULT_MODEL_TIER_MAP,
16
16
  init_types
17
- } from "./cli-9s3h836g.js";
18
- import"./cli-gd4favx9.js";
17
+ } from "./cli-xvdgasgy.js";
19
18
  import"./cli-1a2j50m0.js";
19
+ import"./cli-gd4favx9.js";
20
20
  import"./cli-ej6gbxfb.js";
21
21
  import"./cli-sd0mxa3c.js";
22
22
  import"./cli-w5e1d1vv.js";
23
- import"./cli-h1spv8v4.js";
23
+ import"./cli-wt7ccy4r.js";
24
24
  import {
25
25
  __require
26
26
  } from "./cli-bc05qbss.js";