@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
@@ -2,12 +2,12 @@ import {
2
2
  COMPOSIO_HTTP_METHODS,
3
3
  composioArgsFromParts,
4
4
  executeComposioRequest
5
- } from "./cli-x7afk5wm.js";
5
+ } from "./cli-xvc3q9br.js";
6
6
  import {
7
7
  ampModelError,
8
8
  ampPinCatalogError,
9
9
  ampPinProviderError
10
- } from "./cli-420bdgw0.js";
10
+ } from "./cli-mv2520nm.js";
11
11
  import {
12
12
  LlmRater,
13
13
  REFERENCES_SOURCE_MAX_LENGTH,
@@ -20,7 +20,7 @@ import {
20
20
  import {
21
21
  ensurePricingSeeded,
22
22
  ensureRbacSeeded
23
- } from "./cli-k6xx3pve.js";
23
+ } from "./cli-tx2zvn23.js";
24
24
  import {
25
25
  buildCatalogEntries,
26
26
  getCatalogGeneration,
@@ -30,10 +30,10 @@ import {
30
30
  requestModelCatalogRefresh,
31
31
  startPricingRefreshLoop,
32
32
  upsertModelCatalogOverlay
33
- } from "./cli-e7t4snpa.js";
33
+ } from "./cli-p8rt8spp.js";
34
34
  import {
35
35
  loadModelsDevCache
36
- } from "./cli-nfygw434.js";
36
+ } from "./cli-v1pwxreq.js";
37
37
  import {
38
38
  AppDefinitionSchema,
39
39
  AppElementsSchema,
@@ -64,7 +64,6 @@ import {
64
64
  decodeAppDefinition,
65
65
  definitionNodeIds,
66
66
  deleteApp,
67
- deleteScript,
68
67
  disableCredentialBinding,
69
68
  extractArgsJsonSchema,
70
69
  extractScriptSignature,
@@ -75,12 +74,9 @@ import {
75
74
  getOAuthBindingTokenStatus,
76
75
  getOAuthProviderConfig,
77
76
  getSavedScriptOwnerAgentId,
78
- getScript,
79
77
  getScriptApiConnectionDescriptors,
80
- getScriptById,
81
78
  getScriptConnectionById,
82
79
  getScriptMcpConnectionDescriptors,
83
- getScriptVersion,
84
80
  getSuccessors,
85
81
  isIso8601Date,
86
82
  listApps,
@@ -95,7 +91,6 @@ import {
95
91
  resolveSyncRunAs,
96
92
  resolveValidationPort,
97
93
  resolveWorkflowLlmConfig,
98
- restoreScratchScriptLastUsedIfUnchanged,
99
94
  runSavedScriptAsAgent,
100
95
  runScript,
101
96
  sandboxSpawnEnv,
@@ -103,17 +98,15 @@ import {
103
98
  snapshotCapped,
104
99
  systemOneRetryViolations,
105
100
  systemOneUnresolvedError,
106
- touchScratchScriptLastUsed,
107
101
  typecheckScript,
108
102
  updateApp,
109
103
  upgradeAppDefinition,
110
104
  upsertCredentialBinding,
111
- upsertScriptByName,
112
105
  upsertScriptConnection,
113
106
  validateDefinition,
114
107
  validateScriptImports,
115
108
  writeBareImportShim
116
- } from "./cli-xtgtyafv.js";
109
+ } from "./cli-577bxkf6.js";
117
110
  import {
118
111
  getApiKey
119
112
  } from "./cli-f14fvzag.js";
@@ -122,51 +115,18 @@ import {
122
115
  registerProcessGroup,
123
116
  terminateProcessGroup
124
117
  } from "./cli-zt3w1cn1.js";
125
- import {
126
- AgentFsProvider,
127
- getFileStorageProvider,
128
- providerPath
129
- } from "./cli-mzfth0bp.js";
130
- import {
131
- embedScript
132
- } from "./cli-jqt9hrnz.js";
133
- import {
134
- CANDIDATE_SET_MULTIPLIER,
135
- LONGTERM_ROOT,
136
- MEMORY_KEY_MAX_LENGTH,
137
- MEMORY_KEY_PATTERN,
138
- MEMORY_KEY_PATTERN_MESSAGE,
139
- computeScore,
140
- consolidatedKeyMessage,
141
- getEmbeddingProvider,
142
- getMemoryStore,
143
- init_constants as init_constants2,
144
- init_key_paths,
145
- init_reranker,
146
- init_sqlite_store,
147
- isConsolidatedKey,
148
- isGraphExpansionEnabled,
149
- isLongtermKey,
150
- longtermKeyError,
151
- rerank,
152
- resolveStoreKey,
153
- rowToCandidate
154
- } from "./cli-yhmwmv0g.js";
155
118
  import {
156
119
  buildAuthorizationUrl,
157
- createOAuthApp,
158
120
  ensureAuthorizationTokenOrThrow,
159
121
  ensureToken,
160
122
  ensureTokenOrThrow,
161
- getAuthorizationById,
162
- getOAuthApp,
163
- getOAuthAppById,
164
- getOAuthAppIdByProvider,
165
- getOAuthTokens,
166
- listAuthorizationsForApp,
167
- onAuthorizationRefreshed,
168
- upsertOAuthApp
169
- } from "./cli-a87b04k8.js";
123
+ onAuthorizationRefreshed
124
+ } from "./cli-kw0jcfje.js";
125
+ import {
126
+ AgentFsProvider,
127
+ getFileStorageProvider,
128
+ providerPath
129
+ } from "./cli-mzfth0bp.js";
170
130
  import {
171
131
  ZodFirstPartyTypeKind,
172
132
  objectType
@@ -196,16 +156,11 @@ import {
196
156
  taskCitationWarnings,
197
157
  upsertTaskCitations,
198
158
  withSpan
199
- } from "./cli-0n4fasz0.js";
200
- import {
201
- init_task_attachment_links,
202
- taskAttachmentDisplayUrl,
203
- taskAttachmentFetchCommand
204
- } from "./cli-cvk6yzw5.js";
159
+ } from "./cli-c8r99akr.js";
205
160
  import {
206
161
  getUserGrant,
207
162
  init_rbac_roles
208
- } from "./cli-xnzrzets.js";
163
+ } from "./cli-ypgba1a8.js";
209
164
  import {
210
165
  can,
211
166
  decideAdmission,
@@ -217,16 +172,23 @@ import {
217
172
  } from "./cli-rfphkzh5.js";
218
173
  import {
219
174
  API_DRAIN_MAX_MS_LIMIT,
175
+ CANDIDATE_SET_MULTIPLIER,
220
176
  CredentialBindingSchema,
221
177
  EXTENSION_AGENT_ROLE,
222
178
  KvTypeCollisionError,
179
+ LONGTERM_ROOT,
223
180
  MAX_EMPTY_POLLS,
181
+ MEMORY_KEY_MAX_LENGTH,
182
+ MEMORY_KEY_PATTERN,
183
+ MEMORY_KEY_PATTERN_MESSAGE,
224
184
  SteeringRequestError,
185
+ WorkflowReplayStateError,
225
186
  acceptTask,
226
187
  agentContextKey,
227
188
  agentmailContextKey,
228
189
  azureDevOpsContextKey,
229
190
  beginRequestAuthScope,
191
+ breaksJsonValidity,
230
192
  buildJiraContextKey,
231
193
  buildRoutingAffinityFromAgent,
232
194
  cancelApprovalRequestById,
@@ -238,6 +200,8 @@ import {
238
200
  claimTask,
239
201
  completeTask,
240
202
  computeContentHash,
203
+ computeScore,
204
+ consolidatedKeyMessage,
241
205
  countKv,
242
206
  createAgent,
243
207
  createAgentMailInboxMapping,
@@ -248,6 +212,7 @@ import {
248
212
  createMcpServer,
249
213
  createMetric,
250
214
  createMetricVersion,
215
+ createOAuthApp,
251
216
  createPage,
252
217
  createPageVersion,
253
218
  createScheduledTask,
@@ -265,6 +230,7 @@ import {
265
230
  deletePage,
266
231
  deletePromptTemplate,
267
232
  deleteScheduledTask,
233
+ deleteScript,
268
234
  deleteService,
269
235
  deleteSkill,
270
236
  deleteSkillFile,
@@ -272,6 +238,7 @@ import {
272
238
  deleteUser,
273
239
  deleteWorkflow,
274
240
  detachTaskFromWorkflowRunStep,
241
+ embedScript,
275
242
  emitMcpServerConnectedTelemetry,
276
243
  exports_db,
277
244
  extensionAgentAssignmentError,
@@ -299,6 +266,7 @@ import {
299
266
  getAppVersion,
300
267
  getAppVersions,
301
268
  getApprovalRequestById,
269
+ getAuthorizationById,
302
270
  getBudget,
303
271
  getChannelById,
304
272
  getChannelByName,
@@ -315,6 +283,7 @@ import {
315
283
  getDependentTasks,
316
284
  getDueScheduledTasks,
317
285
  getDueWaitStates,
286
+ getEmbeddingProvider,
318
287
  getInProgressTasksByContextKey,
319
288
  getInboxMessageById,
320
289
  getInboxSummary,
@@ -328,10 +297,15 @@ import {
328
297
  getLogsByTaskIdChronological,
329
298
  getMcpServerById,
330
299
  getMcpServerByName,
300
+ getMemoryStore,
331
301
  getMentionsForAgent,
332
302
  getMetric,
333
303
  getMetricBySlug,
334
304
  getMetricVersions,
305
+ getOAuthApp,
306
+ getOAuthAppById,
307
+ getOAuthAppIdByProvider,
308
+ getOAuthTokens,
335
309
  getOfferedTasksForAgent,
336
310
  getPage,
337
311
  getPageBySlug,
@@ -349,6 +323,9 @@ import {
349
323
  getScheduledTaskById,
350
324
  getScheduledTaskByName,
351
325
  getScheduledTasks,
326
+ getScript,
327
+ getScriptById,
328
+ getScriptVersion,
352
329
  getServiceByAgentAndName,
353
330
  getServiceById,
354
331
  getSessionLogsByTaskId,
@@ -389,39 +366,55 @@ import {
389
366
  incrementEmptyPollCount,
390
367
  initDb,
391
368
  init_api_drain,
369
+ init_constants as init_constants2,
392
370
  init_context_key,
393
371
  init_credential_broker,
394
372
  init_date_utils,
395
373
  init_db,
374
+ init_db1 as init_db2,
396
375
  init_db_client,
376
+ init_embeddings,
377
+ init_enabled_tools,
378
+ init_key_paths,
379
+ init_memory,
397
380
  init_model_tier_keys,
381
+ init_oauth,
398
382
  init_request_auth_context,
383
+ init_reranker,
384
+ init_scrub_json,
399
385
  init_slack_routing,
386
+ init_sqlite_store,
400
387
  init_steering,
401
388
  init_swarm_config_guard,
402
389
  init_task_lifecycle_events,
403
390
  init_telemetry,
404
391
  init_telemetry_identity,
405
392
  init_templates1 as init_templates,
393
+ init_workflow_replay,
406
394
  insertTaskAttachment,
407
395
  installMcpServer,
408
396
  installSkill,
409
397
  internalConfigKeyError,
410
398
  isAgentEligibleForTask,
399
+ isConsolidatedKey,
411
400
  isExtensionAgent,
401
+ isGraphExpansionEnabled,
412
402
  isInTransaction,
413
403
  isInternalConfigKey,
414
404
  isLinearTrackerContextKey,
405
+ isLongtermKey,
415
406
  isReservedConfigKey,
416
407
  isSteeringEnabled,
417
408
  kvPrefixUpperBound,
418
409
  linearContextKey,
410
+ listAuthorizationsForApp,
419
411
  listCancelledApprovalRequestsForRun,
420
412
  listKv,
421
413
  listMcpServers,
422
414
  listSkills,
423
415
  listWorkflowRunsPage,
424
416
  listWorkflows,
417
+ longtermKeyError,
425
418
  markInboxMessageResponded,
426
419
  markSteeringHandled,
427
420
  markTaskSlackReplySent,
@@ -432,6 +425,7 @@ import {
432
425
  onTaskStarted,
433
426
  overwriteTerminalTaskResultText,
434
427
  pageContextKey,
428
+ parseEnabledTools,
435
429
  placeholderForConfigKey,
436
430
  postMessage,
437
431
  promoteDraftTask,
@@ -443,14 +437,19 @@ import {
443
437
  releaseMentionProcessing,
444
438
  releaseTask,
445
439
  requestSteering,
440
+ rerank,
446
441
  reservedKeyError,
447
442
  resetEmptyPollCount,
448
443
  resolveApprovalRequest,
449
444
  resolveSqliteVecExtensionPath,
445
+ resolveStoreKey,
450
446
  resolveWaitState,
447
+ restoreScratchScriptLastUsedIfUnchanged,
448
+ rowToCandidate,
451
449
  runWithoutRequestAuth,
452
450
  scheduleContextKey,
453
451
  scheduleOrgDomainRecompute,
452
+ scrubJsonValue,
454
453
  searchSkills,
455
454
  setBudgetRefusalFollowUpTaskId,
456
455
  setRequestAuth,
@@ -459,6 +458,7 @@ import {
459
458
  sweepExpiredKvPrefix,
460
459
  telemetry,
461
460
  tierConfigKey,
461
+ touchScratchScriptLastUsed,
462
462
  uninstallMcpServer,
463
463
  uninstallSkill,
464
464
  updateAgentMaxTasks,
@@ -480,13 +480,15 @@ import {
480
480
  updateWorkflowRun,
481
481
  updateWorkflowRunStep,
482
482
  upsertKv,
483
+ upsertOAuthApp,
483
484
  upsertPromptTemplate,
485
+ upsertScriptByName,
484
486
  upsertService,
485
487
  upsertSkillFiles,
486
488
  upsertSwarmConfig,
487
489
  validateConfigValue,
488
490
  workflowContextKey
489
- } from "./cli-qdv8kgz7.js";
491
+ } from "./cli-mkdsy1nq.js";
490
492
  import {
491
493
  $OpenAPIRegistry,
492
494
  $OpenApiGeneratorV31,
@@ -546,18 +548,32 @@ import {
546
548
  parseAssetKey,
547
549
  parseModelTier,
548
550
  splitLegacyModelAlias
549
- } from "./cli-9s3h836g.js";
551
+ } from "./cli-xvdgasgy.js";
550
552
  import {
551
553
  generateDefaultClaudeMd,
552
554
  generateDefaultIdentityMd,
553
555
  generateDefaultSoulMd,
554
- init_defaults
555
- } from "./cli-3a4m1aws.js";
556
+ init_defaults,
557
+ init_task_attachment_links,
558
+ taskAttachmentDisplayUrl,
559
+ taskAttachmentFetchCommand
560
+ } from "./cli-mxvnnv5q.js";
556
561
  import {
557
562
  getSlackConfiguration,
558
563
  init_config,
559
564
  isSlackConfigured
560
565
  } from "./cli-dmtrxqhg.js";
566
+ import {
567
+ deepInterpolate,
568
+ findInterpolationTokens,
569
+ getTemplateDefinition,
570
+ init_registry,
571
+ init_resolver,
572
+ init_template,
573
+ interpolate,
574
+ registerTemplate,
575
+ resolveTemplate
576
+ } from "./cli-5c2j5yvx.js";
561
577
  import {
562
578
  MAX_PROFILE_FILE_LENGTH,
563
579
  getAgentFsDefaultDriveId,
@@ -570,17 +586,6 @@ import {
570
586
  init_constants,
571
587
  isCombEnabled
572
588
  } from "./cli-gd4favx9.js";
573
- import {
574
- deepInterpolate,
575
- findInterpolationTokens,
576
- getTemplateDefinition,
577
- init_registry,
578
- init_resolver,
579
- init_template,
580
- interpolate,
581
- registerTemplate,
582
- resolveTemplate
583
- } from "./cli-5c2j5yvx.js";
584
589
  import {
585
590
  init_env_flag,
586
591
  isEnvFlagEnabled,
@@ -598,7 +603,7 @@ import {
598
603
  modelFamilyKey,
599
604
  parseAlias,
600
605
  resolveAlias
601
- } from "./cli-zsh093hk.js";
606
+ } from "./cli-014vns2y.js";
602
607
  import {
603
608
  exports_zod,
604
609
  init_zod
@@ -647,11 +652,11 @@ import {
647
652
  import {
648
653
  init_package,
649
654
  package_default
650
- } from "./cli-1kzfvd1z.js";
655
+ } from "./cli-ymmc1zxg.js";
651
656
  import {
652
657
  init_event_bus,
653
658
  workflowEventBus
654
- } from "./cli-hpryr6em.js";
659
+ } from "./cli-mb75wpxf.js";
655
660
  import {
656
661
  init_bus,
657
662
  realtimeBus
@@ -664,7 +669,7 @@ import {
664
669
  registerVolatileSecret,
665
670
  scrubObject,
666
671
  scrubSecrets
667
- } from "./cli-h1spv8v4.js";
672
+ } from "./cli-wt7ccy4r.js";
668
673
  import {
669
674
  __callDispose,
670
675
  __commonJS,
@@ -14387,7 +14392,7 @@ async function notifyAutomationPreflightFailure(preflight) {
14387
14392
  return;
14388
14393
  }
14389
14394
  try {
14390
- const { getSlackApp: getSlackApp2 } = await import("./app-75hm5cfa.js");
14395
+ const { getSlackApp: getSlackApp2 } = await import("./app-nctetn1e.js");
14391
14396
  const app = getSlackApp2();
14392
14397
  if (!app) {
14393
14398
  console.warn("[Automation Preflight] Slack not available, cannot send notification");
@@ -14412,7 +14417,10 @@ Fix setup: ${getAppUrl()}${preflight.fixUrl}`),
14412
14417
  // src/be/automation-preflight.ts
14413
14418
  init_config();
14414
14419
  init_env_flag();
14415
- init_db();
14420
+ init_secret_scrubber();
14421
+ init_db2();
14422
+ init_oauth();
14423
+ init_scrub_json();
14416
14424
  var NEEDS_SETUP_PREFIX = "needs_setup:";
14417
14425
  function hasValue(value) {
14418
14426
  if (value == null)
@@ -14623,16 +14631,17 @@ function utcDayBounds(now) {
14623
14631
  return { start: start.toISOString(), end: new Date(start.getTime() + 86400000).toISOString() };
14624
14632
  }
14625
14633
  async function recordSchedulePreflightFailure(scheduleId, failureReason, now = new Date) {
14634
+ const message = scrubSecrets(failureReason);
14626
14635
  return await getDbClient().transaction(async (tx) => {
14627
14636
  const row = await tx.get("SELECT lastErrorAt, lastErrorMessage FROM scheduled_tasks WHERE id = ?", [scheduleId]);
14628
14637
  if (!row)
14629
14638
  return false;
14630
- if (row.lastErrorMessage === failureReason && row.lastErrorAt?.slice(0, 10) === now.toISOString().slice(0, 10)) {
14639
+ if (row.lastErrorMessage === message && row.lastErrorAt?.slice(0, 10) === now.toISOString().slice(0, 10)) {
14631
14640
  return false;
14632
14641
  }
14633
14642
  await tx.run(`UPDATE scheduled_tasks
14634
14643
  SET lastErrorAt = ?, lastErrorMessage = ?, lastUpdatedAt = ?
14635
- WHERE id = ?`, [now.toISOString(), failureReason, now.toISOString(), scheduleId]);
14644
+ WHERE id = ?`, [now.toISOString(), message, now.toISOString(), scheduleId]);
14636
14645
  return true;
14637
14646
  });
14638
14647
  }
@@ -14656,8 +14665,8 @@ async function recordWorkflowPreflightFailure(input) {
14656
14665
  runId,
14657
14666
  input.workflowId,
14658
14667
  input.triggerType,
14659
- input.triggerData === undefined ? null : JSON.stringify(input.triggerData),
14660
- input.failureReason,
14668
+ input.triggerData === undefined ? null : scrubJsonValue(input.triggerData),
14669
+ scrubSecrets(input.failureReason),
14661
14670
  input.createdBy ?? null,
14662
14671
  timestamp,
14663
14672
  timestamp,
@@ -14668,11 +14677,12 @@ async function recordWorkflowPreflightFailure(input) {
14668
14677
  }
14669
14678
 
14670
14679
  // src/workflows/engine.ts
14671
- init_db();
14680
+ init_db2();
14681
+ init_workflow_replay();
14672
14682
  init_telemetry();
14673
14683
 
14674
14684
  // src/workflows/checkpoint.ts
14675
- init_db();
14685
+ init_db2();
14676
14686
  async function checkpointStep(runId, stepId, nodeId, result, ctx) {
14677
14687
  await getDbClient().transaction(async () => {
14678
14688
  await updateWorkflowRunStep(stepId, {
@@ -14759,10 +14769,10 @@ function calculateBackoff(policy, attempt) {
14759
14769
  }
14760
14770
 
14761
14771
  // src/workflows/completed-step-routing.ts
14762
- init_db();
14772
+ init_db2();
14763
14773
 
14764
14774
  // src/workflows/foreach-join.ts
14765
- init_db();
14775
+ init_db2();
14766
14776
  var FOREACH_TERMINAL_STEP_STATUSES = new Set([
14767
14777
  "completed",
14768
14778
  "failed",
@@ -14859,7 +14869,7 @@ async function loadCompletedStepRouting(def, runId, completedNodeIds) {
14859
14869
  }
14860
14870
 
14861
14871
  // src/workflows/cooldown.ts
14862
- init_db();
14872
+ init_db2();
14863
14873
  function cooldownToMs(cooldown) {
14864
14874
  let ms = 0;
14865
14875
  if (cooldown.hours)
@@ -14889,7 +14899,7 @@ async function shouldSkipCooldown(workflowId, cooldown) {
14889
14899
  }
14890
14900
 
14891
14901
  // src/workflows/input.ts
14892
- init_db();
14902
+ init_db2();
14893
14903
  init_secret_scrubber();
14894
14904
  async function resolveInputs(input) {
14895
14905
  const resolved = {};
@@ -15297,6 +15307,22 @@ async function startWorkflowExecution(workflow, triggerData, registry, options =
15297
15307
  }
15298
15308
  var activeWalks = new Map;
15299
15309
  var executingSteps = new Set;
15310
+ async function failRunOnUnreadableReplay(runId, err, stepId) {
15311
+ if (!(err instanceof WorkflowReplayStateError))
15312
+ return false;
15313
+ const finishedAt = new Date().toISOString();
15314
+ console.error(`[workflow] ${err.message}`);
15315
+ if (stepId) {
15316
+ await updateWorkflowRunStep(stepId, {
15317
+ status: "failed",
15318
+ error: err.message,
15319
+ finishedAt,
15320
+ nextRetryAt: null
15321
+ });
15322
+ }
15323
+ await updateWorkflowRun(runId, { status: "failed", error: err.message, finishedAt });
15324
+ return true;
15325
+ }
15300
15326
  function isWorkflowRunActive(runId) {
15301
15327
  return activeWalks.has(runId);
15302
15328
  }
@@ -15318,6 +15344,9 @@ async function walkGraph(def, runId, ctx, startNodes, registry, workflowId, secr
15318
15344
  const release = holdWorkflowRun(runId);
15319
15345
  try {
15320
15346
  await walkGraphOwned(def, runId, ctx, startNodes, registry, workflowId, secretKeys, options);
15347
+ } catch (err) {
15348
+ if (!await failRunOnUnreadableReplay(runId, err))
15349
+ throw err;
15321
15350
  } finally {
15322
15351
  release();
15323
15352
  }
@@ -15373,10 +15402,10 @@ async function walkGraphOwned(def, runId, ctx, startNodes, registry, workflowId,
15373
15402
  });
15374
15403
  return;
15375
15404
  }
15376
- const results = await Promise.all(pendingNodes.map((node) => executeStep(def, runId, ctx, node, registry, workflowId, secretKeys, options).catch((_err) => ({
15377
- outcome: "failed",
15378
- successors: []
15379
- }))));
15405
+ const results = await Promise.all(pendingNodes.map((node) => executeStep(def, runId, ctx, node, registry, workflowId, secretKeys, options).catch(async (err) => {
15406
+ await failRunOnUnreadableReplay(runId, err);
15407
+ return { outcome: "failed", successors: [] };
15408
+ })));
15380
15409
  const nextBatch = new Map;
15381
15410
  let hasWaiting = false;
15382
15411
  for (let i = 0;i < results.length; i++) {
@@ -15590,6 +15619,11 @@ async function executeStep(def, runId, ctx, node, registry, workflowId, secretKe
15590
15619
  }
15591
15620
  try {
15592
15621
  return await runClaimedStep(def, runId, ctx, node, registry, dedup.existingStep, dedup.stepId, workflowId, options);
15622
+ } catch (err) {
15623
+ if (await failRunOnUnreadableReplay(runId, err, dedup.stepId)) {
15624
+ return { outcome: "failed", successors: [] };
15625
+ }
15626
+ throw err;
15593
15627
  } finally {
15594
15628
  executingSteps.delete(dedup.stepId);
15595
15629
  }
@@ -15877,7 +15911,7 @@ function timeoutPromise(ms) {
15877
15911
  init_event_bus();
15878
15912
 
15879
15913
  // src/workflows/recovery.ts
15880
- init_db();
15914
+ init_db2();
15881
15915
 
15882
15916
  // src/workflows/approval-resolution.ts
15883
15917
  function shapeApprovalResolution(registry, definition, nodeId, parkedOutput, approval) {
@@ -15901,7 +15935,7 @@ function shapeApprovalResolution(registry, definition, nodeId, parkedOutput, app
15901
15935
  var FAILED_TASK_OUTPUT_PREFIX = "[FAILED:";
15902
15936
 
15903
15937
  // src/workflows/resume.ts
15904
- init_db();
15938
+ init_db2();
15905
15939
  init_secret_scrubber();
15906
15940
  init_event_bus();
15907
15941
 
@@ -16182,7 +16216,7 @@ function computeNextPort(mode, status) {
16182
16216
  }
16183
16217
 
16184
16218
  // src/workflows/task-step-routing.ts
16185
- init_db();
16219
+ init_db2();
16186
16220
  init_types();
16187
16221
  async function isTaskBoundToStep(taskId, stepId) {
16188
16222
  const task = await getTaskById(taskId);
@@ -16336,7 +16370,18 @@ function setupWorkflowResumeListener(eventBus, registry) {
16336
16370
  eventBus.off("approval.resolved", onApprovalResolved);
16337
16371
  };
16338
16372
  }
16373
+ async function failClosedOnUnreadableReplay(runId, stepId, resume) {
16374
+ try {
16375
+ await resume();
16376
+ } catch (err) {
16377
+ if (!await failRunOnUnreadableReplay(runId, err, stepId))
16378
+ throw err;
16379
+ }
16380
+ }
16339
16381
  async function resumeFromTaskCompletion(event, registry) {
16382
+ await failClosedOnUnreadableReplay(event.workflowRunId, event.workflowRunStepId, () => resumeFromTaskCompletionUnguarded(event, registry));
16383
+ }
16384
+ async function resumeFromTaskCompletionUnguarded(event, registry) {
16340
16385
  const run = await getWorkflowRun(event.workflowRunId);
16341
16386
  if (!run || run.status !== "waiting" && run.status !== "running")
16342
16387
  return;
@@ -16391,6 +16436,9 @@ async function finalizeOrWait(runId) {
16391
16436
  });
16392
16437
  }
16393
16438
  async function handleTaskFailure(event, reason, registry, options) {
16439
+ await failClosedOnUnreadableReplay(event.workflowRunId, event.workflowRunStepId, () => handleTaskFailureUnguarded(event, reason, registry, options));
16440
+ }
16441
+ async function handleTaskFailureUnguarded(event, reason, registry, options) {
16394
16442
  const run = await getWorkflowRun(event.workflowRunId);
16395
16443
  if (!run || run.status !== "waiting" && run.status !== "running")
16396
16444
  return;
@@ -16533,6 +16581,9 @@ async function cancelWorkflowRun(runId, reason) {
16533
16581
  await postApprovalCancellationUpdates(cancelledApprovals, applied ? cancelReason : latestRun?.error ?? cancelReason);
16534
16582
  }
16535
16583
  async function resumeFromApprovalResolution(event, registry) {
16584
+ await failClosedOnUnreadableReplay(event.workflowRunId, event.workflowRunStepId, () => resumeFromApprovalResolutionUnguarded(event, registry));
16585
+ }
16586
+ async function resumeFromApprovalResolutionUnguarded(event, registry) {
16536
16587
  const run = await getWorkflowRun(event.workflowRunId);
16537
16588
  if (!run || run.status !== "waiting" && run.status !== "running")
16538
16589
  return;
@@ -16542,11 +16593,11 @@ async function resumeFromApprovalResolution(event, registry) {
16542
16593
  const workflow = await getWorkflow(run.workflowId);
16543
16594
  if (!workflow)
16544
16595
  return;
16545
- const ctx = run.context ?? {};
16546
16596
  if (event.status === "cancelled") {
16547
16597
  console.warn(`[workflows] approval ${event.requestId} is cancelled; step ${event.workflowRunStepId} stays waiting for the run cancel path`);
16548
16598
  return;
16549
16599
  }
16600
+ const ctx = run.context ?? {};
16550
16601
  const { output: stepOutput, nextPort } = shapeApprovalResolution(registry, workflow.definition, step.nodeId, step.output, { requestId: event.requestId, status: event.status, responses: event.responses });
16551
16602
  const routing = await checkpointPortStepAndResolveSuccessors(workflow.definition, run.id, step.id, step.nodeId, stepOutput, nextPort, ctx);
16552
16603
  if (!routing.claimed)
@@ -16565,6 +16616,9 @@ async function resumeWaitState(waitId, status, payload, registry) {
16565
16616
  if (!result.updated || !result.row)
16566
16617
  return;
16567
16618
  const waitRow = result.row;
16619
+ await failClosedOnUnreadableReplay(waitRow.workflowRunId, waitRow.workflowRunStepId, () => resumeClaimedWait(waitRow, status, cappedPayload, registry));
16620
+ }
16621
+ async function resumeClaimedWait(waitRow, status, cappedPayload, registry) {
16568
16622
  const run = await getWorkflowRun(waitRow.workflowRunId);
16569
16623
  if (!run || run.status !== "waiting" && run.status !== "running")
16570
16624
  return;
@@ -16749,6 +16803,8 @@ async function recoverRunningRuns(registry) {
16749
16803
  }
16750
16804
  recovered++;
16751
16805
  } catch (err) {
16806
+ if (await failRunOnUnreadableReplay(runId, err))
16807
+ continue;
16752
16808
  console.error(`[workflows] Failed to recover running run ${runId}:`, err);
16753
16809
  }
16754
16810
  }
@@ -16834,6 +16890,8 @@ async function recoverWaitingRuns(registry) {
16834
16890
  }
16835
16891
  recovered++;
16836
16892
  } catch (err) {
16893
+ if (await failRunOnUnreadableReplay(stuck.runId, err))
16894
+ continue;
16837
16895
  console.error(`[workflows] Failed to recover waiting run ${stuck.runId}:`, err);
16838
16896
  }
16839
16897
  }
@@ -16888,6 +16946,8 @@ async function recoverApprovalWaitingRuns(registry) {
16888
16946
  }
16889
16947
  recovered++;
16890
16948
  } catch (err) {
16949
+ if (await failRunOnUnreadableReplay(stuck.runId, err))
16950
+ continue;
16891
16951
  console.error(`[workflows] Failed to recover approval-waiting run ${stuck.runId}:`, err);
16892
16952
  }
16893
16953
  }
@@ -16911,6 +16971,8 @@ async function recoverWaitStates(registry) {
16911
16971
  await resumeWaitState(stuck.waitId, resumeStatus, payload, registry);
16912
16972
  recovered++;
16913
16973
  } catch (err) {
16974
+ if (await failRunOnUnreadableReplay(stuck.runId, err))
16975
+ continue;
16914
16976
  console.error(`[workflows] Failed to recover wait-state ${stuck.waitId}:`, err);
16915
16977
  }
16916
16978
  }
@@ -16928,7 +16990,7 @@ async function getRunIdsByStatus(status) {
16928
16990
  return rows.map((r) => r.id);
16929
16991
  }
16930
16992
  // src/workflows/retry-poller.ts
16931
- init_db();
16993
+ init_db2();
16932
16994
  var pollerTimeout = null;
16933
16995
  function startRetryPoller(registry, intervalMs = 5000) {
16934
16996
  if (pollerTimeout !== null)
@@ -17017,11 +17079,15 @@ function startRetryPoller(registry, intervalMs = 5000) {
17017
17079
  }
17018
17080
  }
17019
17081
  } catch (err) {
17082
+ if (await failRunOnUnreadableReplay(run.id, err, step.id))
17083
+ continue;
17020
17084
  const errorMsg = err instanceof Error ? err.message : String(err);
17021
17085
  const retryPolicy = node.retry || executor.retryPolicy;
17022
17086
  await checkpointStepFailure(run.id, step.id, errorMsg, step.retryCount, retryPolicy);
17023
17087
  }
17024
17088
  } catch (err) {
17089
+ if (await failRunOnUnreadableReplay(step.runId, err, step.id))
17090
+ continue;
17025
17091
  console.error(`[workflows] Retry failed for step ${step.id}:`, err);
17026
17092
  } finally {
17027
17093
  release?.();
@@ -17129,7 +17195,7 @@ function replaceStringPlaceholders(template, variables) {
17129
17195
  });
17130
17196
  }
17131
17197
  // src/workflows/triggers.ts
17132
- init_db();
17198
+ init_db2();
17133
17199
  import crypto2 from "node:crypto";
17134
17200
  var DEFAULT_HMAC_HEADER = "X-Hub-Signature-256";
17135
17201
  var FALLBACK_HMAC_HEADERS = ["x-hub-signature-256", "x-signature", "x-webhook-signature"];
@@ -17397,7 +17463,7 @@ class WebhookError extends Error {
17397
17463
  }
17398
17464
  }
17399
17465
  // src/workflows/version.ts
17400
- init_db();
17466
+ init_db2();
17401
17467
  async function snapshotWorkflow(workflowId, changedByAgentId) {
17402
17468
  const workflow = await getWorkflow(workflowId);
17403
17469
  if (!workflow) {
@@ -17443,7 +17509,7 @@ async function snapshotAndUpdateWorkflow(workflowId, updates, opts = {}) {
17443
17509
  });
17444
17510
  }
17445
17511
  // src/workflows/wait-poller.ts
17446
- init_db();
17512
+ init_db2();
17447
17513
  var pollerTimeout2 = null;
17448
17514
  function startWaitPoller(registry, intervalMs = 5000) {
17449
17515
  if (pollerTimeout2 !== null)
@@ -17474,7 +17540,7 @@ function stopWaitPoller() {
17474
17540
  }
17475
17541
 
17476
17542
  // src/workflows/index.ts
17477
- init_db();
17543
+ init_db2();
17478
17544
  init_secret_scrubber();
17479
17545
  init_event_bus();
17480
17546
 
@@ -17486,18 +17552,18 @@ init_zod();
17486
17552
 
17487
17553
  // src/be/model-validation.ts
17488
17554
  init_src();
17489
- init_db();
17555
+ init_db2();
17490
17556
 
17491
17557
  // src/be/model-tier-resolution.ts
17492
17558
  init_src();
17493
17559
  init_zod();
17494
17560
  init_types();
17495
- init_db();
17561
+ init_db2();
17496
17562
 
17497
17563
  // src/be/harness-model-support.ts
17498
17564
  init_src();
17499
17565
  init_secret_scrubber();
17500
- init_db();
17566
+ init_db2();
17501
17567
  var CLI_PINNED_HARNESSES = new Set(["claude", "codex"]);
17502
17568
  async function getHarnessModelSupport(harness, cliVersion, modelId) {
17503
17569
  const row = await getDbClient().get("SELECT status FROM harness_model_support WHERE harness = ? AND cliVersion = ? AND modelId = ?", [harness, cliVersion, modelId]);
@@ -18005,19 +18071,20 @@ ${issues.join(`
18005
18071
 
18006
18072
  // src/scheduler/scheduler.ts
18007
18073
  var import_cron_parser = __toESM(require_dist2(), 1);
18074
+ init_db2();
18008
18075
  init_db();
18009
18076
  init_telemetry();
18010
18077
 
18011
18078
  // src/scheduler/deferred-task-waits.ts
18012
- init_db();
18079
+ init_db2();
18013
18080
  init_event_bus();
18014
18081
 
18015
18082
  // src/scheduler/schedule-task.ts
18016
- init_db();
18083
+ init_db2();
18017
18084
  init_context_key();
18018
18085
 
18019
18086
  // src/tasks/sibling-awareness.ts
18020
- init_db();
18087
+ init_db2();
18021
18088
 
18022
18089
  // src/tasks/errors.ts
18023
18090
  class TaskCreationBlockedError extends Error {
@@ -18777,7 +18844,9 @@ async function runScheduleNow(scheduleId) {
18777
18844
  }
18778
18845
 
18779
18846
  // src/be/extensions/assets.ts
18847
+ init_db2();
18780
18848
  init_db();
18849
+ init_embeddings();
18781
18850
 
18782
18851
  // src/be/skill-parser.ts
18783
18852
  function parseSkillContent(content) {
@@ -19436,7 +19505,7 @@ async function removeAssets(extensionId) {
19436
19505
  }
19437
19506
 
19438
19507
  // src/be/extensions/db.ts
19439
- init_db();
19508
+ init_db2();
19440
19509
 
19441
19510
  class ExtensionOwnershipError extends Error {
19442
19511
  }
@@ -19904,17 +19973,34 @@ function normalizeObjectSchema(schema) {
19904
19973
  }
19905
19974
  return;
19906
19975
  }
19976
+ function getDotPath(path) {
19977
+ if (path.length === 0) {
19978
+ return "object root";
19979
+ }
19980
+ return path.reduce((acc, seg, index) => {
19981
+ if (index === 0) {
19982
+ return String(seg);
19983
+ }
19984
+ if (typeof seg === "number") {
19985
+ return `${acc}[${seg}]`;
19986
+ }
19987
+ return `${acc}.${seg}`;
19988
+ }, "");
19989
+ }
19907
19990
  function getParseErrorMessage(error) {
19908
19991
  if (error && typeof error === "object") {
19992
+ if ("issues" in error && Array.isArray(error.issues) && error.issues.length > 0) {
19993
+ return error.issues.map((i) => {
19994
+ if (!i.path?.length) {
19995
+ return i.message;
19996
+ }
19997
+ return `${i.message} at ${getDotPath(i.path)}`;
19998
+ }).join(`
19999
+ `);
20000
+ }
19909
20001
  if ("message" in error && typeof error.message === "string") {
19910
20002
  return error.message;
19911
20003
  }
19912
- if ("issues" in error && Array.isArray(error.issues) && error.issues.length > 0) {
19913
- const firstIssue = error.issues[0];
19914
- if (firstIssue && typeof firstIssue === "object" && "message" in firstIssue) {
19915
- return String(firstIssue.message);
19916
- }
19917
- }
19918
20004
  try {
19919
20005
  return JSON.stringify(error);
19920
20006
  } catch {
@@ -23139,16 +23225,7 @@ class Server extends Protocol {
23139
23225
  if (!methodSchema) {
23140
23226
  throw new Error("Schema is missing a method literal");
23141
23227
  }
23142
- let methodValue;
23143
- if (isZ4Schema(methodSchema)) {
23144
- const v4Schema = methodSchema;
23145
- const v4Def = v4Schema._zod?.def;
23146
- methodValue = v4Def?.value ?? v4Schema.value;
23147
- } else {
23148
- const v3Schema = methodSchema;
23149
- const legacyDef = v3Schema._def;
23150
- methodValue = legacyDef?.value ?? v3Schema.value;
23151
- }
23228
+ const methodValue = getLiteralValue(methodSchema);
23152
23229
  if (typeof methodValue !== "string") {
23153
23230
  throw new Error("Schema method literal must be a string");
23154
23231
  }
@@ -24241,7 +24318,7 @@ var EMPTY_COMPLETION_RESULT = {
24241
24318
 
24242
24319
  // src/server.ts
24243
24320
  init_package();
24244
- init_db();
24321
+ init_db2();
24245
24322
  init_steering();
24246
24323
 
24247
24324
  // src/github/task-reactions.ts
@@ -24593,11 +24670,11 @@ function verifyAgentMailWebhook(rawBody, headers) {
24593
24670
  }
24594
24671
  }
24595
24672
  // src/agentmail/handlers.ts
24596
- init_db();
24673
+ init_db2();
24597
24674
 
24598
24675
  // src/be/users.ts
24599
24676
  init_telemetry_identity();
24600
- init_db();
24677
+ init_db2();
24601
24678
  import { createHash, randomBytes, randomUUID } from "node:crypto";
24602
24679
  function actorString(actor) {
24603
24680
  return `${actor.kind}:${actor.id}`;
@@ -25514,7 +25591,7 @@ async function likeAzureDevOpsComment(ref, threadId, commentId) {
25514
25591
  }
25515
25592
  }
25516
25593
  // src/azure-devops/handlers.ts
25517
- init_db();
25594
+ init_db2();
25518
25595
  init_resolver();
25519
25596
  init_context_key();
25520
25597
 
@@ -25908,10 +25985,10 @@ _Note: There's an active task (${existingTask.id}) for this PR #${pr.pullRequest
25908
25985
  return { created: true, taskId: task.id };
25909
25986
  }
25910
25987
  // src/http/core.ts
25911
- init_db();
25988
+ init_db2();
25912
25989
 
25913
25990
  // src/be/multi-runtime.ts
25914
- init_db();
25991
+ init_db2();
25915
25992
  var AGENT_MAX_TASKS_CONFIG_KEY = "AGENT_MAX_TASKS";
25916
25993
  function parseAgentMaxTasksValue(raw) {
25917
25994
  const str = raw.trim();
@@ -26094,7 +26171,7 @@ async function expireStaleRuntimeInstances() {
26094
26171
 
26095
26172
  // src/be/rbac-audit.ts
26096
26173
  init_env_flag();
26097
- init_db();
26174
+ init_db2();
26098
26175
  import { AsyncLocalStorage } from "node:async_hooks";
26099
26176
  var FLUSH_INTERVAL_MS = 2000;
26100
26177
  var FLUSH_MAX_ROWS = 200;
@@ -26279,7 +26356,7 @@ function stopAuditGc() {
26279
26356
  // src/http/core.ts
26280
26357
  init_rbac_roles();
26281
26358
  // src/github/handlers.ts
26282
- init_db();
26359
+ init_db2();
26283
26360
  init_resolver();
26284
26361
  init_context_key();
26285
26362
 
@@ -27629,7 +27706,7 @@ function resetGitLab() {
27629
27706
  gitlabUrl = "https://gitlab.com";
27630
27707
  }
27631
27708
  // src/gitlab/handlers.ts
27632
- init_db();
27709
+ init_db2();
27633
27710
  init_resolver();
27634
27711
  init_context_key();
27635
27712
 
@@ -28232,12 +28309,13 @@ function extractMentions(adf) {
28232
28309
  return ids;
28233
28310
  }
28234
28311
  // src/jira/app.ts
28312
+ init_oauth();
28235
28313
  init_constants();
28236
28314
  init_env_flag();
28237
28315
 
28238
28316
  // src/be/db-queries/tracker.ts
28239
28317
  init_date_utils();
28240
- init_db();
28318
+ init_db2();
28241
28319
  function normalizeTrackerSync(row) {
28242
28320
  return {
28243
28321
  ...row,
@@ -28381,8 +28459,12 @@ async function createTrackerAgentMapping(data) {
28381
28459
  init_secret_scrubber();
28382
28460
  init_event_bus();
28383
28461
 
28462
+ // src/jira/client.ts
28463
+ init_oauth();
28464
+
28384
28465
  // src/jira/metadata.ts
28385
- init_db();
28466
+ init_db2();
28467
+ init_oauth();
28386
28468
  async function getJiraMetadata() {
28387
28469
  const app = await getOAuthApp("jira");
28388
28470
  if (!app)
@@ -28675,10 +28757,11 @@ Original issue: {{issue_key}} — {{issue_summary}}`,
28675
28757
  });
28676
28758
 
28677
28759
  // src/jira/sync.ts
28678
- init_db();
28760
+ init_db2();
28761
+ init_oauth();
28679
28762
 
28680
28763
  // src/be/unmapped-identities.ts
28681
- init_db();
28764
+ init_db2();
28682
28765
  var TTL_MS = 30 * 24 * 60 * 60 * 1000;
28683
28766
  function namespace(kind) {
28684
28767
  return `integration:unmapped:${kind}`;
@@ -29097,7 +29180,7 @@ async function notifySlack(text) {
29097
29180
  return;
29098
29181
  }
29099
29182
  try {
29100
- const { getSlackApp: getSlackApp2 } = await import("./app-75hm5cfa.js");
29183
+ const { getSlackApp: getSlackApp2 } = await import("./app-nctetn1e.js");
29101
29184
  const app = getSlackApp2();
29102
29185
  if (!app) {
29103
29186
  console.warn("[Jira webhook keepalive] Slack not available, cannot send notification");
@@ -29168,7 +29251,7 @@ async function deleteJiraWebhook(webhookId) {
29168
29251
  console.log(`[Jira webhook keepalive] Deleted webhook id=${webhookId}`);
29169
29252
  }
29170
29253
  async function overwriteWebhookIds(next) {
29171
- const { getDbClient: getDbClient2 } = await import("./db-f4ans0jj.js");
29254
+ const { getDbClient: getDbClient2 } = await import("./db-qg3myn53.js");
29172
29255
  await getDbClient2().transaction(async (tx) => {
29173
29256
  const row = await tx.get("SELECT metadata FROM oauth_apps WHERE provider = 'jira'");
29174
29257
  if (!row) {
@@ -29408,6 +29491,7 @@ async function dispatchAndRecord(event, body, deliveryId) {
29408
29491
  }
29409
29492
  }
29410
29493
  // src/linear/app.ts
29494
+ init_oauth();
29411
29495
  init_constants();
29412
29496
  init_env_flag();
29413
29497
 
@@ -100886,6 +100970,7 @@ var LinearClient = class extends LinearSdk {
100886
100970
  };
100887
100971
 
100888
100972
  // src/linear/client.ts
100973
+ init_oauth();
100889
100974
  var linearClient = null;
100890
100975
  async function getLinearClient() {
100891
100976
  const tokens = await getOAuthTokens("linear");
@@ -100905,7 +100990,8 @@ init_secret_scrubber();
100905
100990
  init_event_bus();
100906
100991
 
100907
100992
  // src/linear/sync.ts
100908
- init_db();
100993
+ init_db2();
100994
+ init_oauth();
100909
100995
  init_resolver();
100910
100996
  init_context_key();
100911
100997
  init_types();
@@ -102055,7 +102141,7 @@ async function getFileInfo(client, fileId) {
102055
102141
  }
102056
102142
  }
102057
102143
  // src/slack/router.ts
102058
- init_db();
102144
+ init_db2();
102059
102145
  init_env_flag();
102060
102146
  function hasOtherUserMention(text, botUserId) {
102061
102147
  const mentions = text.match(/<@([A-Z0-9]+)>/g) ?? [];
@@ -102120,7 +102206,7 @@ init_request_auth_context();
102120
102206
  init_secret_scrubber();
102121
102207
 
102122
102208
  // src/http/auth.ts
102123
- init_db();
102209
+ init_db2();
102124
102210
 
102125
102211
  // src/utils/page-session.ts
102126
102212
  import { createHmac, randomBytes as randomBytes2, timingSafeEqual as timingSafeEqual2 } from "node:crypto";
@@ -102366,7 +102452,7 @@ init_zod();
102366
102452
  init_secret_scrubber();
102367
102453
 
102368
102454
  // src/http/utils.ts
102369
- init_db();
102455
+ init_db2();
102370
102456
  init_env_flag();
102371
102457
  init_secret_scrubber();
102372
102458
  var DEFAULT_ALLOWED_ORIGINS = [
@@ -102970,7 +103056,7 @@ async function reloadGlobalConfigsAndIntegrations() {
102970
103056
  return runWithoutRequestAuth(() => reloadGlobalConfigsAndIntegrationsInner());
102971
103057
  }
102972
103058
  async function reloadGlobalConfigsAndIntegrationsInner() {
102973
- const { getEmbeddingProvider: getEmbeddingProvider2, resetEmbeddingProvider } = await import("./index-056j5kzn.js");
103059
+ const { getEmbeddingProvider: getEmbeddingProvider2, resetEmbeddingProvider } = await import("./index-2t9kesn1.js");
102974
103060
  const wasEmbeddingsConfigured = getEmbeddingProvider2().isConfigured();
102975
103061
  const updated = await loadGlobalConfigsIntoEnv(true);
102976
103062
  await stopSlackApp();
@@ -102983,10 +103069,10 @@ async function reloadGlobalConfigsAndIntegrationsInner() {
102983
103069
  integrations.push("embeddings");
102984
103070
  }
102985
103071
  if (!wasEmbeddingsConfigured && isEmbeddingsConfigured) {
102986
- import("./boot-reembed-2ex2mcsh.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
103072
+ import("./boot-reembed-fmp5ww69.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
102987
103073
  console.error("[config-reload] memory backfill failed (non-fatal):", err);
102988
103074
  });
102989
- import("./boot-reembed-z158xq32.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
103075
+ import("./boot-reembed-1ze5853n.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
102990
103076
  console.error("[config-reload] script backfill failed (non-fatal):", err);
102991
103077
  });
102992
103078
  }
@@ -103317,14 +103403,14 @@ init_config();
103317
103403
 
103318
103404
  // src/tools/accept-steer.ts
103319
103405
  init_zod();
103320
- init_db();
103406
+ init_db2();
103321
103407
 
103322
103408
  // src/tools/task-tool-ctx.ts
103323
103409
  init_rbac();
103324
103410
 
103325
103411
  // src/tools/utils.ts
103326
103412
  init_zod();
103327
- init_db();
103413
+ init_db2();
103328
103414
 
103329
103415
  // src/kv-overflow.ts
103330
103416
  var MCP_OVERFLOW_NAMESPACE = "mcp:overflow";
@@ -104104,7 +104190,7 @@ function setPreloadedTools(server, names) {
104104
104190
  async function applyPreToolCall(name, args, requestInfo, inputSchema) {
104105
104191
  if (requestInfo.callOrigin !== "mcp")
104106
104192
  return { args };
104107
- const dispatcher = await import("./dispatcher-pk182apd.js");
104193
+ const dispatcher = await import("./dispatcher-7vnwj9qw.js");
104108
104194
  const result = await dispatcher.dispatchPre("pre.tool.call", { tool: name, args, requestInfo }, inputSchema ? {
104109
104195
  validateModify: async (data) => {
104110
104196
  const schema = normalizeObjectSchema(inputSchema) ?? inputSchema;
@@ -104318,15 +104404,15 @@ var registerAcceptSteerTool = (server) => {
104318
104404
  init_zod();
104319
104405
 
104320
104406
  // src/apps/version.ts
104321
- init_db();
104407
+ init_db2();
104322
104408
 
104323
104409
  // src/apps/schema-migrate.ts
104324
104410
  init_zod();
104325
- init_db();
104411
+ init_db2();
104326
104412
  init_secret_scrubber();
104327
104413
 
104328
104414
  // src/apps/row-store.ts
104329
- init_db();
104415
+ init_db2();
104330
104416
  init_db_client();
104331
104417
  class AppRowValidationError extends Error {
104332
104418
  issues;
@@ -104705,6 +104791,7 @@ function purgeAppRows(appId2, models, afterPurge) {
104705
104791
 
104706
104792
  // src/apps/sync.ts
104707
104793
  init_zod();
104794
+ init_db2();
104708
104795
  init_db();
104709
104796
  init_types();
104710
104797
  init_secret_scrubber();
@@ -106115,12 +106202,12 @@ async function rollbackApp(input) {
106115
106202
  }
106116
106203
 
106117
106204
  // src/tools/app-diff.ts
106118
- init_db();
106205
+ init_db2();
106119
106206
  init_rbac();
106120
106207
 
106121
106208
  // src/tools/context-diff.ts
106122
106209
  init_zod();
106123
- init_db();
106210
+ init_db2();
106124
106211
  init_rbac();
106125
106212
  import { tmpdir } from "node:os";
106126
106213
  import { join } from "node:path";
@@ -106302,13 +106389,13 @@ var registerAppDiffTool = (server) => {
106302
106389
 
106303
106390
  // src/tools/app-get.ts
106304
106391
  init_zod();
106305
- init_db();
106392
+ init_db2();
106306
106393
 
106307
106394
  // src/http/apps.ts
106308
106395
  init_zod();
106309
106396
 
106310
106397
  // src/apps/user-config.ts
106311
- init_db();
106398
+ init_db2();
106312
106399
  var USER_CONFIG_THEME_KEY = "$theme";
106313
106400
  var RESERVED_KEY_PATTERNS = {
106314
106401
  [USER_CONFIG_THEME_KEY]: /^[a-z][a-z0-9-]{0,39}$/
@@ -106390,6 +106477,7 @@ async function upsertAppUserConfigValues(appId2, scope, values) {
106390
106477
 
106391
106478
  // src/http/apps.ts
106392
106479
  init_key();
106480
+ init_db2();
106393
106481
  init_db();
106394
106482
  init_resolver();
106395
106483
  init_rbac();
@@ -106399,7 +106487,7 @@ init_secret_scrubber();
106399
106487
 
106400
106488
  // src/be/audit-user.ts
106401
106489
  init_request_auth_context();
106402
- init_db();
106490
+ init_db2();
106403
106491
  async function resolveTaskAuditUserId(sourceTaskId, callerAgentId) {
106404
106492
  if (!callerAgentId)
106405
106493
  return null;
@@ -107950,7 +108038,7 @@ var registerAppQueryTool = (server) => {
107950
108038
 
107951
108039
  // src/tools/app-history.ts
107952
108040
  init_zod();
107953
- init_db();
108041
+ init_db2();
107954
108042
  init_rbac();
107955
108043
  function escapeTableCell2(value) {
107956
108044
  return String(value ?? "—").replaceAll("\\", "\\\\").replaceAll("|", "\\|").replace(/\r\n|\r|\n/g, "<br>");
@@ -108055,7 +108143,7 @@ var registerAppListTool = (server) => {
108055
108143
 
108056
108144
  // src/tools/app-patch.ts
108057
108145
  init_zod();
108058
- init_db();
108146
+ init_db2();
108059
108147
  init_rbac();
108060
108148
  var registerAppPatchTool = (server) => {
108061
108149
  createToolRegistrar(server)("app-patch", {
@@ -108176,7 +108264,7 @@ var registerAppPatchTool = (server) => {
108176
108264
  };
108177
108265
  // src/tools/app-rollback.ts
108178
108266
  init_zod();
108179
- init_db();
108267
+ init_db2();
108180
108268
  init_rbac();
108181
108269
  var registerAppRollbackTool = (server) => {
108182
108270
  createToolRegistrar(server)("app-rollback", {
@@ -108256,7 +108344,7 @@ var registerAppRollbackTool = (server) => {
108256
108344
 
108257
108345
  // src/tools/app-sync.ts
108258
108346
  init_zod();
108259
- init_db();
108347
+ init_db2();
108260
108348
  init_rbac();
108261
108349
  function cell(value) {
108262
108350
  return String(value ?? "—").replaceAll("\\", "\\\\").replaceAll("|", "\\|").replace(/\r\n|\r|\n/g, "<br>");
@@ -108343,7 +108431,7 @@ var registerAppSyncTool = (server) => {
108343
108431
 
108344
108432
  // src/tools/app-upsert.ts
108345
108433
  init_zod();
108346
- init_db();
108434
+ init_db2();
108347
108435
  init_rbac();
108348
108436
  var registerAppUpsertTool = (server) => {
108349
108437
  createToolRegistrar(server)("app-upsert", {
@@ -108487,10 +108575,10 @@ var registerAppUpsertTool = (server) => {
108487
108575
 
108488
108576
  // src/tools/cancel-approval-request.ts
108489
108577
  init_zod();
108490
- init_db();
108578
+ init_db2();
108491
108579
 
108492
108580
  // src/workflows/approval-cancel.ts
108493
- init_db();
108581
+ init_db2();
108494
108582
  init_rbac();
108495
108583
  var LIVE_RUN_STATUSES = new Set(["running", "waiting"]);
108496
108584
  async function cancelApprovalRequest(input) {
@@ -108630,12 +108718,12 @@ var registerCancelApprovalRequestTool = (server) => {
108630
108718
 
108631
108719
  // src/tools/cancel-task.ts
108632
108720
  init_zod();
108633
- init_db();
108721
+ init_db2();
108634
108722
  init_rbac();
108635
108723
 
108636
108724
  // src/tools/get-task-details.ts
108637
108725
  init_zod();
108638
- init_db();
108726
+ init_db2();
108639
108727
  init_types();
108640
108728
 
108641
108729
  // src/utils/requester-comms.ts
@@ -108948,7 +109036,7 @@ var registerCancelTaskTool = (server) => {
108948
109036
 
108949
109037
  // src/tools/context-history.ts
108950
109038
  init_zod();
108951
- init_db();
109039
+ init_db2();
108952
109040
  init_rbac();
108953
109041
  var registerContextHistoryTool = (server) => {
108954
109042
  createToolRegistrar(server)("context-history", {
@@ -109024,7 +109112,7 @@ var registerContextHistoryTool = (server) => {
109024
109112
 
109025
109113
  // src/tools/create-channel.ts
109026
109114
  init_zod();
109027
- init_db();
109115
+ init_db2();
109028
109116
  init_types();
109029
109117
  var ChannelOutputSchema = looseObject({
109030
109118
  id: string().optional(),
@@ -109081,16 +109169,17 @@ var registerCreateChannelTool = (server) => {
109081
109169
 
109082
109170
  // src/tools/create-metric.ts
109083
109171
  init_zod();
109084
- init_db();
109172
+ init_db2();
109085
109173
 
109086
109174
  // src/http/db-query.ts
109087
109175
  init_zod();
109176
+ init_secret_scrubber();
109088
109177
 
109089
109178
  // src/http/db-query-bounded.ts
109090
- init_db();
109179
+ init_db2();
109091
109180
 
109092
109181
  // src/http/db-query-shared.ts
109093
- init_db();
109182
+ init_db2();
109094
109183
  init_env_flag();
109095
109184
  import { Database } from "bun:sqlite";
109096
109185
  class DbQueryTimeoutError extends Error {
@@ -109115,19 +109204,91 @@ function assertSingleStatement(sql) {
109115
109204
  throw new Error("Only one SQL statement is allowed");
109116
109205
  }
109117
109206
  }
109118
- function executeReadOnlyQuery(sql, params = [], maxRows) {
109119
- assertSingleStatement(sql);
109207
+ var DB_QUERY_DENIED_TABLES = new Set([
109208
+ "oauth_authorizations",
109209
+ "oauth_apps",
109210
+ "oauth_pending",
109211
+ "user_tokens",
109212
+ "session_tokens",
109213
+ "script_apis",
109214
+ "codex_oauth_device_flows"
109215
+ ]);
109216
+
109217
+ class DbQueryDeniedTableError extends Error {
109218
+ tables;
109219
+ constructor(tables) {
109220
+ super(`db-query cannot read ${tables.join(", ")}: ${tables.length === 1 ? "this table holds" : "these tables hold"} credentials. ` + "Use the dedicated OAuth, token or config tools instead.");
109221
+ this.tables = tables;
109222
+ this.name = "DbQueryDeniedTableError";
109223
+ }
109224
+ }
109225
+ var CURSOR_OPEN_OPCODES = new Set(["OpenRead", "ReopenIdx", "OpenWrite"]);
109226
+ function openReadOnlyReader() {
109120
109227
  const database = getDb();
109121
109228
  const reader = !database.filename || database.filename === ":memory:" ? Database.deserialize(database.serialize(), { readonly: true }) : new Database(database.filename, { readonly: true });
109229
+ const vecExtensionPath = resolveSqliteVecExtensionPath();
109230
+ if (vecExtensionPath) {
109231
+ try {
109232
+ reader.loadExtension(vecExtensionPath);
109233
+ } catch {}
109234
+ }
109235
+ return reader;
109236
+ }
109237
+ function assertNoDeniedTables(sql, reader) {
109238
+ const statement = stripTrailingSemicolon(sql);
109239
+ if (/^explain\b/i.test(stripLeadingComments(statement)))
109240
+ return;
109241
+ const db = reader ?? openReadOnlyReader();
109122
109242
  try {
109123
109243
  let __stack = [];
109124
109244
  try {
109125
- const vecExtensionPath = resolveSqliteVecExtensionPath();
109126
- if (vecExtensionPath) {
109127
- try {
109128
- reader.loadExtension(vecExtensionPath);
109129
- } catch {}
109245
+ const rootPages = new Map;
109246
+ for (const row of db.query("SELECT rootpage, tbl_name FROM main.sqlite_master WHERE rootpage > 0").all()) {
109247
+ rootPages.set(row.rootpage, row.tbl_name.toLowerCase());
109248
+ }
109249
+ const program = __using(__stack, db.prepare(`EXPLAIN ${statement}`), 0);
109250
+ const denied = new Set;
109251
+ for (const op of program.all()) {
109252
+ if (!CURSOR_OPEN_OPCODES.has(op.opcode) || op.p3 !== 0)
109253
+ continue;
109254
+ const table = rootPages.get(op.p2);
109255
+ if (table && DB_QUERY_DENIED_TABLES.has(table))
109256
+ denied.add(table);
109130
109257
  }
109258
+ if (denied.size > 0)
109259
+ throw new DbQueryDeniedTableError([...denied].sort());
109260
+ } catch (_catch) {
109261
+ var _err = _catch, _hasErr = 1;
109262
+ } finally {
109263
+ __callDispose(__stack, _err, _hasErr);
109264
+ }
109265
+ } finally {
109266
+ if (!reader)
109267
+ db.close();
109268
+ }
109269
+ }
109270
+ function stripLeadingComments(sql) {
109271
+ let rest = sql.trimStart();
109272
+ for (;; ) {
109273
+ if (rest.startsWith("--")) {
109274
+ const end = rest.indexOf(`
109275
+ `);
109276
+ rest = end === -1 ? "" : rest.slice(end + 1).trimStart();
109277
+ } else if (rest.startsWith("/*")) {
109278
+ const end = rest.indexOf("*/");
109279
+ rest = end === -1 ? "" : rest.slice(end + 2).trimStart();
109280
+ } else {
109281
+ return rest;
109282
+ }
109283
+ }
109284
+ }
109285
+ function executeReadOnlyQuery(sql, params = [], maxRows) {
109286
+ assertSingleStatement(sql);
109287
+ const reader = openReadOnlyReader();
109288
+ try {
109289
+ let __stack = [];
109290
+ try {
109291
+ assertNoDeniedTables(sql, reader);
109131
109292
  const stmt = __using(__stack, reader.prepare(sql), 0);
109132
109293
  if (stmt.columnNames.length === 0) {
109133
109294
  throw new Error("Only read-only queries are allowed");
@@ -109276,6 +109437,7 @@ function releaseBoundedQuerySlot() {
109276
109437
  }
109277
109438
  async function executeReadOnlyQueryBounded(sql, params = [], budgetMs, maxRows) {
109278
109439
  assertSingleStatement(sql);
109440
+ assertNoDeniedTables(sql);
109279
109441
  acquireBoundedQuerySlot();
109280
109442
  try {
109281
109443
  return await runBoundedQueryChild(sql, params, budgetMs, maxRows);
@@ -109399,7 +109561,9 @@ var dbQueryRoute = route({
109399
109561
  rowLimit: exports_external.number().nullable()
109400
109562
  })
109401
109563
  },
109402
- 400: { description: "Invalid or disallowed SQL" },
109564
+ 400: {
109565
+ description: "Invalid or disallowed SQL, including queries that read credential tables"
109566
+ },
109403
109567
  408: { description: "Query exceeded its wall-clock budget and was terminated" },
109404
109568
  429: { description: "Too many concurrent bounded db-query executions; retry shortly" }
109405
109569
  },
@@ -109414,7 +109578,7 @@ async function handleDbQuery(req, res, pathSegments, queryParams) {
109414
109578
  return true;
109415
109579
  try {
109416
109580
  const result = await executeReadOnlyQueryGated(resolveDbQuerySql(parsed.body), parsed.body.params, getDbQueryHttpBudgetMs(), getDbQueryHttpMaxRows());
109417
- dbQueryRoute.respond(res, 200, result);
109581
+ dbQueryRoute.respond(res, 200, scrubObject(result));
109418
109582
  } catch (err) {
109419
109583
  if (err instanceof DbQueryConcurrencyCapError) {
109420
109584
  res.setHeader("Retry-After", "1");
@@ -109432,7 +109596,7 @@ async function handleDbQuery(req, res, pathSegments, queryParams) {
109432
109596
  }
109433
109597
 
109434
109598
  // src/metrics/version.ts
109435
- init_db();
109599
+ init_db2();
109436
109600
  async function snapshotMetric(metricId, changedByAgentId) {
109437
109601
  const metric = await getMetric(metricId);
109438
109602
  if (!metric) {
@@ -109582,10 +109746,10 @@ async function authorizeAssetKeyWrite(input, trustedUserId) {
109582
109746
  }
109583
109747
 
109584
109748
  // src/tools/create-page.ts
109585
- init_db();
109749
+ init_db2();
109586
109750
 
109587
109751
  // src/pages/version.ts
109588
- init_db();
109752
+ init_db2();
109589
109753
  async function snapshotPage(pageId, changedByAgentId) {
109590
109754
  const page = await getPage(pageId);
109591
109755
  if (!page) {
@@ -109745,7 +109909,8 @@ var registerCreatePageTool = (server) => {
109745
109909
 
109746
109910
  // src/tools/credential-bindings/tool.ts
109747
109911
  init_zod();
109748
- init_db();
109912
+ init_db2();
109913
+ init_oauth();
109749
109914
 
109750
109915
  // src/oauth/app-validation.ts
109751
109916
  function assertOAuthAppUrlsSafe(input) {
@@ -110300,7 +110465,7 @@ var DbQueryToolInputSchema = object({
110300
110465
  var registerDbQueryTool = (server) => {
110301
110466
  createToolRegistrar(server)("db-query", {
110302
110467
  title: "Execute database query",
110303
- description: "Execute a read-only SQL query against the swarm database (SQLite). Available to all authenticated agents — be aware results may include secrets (oauth_tokens, configs). Runs in a short-lived child process with a wall-clock budget by default (fails gracefully with a timeout or a 429-style concurrency error rather than freezing); results capped at a default row count (operator-configurable via `DB_QUERY_MCP_MAX_ROWS`) regardless of how many the query matched. See the sql parameter's description for which tables are unsafe to read whole, and the db-query-guidance skill for config knobs.",
110468
+ description: "Execute a read-only SQL query against the swarm database (SQLite). Available to all authenticated agents. Queries that read credential tables (OAuth authorizations, apps and pending flows, user and session tokens, script API bearers, Codex device-login state) are rejected, and secret-shaped values in results are redacted. Runs in a short-lived child process with a wall-clock budget by default (fails gracefully with a timeout or a 429-style concurrency error rather than freezing); results capped at a default row count (operator-configurable via `DB_QUERY_MCP_MAX_ROWS`) regardless of how many the query matched. See the sql parameter's description for which tables are unsafe to read whole, and the db-query-guidance skill for config knobs.",
110304
110469
  annotations: { readOnlyHint: true },
110305
110470
  inputSchema: DbQueryToolInputSchema,
110306
110471
  outputSchema: swarmToolOutputSchema({
@@ -110340,13 +110505,14 @@ ${result.total} rows in ${result.elapsed}ms`;
110340
110505
 
110341
110506
  // src/tools/defer-task.ts
110342
110507
  init_zod();
110343
- init_db();
110508
+ init_db2();
110344
110509
 
110345
110510
  // src/tasks/task-terminal-effects.ts
110346
- init_db();
110511
+ init_db2();
110512
+ init_memory();
110347
110513
 
110348
110514
  // src/be/memory/raters/retrieval.ts
110349
- init_db();
110515
+ init_db2();
110350
110516
  function dedupeMemoryDocumentIds(memories) {
110351
110517
  const documents = new Map;
110352
110518
  for (const memory of memories) {
@@ -110497,7 +110663,7 @@ function getRaterWeightMultiplier(name) {
110497
110663
  }
110498
110664
 
110499
110665
  // src/be/memory/raters/store.ts
110500
- init_db();
110666
+ init_db2();
110501
110667
  class ExplicitSelfDuplicateError extends Error {
110502
110668
  event;
110503
110669
  constructor(message, event) {
@@ -110698,7 +110864,7 @@ var shouldPersistTaskCompletionMemory = shouldPersistAutomaticTaskMemory;
110698
110864
 
110699
110865
  // src/tasks/worker-follow-up.ts
110700
110866
  init_zod();
110701
- init_db();
110867
+ init_db2();
110702
110868
  init_resolver();
110703
110869
  init_types();
110704
110870
  init_env_flag();
@@ -111162,7 +111328,7 @@ ${taskContent}`,
111162
111328
  }
111163
111329
 
111164
111330
  // src/tasks/terminal-result-guard.ts
111165
- init_db();
111331
+ init_db2();
111166
111332
  init_types();
111167
111333
  init_secret_scrubber();
111168
111334
  function getTaskOutputValidationError(outputSchema, output) {
@@ -111519,7 +111685,7 @@ Deferred until ${nextRunAt} (schedule ${schedule.id}). Pending: ${note}${checksB
111519
111685
 
111520
111686
  // src/tools/delete-channel.ts
111521
111687
  init_zod();
111522
- init_db();
111688
+ init_db2();
111523
111689
  init_rbac();
111524
111690
  var GENERAL_CHANNEL_ID = "00000000-0000-4000-8000-000000000001";
111525
111691
  var registerDeleteChannelTool = (server) => {
@@ -111597,7 +111763,7 @@ var registerDeleteChannelTool = (server) => {
111597
111763
 
111598
111764
  // src/tools/delete-page.ts
111599
111765
  init_zod();
111600
- init_db();
111766
+ init_db2();
111601
111767
  init_rbac();
111602
111768
  var DeletedPageSchema = looseObject({
111603
111769
  id: string().optional(),
@@ -112122,7 +112288,7 @@ var registerExtensionListTool = (server) => {
112122
112288
 
112123
112289
  // src/tools/get-metrics.ts
112124
112290
  init_zod();
112125
- init_db();
112291
+ init_db2();
112126
112292
  var CountByStatusSchema = record(string(), number());
112127
112293
  var registerGetMetricsTool = (server) => {
112128
112294
  createToolRegistrar(server)("get-metrics", {
@@ -112165,7 +112331,7 @@ var registerGetMetricsTool = (server) => {
112165
112331
 
112166
112332
  // src/tools/get-swarm.ts
112167
112333
  init_zod();
112168
- init_db();
112334
+ init_db2();
112169
112335
  init_types();
112170
112336
  var agentOutputShape = looseObject({
112171
112337
  id: string().optional(),
@@ -112218,7 +112384,7 @@ var registerGetSwarmTool = (server) => {
112218
112384
 
112219
112385
  // src/tools/get-tasks.ts
112220
112386
  init_zod();
112221
- init_db();
112387
+ init_db2();
112222
112388
  init_types();
112223
112389
  var TaskSummarySchema = looseObject({
112224
112390
  id: string().optional(),
@@ -112376,7 +112542,8 @@ var registerGetTasksTool = (server) => {
112376
112542
 
112377
112543
  // src/tools/inject-learning.ts
112378
112544
  init_zod();
112379
- init_db();
112545
+ init_db2();
112546
+ init_memory();
112380
112547
  init_rbac();
112381
112548
  var LearningCategoryEnum = _enum([
112382
112549
  "mistake-pattern",
@@ -112433,7 +112600,7 @@ ${learning}`;
112433
112600
  });
112434
112601
  try {
112435
112602
  const provider = getEmbeddingProvider();
112436
- const embedding = await provider.embed(content);
112603
+ const embedding = await provider.embed(memory.content);
112437
112604
  if (embedding) {
112438
112605
  await store.updateEmbedding(memory.id, embedding, provider.name);
112439
112606
  }
@@ -112447,7 +112614,7 @@ ${learning}`;
112447
112614
 
112448
112615
  // src/tools/join-swarm.ts
112449
112616
  init_zod();
112450
- init_db();
112617
+ init_db2();
112451
112618
  init_defaults();
112452
112619
  init_types();
112453
112620
  var agentOutputShape2 = looseObject({
@@ -112553,11 +112720,11 @@ var registerJoinSwarmTool = (server) => {
112553
112720
 
112554
112721
  // src/tools/kv/kv-delete.ts
112555
112722
  init_zod();
112556
- init_db();
112723
+ init_db2();
112557
112724
  init_types();
112558
112725
 
112559
112726
  // src/tools/kv/kv-write-auth.ts
112560
- init_db();
112727
+ init_db2();
112561
112728
 
112562
112729
  // src/kv-reserved-namespaces.ts
112563
112730
  var RESERVED_FAMILIES = new Map([
@@ -112605,7 +112772,7 @@ async function kvWriteAuthError(namespace2, info, key) {
112605
112772
  }
112606
112773
 
112607
112774
  // src/tools/kv/resolve-namespace.ts
112608
- init_db();
112775
+ init_db2();
112609
112776
  init_context_key();
112610
112777
  async function resolveNamespace(explicit, info) {
112611
112778
  if (explicit && explicit.length > 0) {
@@ -112666,7 +112833,7 @@ var registerKvDeleteTool = (server) => {
112666
112833
  };
112667
112834
  // src/tools/kv/kv-get.ts
112668
112835
  init_zod();
112669
- init_db();
112836
+ init_db2();
112670
112837
  init_types();
112671
112838
 
112672
112839
  // src/tools/kv/kv-read-auth.ts
@@ -112798,7 +112965,7 @@ var registerKvGetTool = (server) => {
112798
112965
  };
112799
112966
  // src/tools/kv/kv-incr.ts
112800
112967
  init_zod();
112801
- init_db();
112968
+ init_db2();
112802
112969
  init_types();
112803
112970
  var kvEntryOutputSchema2 = looseObject({
112804
112971
  namespace: string().optional(),
@@ -112855,7 +113022,7 @@ var registerKvIncrTool = (server) => {
112855
113022
  };
112856
113023
  // src/tools/kv/kv-list.ts
112857
113024
  init_zod();
112858
- init_db();
113025
+ init_db2();
112859
113026
  init_types();
112860
113027
  var MAX_KV_LIST_LIMIT = 1000;
112861
113028
  var kvEntryOutputSchema3 = looseObject({
@@ -112925,7 +113092,7 @@ var registerKvListTool = (server) => {
112925
113092
  };
112926
113093
  // src/tools/kv/kv-set.ts
112927
113094
  init_zod();
112928
- init_db();
113095
+ init_db2();
112929
113096
  init_types();
112930
113097
  var MAX_KV_BODY_BYTES = 2 * 1024 * 1024;
112931
113098
  var kvEntryOutputSchema4 = looseObject({
@@ -113026,7 +113193,7 @@ var registerKvSetTool = (server) => {
113026
113193
  };
113027
113194
  // src/tools/list-channels.ts
113028
113195
  init_zod();
113029
- init_db();
113196
+ init_db2();
113030
113197
  init_types();
113031
113198
  var ChannelOutputSchema2 = looseObject({
113032
113199
  id: string().optional(),
@@ -113060,7 +113227,7 @@ var registerListChannelsTool = (server) => {
113060
113227
 
113061
113228
  // src/tools/list-services.ts
113062
113229
  init_zod();
113063
- init_db();
113230
+ init_db2();
113064
113231
  init_types();
113065
113232
  var serviceWithAgentNameOutputShape = looseObject({
113066
113233
  id: string().optional(),
@@ -113138,7 +113305,7 @@ var registerListServicesTool = (server) => {
113138
113305
 
113139
113306
  // src/tools/manage-user.ts
113140
113307
  init_zod();
113141
- init_db();
113308
+ init_db2();
113142
113309
  init_rbac();
113143
113310
  var userOutputShape = looseObject({
113144
113311
  id: string().optional(),
@@ -113353,7 +113520,7 @@ var registerManageUserTool = (server) => {
113353
113520
 
113354
113521
  // src/tools/mcp-servers/mcp-server-create.ts
113355
113522
  init_zod();
113356
- init_db();
113523
+ init_db2();
113357
113524
  init_rbac();
113358
113525
  var registerMcpServerCreateTool = (server) => {
113359
113526
  createToolRegistrar(server)("mcp-server-create", {
@@ -113458,7 +113625,7 @@ var registerMcpServerCreateTool = (server) => {
113458
113625
  };
113459
113626
  // src/tools/mcp-servers/mcp-server-delete.ts
113460
113627
  init_zod();
113461
- init_db();
113628
+ init_db2();
113462
113629
  init_rbac();
113463
113630
  var registerMcpServerDeleteTool = (server) => {
113464
113631
  createToolRegistrar(server)("mcp-server-delete", {
@@ -113503,7 +113670,7 @@ var registerMcpServerDeleteTool = (server) => {
113503
113670
  };
113504
113671
  // src/tools/mcp-servers/mcp-server-get.ts
113505
113672
  init_zod();
113506
- init_db();
113673
+ init_db2();
113507
113674
  var registerMcpServerGetTool = (server) => {
113508
113675
  createToolRegistrar(server)("mcp-server-get", {
113509
113676
  title: "Get MCP Server",
@@ -113540,7 +113707,7 @@ var registerMcpServerGetTool = (server) => {
113540
113707
  };
113541
113708
  // src/tools/mcp-servers/mcp-server-install.ts
113542
113709
  init_zod();
113543
- init_db();
113710
+ init_db2();
113544
113711
  init_rbac();
113545
113712
  var registerMcpServerInstallTool = (server) => {
113546
113713
  createToolRegistrar(server)("mcp-server-install", {
@@ -113598,7 +113765,7 @@ var registerMcpServerInstallTool = (server) => {
113598
113765
  };
113599
113766
  // src/tools/mcp-servers/mcp-server-list.ts
113600
113767
  init_zod();
113601
- init_db();
113768
+ init_db2();
113602
113769
  function renderServerLines(servers) {
113603
113770
  if (servers.length === 0)
113604
113771
  return;
@@ -113647,7 +113814,7 @@ var registerMcpServerListTool = (server) => {
113647
113814
  };
113648
113815
  // src/tools/mcp-servers/mcp-server-uninstall.ts
113649
113816
  init_zod();
113650
- init_db();
113817
+ init_db2();
113651
113818
  init_rbac();
113652
113819
  var registerMcpServerUninstallTool = (server) => {
113653
113820
  createToolRegistrar(server)("mcp-server-uninstall", {
@@ -113691,10 +113858,10 @@ var registerMcpServerUninstallTool = (server) => {
113691
113858
  };
113692
113859
  // src/tools/mcp-servers/mcp-server-update.ts
113693
113860
  init_zod();
113694
- init_db();
113861
+ init_db2();
113695
113862
 
113696
113863
  // src/be/mcp-server-checked-update.ts
113697
- init_db();
113864
+ init_db2();
113698
113865
  async function updateMcpServerChecked(id, updates, check) {
113699
113866
  return await getDbClient().transaction(async () => {
113700
113867
  const existing = await getMcpServerById(id);
@@ -113817,7 +113984,8 @@ var registerMcpServerUpdateTool = (server) => {
113817
113984
  };
113818
113985
  // src/tools/memory-delete.ts
113819
113986
  init_zod();
113820
- init_db();
113987
+ init_db2();
113988
+ init_memory();
113821
113989
  init_rbac();
113822
113990
  var registerMemoryDeleteTool = (server) => {
113823
113991
  createToolRegistrar(server)("memory-delete", {
@@ -113863,7 +114031,8 @@ var registerMemoryDeleteTool = (server) => {
113863
114031
 
113864
114032
  // src/tools/memory-edit.ts
113865
114033
  init_zod();
113866
- init_db();
114034
+ init_db2();
114035
+ init_memory();
113867
114036
 
113868
114037
  // src/be/memory/key-guard.ts
113869
114038
  init_rbac();
@@ -113913,7 +114082,7 @@ function assertKeyWritable(key, origin, writer) {
113913
114082
  init_key_paths();
113914
114083
 
113915
114084
  // src/be/memory/link-resolver.ts
113916
- init_db();
114085
+ init_db2();
113917
114086
  init_constants();
113918
114087
  var WIKILINK_RE = /\[\[([^\]]+)\]\]/g;
113919
114088
  var PR_HASH_RE = /(?:^|[\s(])#(\d{1,5})(?=[\s,.)!?]|$)/gm;
@@ -114270,7 +114439,8 @@ var registerMemoryEditTool = (server) => {
114270
114439
 
114271
114440
  // src/tools/memory-get.ts
114272
114441
  init_zod();
114273
- init_db();
114442
+ init_db2();
114443
+ init_memory();
114274
114444
 
114275
114445
  // src/be/memory/access.ts
114276
114446
  function canReadMemory(memory, agentId) {
@@ -114278,7 +114448,7 @@ function canReadMemory(memory, agentId) {
114278
114448
  }
114279
114449
 
114280
114450
  // src/be/memory/links-store.ts
114281
- init_db();
114451
+ init_db2();
114282
114452
  function redactedTargetId(sourceText) {
114283
114453
  const wikilink = /^\[\[(.+)\]\]$/.exec(sourceText ?? "");
114284
114454
  return wikilink?.[1] ?? "";
@@ -114568,11 +114738,12 @@ var registerMemoryRateTool = (server) => {
114568
114738
 
114569
114739
  // src/tools/memory-search.ts
114570
114740
  init_zod();
114571
- init_db();
114741
+ init_db2();
114742
+ init_memory();
114572
114743
  init_constants2();
114573
114744
 
114574
114745
  // src/be/memory/graph-expansion.ts
114575
- init_db();
114746
+ init_db2();
114576
114747
  init_constants2();
114577
114748
  init_sqlite_store();
114578
114749
  init_reranker();
@@ -114818,7 +114989,7 @@ var registerMemorySearchTool = (server) => {
114818
114989
 
114819
114990
  // src/tools/memory-store.ts
114820
114991
  init_zod();
114821
- init_db();
114992
+ init_db2();
114822
114993
 
114823
114994
  // src/be/chunking.ts
114824
114995
  var MAX_CHUNK_SIZE = 2000;
@@ -114968,6 +115139,7 @@ function addOverlap(chunks, _originalText) {
114968
115139
  }
114969
115140
 
114970
115141
  // src/be/memory/index-content.ts
115142
+ init_memory();
114971
115143
  init_secret_scrubber();
114972
115144
  async function indexMemoryContent(params) {
114973
115145
  const { agentId, content, name, scope, source, sourceTaskId, sourcePath, tags } = params;
@@ -115000,7 +115172,7 @@ async function indexMemoryContent(params) {
115000
115172
  intent: "re-index memory source path",
115001
115173
  changedByAgentId: agentId
115002
115174
  });
115003
- const embedding = await provider.embed(contentChunks[0].content);
115175
+ const embedding = await provider.embed(result.memory.content);
115004
115176
  if (embedding)
115005
115177
  await store.updateEmbedding(result.memory.id, embedding, provider.name);
115006
115178
  try {
@@ -115040,7 +115212,7 @@ async function indexMemoryContent(params) {
115040
115212
  }
115041
115213
  (async () => {
115042
115214
  try {
115043
- const embeddings = await provider.embedBatch(contentChunks.map((c) => c.content));
115215
+ const embeddings = await provider.embedBatch(memories.map((m) => m.content));
115044
115216
  for (let i = 0;i < embeddings.length; i++) {
115045
115217
  if (embeddings[i]) {
115046
115218
  await store.updateEmbedding(memories[i].id, embeddings[i], provider.name);
@@ -115132,7 +115304,7 @@ var registerMemoryStoreTool = (server) => {
115132
115304
 
115133
115305
  // src/tools/model-catalog/index.ts
115134
115306
  init_zod();
115135
- init_db();
115307
+ init_db2();
115136
115308
  init_rbac();
115137
115309
  async function denyUnlessCatalogWriter(agentId) {
115138
115310
  const agent = await getAgentById(agentId);
@@ -115233,7 +115405,7 @@ var registerModelCatalogOverlayUpsertTool = (server) => {
115233
115405
 
115234
115406
  // src/tools/my-agent-info.ts
115235
115407
  init_zod();
115236
- init_db();
115408
+ init_db2();
115237
115409
  init_types();
115238
115410
  var agentOutputShape3 = looseObject({
115239
115411
  id: string().optional(),
@@ -115288,6 +115460,7 @@ var registerMyAgentInfoTool = (server) => {
115288
115460
 
115289
115461
  // src/tools/oauth-access-token.ts
115290
115462
  init_zod();
115463
+ init_oauth();
115291
115464
  init_secret_scrubber();
115292
115465
  function assertTokenUsable(provider, expiresAt, minValidityMs) {
115293
115466
  const expiresAtMs = Date.parse(expiresAt);
@@ -115411,7 +115584,7 @@ init_zod();
115411
115584
  // src/be/api-drain.ts
115412
115585
  init_api_drain();
115413
115586
  init_secret_scrubber();
115414
- init_db();
115587
+ init_db2();
115415
115588
  var DEFAULT_API_DRAIN_MAX_MS = 0;
115416
115589
  var DRAIN_CHECK_INTERVAL_MS = 500;
115417
115590
  var LIVE_WORKER_WINDOW_MS = 30000;
@@ -115509,7 +115682,7 @@ function describe2(err) {
115509
115682
  }
115510
115683
 
115511
115684
  // src/tools/poll-task.ts
115512
- init_db();
115685
+ init_db2();
115513
115686
  var DEFAULT_POLL_INTERVAL_MS = 2000;
115514
115687
  var MAX_POLL_DURATION_MS = 1 * 60 * 1000;
115515
115688
  var registerPollTaskTool = (server) => {
@@ -115677,7 +115850,7 @@ var registerPollTaskTool = (server) => {
115677
115850
 
115678
115851
  // src/tools/post-message.ts
115679
115852
  init_zod();
115680
- init_db();
115853
+ init_db2();
115681
115854
  var PostedMessageSchema = looseObject({
115682
115855
  id: string().optional(),
115683
115856
  channelId: string().optional(),
@@ -115736,7 +115909,7 @@ var registerPostMessageTool = (server) => {
115736
115909
 
115737
115910
  // src/tools/prompt-templates/delete.ts
115738
115911
  init_zod();
115739
- init_db();
115912
+ init_db2();
115740
115913
  var registerDeletePromptTemplateTool = (server) => {
115741
115914
  createToolRegistrar(server)("delete-prompt-template", {
115742
115915
  title: "Delete Prompt Template",
@@ -115779,7 +115952,7 @@ var registerDeletePromptTemplateTool = (server) => {
115779
115952
  };
115780
115953
  // src/tools/prompt-templates/get.ts
115781
115954
  init_zod();
115782
- init_db();
115955
+ init_db2();
115783
115956
  init_registry();
115784
115957
  var promptTemplateOutputShape = looseObject({
115785
115958
  id: string().optional(),
@@ -115859,7 +116032,7 @@ History: ${history.length} version(s)`,
115859
116032
  };
115860
116033
  // src/tools/prompt-templates/list.ts
115861
116034
  init_zod();
115862
- init_db();
116035
+ init_db2();
115863
116036
  init_types();
115864
116037
  var promptTemplateOutputShape2 = looseObject({
115865
116038
  id: string().optional(),
@@ -115964,7 +116137,7 @@ Unresolved variables: ${unresolved.join(", ")}` : ""}`,
115964
116137
  };
115965
116138
  // src/tools/prompt-templates/set.ts
115966
116139
  init_zod();
115967
- init_db();
116140
+ init_db2();
115968
116141
  init_types();
115969
116142
  var promptTemplateOutputShape3 = looseObject({
115970
116143
  id: string().optional(),
@@ -116031,7 +116204,7 @@ var registerSetPromptTemplateTool = (server) => {
116031
116204
  };
116032
116205
  // src/tools/read-messages.ts
116033
116206
  init_zod();
116034
- init_db();
116207
+ init_db2();
116035
116208
  var ChannelMessageOutputSchema = looseObject({
116036
116209
  id: string().optional(),
116037
116210
  channelId: string().optional(),
@@ -116156,7 +116329,7 @@ var registerReadMessagesTool = (server) => {
116156
116329
 
116157
116330
  // src/tools/register-agentmail-inbox.ts
116158
116331
  init_zod();
116159
- init_db();
116332
+ init_db2();
116160
116333
  var registerRegisterAgentmailInboxTool = (server) => {
116161
116334
  createToolRegistrar(server)("register-agentmail-inbox", {
116162
116335
  title: "Register AgentMail Inbox",
@@ -116229,7 +116402,7 @@ ${mappings.map((m) => ` - ${m.inboxId} (${m.inboxEmail ?? "no email"})`).join(`
116229
116402
 
116230
116403
  // src/tools/register-kapso-number.ts
116231
116404
  init_zod();
116232
- init_db();
116405
+ init_db2();
116233
116406
 
116234
116407
  // src/integrations/kapso/client.ts
116235
116408
  init_secret_scrubber();
@@ -116402,7 +116575,7 @@ async function registerKapsoWebhook(params) {
116402
116575
  }
116403
116576
 
116404
116577
  // src/integrations/kapso/config.ts
116405
- init_db();
116578
+ init_db2();
116406
116579
  var KAPSO_NUMBERS_NAMESPACE = "integrations:kapso:numbers";
116407
116580
  var KAPSO_DEDUPE_NAMESPACE = "integrations:kapso:dedupe";
116408
116581
  var KAPSO_DEDUPE_TTL_MS = 24 * 60 * 60 * 1000;
@@ -116584,7 +116757,7 @@ var registerUnregisterKapsoNumberTool = (server) => {
116584
116757
 
116585
116758
  // src/tools/register-service.ts
116586
116759
  init_zod();
116587
- init_db();
116760
+ init_db2();
116588
116761
  import path2 from "node:path";
116589
116762
  init_types();
116590
116763
  var serviceOutputShape = looseObject({
@@ -116715,7 +116888,7 @@ var registerRegisterServiceTool = (server) => {
116715
116888
 
116716
116889
  // src/tools/repos/get-repos.ts
116717
116890
  init_zod();
116718
- init_db();
116891
+ init_db2();
116719
116892
  var swarmRepoOutputShape = looseObject({
116720
116893
  id: string().optional(),
116721
116894
  url: string().optional(),
@@ -116759,10 +116932,10 @@ var registerGetReposTool = (server) => {
116759
116932
  };
116760
116933
  // src/tools/repos/update-repo.ts
116761
116934
  init_zod();
116762
- init_db();
116935
+ init_db2();
116763
116936
 
116764
116937
  // src/be/repo-checked-update.ts
116765
- init_db();
116938
+ init_db2();
116766
116939
 
116767
116940
  // src/be/repo-merge-policy.ts
116768
116941
  function changesAllowMerge(current, incoming) {
@@ -116854,14 +117027,14 @@ var registerUpdateRepoTool = (server) => {
116854
117027
  };
116855
117028
  // src/tools/request-human-input.ts
116856
117029
  init_zod();
116857
- init_db();
117030
+ init_db2();
116858
117031
  init_constants();
116859
117032
  var QuestionSchema = object({
116860
117033
  id: string().describe("Unique ID for the question (used as key in responses)"),
116861
117034
  type: _enum(["approval", "text", "single-select", "multi-select", "boolean"]).describe("Question type"),
116862
117035
  label: string().describe("The question text displayed to the user"),
116863
117036
  required: boolean().optional().describe("Whether this question is required (default: true)"),
116864
- description: string().optional().describe("Optional help text"),
117037
+ description: string().optional().describe("Optional help text, rendered as markdown (code fences, images)"),
116865
117038
  placeholder: string().optional().describe("Placeholder text (for text type)"),
116866
117039
  multiline: boolean().optional().describe("Use textarea instead of input (for text type)"),
116867
117040
  options: array(object({
@@ -116877,7 +117050,7 @@ var registerRequestHumanInputTool = (server) => {
116877
117050
  createToolRegistrar(server)("request-human-input", {
116878
117051
  title: "Request human input",
116879
117052
  annotations: { destructiveHint: false },
116880
- description: "Create an approval request and return at once with the request id and URL. The answer arrives later as a hitl-follow-up task. " + "Supports multiple question types: approval (yes/no), text, single-select, " + "multi-select, and boolean. Returns the request ID and URL for the human to respond.",
117053
+ description: "Create an approval request and return at once with the request id and URL. The answer arrives later as a hitl-follow-up task. " + "Supports multiple question types: approval (yes/no), text, single-select, " + "multi-select, and boolean. Returns the request ID and URL for the human to respond. " + "The dashboard renders each label and description as markdown: put long content in description, fence code with a language, and put an image URL alone on its own line to show it. " + "No Slack message is sent; share the URL yourself.",
116881
117054
  inputSchema: object({
116882
117055
  title: string().min(1).describe("Title of the approval request"),
116883
117056
  questions: array(QuestionSchema).min(1).describe("Questions to ask the human"),
@@ -117015,7 +117188,7 @@ var registerResolveUserTool = (server) => {
117015
117188
  init_zod();
117016
117189
 
117017
117190
  // src/realtime/auth.ts
117018
- init_db();
117191
+ init_db2();
117019
117192
  init_rbac_roles();
117020
117193
 
117021
117194
  // src/comb/config.ts
@@ -122877,7 +123050,7 @@ var removeAwarenessStates = (awareness, clients, origin) => {
122877
123050
  };
122878
123051
 
122879
123052
  // src/realtime/rooms.ts
122880
- init_db();
123053
+ init_db2();
122881
123054
  init_secret_scrubber();
122882
123055
  init_bus();
122883
123056
  var ROOM_KEY_PREFIX = "_room/";
@@ -123444,6 +123617,7 @@ var registerRoomDecodeTool = (server) => {
123444
123617
  // src/tools/schedules/create-schedule.ts
123445
123618
  init_zod();
123446
123619
  var import_cron_parser2 = __toESM(require_dist2(), 1);
123620
+ init_db2();
123447
123621
  init_db();
123448
123622
  init_types();
123449
123623
  var createScheduleInputSchema = object({
@@ -123660,13 +123834,15 @@ var registerCreateScheduleTool = (server) => {
123660
123834
  };
123661
123835
  // src/tools/schedules/delete-schedule.ts
123662
123836
  init_zod();
123663
- init_db();
123837
+ init_db2();
123664
123838
 
123665
123839
  // src/be/events.ts
123666
- init_db();
123840
+ init_secret_scrubber();
123841
+ init_db2();
123842
+ init_scrub_json();
123667
123843
 
123668
123844
  // src/be/memory/key-browser.ts
123669
- init_db();
123845
+ init_db2();
123670
123846
  var MEMORY_KEYS_DEFAULT_PREFIX = "/longterm/";
123671
123847
  var MEMORY_KEYS_MAX_LIMIT = 2000;
123672
123848
  function estimateTokens(chars) {
@@ -123899,6 +124075,13 @@ function rowToSwarmEvent(row) {
123899
124075
  var INSERT_EVENT_SQL = `INSERT INTO events (id, category, event, status, source, agentId, taskId,
123900
124076
  sessionId, parentEventId, numericValue, durationMs, data, createdAt)
123901
124077
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))`;
124078
+ function serializeEventData(data) {
124079
+ const raw = JSON.stringify(data);
124080
+ const scrubbed = scrubSecrets(raw);
124081
+ if (!breaksJsonValidity(raw, scrubbed))
124082
+ return scrubbed;
124083
+ return JSON.stringify(scrubObject(data));
124084
+ }
123902
124085
  async function insertEvent(db, id2, input) {
123903
124086
  await db.run(INSERT_EVENT_SQL, [
123904
124087
  id2,
@@ -123912,7 +124095,7 @@ async function insertEvent(db, id2, input) {
123912
124095
  input.parentEventId ?? null,
123913
124096
  input.numericValue ?? null,
123914
124097
  input.durationMs ?? null,
123915
- input.data ? JSON.stringify(input.data) : null
124098
+ input.data ? serializeEventData(input.data) : null
123916
124099
  ]);
123917
124100
  await recordSkillInvocation(db, input, id2);
123918
124101
  }
@@ -124121,7 +124304,7 @@ var registerDeleteScheduleTool = (server) => {
124121
124304
  };
124122
124305
  // src/tools/schedules/list-schedules.ts
124123
124306
  init_zod();
124124
- init_db();
124307
+ init_db2();
124125
124308
  init_types();
124126
124309
  var scheduleRowShape = {
124127
124310
  id: string().optional(),
@@ -124223,7 +124406,7 @@ var registerListSchedulesTool = (server) => {
124223
124406
  // src/tools/schedules/patch-schedule.ts
124224
124407
  init_zod();
124225
124408
  var import_cron_parser3 = __toESM(require_dist2(), 1);
124226
- init_db();
124409
+ init_db2();
124227
124410
 
124228
124411
  // src/be/schedules/validate.ts
124229
124412
  function mergeScheduleTiming(existing, patch) {
@@ -124240,6 +124423,7 @@ function validateRecurringTiming(merged) {
124240
124423
  }
124241
124424
 
124242
124425
  // src/tools/schedules/patch-schedule.ts
124426
+ init_db();
124243
124427
  init_types();
124244
124428
  var patchScheduleInputSchema = object({
124245
124429
  key: AssetKeySchema.optional().describe("Move to a logical namespace."),
@@ -124490,7 +124674,7 @@ var registerPatchScheduleTool = (server) => {
124490
124674
  };
124491
124675
  // src/tools/schedules/run-schedule-now.ts
124492
124676
  init_zod();
124493
- init_db();
124677
+ init_db2();
124494
124678
  var registerRunScheduleNowTool = (server) => {
124495
124679
  createToolRegistrar(server)("run-schedule-now", {
124496
124680
  title: "Run Schedule Now",
@@ -124549,6 +124733,7 @@ var registerRunScheduleNowTool = (server) => {
124549
124733
  // src/tools/schedules/update-schedule.ts
124550
124734
  init_zod();
124551
124735
  var import_cron_parser4 = __toESM(require_dist2(), 1);
124736
+ init_db2();
124552
124737
  init_db();
124553
124738
  init_types();
124554
124739
  var updateScheduleInputSchema = object({
@@ -124800,7 +124985,7 @@ var registerUpdateScheduleTool = (server) => {
124800
124985
  };
124801
124986
  // src/tools/script-apis.ts
124802
124987
  init_zod();
124803
- init_db();
124988
+ init_db2();
124804
124989
  init_rbac();
124805
124990
  init_secret_scrubber();
124806
124991
  var scriptApisInputSchema = object({
@@ -124973,7 +125158,7 @@ var registerScriptApisTool = (server) => {
124973
125158
 
124974
125159
  // src/tools/script-connections/tool.ts
124975
125160
  init_zod();
124976
- init_db();
125161
+ init_db2();
124977
125162
  init_rbac();
124978
125163
  var scriptConnectionsInputSchema = object({
124979
125164
  action: _enum(["list", "upsert-openapi", "upsert-mcp", "upsert-graphql", "refresh", "disable"]).describe("List, create/update, refresh, or disable a script connection."),
@@ -125549,12 +125734,12 @@ var registerScriptUpsertTool = (server) => {
125549
125734
 
125550
125735
  // src/tools/send-task.ts
125551
125736
  init_zod();
125552
- init_db();
125737
+ init_db2();
125553
125738
  init_rbac();
125554
125739
  init_slack_routing();
125555
125740
 
125556
125741
  // src/tools/task-dedup.ts
125557
- init_db();
125742
+ init_db2();
125558
125743
  function jaccardSimilarity(a, b) {
125559
125744
  const tokenize = (s) => new Set(s.toLowerCase().replace(/[^\w\s]/g, " ").split(/\s+/).filter((w) => w.length > 0));
125560
125745
  const wordsA = tokenize(a);
@@ -126003,7 +126188,7 @@ var registerSendTaskTool = (server) => {
126003
126188
 
126004
126189
  // src/tools/skills/skill-create.ts
126005
126190
  init_zod();
126006
- init_db();
126191
+ init_db2();
126007
126192
  init_rbac();
126008
126193
  var registerSkillCreateTool = (server) => {
126009
126194
  createToolRegistrar(server)("skill-create", {
@@ -126072,7 +126257,7 @@ var registerSkillCreateTool = (server) => {
126072
126257
  };
126073
126258
  // src/tools/skills/skill-delete.ts
126074
126259
  init_zod();
126075
- init_db();
126260
+ init_db2();
126076
126261
  init_rbac();
126077
126262
  var SYSTEM_DEFAULT_SKILL_LOCKED_MESSAGE = "This skill is system-managed and cannot be edited from the UI; it is re-seeded on each start. Fork it under a new name to customize.";
126078
126263
  var registerSkillDeleteTool = (server) => {
@@ -126122,7 +126307,7 @@ var registerSkillDeleteTool = (server) => {
126122
126307
  };
126123
126308
  // src/tools/skills/skill-get.ts
126124
126309
  init_zod();
126125
- init_db();
126310
+ init_db2();
126126
126311
  var registerSkillGetTool = (server) => {
126127
126312
  createToolRegistrar(server)("skill-get", {
126128
126313
  title: "Get Skill",
@@ -126161,7 +126346,7 @@ ${skill.content}`,
126161
126346
  };
126162
126347
  // src/tools/skills/skill-get-file.ts
126163
126348
  init_zod();
126164
- init_db();
126349
+ init_db2();
126165
126350
  var registerSkillGetFileTool = (server) => {
126166
126351
  createToolRegistrar(server)("skill-get-file", {
126167
126352
  title: "Get Skill File",
@@ -126200,7 +126385,7 @@ ${file.content}`,
126200
126385
  };
126201
126386
  // src/tools/skills/skill-install.ts
126202
126387
  init_zod();
126203
- init_db();
126388
+ init_db2();
126204
126389
  init_rbac();
126205
126390
  var registerSkillInstallTool = (server) => {
126206
126391
  createToolRegistrar(server)("skill-install", {
@@ -126259,7 +126444,7 @@ var registerSkillInstallTool = (server) => {
126259
126444
  };
126260
126445
  // src/tools/skills/skill-install-remote.ts
126261
126446
  init_zod();
126262
- init_db();
126447
+ init_db2();
126263
126448
  init_rbac();
126264
126449
  var registerSkillInstallRemoteTool = (server) => {
126265
126450
  createToolRegistrar(server)("skill-install-remote", {
@@ -126357,7 +126542,7 @@ var registerSkillInstallRemoteTool = (server) => {
126357
126542
  };
126358
126543
  // src/tools/skills/skill-list.ts
126359
126544
  init_zod();
126360
- init_db();
126545
+ init_db2();
126361
126546
  function renderSkillList(skills) {
126362
126547
  if (skills.length === 0)
126363
126548
  return;
@@ -126407,7 +126592,7 @@ var registerSkillListTool = (server) => {
126407
126592
  };
126408
126593
  // src/tools/skills/skill-publish.ts
126409
126594
  init_zod();
126410
- init_db();
126595
+ init_db2();
126411
126596
  var registerSkillPublishTool = (server) => {
126412
126597
  createToolRegistrar(server)("skill-publish", {
126413
126598
  title: "Publish Skill",
@@ -126479,7 +126664,7 @@ To reject: close this task with a rejection reason.`;
126479
126664
  };
126480
126665
  // src/tools/skills/skill-search.ts
126481
126666
  init_zod();
126482
- init_db();
126667
+ init_db2();
126483
126668
  function renderSkillList2(skills) {
126484
126669
  if (skills.length === 0)
126485
126670
  return;
@@ -126514,7 +126699,7 @@ var registerSkillSearchTool = (server) => {
126514
126699
  };
126515
126700
  // src/tools/skills/skill-sync-remote.ts
126516
126701
  init_zod();
126517
- init_db();
126702
+ init_db2();
126518
126703
  function contentHash(content) {
126519
126704
  const hash = new Bun.CryptoHasher("sha256").update(content).digest("hex");
126520
126705
  return hash;
@@ -126606,7 +126791,7 @@ var registerSkillSyncRemoteTool = (server) => {
126606
126791
  };
126607
126792
  // src/tools/skills/skill-uninstall.ts
126608
126793
  init_zod();
126609
- init_db();
126794
+ init_db2();
126610
126795
  init_rbac();
126611
126796
  var registerSkillUninstallTool = (server) => {
126612
126797
  createToolRegistrar(server)("skill-uninstall", {
@@ -126650,7 +126835,7 @@ var registerSkillUninstallTool = (server) => {
126650
126835
  };
126651
126836
  // src/tools/skills/skill-update.ts
126652
126837
  init_zod();
126653
- init_db();
126838
+ init_db2();
126654
126839
  init_rbac();
126655
126840
  var SYSTEM_DEFAULT_SKILL_LOCKED_MESSAGE2 = "This skill is system-managed and cannot be edited from the UI; it is re-seeded on each start. Fork it under a new name to customize.";
126656
126841
  var registerSkillUpdateTool = (server) => {
@@ -126754,7 +126939,7 @@ var registerSkillUpdateTool = (server) => {
126754
126939
  };
126755
126940
  // src/tools/slack-archive-channel.ts
126756
126941
  init_zod();
126757
- init_db();
126942
+ init_db2();
126758
126943
  init_rbac();
126759
126944
 
126760
126945
  // src/slack/channel-join.ts
@@ -126932,7 +127117,7 @@ var registerSlackArchiveChannelTool = (server) => {
126932
127117
 
126933
127118
  // src/tools/slack-create-channel.ts
126934
127119
  init_zod();
126935
- init_db();
127120
+ init_db2();
126936
127121
  init_rbac();
126937
127122
  var registerSlackCreateChannelTool = (server) => {
126938
127123
  createToolRegistrar(server)("slack-create-channel", {
@@ -126988,7 +127173,7 @@ var registerSlackCreateChannelTool = (server) => {
126988
127173
 
126989
127174
  // src/tools/slack-delete.ts
126990
127175
  init_zod();
126991
- init_db();
127176
+ init_db2();
126992
127177
  init_rbac();
126993
127178
 
126994
127179
  // src/slack/message-text.ts
@@ -127206,17 +127391,17 @@ var registerSlackDeleteTool = (server) => {
127206
127391
 
127207
127392
  // src/tools/slack-download-file.ts
127208
127393
  init_zod();
127209
- init_db();
127394
+ init_db2();
127210
127395
 
127211
127396
  // src/slack/inbound-files.ts
127212
- init_db();
127397
+ init_db2();
127213
127398
  import { mkdtemp, rm } from "node:fs/promises";
127214
127399
  import { tmpdir as tmpdir2 } from "node:os";
127215
127400
  import { join as join2 } from "node:path";
127216
127401
 
127217
127402
  // src/be/task-attachment-store.ts
127218
127403
  init_secret_scrubber();
127219
- init_db();
127404
+ init_db2();
127220
127405
  var MAX_TASK_ATTACHMENT_BYTES = 50 * 1024 * 1024;
127221
127406
  async function recordTaskAttachmentUpload(input) {
127222
127407
  const { provider, scope, uploaded, contentType } = input;
@@ -127683,7 +127868,7 @@ ${fetchCommand}`,
127683
127868
 
127684
127869
  // src/tools/slack-invite-to-channel.ts
127685
127870
  init_zod();
127686
- init_db();
127871
+ init_db2();
127687
127872
  init_rbac();
127688
127873
  var registerSlackInviteToChannelTool = (server) => {
127689
127874
  createToolRegistrar(server)("slack-invite-to-channel", {
@@ -127738,7 +127923,7 @@ var registerSlackInviteToChannelTool = (server) => {
127738
127923
 
127739
127924
  // src/tools/slack-list-channels.ts
127740
127925
  init_zod();
127741
- init_db();
127926
+ init_db2();
127742
127927
  var SlackChannelSchema = looseObject({
127743
127928
  id: string().optional(),
127744
127929
  name: string().optional(),
@@ -127833,7 +128018,7 @@ var registerSlackListChannelsTool = (server) => {
127833
128018
 
127834
128019
  // src/tools/slack-post.ts
127835
128020
  init_zod();
127836
- init_db();
128021
+ init_db2();
127837
128022
  init_rbac();
127838
128023
  var registerSlackPostTool = (server) => {
127839
128024
  createToolRegistrar(server)("slack-post", {
@@ -127937,7 +128122,7 @@ var registerSlackPostTool = (server) => {
127937
128122
 
127938
128123
  // src/tools/slack-read.ts
127939
128124
  init_zod();
127940
- init_db();
128125
+ init_db2();
127941
128126
  init_rbac();
127942
128127
  var AUTO_DOWNLOAD_DIR = "/app/shared/downloads/slack";
127943
128128
  var SlackFileSchema = looseObject({
@@ -128167,7 +128352,7 @@ ${fileList}`;
128167
128352
 
128168
128353
  // src/tools/slack-reply.ts
128169
128354
  init_zod();
128170
- init_db();
128355
+ init_db2();
128171
128356
  var registerSlackReplyTool = (server) => {
128172
128357
  createToolRegistrar(server)("slack-reply", {
128173
128358
  title: "Reply to Slack thread",
@@ -128307,7 +128492,7 @@ var registerSlackReplyTool = (server) => {
128307
128492
 
128308
128493
  // src/tools/slack-start-thread.ts
128309
128494
  init_zod();
128310
- init_db();
128495
+ init_db2();
128311
128496
  init_rbac();
128312
128497
  var registerSlackStartThreadTool = (server) => {
128313
128498
  createToolRegistrar(server)("slack-start-thread", {
@@ -128396,7 +128581,7 @@ var registerSlackStartThreadTool = (server) => {
128396
128581
 
128397
128582
  // src/tools/slack-update.ts
128398
128583
  init_zod();
128399
- init_db();
128584
+ init_db2();
128400
128585
  init_rbac();
128401
128586
  var registerSlackUpdateTool = (server) => {
128402
128587
  createToolRegistrar(server)("slack-update", {
@@ -128483,7 +128668,7 @@ var registerSlackUpdateTool = (server) => {
128483
128668
 
128484
128669
  // src/tools/slack-upload-file.ts
128485
128670
  init_zod();
128486
- init_db();
128671
+ init_db2();
128487
128672
  init_rbac();
128488
128673
  var WORKSPACE_DIR = "/workspace";
128489
128674
  function resolveTaskUploadThreadTs(task) {
@@ -128675,7 +128860,7 @@ ${triedPathsList}
128675
128860
 
128676
128861
  // src/tools/steer-task.ts
128677
128862
  init_zod();
128678
- init_db();
128863
+ init_db2();
128679
128864
  init_steering();
128680
128865
  init_rbac();
128681
128866
  init_types();
@@ -128772,7 +128957,7 @@ var registerSteerTaskTool = (server) => {
128772
128957
 
128773
128958
  // src/tools/store-progress.ts
128774
128959
  init_zod();
128775
- init_db();
128960
+ init_db2();
128776
128961
  init_rbac();
128777
128962
  init_types();
128778
128963
  init_secret_scrubber();
@@ -129130,7 +129315,7 @@ This check refuses once per task; the next completion is accepted and unfixed ci
129130
129315
 
129131
129316
  // src/tools/swarm-config/delete-config.ts
129132
129317
  init_zod();
129133
- init_db();
129318
+ init_db2();
129134
129319
  init_swarm_config_guard();
129135
129320
  init_rbac();
129136
129321
  var registerDeleteConfigTool = (server) => {
@@ -129202,7 +129387,7 @@ var registerDeleteConfigTool = (server) => {
129202
129387
  };
129203
129388
  // src/tools/swarm-config/get-config.ts
129204
129389
  init_zod();
129205
- init_db();
129390
+ init_db2();
129206
129391
  init_swarm_config_guard();
129207
129392
  init_rbac();
129208
129393
  init_types();
@@ -129293,7 +129478,7 @@ var registerGetConfigTool = (server) => {
129293
129478
  };
129294
129479
  // src/tools/swarm-config/list-config.ts
129295
129480
  init_zod();
129296
- init_db();
129481
+ init_db2();
129297
129482
  init_swarm_config_guard();
129298
129483
  init_rbac();
129299
129484
  init_types();
@@ -129384,7 +129569,7 @@ var registerListConfigTool = (server) => {
129384
129569
  };
129385
129570
  // src/tools/swarm-config/set-config.ts
129386
129571
  init_zod();
129387
- init_db();
129572
+ init_db2();
129388
129573
  init_swarm_config_guard();
129389
129574
  init_rbac();
129390
129575
  init_types();
@@ -129562,7 +129747,7 @@ init_zod();
129562
129747
 
129563
129748
  // src/be/budget-admission.ts
129564
129749
  init_env_flag();
129565
- init_db();
129750
+ init_db2();
129566
129751
  var killSwitchWarned = false;
129567
129752
  function dateUtcFrom(now) {
129568
129753
  return now.toISOString().slice(0, 10);
@@ -129628,7 +129813,7 @@ async function canClaim(agentId, nowUtc, requestedByUserId) {
129628
129813
  // src/be/budget-refusal-notify.ts
129629
129814
  init_resolver();
129630
129815
  init_secret_scrubber();
129631
- init_db();
129816
+ init_db2();
129632
129817
  function formatSpendSummary(ctx) {
129633
129818
  const fmt = (n) => n === undefined ? "?" : `$${n.toFixed(2)}`;
129634
129819
  if (ctx.cause === "agent") {
@@ -129679,7 +129864,7 @@ async function emitBudgetRefusalSideEffects(ctx, inserted) {
129679
129864
  console.warn(`[budget-refusal-notify] Failed to create follow-up task for budget refusal (task=${ctx.task.id.slice(0, 8)}): ${err}`);
129680
129865
  }
129681
129866
  }
129682
- import("./event-bus-w7ac4n3c.js").then(({ workflowEventBus: workflowEventBus2 }) => {
129867
+ import("./event-bus-vnfthafg.js").then(({ workflowEventBus: workflowEventBus2 }) => {
129683
129868
  workflowEventBus2.emit("task.budget_refused", {
129684
129869
  taskId: ctx.task.id,
129685
129870
  agentId: ctx.agentId,
@@ -129696,7 +129881,7 @@ async function emitBudgetRefusalSideEffects(ctx, inserted) {
129696
129881
  }
129697
129882
 
129698
129883
  // src/tools/task-action.ts
129699
- init_db();
129884
+ init_db2();
129700
129885
  init_types();
129701
129886
  var TaskActionSchema = _enum([
129702
129887
  "create",
@@ -130235,6 +130420,7 @@ var registerTrackerMapAgentTool = (server) => {
130235
130420
  };
130236
130421
  // src/tools/tracker/tracker-status.ts
130237
130422
  init_zod();
130423
+ init_oauth();
130238
130424
  var registerTrackerStatusTool = (server) => {
130239
130425
  createToolRegistrar(server)("tracker-status", {
130240
130426
  title: "Tracker Status",
@@ -130321,7 +130507,7 @@ var registerTrackerUnlinkTool = (server) => {
130321
130507
  };
130322
130508
  // src/tools/unregister-service.ts
130323
130509
  init_zod();
130324
- init_db();
130510
+ init_db2();
130325
130511
  var registerUnregisterServiceTool = (server) => {
130326
130512
  createToolRegistrar(server)("unregister-service", {
130327
130513
  title: "Unregister Service",
@@ -130376,7 +130562,7 @@ var registerUnregisterServiceTool = (server) => {
130376
130562
 
130377
130563
  // src/tools/update-profile.ts
130378
130564
  init_zod();
130379
- init_db();
130565
+ init_db2();
130380
130566
  init_rbac();
130381
130567
  import { mkdtemp as mkdtemp2, rm as rm2 } from "node:fs/promises";
130382
130568
  import { tmpdir as tmpdir3 } from "node:os";
@@ -130627,7 +130813,7 @@ ${setupScript}
130627
130813
 
130628
130814
  // src/tools/update-service-status.ts
130629
130815
  init_zod();
130630
- init_db();
130816
+ init_db2();
130631
130817
  init_types();
130632
130818
  var serviceOutputShape2 = looseObject({
130633
130819
  id: string().optional(),
@@ -130797,7 +130983,7 @@ var registerCancelWorkflowRunTool = (server) => {
130797
130983
  };
130798
130984
  // src/tools/workflows/create-workflow.ts
130799
130985
  init_zod();
130800
- init_db();
130986
+ init_db2();
130801
130987
  init_types();
130802
130988
 
130803
130989
  // src/workflows/model-validation.ts
@@ -130924,7 +131110,7 @@ var registerCreateWorkflowTool = (server) => {
130924
131110
  };
130925
131111
  // src/tools/workflows/delete-workflow.ts
130926
131112
  init_zod();
130927
- init_db();
131113
+ init_db2();
130928
131114
  var registerDeleteWorkflowTool = (server) => {
130929
131115
  createToolRegistrar(server)("delete-workflow", {
130930
131116
  title: "Delete Workflow",
@@ -130948,7 +131134,7 @@ var registerDeleteWorkflowTool = (server) => {
130948
131134
  };
130949
131135
  // src/tools/workflows/get-workflow.ts
130950
131136
  init_zod();
130951
- init_db();
131137
+ init_db2();
130952
131138
  var registerGetWorkflowTool = (server) => {
130953
131139
  createToolRegistrar(server)("get-workflow", {
130954
131140
  title: "Get Workflow",
@@ -130979,7 +131165,7 @@ var registerGetWorkflowTool = (server) => {
130979
131165
  };
130980
131166
  // src/tools/workflows/get-workflow-run.ts
130981
131167
  init_zod();
130982
- init_db();
131168
+ init_db2();
130983
131169
  var STEP_VALUE_CAP = 400;
130984
131170
  function stepValuePreview(value) {
130985
131171
  if (value === undefined || value === null)
@@ -131019,11 +131205,11 @@ var registerGetWorkflowRunTool = (server) => {
131019
131205
  })
131020
131206
  }, async ({ id: id2 }) => {
131021
131207
  try {
131022
- const run = await getWorkflowRun(id2);
131208
+ const run = await getWorkflowRun(id2, "display");
131023
131209
  if (!run) {
131024
131210
  return toolErr(`Workflow run not found: ${id2}`, { data: { steps: [] } });
131025
131211
  }
131026
- const steps = await getWorkflowRunStepsByRunId(id2);
131212
+ const steps = await getWorkflowRunStepsByRunId(id2, "display");
131027
131213
  return toolOk(`Run ${id2} status: ${run.status}.`, {
131028
131214
  details: renderSteps(steps),
131029
131215
  data: { run, steps }
@@ -131035,7 +131221,7 @@ var registerGetWorkflowRunTool = (server) => {
131035
131221
  };
131036
131222
  // src/tools/workflows/list-workflow-runs.ts
131037
131223
  init_zod();
131038
- init_db();
131224
+ init_db2();
131039
131225
  init_types();
131040
131226
  var DEFAULT_RUN_LIMIT = 20;
131041
131227
  var TRIGGER_DATA_SUMMARY_CAP = 400;
@@ -131119,7 +131305,7 @@ var registerListWorkflowRunsTool = (server) => {
131119
131305
  };
131120
131306
  // src/tools/workflows/list-workflows.ts
131121
131307
  init_zod();
131122
- init_db();
131308
+ init_db2();
131123
131309
  init_types();
131124
131310
  var registerListWorkflowsTool = (server) => {
131125
131311
  createToolRegistrar(server)("list-workflows", {
@@ -131152,7 +131338,7 @@ init_zod();
131152
131338
  init_types();
131153
131339
 
131154
131340
  // src/workflows/patch-definition.ts
131155
- init_db();
131341
+ init_db2();
131156
131342
  async function patchWorkflowDefinition(options) {
131157
131343
  const { id: id2, patch, registry, snapshotAgentId, snapshotOptional, updates } = options;
131158
131344
  return await getDbClient().transaction(async () => {
@@ -131360,7 +131546,7 @@ var registerRetryWorkflowRunTool = (server) => {
131360
131546
  };
131361
131547
  // src/tools/workflows/trigger-workflow.ts
131362
131548
  init_zod();
131363
- init_db();
131549
+ init_db2();
131364
131550
  var registerTriggerWorkflowTool = (server) => {
131365
131551
  createToolRegistrar(server)("trigger-workflow", {
131366
131552
  title: "Trigger Workflow",
@@ -131427,7 +131613,7 @@ ${bulleted}${schemaBlock}`,
131427
131613
  };
131428
131614
  // src/tools/workflows/update-workflow.ts
131429
131615
  init_zod();
131430
- init_db();
131616
+ init_db2();
131431
131617
  init_types();
131432
131618
  var registerUpdateWorkflowTool = (server) => {
131433
131619
  createToolRegistrar(server)("update-workflow", {
@@ -131519,6 +131705,9 @@ var registerUpdateWorkflowTool = (server) => {
131519
131705
  }
131520
131706
  });
131521
131707
  };
131708
+ // src/server.ts
131709
+ init_enabled_tools();
131710
+
131522
131711
  // src/utils/scripts-only-mode.ts
131523
131712
  init_env_flag();
131524
131713
  function resolveScriptsOnlyMode(opts) {
@@ -131583,9 +131772,43 @@ function getEnabledCapabilities() {
131583
131772
  function isScriptsOnlyMcp() {
131584
131773
  return resolveScriptsOnlyMode({ env: process.env.SCRIPTS_ONLY_MCP });
131585
131774
  }
131775
+ var loggedToolAllowlistWarnings = new Set;
131776
+ function warnToolAllowlistOnce(message) {
131777
+ if (loggedToolAllowlistWarnings.has(message))
131778
+ return;
131779
+ loggedToolAllowlistWarnings.add(message);
131780
+ console.warn(message);
131781
+ }
131782
+ function resolveToolAllowlist(value) {
131783
+ if (value === undefined)
131784
+ return;
131785
+ try {
131786
+ const tools = parseEnabledTools(value);
131787
+ if (!tools) {
131788
+ warnToolAllowlistOnce("[MCP] SWARM_ENABLED_TOOLS is set but lists no tools; ignoring it");
131789
+ }
131790
+ return tools;
131791
+ } catch {
131792
+ warnToolAllowlistOnce("[MCP] Invalid SWARM_ENABLED_TOOLS; ignoring it");
131793
+ return;
131794
+ }
131795
+ }
131796
+ function applyToolAllowlist(server, allowlist) {
131797
+ const tools = server._registeredTools;
131798
+ const allowed = new Set(allowlist);
131799
+ for (const [name, tool] of Object.entries(tools)) {
131800
+ if (!allowed.has(name))
131801
+ tool.remove();
131802
+ }
131803
+ const unknown3 = allowlist.filter((name) => !Object.hasOwn(tools, name));
131804
+ if (unknown3.length > 0) {
131805
+ warnToolAllowlistOnce(`[MCP] SWARM_ENABLED_TOOLS names unknown tools, ignoring them: ${unknown3.join(", ")}`);
131806
+ }
131807
+ }
131586
131808
  async function createServer(opts = {}) {
131587
131809
  await loadGlobalConfigsIntoEnv(true);
131588
- const hasCapability2 = (cap) => opts.fullSurface === true || getCapabilities().has(cap);
131810
+ const toolAllowlist = opts.fullSurface === true ? undefined : resolveToolAllowlist(opts.enabledTools ?? process.env.SWARM_ENABLED_TOOLS);
131811
+ const hasCapability2 = (cap) => opts.fullSurface === true || toolAllowlist !== undefined || getCapabilities().has(cap);
131589
131812
  initDb(process.env.DATABASE_PATH);
131590
131813
  ensurePricingSeeded();
131591
131814
  startPricingRefreshLoop();
@@ -131609,7 +131832,7 @@ async function createServer(opts = {}) {
131609
131832
  });
131610
131833
  if (opts.preloadedTools?.length)
131611
131834
  setPreloadedTools(server, opts.preloadedTools);
131612
- if (opts.scriptsOnly ?? isScriptsOnlyMcp()) {
131835
+ if (toolAllowlist === undefined && (opts.scriptsOnly ?? isScriptsOnlyMcp())) {
131613
131836
  registerScriptSearchTool(server);
131614
131837
  registerScriptRunTool(server);
131615
131838
  registerScriptUpsertTool(server);
@@ -131820,6 +132043,8 @@ async function createServer(opts = {}) {
131820
132043
  registerListServicesTool(server);
131821
132044
  registerUpdateServiceStatusTool(server);
131822
132045
  }
132046
+ if (toolAllowlist)
132047
+ applyToolAllowlist(server, toolAllowlist);
131823
132048
  return server;
131824
132049
  }
131825
132050
 
@@ -132718,12 +132943,12 @@ function createSwarmSdk(config) {
132718
132943
  init_secret_scrubber();
132719
132944
 
132720
132945
  // src/extensions/lifecycle.ts
132721
- init_db();
132946
+ init_db2();
132722
132947
  init_types();
132723
132948
  init_secret_scrubber();
132724
132949
 
132725
132950
  // src/extensions/identity.ts
132726
- init_db();
132951
+ init_db2();
132727
132952
  function extensionAgentName(name) {
132728
132953
  return `ext:${name}`;
132729
132954
  }
@@ -132901,7 +133126,7 @@ async function loadExtension(input) {
132901
133126
  }
132902
133127
 
132903
133128
  // src/extensions/post-bridge.ts
132904
- init_db();
133129
+ init_db2();
132905
133130
  init_secret_scrubber();
132906
133131
  init_event_bus();
132907
133132
  var subscribed3 = false;
@@ -134385,7 +134610,7 @@ class NotifyExecutor extends BaseExecutor {
134385
134610
  }
134386
134611
  }
134387
134612
  case "slack": {
134388
- const { getSlackApp: getSlackApp2 } = await import("./app-75hm5cfa.js");
134613
+ const { getSlackApp: getSlackApp2 } = await import("./app-nctetn1e.js");
134389
134614
  const app = getSlackApp2();
134390
134615
  if (!app) {
134391
134616
  return {
@@ -134515,7 +134740,8 @@ async function executeRawLlm(config) {
134515
134740
  modelName = llmConfig.model;
134516
134741
  const provider = createOpenAI({
134517
134742
  baseURL: llmConfig.baseURL,
134518
- apiKey: llmConfig.apiKey
134743
+ apiKey: llmConfig.apiKey,
134744
+ headers: llmConfig.headers
134519
134745
  });
134520
134746
  const model = provider(llmConfig.model);
134521
134747
  if (config.schema) {
@@ -134738,6 +134964,7 @@ class ScriptExecutor extends BaseExecutor {
134738
134964
 
134739
134965
  // src/workflows/executors/swarm-script.ts
134740
134966
  init_zod();
134967
+ init_db();
134741
134968
  init_constants();
134742
134969
  init_template();
134743
134970
  var SWARM_SCRIPT_DEFAULT_TIMEOUT_MS = DEFAULT_SCRIPT_RESOURCES.wallClockMs;
@@ -134975,7 +135202,8 @@ class ValidateExecutor extends BaseExecutor {
134975
135202
  const llmConfig = await resolveWorkflowLlmConfig();
134976
135203
  const provider = createOpenAI({
134977
135204
  baseURL: llmConfig.baseURL,
134978
- apiKey: llmConfig.apiKey
135205
+ apiKey: llmConfig.apiKey,
135206
+ headers: llmConfig.headers
134979
135207
  });
134980
135208
  const { object: object4 } = await generateObject({
134981
135209
  model: provider(llmConfig.model),