@desplega.ai/agent-swarm 1.134.0 → 1.135.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 (785) hide show
  1. package/README.md +1 -1
  2. package/dist/{actions-7kast243.js → actions-3fpj602h.js} +16 -16
  3. package/dist/{app-0g84t8wf.js → app-12mwdsvg.js} +7 -7
  4. package/dist/{artifact-dje5ke4h.js → artifact-wpy087er.js} +1 -1
  5. package/dist/{assistant-ac4htcky.js → assistant-p87pt2b5.js} +19 -19
  6. package/dist/{azure-openai-responses-be59fbsz.js → azure-openai-responses-40z2astx.js} +5 -3
  7. package/dist/{boot-reembed-kw2541c4.js → boot-reembed-jf6gx8yr.js} +19 -19
  8. package/dist/{boot-reembed-b1rcqn85.js → boot-reembed-vjkptm2x.js} +17 -17
  9. package/dist/{boot-scrub-logs-ja29t92g.js → boot-scrub-logs-ah6bpjte.js} +31 -33
  10. package/dist/{claude-adapter-5cg1fv8s.js → claude-adapter-9ry59y9k.js} +11 -11
  11. package/dist/{claude-managed-adapter-9z9sdytx.js → claude-managed-adapter-m2v2e90a.js} +3 -3
  12. package/dist/cli-10694wk0.js +1093 -0
  13. package/dist/{cli-grt6qv91.js → cli-1gvam274.js} +398 -637
  14. package/dist/{cli-wf86d5t7.js → cli-1gzz6pmf.js} +11 -11
  15. package/dist/{cli-h0djenzm.js → cli-269pdgm4.js} +46 -46
  16. package/dist/{cli-480nehnh.js → cli-2ecesrtw.js} +23 -23
  17. package/dist/{cli-bnx54kxv.js → cli-2gwpvmew.js} +45 -5
  18. package/dist/{cli-h37gbjbf.js → cli-3m4mkyqy.js} +199 -111
  19. package/dist/{cli-qtekrty1.js → cli-6t2fgxpv.js} +1 -1
  20. package/dist/{cli-gtafvdy0.js → cli-77vf7z36.js} +2 -2
  21. package/dist/cli-87zrjxdb.js +658 -0
  22. package/dist/{cli-mp9sg4cg.js → cli-8ca5b9j9.js} +1 -1
  23. package/dist/{cli-pt43pdp1.js → cli-8p37s71j.js} +2 -2
  24. package/dist/{cli-f4wj0s3m.js → cli-9kekm9yz.js} +35 -36
  25. package/dist/{cli-jxj92gkt.js → cli-a2brkr6h.js} +5 -5
  26. package/dist/{cli-7bv8nckk.js → cli-bynsg176.js} +3 -3
  27. package/dist/{cli-g0j14czv.js → cli-crkvptsz.js} +23 -13
  28. package/dist/{cli-h39xxnq6.js → cli-d08xq4nz.js} +1717 -1332
  29. package/dist/cli-d2epf5ae.js +704 -0
  30. package/dist/{cli-43x36mty.js → cli-dphm5tyw.js} +166 -138
  31. package/dist/{cli-492e7ap5.js → cli-dr5tcz68.js} +2 -2
  32. package/dist/cli-dwwz52tw.js +6996 -0
  33. package/dist/{cli-snw62ze5.js → cli-f2tgry1v.js} +63 -47
  34. package/dist/{cli-rh6f3s9n.js → cli-h9gpdrzg.js} +29 -29
  35. package/dist/{cli-yv9dttkh.js → cli-hp1n6zq3.js} +13 -1
  36. package/dist/{cli-07er7wrs.js → cli-hsxj0yar.js} +1 -1
  37. package/dist/{cli-mrammd8c.js → cli-j2p3bfs3.js} +357 -282
  38. package/dist/{cli-brm3et47.js → cli-md759nb0.js} +122 -116
  39. package/dist/{cli-fyd58xgb.js → cli-mez7x2z0.js} +19 -106
  40. package/dist/{cli-zykjrwcx.js → cli-p0sqfhw1.js} +27 -32
  41. package/dist/cli-pmz8qr82.js +260 -0
  42. package/dist/{cli-ghexzd2d.js → cli-pqv5gvyf.js} +2562 -1664
  43. package/dist/{cli-m07313tr.js → cli-prfghf4h.js} +2568 -1726
  44. package/dist/{cli-1ybr6vw2.js → cli-s35981d0.js} +9 -1
  45. package/dist/{cli-k46t4664.js → cli-s9yg23fg.js} +2 -2
  46. package/dist/{cli-87t2gstf.js → cli-tdtmw1r5.js} +1 -1
  47. package/dist/cli-v21nahej.js +303 -0
  48. package/dist/{cli-15429qdw.js → cli-v3qda694.js} +1 -1
  49. package/dist/{cli-4bap00k0.js → cli-vd2twm2p.js} +1 -1
  50. package/dist/{cli-38taxznr.js → cli-vsap7a8d.js} +2066 -1399
  51. package/dist/{cli-c79a9zrc.js → cli-w3xch1b8.js} +2 -2
  52. package/dist/{cli-jmvk6et8.js → cli-w4ezqgkj.js} +7 -5
  53. package/dist/{cli-tkrr24mz.js → cli-wzmeara2.js} +62 -59
  54. package/dist/{cli-4bc8vmhm.js → cli-y37pxs1m.js} +8 -8
  55. package/dist/{cli-6x363v1z.js → cli-y98ry8cz.js} +6 -6
  56. package/dist/{cli-e07exmsb.js → cli-yd6vqt1x.js} +404 -233
  57. package/dist/{cli-aw8bb6sf.js → cli-z6gdnbjy.js} +20 -20
  58. package/dist/cli.js +22 -20
  59. package/dist/{codex-adapter-hsq6mz3m.js → codex-adapter-6r08aepx.js} +7 -7
  60. package/dist/{codex-hook-8c500gq8.js → codex-hook-7eb9d1d5.js} +2 -2
  61. package/dist/{codex-session-runner-c1x3x143.js → codex-session-runner-9dk036pn.js} +7 -7
  62. package/dist/{commands-rwtddtst.js → commands-kg7cm1jz.js} +8 -8
  63. package/dist/{db-j2b355vz.js → db-g666qxpv.js} +19 -18
  64. package/dist/{e2b-znpx78eg.js → e2b-b7jt70fc.js} +3 -3
  65. package/dist/{handlers-hchgrxkh.js → handlers-58k0e9mc.js} +24 -24
  66. package/dist/{hook-spb00w76.js → hook-51ez1v2s.js} +10 -10
  67. package/dist/{hook-p49egqc0.js → hook-gezxk50h.js} +9 -9
  68. package/dist/{http-nh14kkms.js → http-d4qhhnyy.js} +1296 -1455
  69. package/dist/{index-67pzqfrb.js → index-c06j5e9e.js} +15 -14
  70. package/dist/{index-dvsk64sm.js → index-h96j88n6.js} +350 -228
  71. package/dist/{index-4cbyhq2g.js → index-kvgmhb7w.js} +14 -13
  72. package/dist/{index-pyp7rexm.js → index-p13cfsc2.js} +2 -2
  73. package/dist/{index-j02xvjtd.js → index-pe58mf1r.js} +3 -3
  74. package/dist/{index-yrfphye1.js → index-ys39hr8t.js} +16 -15
  75. package/dist/{keepalive-9k51nqhc.js → keepalive-b6n7th6x.js} +9 -9
  76. package/dist/{lead-2xq3dxbz.js → lead-3wgc402v.js} +35 -34
  77. package/dist/{maintenance-0c0g6nym.js → maintenance-wr20z889.js} +10 -9
  78. package/dist/{oauth-refresh-sweep-273a64r2.js → oauth-refresh-sweep-brxmpz1j.js} +10 -10
  79. package/dist/{onboard-tsv9wwhz.js → onboard-88hgdp28.js} +11 -9
  80. package/dist/{openai-completions-mrypq7qp.js → openai-completions-kasahkpq.js} +5 -3
  81. package/dist/{openai-responses-qhrk21ez.js → openai-responses-175qgngv.js} +5 -3
  82. package/dist/{openrouter-images-684fysx9.js → openrouter-images-asqqnbvh.js} +5 -3
  83. package/dist/{otel-impl-wp1mfzd2.js → otel-impl-an7gh3eh.js} +40 -7014
  84. package/dist/{pi-mono-adapter-yz47kk8e.js → pi-mono-adapter-6vmrr3g8.js} +184 -7248
  85. package/dist/{pricing-refresh-jw1yw2fn.js → pricing-refresh-ettrct0b.js} +8 -8
  86. package/dist/{rbac-roles-p53cg5cv.js → rbac-roles-grtmky49.js} +51 -51
  87. package/dist/{rbac-roles-dg964c8p.js → rbac-roles-wdwpg5fc.js} +8 -8
  88. package/dist/{registry-mh12y17v.js → registry-2g6d2p3n.js} +1 -1
  89. package/dist/{render-v2-56vn2rk9.js → render-v2-k7h2sbmp.js} +7 -7
  90. package/dist/{seed-pricing-52xx6z63.js → seed-pricing-gtqxtqzc.js} +7 -7
  91. package/dist/{setup-e8gp79sy.js → setup-3tcfqyz9.js} +23 -21
  92. package/dist/{worker-s17f1g46.js → worker-9tejebcv.js} +35 -34
  93. package/openapi.json +1 -1
  94. package/package.json +7 -5
  95. package/plugin/commands/implement-issue.md +1 -1
  96. package/plugin/commands/start-leader.md +3 -3
  97. package/plugin/commands/work-on-task.md +2 -2
  98. package/plugin/pi-skills/implement-issue/SKILL.md +1 -1
  99. package/plugin/pi-skills/start-leader/SKILL.md +3 -3
  100. package/plugin/pi-skills/work-on-task/SKILL.md +2 -2
  101. package/src/agentmail/handlers.ts +15 -15
  102. package/src/apps/definition.ts +14 -10
  103. package/src/apps/page-validator.ts +18 -14
  104. package/src/apps/row-store.ts +98 -67
  105. package/src/apps/schema-migrate.ts +47 -34
  106. package/src/apps/script-types.ts +2 -2
  107. package/src/apps/store.ts +46 -53
  108. package/src/apps/sync-run-as.ts +2 -2
  109. package/src/apps/sync.ts +39 -31
  110. package/src/apps/user-config.ts +14 -16
  111. package/src/apps/version.ts +17 -16
  112. package/src/artifact-sdk/server.ts +4 -1
  113. package/src/be/asset-key-auth.ts +5 -2
  114. package/src/be/audit-user.ts +7 -7
  115. package/src/be/boot-scrub-logs.ts +36 -39
  116. package/src/be/budget-admission.ts +8 -8
  117. package/src/be/budget-refusal-notify.ts +9 -6
  118. package/src/be/db-client.ts +461 -0
  119. package/src/be/db-queries/mcp-oauth.ts +152 -148
  120. package/src/be/db-queries/oauth.ts +194 -192
  121. package/src/be/db-queries/task-artifacts.ts +12 -10
  122. package/src/be/db-queries/tracker.ts +105 -93
  123. package/src/be/db.ts +3287 -3589
  124. package/src/be/events.ts +80 -114
  125. package/src/be/identity.ts +7 -4
  126. package/src/be/mcp-proxy.ts +5 -5
  127. package/src/be/memory/boot-reembed.ts +11 -15
  128. package/src/be/memory/edges-store.ts +19 -13
  129. package/src/be/memory/graph-expansion.ts +7 -8
  130. package/src/be/memory/index-content.ts +144 -0
  131. package/src/be/memory/link-resolver.ts +47 -43
  132. package/src/be/memory/links-store.ts +27 -29
  133. package/src/be/memory/providers/sqlite-store.ts +251 -269
  134. package/src/be/memory/raters/retrieval.ts +15 -19
  135. package/src/be/memory/raters/run-server-raters.ts +5 -2
  136. package/src/be/memory/raters/store.ts +17 -27
  137. package/src/be/memory/retrieval-store.ts +13 -12
  138. package/src/be/memory/types.ts +19 -15
  139. package/src/be/memory/usefulness-stats.ts +85 -101
  140. package/src/be/migrations/runner.ts +2 -2
  141. package/src/be/multi-runtime.ts +137 -131
  142. package/src/be/oauth-credential-bindings.ts +13 -9
  143. package/src/be/oauth-refresh-sweep.ts +3 -3
  144. package/src/be/pricing-refresh.ts +43 -41
  145. package/src/be/rbac-audit.ts +66 -43
  146. package/src/be/rbac-roles.ts +55 -60
  147. package/src/be/script-connections.ts +249 -262
  148. package/src/be/script-credential-broker.ts +2 -2
  149. package/src/be/scripts/boot-reembed.ts +14 -19
  150. package/src/be/scripts/db.ts +133 -222
  151. package/src/be/scripts/embeddings.ts +42 -44
  152. package/src/be/scripts/retention.ts +49 -36
  153. package/src/be/scripts/run-saved.ts +9 -3
  154. package/src/be/scripts/type-contributors.ts +1 -1
  155. package/src/be/scripts/typecheck.ts +18 -15
  156. package/src/be/seed/agent-fs-provision.ts +52 -47
  157. package/src/be/seed/runner.ts +4 -4
  158. package/src/be/seed/state-db.ts +12 -10
  159. package/src/be/seed-capabilities.ts +6 -3
  160. package/src/be/seed-pricing.ts +2 -1
  161. package/src/be/seed-scripts/catalog/ops-catalog-audit.inline.ts +1 -1
  162. package/src/be/seed-scripts/catalog/ops-catalog-audit.ts +1 -1
  163. package/src/be/seed-scripts/index.ts +3 -3
  164. package/src/be/seed-skills/index.ts +52 -16
  165. package/src/be/skill-sync.ts +22 -20
  166. package/src/be/steering.ts +30 -27
  167. package/src/be/swarm-config-guard.ts +1 -0
  168. package/src/be/unmapped-identities.ts +6 -6
  169. package/src/be/users.ts +130 -138
  170. package/src/commands/onboard/types.ts +7 -1
  171. package/src/commands/onboard.tsx +10 -5
  172. package/src/commands/runner.ts +9 -12
  173. package/src/commands/setup.tsx +27 -17
  174. package/src/fs/agent-fs-provider.ts +83 -10
  175. package/src/fs/provider.ts +15 -1
  176. package/src/github/handlers.ts +57 -52
  177. package/src/gitlab/handlers.ts +36 -33
  178. package/src/heartbeat/heartbeat.ts +138 -130
  179. package/src/hooks/tool-loop-detection.test.ts +49 -0
  180. package/src/hooks/tool-loop-detection.ts +36 -1
  181. package/src/http/active-sessions.ts +9 -9
  182. package/src/http/agents.ts +76 -65
  183. package/src/http/api-keys.ts +22 -8
  184. package/src/http/approval-requests.ts +8 -8
  185. package/src/http/apps.ts +80 -77
  186. package/src/http/assets.ts +36 -27
  187. package/src/http/auth.ts +3 -3
  188. package/src/http/budgets.ts +17 -9
  189. package/src/http/codex-oauth-keep-warm.ts +1 -1
  190. package/src/http/config.ts +19 -19
  191. package/src/http/context.ts +5 -5
  192. package/src/http/core.ts +50 -32
  193. package/src/http/ecosystem.ts +1 -1
  194. package/src/http/events.ts +4 -4
  195. package/src/http/favorite-owner.ts +3 -3
  196. package/src/http/favorites.ts +4 -4
  197. package/src/http/fs.ts +46 -22
  198. package/src/http/inbox-state.ts +2 -2
  199. package/src/http/index.ts +22 -19
  200. package/src/http/integrations.ts +7 -7
  201. package/src/http/kv.ts +32 -32
  202. package/src/http/mcp-bridge.ts +3 -3
  203. package/src/http/mcp-oauth.ts +30 -30
  204. package/src/http/mcp-servers.ts +22 -22
  205. package/src/http/mcp-user.ts +8 -3
  206. package/src/http/mcp.ts +9 -6
  207. package/src/http/memory.ts +60 -160
  208. package/src/http/metrics.ts +22 -20
  209. package/src/http/oauth-callback.ts +16 -12
  210. package/src/http/oauth-locks.ts +2 -2
  211. package/src/http/page-proxy.ts +1 -1
  212. package/src/http/pages-public.ts +6 -6
  213. package/src/http/pages.ts +37 -31
  214. package/src/http/poll.ts +77 -62
  215. package/src/http/pricing.ts +7 -7
  216. package/src/http/prompt-templates.ts +25 -15
  217. package/src/http/repos.ts +5 -5
  218. package/src/http/schedules.ts +34 -28
  219. package/src/http/script-connection-proxy.ts +2 -2
  220. package/src/http/script-connections.ts +141 -120
  221. package/src/http/script-runs.ts +88 -64
  222. package/src/http/scripts.ts +97 -74
  223. package/src/http/session-cost-recompute.ts +20 -14
  224. package/src/http/session-data.ts +15 -15
  225. package/src/http/sessions.ts +9 -7
  226. package/src/http/skills.ts +34 -34
  227. package/src/http/stats.ts +13 -10
  228. package/src/http/status.ts +37 -37
  229. package/src/http/task-templates.ts +1 -1
  230. package/src/http/tasks.ts +114 -101
  231. package/src/http/trackers/jira.ts +10 -10
  232. package/src/http/trackers/linear.ts +10 -8
  233. package/src/http/users.ts +82 -65
  234. package/src/http/utils.ts +3 -3
  235. package/src/http/webhooks.ts +3 -3
  236. package/src/http/workflow-events.ts +1 -1
  237. package/src/http/workflows.ts +107 -129
  238. package/src/http/x.ts +8 -8
  239. package/src/integrations/kapso/config.ts +22 -17
  240. package/src/integrations/kapso/inbound.ts +15 -13
  241. package/src/jira/app.ts +2 -2
  242. package/src/jira/client.ts +4 -4
  243. package/src/jira/metadata.ts +15 -19
  244. package/src/jira/oauth.ts +5 -5
  245. package/src/jira/outbound.ts +2 -2
  246. package/src/jira/sync.ts +35 -35
  247. package/src/jira/webhook-lifecycle.ts +13 -14
  248. package/src/jira/webhook.ts +6 -6
  249. package/src/linear/app.ts +3 -3
  250. package/src/linear/client.ts +2 -2
  251. package/src/linear/oauth.ts +4 -4
  252. package/src/linear/outbound.ts +9 -9
  253. package/src/linear/sync.ts +43 -43
  254. package/src/metrics/version.ts +6 -3
  255. package/src/oauth/ensure-mcp-token.ts +6 -6
  256. package/src/oauth/ensure-token.ts +19 -16
  257. package/src/oauth/keepalive.ts +1 -1
  258. package/src/oauth/wrapper.ts +5 -5
  259. package/src/pages/version.ts +6 -3
  260. package/src/prompts/base-prompt.ts +239 -294
  261. package/src/prompts/defaults.ts +145 -96
  262. package/src/prompts/session-templates.ts +267 -765
  263. package/src/providers/claude-managed-adapter.ts +4 -2
  264. package/src/queue-stall-alarm.ts +14 -14
  265. package/src/scheduler/scheduler.test.ts +14 -14
  266. package/src/scheduler/scheduler.ts +22 -20
  267. package/src/script-workflows/supervisor.ts +34 -22
  268. package/src/scripts-runtime/credential-broker/broker.ts +1 -1
  269. package/src/scripts-runtime/credential-broker/types.ts +1 -1
  270. package/src/scripts-runtime/egress-secrets.ts +1 -1
  271. package/src/scripts-runtime/sdk-allowlist.ts +1 -0
  272. package/src/scripts-runtime/types/stdlib.d.ts +8 -0
  273. package/src/scripts-runtime/types/swarm-sdk.d.ts +8 -0
  274. package/src/server-user.ts +1 -1
  275. package/src/server.ts +4 -2
  276. package/src/slack/ack.ts +3 -3
  277. package/src/slack/actions.ts +6 -6
  278. package/src/slack/app.ts +2 -2
  279. package/src/slack/assistant.ts +7 -7
  280. package/src/slack/commands.ts +2 -2
  281. package/src/slack/enrich.ts +25 -12
  282. package/src/slack/handlers.ts +12 -12
  283. package/src/slack/render-v2.ts +96 -66
  284. package/src/slack/responses.ts +8 -8
  285. package/src/slack/router.ts +9 -6
  286. package/src/slack/steering.ts +9 -6
  287. package/src/slack/thread-buffer.ts +9 -9
  288. package/src/slack/watcher.ts +44 -32
  289. package/src/stdio.ts +16 -14
  290. package/src/tasks/sibling-awareness.ts +13 -13
  291. package/src/tasks/terminal-result-guard.ts +3 -3
  292. package/src/tasks/worker-follow-up.ts +30 -30
  293. package/src/tests/additive-buffer.test.ts +9 -6
  294. package/src/tests/agent-activity.test.ts +35 -35
  295. package/src/tests/agent-fs-provision-seeder.test.ts +46 -44
  296. package/src/tests/agentmail-handlers.test.ts +37 -34
  297. package/src/tests/agents-harness-provider.test.ts +81 -72
  298. package/src/tests/api-key-tracking.test.ts +41 -41
  299. package/src/tests/approval-requests.test.ts +131 -126
  300. package/src/tests/apps-elements.test.ts +73 -68
  301. package/src/tests/apps-rbac.test.ts +18 -13
  302. package/src/tests/apps-script-types.test.ts +11 -7
  303. package/src/tests/apps-spike.test.ts +39 -35
  304. package/src/tests/apps-spike2.test.ts +139 -131
  305. package/src/tests/apps-spike4.test.ts +54 -51
  306. package/src/tests/apps-spike5.test.ts +148 -149
  307. package/src/tests/apps-sync-engine.test.ts +233 -217
  308. package/src/tests/apps-sync.test.ts +14 -14
  309. package/src/tests/apps-user-config.test.ts +82 -58
  310. package/src/tests/artifact-sdk.test.ts +10 -49
  311. package/src/tests/asset-key-api.test.ts +26 -16
  312. package/src/tests/asset-key-invariants.test.ts +129 -102
  313. package/src/tests/asset-key-mcp.test.ts +27 -20
  314. package/src/tests/asset-key-migration.test.ts +15 -15
  315. package/src/tests/asyncdb-guard-races.test.ts +195 -0
  316. package/src/tests/audit-updated-by.test.ts +79 -76
  317. package/src/tests/audit-user.test.ts +72 -55
  318. package/src/tests/base-prompt.test.ts +759 -664
  319. package/src/tests/budget-admission.test.ts +90 -85
  320. package/src/tests/budget-claim-gate.test.ts +111 -62
  321. package/src/tests/budget-refusal-notification.test.ts +94 -66
  322. package/src/tests/budget-user-scope.test.ts +80 -83
  323. package/src/tests/budgets-routes.test.ts +14 -20
  324. package/src/tests/channel-activity.test.ts +37 -36
  325. package/src/tests/claude-managed-adapter.test.ts +86 -69
  326. package/src/tests/codex-oauth-keep-warm.test.ts +1 -1
  327. package/src/tests/codex-steering-hook.test.ts +17 -19
  328. package/src/tests/concurrency.test.ts +68 -68
  329. package/src/tests/config-api-only-keys.test.ts +10 -11
  330. package/src/tests/connection-embedded-auth.test.ts +95 -89
  331. package/src/tests/context-key-db.test.ts +42 -34
  332. package/src/tests/context-snapshot.test.ts +14 -14
  333. package/src/tests/context-versioning.test.ts +72 -60
  334. package/src/tests/core-auth.test.ts +3 -9
  335. package/src/tests/create-page-tool.test.ts +5 -5
  336. package/src/tests/create-task-validation.test.ts +29 -27
  337. package/src/tests/credential-broker.test.ts +10 -10
  338. package/src/tests/credential-status-api.test.ts +22 -17
  339. package/src/tests/credential-status-routing.test.ts +36 -36
  340. package/src/tests/db-capacity.test.ts +67 -67
  341. package/src/tests/db-client-busy-retry.test.ts +195 -0
  342. package/src/tests/db-client.test.ts +406 -0
  343. package/src/tests/db-queries-oauth.test.ts +98 -100
  344. package/src/tests/db-queries-tracker.test.ts +54 -54
  345. package/src/tests/db-query.test.ts +4 -3
  346. package/src/tests/delete-page-tool.test.ts +31 -28
  347. package/src/tests/devin-adapter.test.ts +8 -9
  348. package/src/tests/devin-api.test.ts +7 -9
  349. package/src/tests/ensure-token.test.ts +36 -36
  350. package/src/tests/entrypoint-codex-oauth-seed.test.ts +119 -89
  351. package/src/tests/events-db.test.ts +53 -53
  352. package/src/tests/events-http.test.ts +7 -15
  353. package/src/tests/favorites.test.ts +19 -18
  354. package/src/tests/follow-up-redelivery-guard.test.ts +82 -82
  355. package/src/tests/fs-provider.test.ts +105 -1
  356. package/src/tests/fs-routes.test.ts +56 -27
  357. package/src/tests/generate-default-claude-md.test.ts +152 -6
  358. package/src/tests/generate-identity-templates.test.ts +21 -25
  359. package/src/tests/github-event-filter.test.ts +1 -1
  360. package/src/tests/github-handlers-cancel-config.test.ts +39 -40
  361. package/src/tests/github-handlers-inline-comments.test.ts +19 -19
  362. package/src/tests/github-handlers.test.ts +52 -53
  363. package/src/tests/gitlab-handlers.test.ts +70 -71
  364. package/src/tests/gitlab-vcs-db.test.ts +21 -21
  365. package/src/tests/harness-provider-resolution.test.ts +22 -22
  366. package/src/tests/heartbeat-checklist.test.ts +170 -148
  367. package/src/tests/heartbeat-reroute-decision.test.ts +184 -162
  368. package/src/tests/heartbeat-supersede-resume.test.ts +163 -102
  369. package/src/tests/heartbeat.test.ts +393 -286
  370. package/src/tests/http/context-routes.test.ts +11 -14
  371. package/src/tests/http-api-integration.test.ts +11 -24
  372. package/src/tests/http-users.test.ts +123 -114
  373. package/src/tests/identity-field-budget.test.ts +24 -10
  374. package/src/tests/identity.test.ts +17 -17
  375. package/src/tests/integrations-http.test.ts +13 -14
  376. package/src/tests/jira-metadata.test.ts +44 -44
  377. package/src/tests/jira-oauth.test.ts +7 -7
  378. package/src/tests/jira-outbound-sync.test.ts +19 -19
  379. package/src/tests/jira-sync.test.ts +71 -62
  380. package/src/tests/jira-webhook-lifecycle.test.ts +15 -15
  381. package/src/tests/jira-webhook.test.ts +24 -24
  382. package/src/tests/kapso-inbound.test.ts +33 -33
  383. package/src/tests/kv-http.test.ts +10 -16
  384. package/src/tests/kv-namespace-resolution.test.ts +9 -15
  385. package/src/tests/kv-page-proxy.test.ts +7 -15
  386. package/src/tests/kv-storage.test.ts +141 -91
  387. package/src/tests/kv-tool.test.ts +7 -7
  388. package/src/tests/launch-password-rejection.test.ts +4 -3
  389. package/src/tests/linear-outbound-sync.test.ts +10 -10
  390. package/src/tests/linear-sync-identity.test.ts +72 -72
  391. package/src/tests/linear-webhook.test.ts +51 -45
  392. package/src/tests/list-endpoint-slimming.test.ts +36 -36
  393. package/src/tests/mcp-oauth-dcr-reuse.test.ts +64 -69
  394. package/src/tests/mcp-oauth-ensure-token.test.ts +25 -23
  395. package/src/tests/mcp-oauth-manual-client.test.ts +30 -19
  396. package/src/tests/mcp-oauth-queries.test.ts +161 -154
  397. package/src/tests/mcp-oauth-resolve-secrets.test.ts +35 -36
  398. package/src/tests/mcp-server-resolved-env.test.ts +14 -14
  399. package/src/tests/mcp-server-ssrf.test.ts +4 -4
  400. package/src/tests/mcp-tools-user.test.ts +37 -33
  401. package/src/tests/mcp-tools.test.ts +1 -1
  402. package/src/tests/mcp-user-route.test.ts +28 -41
  403. package/src/tests/memory-e2e.test.ts +117 -108
  404. package/src/tests/memory-edges.test.ts +101 -116
  405. package/src/tests/memory-edit.test.ts +46 -40
  406. package/src/tests/memory-get-tool.test.ts +24 -25
  407. package/src/tests/memory-graph-expansion.test.ts +84 -81
  408. package/src/tests/memory-http-recall-gating.test.ts +23 -17
  409. package/src/tests/memory-hybrid.test.ts +36 -33
  410. package/src/tests/memory-link-resolver.test.ts +69 -70
  411. package/src/tests/memory-rate-endpoint.test.ts +46 -60
  412. package/src/tests/memory-rater-e2e.test.ts +99 -114
  413. package/src/tests/memory-rater-implicit-citation.test.ts +86 -83
  414. package/src/tests/memory-rater-llm.test.ts +70 -86
  415. package/src/tests/memory-rater-store.test.ts +86 -94
  416. package/src/tests/memory-store-tool.test.ts +176 -0
  417. package/src/tests/memory-store.test.ts +128 -127
  418. package/src/tests/memory-usefulness-endpoint.test.ts +63 -57
  419. package/src/tests/memory.test.ts +109 -106
  420. package/src/tests/metrics-http.test.ts +7 -5
  421. package/src/tests/migration-046-budgets.test.ts +106 -130
  422. package/src/tests/migration-063-schema-relax.test.ts +32 -32
  423. package/src/tests/model-control.test.ts +109 -94
  424. package/src/tests/multi-runtime-registration.test.ts +743 -711
  425. package/src/tests/oauth-access-token-tool.test.ts +14 -14
  426. package/src/tests/oauth-callback-flow.test.ts +62 -66
  427. package/src/tests/oauth-credential-bindings.test.ts +57 -64
  428. package/src/tests/oauth-keepalive.test.ts +9 -9
  429. package/src/tests/oauth-presets.test.ts +4 -4
  430. package/src/tests/oauth-refresh-failure.test.ts +38 -34
  431. package/src/tests/oauth-refresh-sweep.test.ts +53 -56
  432. package/src/tests/oauth-wrapper.test.ts +4 -4
  433. package/src/tests/openapi-response-contract.test.ts +42 -30
  434. package/src/tests/otel-session-cost-metrics.test.ts +11 -16
  435. package/src/tests/page-proxy-authed.test.ts +7 -15
  436. package/src/tests/page-proxy.test.ts +7 -15
  437. package/src/tests/pages-actions-endpoint.test.ts +4 -3
  438. package/src/tests/pages-authed-mode.test.ts +4 -3
  439. package/src/tests/pages-http.test.ts +4 -5
  440. package/src/tests/pages-list-endpoint.test.ts +4 -5
  441. package/src/tests/pages-password-mode.test.ts +5 -4
  442. package/src/tests/pages-public-authed-401.test.ts +4 -3
  443. package/src/tests/pages-public-html.test.ts +4 -3
  444. package/src/tests/pages-public-json-redirect.test.ts +4 -3
  445. package/src/tests/pages-storage.test.ts +39 -40
  446. package/src/tests/pages-versioning.test.ts +4 -3
  447. package/src/tests/pagination-metrics.test.ts +49 -39
  448. package/src/tests/pool-affinity.test.ts +144 -124
  449. package/src/tests/pool-session-logs.test.ts +31 -31
  450. package/src/tests/preload.ts +96 -3
  451. package/src/tests/pricing-refresh.test.ts +29 -32
  452. package/src/tests/pricing-routes.test.ts +9 -15
  453. package/src/tests/profile-sync.test.ts +1 -1
  454. package/src/tests/progress-dedup.test.ts +14 -14
  455. package/src/tests/prompt-template-remaining.test.ts +11 -10
  456. package/src/tests/prompt-template-session.test.ts +201 -462
  457. package/src/tests/prompt-templates-db.test.ts +33 -33
  458. package/src/tests/queue-stall-alarm.test.ts +65 -54
  459. package/src/tests/rbac-admission.test.ts +33 -41
  460. package/src/tests/rbac-audit.test.ts +56 -59
  461. package/src/tests/rbac-charact-http.test.ts +19 -23
  462. package/src/tests/rbac-charact-misc-tools.test.ts +32 -27
  463. package/src/tests/rbac-charact-skills.test.ts +29 -24
  464. package/src/tests/rbac-charact-slack.test.ts +6 -6
  465. package/src/tests/rbac-e2e-helpers.ts +4 -18
  466. package/src/tests/rbac-roles.test.ts +112 -112
  467. package/src/tests/register-service-security.test.ts +7 -7
  468. package/src/tests/reload-config.test.ts +55 -52
  469. package/src/tests/rest-api.test.ts +45 -48
  470. package/src/tests/run-bun-tests.test.ts +208 -193
  471. package/src/tests/runner-context-preamble.test.ts +12 -11
  472. package/src/tests/runner-polling-api.test.ts +22 -25
  473. package/src/tests/sandboxed-process.test.ts +28 -11
  474. package/src/tests/schedule-http-triage-tools.test.ts +10 -11
  475. package/src/tests/schedule-target-type.test.ts +65 -59
  476. package/src/tests/scheduled-tasks-api.test.ts +19 -22
  477. package/src/tests/scheduled-tasks.test.ts +121 -105
  478. package/src/tests/scheduler-backoff.test.ts +22 -22
  479. package/src/tests/script-apis-mcp.test.ts +23 -19
  480. package/src/tests/script-connections-http.test.ts +102 -97
  481. package/src/tests/script-connections-mcp.test.ts +69 -54
  482. package/src/tests/script-connections.test.ts +63 -69
  483. package/src/tests/script-runs-http.test.ts +26 -26
  484. package/src/tests/script-workflows-runtime-e2e.test.ts +43 -35
  485. package/src/tests/scripts-boot-reembed.test.ts +30 -34
  486. package/src/tests/scripts-db.test.ts +52 -39
  487. package/src/tests/scripts-embeddings.test.ts +35 -39
  488. package/src/tests/scripts-external-api.test.ts +61 -60
  489. package/src/tests/scripts-http.test.ts +61 -44
  490. package/src/tests/scripts-mcp-e2e.test.ts +16 -11
  491. package/src/tests/scripts-only-gating.test.ts +48 -40
  492. package/src/tests/scripts-retention.test.ts +171 -125
  493. package/src/tests/scripts-runtime-identity.test.ts +49 -42
  494. package/src/tests/scripts-runtime.test.ts +5 -1
  495. package/src/tests/scripts-typecheck.test.ts +53 -54
  496. package/src/tests/sdk-allowlist.test.ts +4 -5
  497. package/src/tests/seed-capabilities.test.ts +18 -18
  498. package/src/tests/seed-scripts.test.ts +9 -9
  499. package/src/tests/seed-skills-bundled-files.test.ts +31 -28
  500. package/src/tests/seed.test.ts +5 -5
  501. package/src/tests/self-improvement.test.ts +75 -91
  502. package/src/tests/send-task-requested-by.test.ts +25 -23
  503. package/src/tests/send-task-slack-routing-guard.test.ts +15 -15
  504. package/src/tests/session-attach.test.ts +55 -56
  505. package/src/tests/session-cost-recompute-unit.test.ts +18 -18
  506. package/src/tests/session-costs-codex-recompute.test.ts +26 -32
  507. package/src/tests/session-costs-golden.test.ts +32 -36
  508. package/src/tests/session-costs-model-key-normalize.test.ts +17 -20
  509. package/src/tests/session-costs-recompute-all-providers.test.ts +19 -24
  510. package/src/tests/session-costs.test.ts +225 -191
  511. package/src/tests/session-logs.test.ts +25 -28
  512. package/src/tests/sessions.test.ts +47 -44
  513. package/src/tests/sibling-awareness-db.test.ts +26 -26
  514. package/src/tests/skill-files-http.test.ts +7 -6
  515. package/src/tests/skill-files.test.ts +41 -42
  516. package/src/tests/skill-get-file-tool.test.ts +2 -2
  517. package/src/tests/skill-sync.test.ts +48 -48
  518. package/src/tests/skill-update-scope.test.ts +16 -16
  519. package/src/tests/skills-signature.test.ts +35 -35
  520. package/src/tests/slack-actions.test.ts +23 -23
  521. package/src/tests/slack-assistant-comention-production.test.ts +9 -7
  522. package/src/tests/slack-assistant.test.ts +22 -22
  523. package/src/tests/slack-bot-filter.test.ts +22 -17
  524. package/src/tests/slack-channel-lifecycle.test.ts +1 -1
  525. package/src/tests/slack-delete.test.ts +2 -2
  526. package/src/tests/slack-identity-resolution.test.ts +66 -67
  527. package/src/tests/slack-metadata-inheritance.test.ts +105 -107
  528. package/src/tests/slack-queue-offline.test.ts +33 -23
  529. package/src/tests/slack-read-boundaries.test.ts +2 -2
  530. package/src/tests/slack-render-v2.test.ts +233 -209
  531. package/src/tests/slack-router-require-mention.test.ts +23 -18
  532. package/src/tests/slack-router.test.ts +31 -23
  533. package/src/tests/slack-steering.test.ts +66 -58
  534. package/src/tests/slack-thread-buffer.test.ts +16 -16
  535. package/src/tests/slack-thread-followups.test.ts +57 -52
  536. package/src/tests/slack-tool-blocks.test.ts +18 -16
  537. package/src/tests/slack-update.test.ts +2 -2
  538. package/src/tests/slack-upload-file.test.ts +5 -5
  539. package/src/tests/slack-watcher.test.ts +180 -172
  540. package/src/tests/spec-base-url.test.ts +3 -3
  541. package/src/tests/status.test.ts +252 -181
  542. package/src/tests/steer-task-tool.test.ts +34 -23
  543. package/src/tests/steering-core.test.ts +105 -106
  544. package/src/tests/steering-enabled.test.ts +32 -23
  545. package/src/tests/steering-promotion.test.ts +42 -38
  546. package/src/tests/steering-transport.test.ts +28 -29
  547. package/src/tests/store-progress-attachments-handler.test.ts +53 -53
  548. package/src/tests/store-progress-attachments.test.ts +60 -60
  549. package/src/tests/store-progress-cost.test.ts +16 -16
  550. package/src/tests/structured-output.test.ts +17 -14
  551. package/src/tests/swarm-config-encryption.test.ts +76 -81
  552. package/src/tests/swarm-config-reserved-keys.test.ts +58 -55
  553. package/src/tests/swarm-config-schema.test.ts +26 -27
  554. package/src/tests/swarm-repos.test.ts +66 -66
  555. package/src/tests/swarm-tool-result-gate.test.ts +70 -70
  556. package/src/tests/system-default-skills.test.ts +25 -27
  557. package/src/tests/task-artifacts.test.ts +87 -80
  558. package/src/tests/task-attachments-schema.test.ts +25 -26
  559. package/src/tests/task-cancellation.test.ts +77 -80
  560. package/src/tests/task-cascade-fail.test.ts +86 -84
  561. package/src/tests/task-completion-idempotency.test.ts +223 -220
  562. package/src/tests/task-lifecycle-telemetry.test.ts +24 -22
  563. package/src/tests/task-pause-resume.test.ts +120 -123
  564. package/src/tests/task-search-filter.test.ts +8 -8
  565. package/src/tests/task-supersede-resume.test.ts +153 -148
  566. package/src/tests/task-swarm-version.test.ts +17 -19
  567. package/src/tests/task-title-route.test.ts +6 -5
  568. package/src/tests/task-tools-ctx.test.ts +15 -15
  569. package/src/tests/task-tools-ownership.test.ts +26 -21
  570. package/src/tests/task-working-dir.test.ts +27 -27
  571. package/src/tests/tasks-requested-by-filter.test.ts +42 -38
  572. package/src/tests/test-net.ts +71 -0
  573. package/src/tests/test-proc.ts +86 -0
  574. package/src/tests/tool-annotations.test.ts +9 -8
  575. package/src/tests/tracker-fold.test.ts +44 -45
  576. package/src/tests/tracker-tools.test.ts +31 -31
  577. package/src/tests/trigger-claiming.test.ts +142 -142
  578. package/src/tests/update-profile-agentid.test.ts +41 -41
  579. package/src/tests/update-profile-api.test.ts +31 -34
  580. package/src/tests/update-profile-auth.test.ts +14 -14
  581. package/src/tests/update-schedule-mcp-tool.test.ts +19 -21
  582. package/src/tests/user-identity.test.ts +231 -221
  583. package/src/tests/user-token-rest-auth.test.ts +32 -32
  584. package/src/tests/user-token-routes.test.ts +21 -36
  585. package/src/tests/vcs-tracking.test.ts +39 -35
  586. package/src/tests/vendored-openapi.test.ts +6 -5
  587. package/src/tests/whoami-route.test.ts +10 -16
  588. package/src/tests/workflow-agent-task.test.ts +6 -6
  589. package/src/tests/workflow-async-v2.test.ts +76 -64
  590. package/src/tests/workflow-convergence.test.ts +35 -32
  591. package/src/tests/workflow-definition-telemetry.test.ts +8 -8
  592. package/src/tests/workflow-e2e.test.ts +19 -18
  593. package/src/tests/workflow-engine-v2.test.ts +94 -80
  594. package/src/tests/workflow-executors.test.ts +53 -37
  595. package/src/tests/workflow-foreach.test.ts +186 -177
  596. package/src/tests/workflow-hitl-routing.test.ts +29 -29
  597. package/src/tests/workflow-http-v2.test.ts +46 -35
  598. package/src/tests/workflow-input-redaction.test.ts +7 -7
  599. package/src/tests/workflow-integration-io.test.ts +44 -41
  600. package/src/tests/workflow-io-schemas.test.ts +28 -25
  601. package/src/tests/workflow-mcp-trigger-schema.test.ts +25 -26
  602. package/src/tests/workflow-registry.test.ts +19 -19
  603. package/src/tests/workflow-retry-v2.test.ts +32 -29
  604. package/src/tests/workflow-retry-validation.test.ts +13 -10
  605. package/src/tests/workflow-schedule-trigger.test.ts +17 -17
  606. package/src/tests/workflow-step-claims.test.ts +152 -0
  607. package/src/tests/workflow-swarm-script.test.ts +58 -54
  608. package/src/tests/workflow-trigger-schema.test.ts +21 -21
  609. package/src/tests/workflow-triggers-v2.test.ts +57 -55
  610. package/src/tests/workflow-validation-port-routing.test.ts +19 -19
  611. package/src/tests/workflow-versions.test.ts +85 -53
  612. package/src/tests/workflow-wait-builtin-events.test.ts +27 -21
  613. package/src/tests/workflow-wait-event.test.ts +60 -54
  614. package/src/tests/workflow-wait-http.test.ts +22 -19
  615. package/src/tests/workflow-wait-recovery.test.ts +28 -25
  616. package/src/tests/workflow-wait-state-queries.test.ts +70 -70
  617. package/src/tests/workflow-wait-time.test.ts +22 -19
  618. package/src/tests/workflow-workspace.test.ts +28 -28
  619. package/src/tools/accept-steer.ts +3 -3
  620. package/src/tools/app-diff.ts +8 -7
  621. package/src/tools/app-get.ts +6 -6
  622. package/src/tools/app-history.ts +4 -4
  623. package/src/tools/app-list.ts +2 -2
  624. package/src/tools/app-patch.ts +7 -7
  625. package/src/tools/app-rollback.ts +1 -1
  626. package/src/tools/app-sync.ts +2 -2
  627. package/src/tools/app-upsert.ts +9 -9
  628. package/src/tools/cancel-task.ts +70 -70
  629. package/src/tools/context-diff.ts +4 -4
  630. package/src/tools/context-history.ts +3 -3
  631. package/src/tools/create-channel.ts +1 -1
  632. package/src/tools/create-metric.ts +8 -8
  633. package/src/tools/create-page.ts +13 -10
  634. package/src/tools/credential-bindings/tool.ts +28 -24
  635. package/src/tools/delete-channel.ts +4 -4
  636. package/src/tools/delete-page.ts +4 -4
  637. package/src/tools/get-metrics.ts +1 -1
  638. package/src/tools/get-swarm.ts +1 -1
  639. package/src/tools/get-task-details.ts +6 -4
  640. package/src/tools/get-tasks.ts +2 -2
  641. package/src/tools/inject-learning.ts +4 -4
  642. package/src/tools/join-swarm.ts +5 -7
  643. package/src/tools/kv/kv-delete.ts +3 -3
  644. package/src/tools/kv/kv-get.ts +2 -2
  645. package/src/tools/kv/kv-incr.ts +3 -3
  646. package/src/tools/kv/kv-list.ts +3 -3
  647. package/src/tools/kv/kv-set.ts +3 -3
  648. package/src/tools/kv/kv-write-auth.ts +3 -3
  649. package/src/tools/kv/resolve-namespace.ts +3 -3
  650. package/src/tools/list-channels.ts +1 -1
  651. package/src/tools/list-services.ts +10 -8
  652. package/src/tools/manage-user.ts +21 -13
  653. package/src/tools/mcp-servers/mcp-server-create.ts +3 -3
  654. package/src/tools/mcp-servers/mcp-server-delete.ts +3 -3
  655. package/src/tools/mcp-servers/mcp-server-get.ts +6 -6
  656. package/src/tools/mcp-servers/mcp-server-install.ts +3 -3
  657. package/src/tools/mcp-servers/mcp-server-list.ts +2 -2
  658. package/src/tools/mcp-servers/mcp-server-uninstall.ts +2 -2
  659. package/src/tools/mcp-servers/mcp-server-update.ts +3 -3
  660. package/src/tools/memory-delete.ts +3 -3
  661. package/src/tools/memory-edit.ts +3 -3
  662. package/src/tools/memory-get.ts +5 -5
  663. package/src/tools/memory-search.ts +15 -11
  664. package/src/tools/memory-store.ts +89 -0
  665. package/src/tools/my-agent-info.ts +1 -1
  666. package/src/tools/oauth-access-token.ts +3 -3
  667. package/src/tools/poll-task.ts +24 -23
  668. package/src/tools/post-message.ts +4 -4
  669. package/src/tools/prompt-templates/delete.ts +2 -2
  670. package/src/tools/prompt-templates/get.ts +2 -2
  671. package/src/tools/prompt-templates/set.ts +15 -10
  672. package/src/tools/read-messages.ts +13 -13
  673. package/src/tools/register-agentmail-inbox.ts +9 -5
  674. package/src/tools/register-kapso-number.ts +7 -7
  675. package/src/tools/register-service.ts +2 -2
  676. package/src/tools/repos/get-repos.ts +1 -1
  677. package/src/tools/repos/update-repo.ts +1 -1
  678. package/src/tools/request-human-input.ts +3 -3
  679. package/src/tools/resolve-user.ts +8 -8
  680. package/src/tools/schedules/create-schedule.ts +8 -7
  681. package/src/tools/schedules/delete-schedule.ts +5 -5
  682. package/src/tools/schedules/list-schedules.ts +2 -2
  683. package/src/tools/schedules/patch-schedule.ts +11 -10
  684. package/src/tools/schedules/run-schedule-now.ts +3 -3
  685. package/src/tools/schedules/update-schedule.ts +11 -10
  686. package/src/tools/script-apis.ts +8 -8
  687. package/src/tools/script-connections/tool.ts +6 -6
  688. package/src/tools/send-task.ts +113 -77
  689. package/src/tools/skills/skill-create.ts +3 -3
  690. package/src/tools/skills/skill-delete.ts +3 -3
  691. package/src/tools/skills/skill-get-file.ts +2 -2
  692. package/src/tools/skills/skill-get.ts +6 -5
  693. package/src/tools/skills/skill-install-remote.ts +2 -2
  694. package/src/tools/skills/skill-install.ts +3 -3
  695. package/src/tools/skills/skill-list.ts +2 -2
  696. package/src/tools/skills/skill-publish.ts +4 -4
  697. package/src/tools/skills/skill-search.ts +1 -1
  698. package/src/tools/skills/skill-sync-remote.ts +5 -5
  699. package/src/tools/skills/skill-uninstall.ts +2 -2
  700. package/src/tools/skills/skill-update.ts +3 -3
  701. package/src/tools/slack-archive-channel.ts +1 -1
  702. package/src/tools/slack-create-channel.ts +1 -1
  703. package/src/tools/slack-delete.ts +1 -1
  704. package/src/tools/slack-download-file.ts +1 -1
  705. package/src/tools/slack-invite-to-channel.ts +1 -1
  706. package/src/tools/slack-list-channels.ts +1 -1
  707. package/src/tools/slack-post.ts +4 -4
  708. package/src/tools/slack-read.ts +3 -3
  709. package/src/tools/slack-reply.ts +7 -7
  710. package/src/tools/slack-start-thread.ts +3 -3
  711. package/src/tools/slack-update.ts +1 -1
  712. package/src/tools/slack-upload-file.ts +6 -4
  713. package/src/tools/steer-task.ts +3 -3
  714. package/src/tools/store-progress.ts +81 -75
  715. package/src/tools/swarm-config/delete-config.ts +4 -4
  716. package/src/tools/swarm-config/get-config.ts +2 -2
  717. package/src/tools/swarm-config/list-config.ts +2 -2
  718. package/src/tools/swarm-config/set-config.ts +2 -2
  719. package/src/tools/task-action.ts +70 -70
  720. package/src/tools/task-dedup.ts +3 -3
  721. package/src/tools/tool-config.ts +5 -4
  722. package/src/tools/tracker/tracker-link-task.ts +1 -1
  723. package/src/tools/tracker/tracker-map-agent.ts +1 -1
  724. package/src/tools/tracker/tracker-status.ts +13 -11
  725. package/src/tools/tracker/tracker-sync-status.ts +1 -1
  726. package/src/tools/tracker/tracker-unlink.ts +1 -1
  727. package/src/tools/unregister-service.ts +3 -3
  728. package/src/tools/update-profile.ts +6 -4
  729. package/src/tools/update-service-status.ts +3 -3
  730. package/src/tools/utils.ts +12 -9
  731. package/src/tools/whatsapp-message.ts +1 -1
  732. package/src/tools/workflows/cancel-workflow-run.ts +1 -1
  733. package/src/tools/workflows/create-workflow.ts +4 -3
  734. package/src/tools/workflows/delete-workflow.ts +1 -1
  735. package/src/tools/workflows/get-workflow-run.ts +5 -3
  736. package/src/tools/workflows/get-workflow.ts +1 -1
  737. package/src/tools/workflows/list-workflow-runs.ts +8 -6
  738. package/src/tools/workflows/list-workflows.ts +2 -2
  739. package/src/tools/workflows/patch-workflow-node.ts +20 -41
  740. package/src/tools/workflows/patch-workflow.ts +31 -45
  741. package/src/tools/workflows/trigger-workflow.ts +5 -4
  742. package/src/tools/workflows/update-workflow.ts +28 -22
  743. package/src/types.ts +2 -6
  744. package/src/utils/request-auth-context.ts +38 -3
  745. package/src/utils/sandboxed-process.ts +16 -1
  746. package/src/workflows/checkpoint.ts +16 -18
  747. package/src/workflows/cooldown.ts +6 -3
  748. package/src/workflows/engine.ts +94 -74
  749. package/src/workflows/executors/agent-task.ts +4 -4
  750. package/src/workflows/executors/foreach.ts +12 -12
  751. package/src/workflows/executors/human-in-the-loop.ts +3 -3
  752. package/src/workflows/executors/notify.ts +1 -1
  753. package/src/workflows/executors/swarm-script.ts +16 -15
  754. package/src/workflows/executors/wait.ts +3 -3
  755. package/src/workflows/foreach-join.ts +5 -5
  756. package/src/workflows/index.ts +3 -3
  757. package/src/workflows/input.ts +6 -4
  758. package/src/workflows/patch-definition.ts +72 -0
  759. package/src/workflows/recovery.ts +45 -45
  760. package/src/workflows/resume.ts +159 -98
  761. package/src/workflows/retry-poller.ts +13 -13
  762. package/src/workflows/task-step-routing.ts +98 -14
  763. package/src/workflows/triggers.ts +10 -10
  764. package/src/workflows/version.ts +59 -5
  765. package/src/workflows/wait-poller.ts +1 -1
  766. package/templates/skills/artifacts/config.json +1 -1
  767. package/templates/skills/code-quality/config.json +14 -0
  768. package/templates/skills/code-quality/content.md +61 -0
  769. package/templates/skills/heartbeat-runbook/config.json +14 -0
  770. package/templates/skills/heartbeat-runbook/content.md +59 -0
  771. package/templates/skills/memory/config.json +14 -0
  772. package/templates/skills/memory/content.md +66 -0
  773. package/templates/skills/pages/content.md +4 -2
  774. package/templates/skills/scheduling/config.json +14 -0
  775. package/templates/skills/scheduling/content.md +62 -0
  776. package/templates/skills/slack-interaction/config.json +14 -0
  777. package/templates/skills/slack-interaction/content.md +50 -0
  778. package/templates/skills/swarm-scripts/SKILL.md +93 -109
  779. package/templates/skills/swarm-scripts/config.json +2 -2
  780. package/templates/skills/swarm-scripts/content.md +92 -108
  781. package/dist/cli-2wv4kj0e.js +0 -1182
  782. package/dist/cli-34w2584r.js +0 -530
  783. package/dist/cli-589599p9.js +0 -269
  784. package/dist/cli-qs9hhsvb.js +0 -7206
  785. package/dist/cli-wrrea8xm.js +0 -176
package/README.md CHANGED
@@ -122,7 +122,7 @@ Check [our templates](https://templates.agent-swarm.dev) for a quick start.
122
122
  ## Highlights
123
123
 
124
124
  - **Lead/worker orchestration in Docker** — isolated dev environments, priority queues, pause/resume across deploys, and API-side alerts when claimable work stops being picked up. [Architecture →](https://docs.agent-swarm.dev/docs/architecture/overview)
125
- - **Compounding memory & persistent identity** — agents remember past sessions and evolve their own persona, expertise, and notes, with ratcheting file budgets and visible recovery when local edits exceed prompt limits. [Memory →](https://docs.agent-swarm.dev/docs/architecture/memory) · [Agents →](https://docs.agent-swarm.dev/docs/architecture/agents)
125
+ - **Compounding memory & persistent identity** — agents explicitly capture reusable learnings with `memory-store`, remember past sessions, and evolve their own persona, expertise, and notes, with ratcheting file budgets and visible recovery when local edits exceed prompt limits. [Memory →](https://docs.agent-swarm.dev/docs/architecture/memory) · [Agents →](https://docs.agent-swarm.dev/docs/architecture/agents)
126
126
  - **Hybrid + graph-linked memory recall** — memory retrieval can blend vector and full-text ranking, expand through linked memories, surface usefulness readouts, and let agents correct an existing memory without losing its ID or history. [Memory →](https://docs.agent-swarm.dev/docs/architecture/memory) · [MCP tools →](https://docs.agent-swarm.dev/docs/reference/mcp-tools#memory-tools)
127
127
  - **Multi-channel inputs** — Slack, GitHub, GitLab, email, WhatsApp, Linear, Jira, and the HTTP API all create tasks. [Integrations](#integrations)
128
128
  - **Slack operations and persistent thread trees** — lead agents can create, populate, and archive channels, while conversations can opt in to one editable task tree with streamed outcome cards and explicit Block Kit messages. [Slack guide →](https://docs.agent-swarm.dev/docs/guides/slack-integration)
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  resolveSlackUserId
3
- } from "./cli-g0j14czv.js";
4
- import"./cli-589599p9.js";
3
+ } from "./cli-crkvptsz.js";
4
+ import"./cli-v21nahej.js";
5
5
  import {
6
6
  createTaskWithSiblingAwareness
7
- } from "./cli-wf86d5t7.js";
7
+ } from "./cli-1gzz6pmf.js";
8
8
  import {
9
9
  buildCancelledBlocks,
10
10
  ensureSlackThreadTree,
@@ -12,7 +12,7 @@ import {
12
12
  getAgentEmoji,
13
13
  getTaskLink,
14
14
  isSlackRenderV2Enabled
15
- } from "./cli-grt6qv91.js";
15
+ } from "./cli-1gvam274.js";
16
16
  import"./cli-qf9kpsve.js";
17
17
  import"./cli-g2p9bd1z.js";
18
18
  import"./cli-5tnr64pm.js";
@@ -24,16 +24,16 @@ import {
24
24
  init_context_key,
25
25
  init_db,
26
26
  slackContextKey
27
- } from "./cli-m07313tr.js";
28
- import"./cli-34w2584r.js";
29
- import"./cli-2wv4kj0e.js";
27
+ } from "./cli-prfghf4h.js";
28
+ import"./cli-d2epf5ae.js";
29
+ import"./cli-87zrjxdb.js";
30
30
  import"./cli-a1rrkrb4.js";
31
31
  import"./cli-qt5bt3vk.js";
32
32
  import"./cli-nanaxrz6.js";
33
- import"./cli-1ybr6vw2.js";
34
- import"./cli-jmvk6et8.js";
33
+ import"./cli-s35981d0.js";
34
+ import"./cli-w4ezqgkj.js";
35
35
  import"./cli-mkq1rk7b.js";
36
- import"./cli-ghexzd2d.js";
36
+ import"./cli-pqv5gvyf.js";
37
37
  import"./cli-qntkxysp.js";
38
38
  import"./cli-497b685t.js";
39
39
  import"./cli-pq2ee5ja.js";
@@ -93,15 +93,15 @@ function registerActionHandlers(app) {
93
93
  const followUpText = view.state.values.follow_up_input?.follow_up_text?.value || "";
94
94
  if (!taskId || !followUpText)
95
95
  return;
96
- const originalTask = getTaskById(taskId);
96
+ const originalTask = await getTaskById(taskId);
97
97
  if (!originalTask || !originalTask.slackChannelId)
98
98
  return;
99
- const lead = getLeadAgent();
99
+ const lead = await getLeadAgent();
100
100
  const requestedByUserId = await resolveSlackUserId(client, body.user.id, {
101
101
  sampleEventType: "view_submission",
102
102
  sampleContext: view.callback_id || "follow_up_submit"
103
103
  });
104
- const followUpTask = createTaskWithSiblingAwareness(followUpText, {
104
+ const followUpTask = await createTaskWithSiblingAwareness(followUpText, {
105
105
  agentId: lead?.id,
106
106
  source: "slack",
107
107
  parentTaskId: taskId,
@@ -140,15 +140,15 @@ function registerActionHandlers(app) {
140
140
  const taskId = action.value;
141
141
  if (!taskId)
142
142
  return;
143
- const task = getTaskById(taskId);
143
+ const task = await getTaskById(taskId);
144
144
  if (!task)
145
145
  return;
146
- const cancelled = cancelTask(taskId, "Cancelled via Slack");
146
+ const cancelled = await cancelTask(taskId, "Cancelled via Slack");
147
147
  if (!cancelled) {
148
148
  return;
149
149
  }
150
150
  if (task.slackChannelId && task.agentId) {
151
- const agent = getAgentById(task.agentId);
151
+ const agent = await getAgentById(task.agentId);
152
152
  const agentName = agent?.name || "Unknown";
153
153
  const blocks = buildCancelledBlocks({ agentName, taskId: task.id });
154
154
  try {
@@ -3,20 +3,20 @@ import {
3
3
  initSlackApp,
4
4
  startSlackApp,
5
5
  stopSlackApp
6
- } from "./cli-grt6qv91.js";
6
+ } from "./cli-1gvam274.js";
7
7
  import"./cli-qf9kpsve.js";
8
8
  import"./cli-g2p9bd1z.js";
9
9
  import"./cli-5tnr64pm.js";
10
- import"./cli-m07313tr.js";
11
- import"./cli-34w2584r.js";
12
- import"./cli-2wv4kj0e.js";
10
+ import"./cli-prfghf4h.js";
11
+ import"./cli-d2epf5ae.js";
12
+ import"./cli-87zrjxdb.js";
13
13
  import"./cli-a1rrkrb4.js";
14
14
  import"./cli-qt5bt3vk.js";
15
15
  import"./cli-nanaxrz6.js";
16
- import"./cli-1ybr6vw2.js";
17
- import"./cli-jmvk6et8.js";
16
+ import"./cli-s35981d0.js";
17
+ import"./cli-w4ezqgkj.js";
18
18
  import"./cli-mkq1rk7b.js";
19
- import"./cli-ghexzd2d.js";
19
+ import"./cli-pqv5gvyf.js";
20
20
  import"./cli-qntkxysp.js";
21
21
  import"./cli-497b685t.js";
22
22
  import"./cli-pq2ee5ja.js";
@@ -3645,7 +3645,7 @@ function createArtifactServer(opts) {
3645
3645
  tunnel = null;
3646
3646
  }
3647
3647
  if (server) {
3648
- server.stop();
3648
+ await server.stop(true);
3649
3649
  server = null;
3650
3650
  }
3651
3651
  }
@@ -2,24 +2,24 @@ import {
2
2
  bufferThreadMessage,
3
3
  getBufferMessageCount,
4
4
  wasEventSeen
5
- } from "./cli-aw8bb6sf.js";
5
+ } from "./cli-z6gdnbjy.js";
6
6
  import {
7
7
  hasOtherUserMention
8
- } from "./cli-6x363v1z.js";
8
+ } from "./cli-y98ry8cz.js";
9
9
  import {
10
10
  resolveSlackUserId,
11
11
  rewriteSlackMentions
12
- } from "./cli-g0j14czv.js";
13
- import"./cli-589599p9.js";
12
+ } from "./cli-crkvptsz.js";
13
+ import"./cli-v21nahej.js";
14
14
  import {
15
15
  createTaskWithSiblingAwareness
16
- } from "./cli-wf86d5t7.js";
16
+ } from "./cli-1gzz6pmf.js";
17
17
  import {
18
18
  ackSlackMessage,
19
19
  ensureSlackThreadTree,
20
20
  isSlackRenderV2Enabled,
21
21
  require_dist
22
- } from "./cli-grt6qv91.js";
22
+ } from "./cli-1gvam274.js";
23
23
  import"./cli-qf9kpsve.js";
24
24
  import"./cli-g2p9bd1z.js";
25
25
  import"./cli-5tnr64pm.js";
@@ -30,22 +30,22 @@ import {
30
30
  init_context_key,
31
31
  init_db,
32
32
  slackContextKey
33
- } from "./cli-m07313tr.js";
34
- import"./cli-34w2584r.js";
33
+ } from "./cli-prfghf4h.js";
34
+ import"./cli-d2epf5ae.js";
35
35
  import {
36
36
  init_resolver,
37
37
  resolveTemplate
38
- } from "./cli-2wv4kj0e.js";
38
+ } from "./cli-87zrjxdb.js";
39
39
  import"./cli-a1rrkrb4.js";
40
40
  import"./cli-qt5bt3vk.js";
41
41
  import {
42
42
  init_env_flag,
43
43
  isEnvFlagEnabled
44
44
  } from "./cli-nanaxrz6.js";
45
- import"./cli-1ybr6vw2.js";
46
- import"./cli-jmvk6et8.js";
45
+ import"./cli-s35981d0.js";
46
+ import"./cli-w4ezqgkj.js";
47
47
  import"./cli-mkq1rk7b.js";
48
- import"./cli-ghexzd2d.js";
48
+ import"./cli-pqv5gvyf.js";
49
49
  import"./cli-qntkxysp.js";
50
50
  import"./cli-497b685t.js";
51
51
  import {
@@ -110,7 +110,7 @@ function createAssistant() {
110
110
  const channelId = message.channel;
111
111
  const messageText = msg.text || "";
112
112
  const userId = msg.user || "";
113
- const renderedMessageText = rewriteSlackMentions(messageText);
113
+ const renderedMessageText = await rewriteSlackMentions(messageText);
114
114
  if (!cachedBotUserId) {
115
115
  try {
116
116
  const authResult = await client.auth.test();
@@ -130,7 +130,7 @@ function createAssistant() {
130
130
  sampleEventType: "assistant_message",
131
131
  sampleContext: messageText
132
132
  }) : undefined;
133
- const workingAgent = getAgentWorkingOnThread(channelId, threadTs);
133
+ const workingAgent = await getAgentWorkingOnThread(channelId, threadTs);
134
134
  if (workingAgent && workingAgent.status !== "offline") {
135
135
  if (isAdditiveSlack()) {
136
136
  bufferThreadMessage(channelId, threadTs, messageText, userId, message.ts);
@@ -139,8 +139,8 @@ function createAssistant() {
139
139
  await safeSetStatus("Queuing follow-up...");
140
140
  return;
141
141
  }
142
- const latestTask = getMostRecentTaskInThread(channelId, threadTs);
143
- const task2 = createTaskWithSiblingAwareness(renderedMessageText, {
142
+ const latestTask = await getMostRecentTaskInThread(channelId, threadTs);
143
+ const task2 = await createTaskWithSiblingAwareness(renderedMessageText, {
144
144
  agentId: workingAgent.id,
145
145
  source: "slack",
146
146
  slackChannelId: channelId,
@@ -166,9 +166,9 @@ function createAssistant() {
166
166
  const channelContext = ctx && typeof ctx === "object" && "channel_id" in ctx && ctx.channel_id ? `
167
167
 
168
168
  [User is viewing channel <#${ctx.channel_id}>]` : "";
169
- const lead = getLeadAgent();
169
+ const lead = await getLeadAgent();
170
170
  if (!lead) {
171
- const task2 = createTaskWithSiblingAwareness(renderedMessageText + channelContext, {
171
+ const task2 = await createTaskWithSiblingAwareness(renderedMessageText + channelContext, {
172
172
  source: "slack",
173
173
  slackChannelId: channelId,
174
174
  slackThreadTs: threadTs,
@@ -186,7 +186,7 @@ function createAssistant() {
186
186
  }
187
187
  return;
188
188
  }
189
- const task = createTaskWithSiblingAwareness(renderedMessageText + channelContext, {
189
+ const task = await createTaskWithSiblingAwareness(renderedMessageText + channelContext, {
190
190
  agentId: lead.id,
191
191
  source: "slack",
192
192
  slackChannelId: channelId,
@@ -1,6 +1,3 @@
1
- import {
2
- AzureOpenAI
3
- } from "./cli-qs9hhsvb.js";
4
1
  import {
5
2
  convertResponsesMessages,
6
3
  convertResponsesTools,
@@ -13,6 +10,10 @@ import"./cli-5m9j2spm.js";
13
10
  import {
14
11
  retryProviderRequest
15
12
  } from "./cli-s8s499xy.js";
13
+ import {
14
+ AzureOpenAI,
15
+ init_openai
16
+ } from "./cli-vsap7a8d.js";
16
17
  import {
17
18
  formatProviderError,
18
19
  normalizeProviderError
@@ -38,6 +39,7 @@ import {
38
39
  import"./cli-pq2ee5ja.js";
39
40
 
40
41
  // node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js
42
+ init_openai();
41
43
  var DEFAULT_AZURE_API_VERSION = "v1";
42
44
  var AZURE_TOOL_CALL_PROVIDERS = new Set(["openai", "openai-codex", "opencode", "azure-openai-responses"]);
43
45
  var OPENAI_RESPONSES_MIN_OUTPUT_TOKENS = 16;
@@ -1,22 +1,23 @@
1
1
  import {
2
2
  embedScript,
3
3
  embeddingProvider
4
- } from "./cli-rh6f3s9n.js";
5
- import"./cli-38taxznr.js";
6
- import"./cli-492e7ap5.js";
4
+ } from "./cli-h9gpdrzg.js";
5
+ import"./cli-10694wk0.js";
6
+ import"./cli-dr5tcz68.js";
7
+ import"./cli-vsap7a8d.js";
7
8
  import {
8
- getDb,
9
+ getDbClient,
9
10
  init_db
10
- } from "./cli-m07313tr.js";
11
- import"./cli-34w2584r.js";
12
- import"./cli-2wv4kj0e.js";
11
+ } from "./cli-prfghf4h.js";
12
+ import"./cli-d2epf5ae.js";
13
+ import"./cli-87zrjxdb.js";
13
14
  import"./cli-a1rrkrb4.js";
14
15
  import"./cli-qt5bt3vk.js";
15
16
  import"./cli-nanaxrz6.js";
16
- import"./cli-1ybr6vw2.js";
17
- import"./cli-jmvk6et8.js";
17
+ import"./cli-s35981d0.js";
18
+ import"./cli-w4ezqgkj.js";
18
19
  import"./cli-mkq1rk7b.js";
19
- import"./cli-ghexzd2d.js";
20
+ import"./cli-pqv5gvyf.js";
20
21
  import"./cli-pq2ee5ja.js";
21
22
 
22
23
  // src/be/scripts/boot-reembed.ts
@@ -31,15 +32,14 @@ function toScriptRecord(row) {
31
32
  };
32
33
  }
33
34
  async function runBootReembedScripts() {
34
- const db = getDb();
35
35
  const provider = embeddingProvider();
36
36
  const expectedBytes = provider.dimensions * Float32Array.BYTES_PER_ELEMENT;
37
- const missing = db.prepare(`SELECT s.* FROM scripts s
38
- LEFT JOIN script_embeddings e ON e.scriptId = s.id
39
- WHERE s.isScratch = 0 AND e.scriptId IS NULL`).all();
40
- const wrongDim = db.prepare(`SELECT s.* FROM scripts s
41
- JOIN script_embeddings e ON e.scriptId = s.id
42
- WHERE s.isScratch = 0 AND length(e.embedding) != ${expectedBytes}`).all();
37
+ const missing = await getDbClient().query(`SELECT s.* FROM scripts s
38
+ LEFT JOIN script_embeddings e ON e.scriptId = s.id
39
+ WHERE s.isScratch = 0 AND e.scriptId IS NULL`);
40
+ const wrongDim = await getDbClient().query(`SELECT s.* FROM scripts s
41
+ JOIN script_embeddings e ON e.scriptId = s.id
42
+ WHERE s.isScratch = 0 AND length(e.embedding) != ${expectedBytes}`);
43
43
  if (missing.length === 0 && wrongDim.length === 0) {
44
44
  return;
45
45
  }
@@ -65,8 +65,8 @@ async function runBootReembedScripts() {
65
65
  console.error(`[boot-reembed-scripts] failed to embed "${row.name}":`, err.message);
66
66
  }
67
67
  }
68
- const afterWrongDim = db.prepare(`SELECT COUNT(*) as count FROM script_embeddings
69
- WHERE length(embedding) != ${expectedBytes}`).get()?.count ?? 0;
68
+ const afterWrongDim = (await getDbClient().get(`SELECT COUNT(*) as count FROM script_embeddings
69
+ WHERE length(embedding) != ${expectedBytes}`))?.count ?? 0;
70
70
  console.log(`[boot-reembed-scripts] complete: embedded=${embedded} failed=${failed} remaining_wrong_dim=${afterWrongDim}`);
71
71
  }
72
72
  export {
@@ -3,21 +3,22 @@ import {
3
3
  getEmbeddingProvider,
4
4
  getMemoryStore,
5
5
  init_constants
6
- } from "./cli-38taxznr.js";
7
- import"./cli-492e7ap5.js";
6
+ } from "./cli-10694wk0.js";
7
+ import"./cli-dr5tcz68.js";
8
+ import"./cli-vsap7a8d.js";
8
9
  import {
9
- getDb,
10
+ getDbClient,
10
11
  init_db
11
- } from "./cli-m07313tr.js";
12
- import"./cli-34w2584r.js";
13
- import"./cli-2wv4kj0e.js";
12
+ } from "./cli-prfghf4h.js";
13
+ import"./cli-d2epf5ae.js";
14
+ import"./cli-87zrjxdb.js";
14
15
  import"./cli-a1rrkrb4.js";
15
16
  import"./cli-qt5bt3vk.js";
16
17
  import"./cli-nanaxrz6.js";
17
- import"./cli-1ybr6vw2.js";
18
- import"./cli-jmvk6et8.js";
18
+ import"./cli-s35981d0.js";
19
+ import"./cli-w4ezqgkj.js";
19
20
  import"./cli-mkq1rk7b.js";
20
- import"./cli-ghexzd2d.js";
21
+ import"./cli-pqv5gvyf.js";
21
22
  import"./cli-pq2ee5ja.js";
22
23
 
23
24
  // src/be/memory/boot-reembed.ts
@@ -26,9 +27,8 @@ init_constants();
26
27
  var VECTOR_BYTES = EMBEDDING_DIMENSIONS * Float32Array.BYTES_PER_ELEMENT;
27
28
  var BATCH_SIZE = 20;
28
29
  async function runBootReembed() {
29
- const db = getDb();
30
- const invalidCount = db.prepare(`SELECT COUNT(*) as count FROM agent_memory
31
- WHERE embedding IS NOT NULL AND length(embedding) != ${VECTOR_BYTES}`).get()?.count ?? 0;
30
+ const invalidCount = (await getDbClient().get(`SELECT COUNT(*) as count FROM agent_memory
31
+ WHERE embedding IS NOT NULL AND length(embedding) != ${VECTOR_BYTES}`))?.count ?? 0;
32
32
  if (invalidCount === 0) {
33
33
  return;
34
34
  }
@@ -40,8 +40,8 @@ async function runBootReembed() {
40
40
  }
41
41
  console.log(`[boot-reembed] starting: ${invalidCount} rows with wrong embedding dimensions`);
42
42
  const store = getMemoryStore();
43
- const rows = db.prepare(`SELECT id, content FROM agent_memory
44
- WHERE embedding IS NOT NULL AND length(embedding) != ${VECTOR_BYTES}`).all();
43
+ const rows = await getDbClient().query(`SELECT id, content FROM agent_memory
44
+ WHERE embedding IS NOT NULL AND length(embedding) != ${VECTOR_BYTES}`);
45
45
  let reembedded = 0;
46
46
  let failed = 0;
47
47
  for (let i = 0;i < rows.length; i += BATCH_SIZE) {
@@ -50,7 +50,7 @@ async function runBootReembed() {
50
50
  const embeddings = await provider.embedBatch(batch.map((m) => m.content));
51
51
  for (let j = 0;j < embeddings.length; j++) {
52
52
  if (embeddings[j]) {
53
- store.updateEmbedding(batch[j].id, embeddings[j], provider.name);
53
+ await store.updateEmbedding(batch[j].id, embeddings[j], provider.name);
54
54
  reembedded++;
55
55
  }
56
56
  }
@@ -59,8 +59,8 @@ async function runBootReembed() {
59
59
  console.error(`[boot-reembed] batch ${Math.floor(i / BATCH_SIZE) + 1} failed:`, err.message);
60
60
  }
61
61
  }
62
- const afterInvalid = db.prepare(`SELECT COUNT(*) as count FROM agent_memory
63
- WHERE embedding IS NOT NULL AND length(embedding) != ${VECTOR_BYTES}`).get()?.count ?? 0;
62
+ const afterInvalid = (await getDbClient().get(`SELECT COUNT(*) as count FROM agent_memory
63
+ WHERE embedding IS NOT NULL AND length(embedding) != ${VECTOR_BYTES}`))?.count ?? 0;
64
64
  console.log(`[boot-reembed] complete: reembedded=${reembedded} failed=${failed} remaining_invalid=${afterInvalid}`);
65
65
  }
66
66
  export {
@@ -1,19 +1,19 @@
1
1
  import {
2
- getDb,
2
+ getDbClient,
3
3
  init_db
4
- } from "./cli-m07313tr.js";
5
- import"./cli-34w2584r.js";
6
- import"./cli-2wv4kj0e.js";
4
+ } from "./cli-prfghf4h.js";
5
+ import"./cli-d2epf5ae.js";
6
+ import"./cli-87zrjxdb.js";
7
7
  import"./cli-a1rrkrb4.js";
8
8
  import"./cli-qt5bt3vk.js";
9
9
  import"./cli-nanaxrz6.js";
10
- import"./cli-1ybr6vw2.js";
11
- import"./cli-jmvk6et8.js";
10
+ import"./cli-s35981d0.js";
11
+ import"./cli-w4ezqgkj.js";
12
12
  import {
13
13
  init_secret_scrubber,
14
14
  scrubSecrets
15
15
  } from "./cli-mkq1rk7b.js";
16
- import"./cli-ghexzd2d.js";
16
+ import"./cli-pqv5gvyf.js";
17
17
  import"./cli-pq2ee5ja.js";
18
18
 
19
19
  // src/be/boot-scrub-logs.ts
@@ -24,64 +24,62 @@ var CURSOR_KEY = "boot-scrub-logs-v2-cursor";
24
24
  var BATCH_SIZE = 200;
25
25
  var yieldTick = () => new Promise((r) => setTimeout(r, 5));
26
26
  async function runBootScrubLogs() {
27
- const db = getDb();
28
- const done = db.prepare("SELECT key FROM seed_state WHERE kind = ? AND key = ?").get("maintenance", SCRUB_KEY);
27
+ const done = await getDbClient().get("SELECT key FROM seed_state WHERE kind = ? AND key = ?", ["maintenance", SCRUB_KEY]);
29
28
  if (done)
30
29
  return;
31
- const savedCursor = db.prepare("SELECT seededHash FROM seed_state WHERE kind = ? AND key = ?").get("maintenance", CURSOR_KEY)?.seededHash ?? "";
30
+ const savedCursor = (await getDbClient().get("SELECT seededHash FROM seed_state WHERE kind = ? AND key = ?", ["maintenance", CURSOR_KEY]))?.seededHash ?? "";
32
31
  const lastProcessedId = savedCursor || "";
33
- const totalRemaining = db.prepare(`SELECT COUNT(*) as count FROM session_logs
32
+ const totalRemaining = (await getDbClient().get(`SELECT COUNT(*) as count FROM session_logs
34
33
  WHERE id > ?
35
34
  AND (content LIKE '%lin!_oauth!_%' ESCAPE '!'
36
35
  OR content LIKE '%lin!_api!_%' ESCAPE '!'
37
36
  OR content LIKE '%npm!_%' ESCAPE '!'
38
- OR content LIKE '%ATATT%')`).get(lastProcessedId)?.count ?? 0;
37
+ OR content LIKE '%ATATT%')`, [lastProcessedId]))?.count ?? 0;
39
38
  if (totalRemaining === 0) {
40
- markDone(db);
39
+ await markDone();
41
40
  return;
42
41
  }
43
42
  console.log(`[boot-scrub-logs] starting: ${totalRemaining} candidate rows remaining` + (lastProcessedId ? ` (resuming from cursor ${lastProcessedId.slice(0, 8)}…)` : ""));
44
- const selectBatch = db.prepare(`SELECT id, content FROM session_logs
45
- WHERE id > ?
46
- AND (content LIKE '%lin!_oauth!_%' ESCAPE '!'
47
- OR content LIKE '%lin!_api!_%' ESCAPE '!'
48
- OR content LIKE '%npm!_%' ESCAPE '!'
49
- OR content LIKE '%ATATT%')
50
- ORDER BY id ASC
51
- LIMIT ${BATCH_SIZE}`);
52
- const update = db.prepare("UPDATE session_logs SET content = ? WHERE id = ?");
53
- const saveCursor = db.prepare(`INSERT INTO seed_state (kind, key, seededHash, seededAt)
43
+ const saveCursorSql = `INSERT INTO seed_state (kind, key, seededHash, seededAt)
54
44
  VALUES ('maintenance', '${CURSOR_KEY}', ?, datetime('now'))
55
- ON CONFLICT (kind, key) DO UPDATE SET seededHash = ?, seededAt = datetime('now')`);
45
+ ON CONFLICT (kind, key) DO UPDATE SET seededHash = ?, seededAt = datetime('now')`;
56
46
  let scrubbed = 0;
57
47
  let scanned = 0;
58
48
  let cursor = lastProcessedId;
59
49
  for (;; ) {
60
- const rows = selectBatch.all(cursor);
50
+ const rows = await getDbClient().query(`SELECT id, content FROM session_logs
51
+ WHERE id > ?
52
+ AND (content LIKE '%lin!_oauth!_%' ESCAPE '!'
53
+ OR content LIKE '%lin!_api!_%' ESCAPE '!'
54
+ OR content LIKE '%npm!_%' ESCAPE '!'
55
+ OR content LIKE '%ATATT%')
56
+ ORDER BY id ASC
57
+ LIMIT ${BATCH_SIZE}`, [cursor]);
61
58
  if (rows.length === 0)
62
59
  break;
63
60
  const batchLastId = rows[rows.length - 1].id;
64
- const tx = db.transaction(() => {
61
+ await getDbClient().transaction(async (tx) => {
65
62
  for (const row of rows) {
66
63
  const cleaned = scrubSecrets(row.content);
67
64
  if (cleaned !== row.content) {
68
- update.run(cleaned, row.id);
65
+ await tx.run("UPDATE session_logs SET content = ? WHERE id = ?", [cleaned, row.id]);
69
66
  scrubbed++;
70
67
  }
71
68
  }
72
- saveCursor.run(batchLastId, batchLastId);
69
+ await tx.run(saveCursorSql, [batchLastId, batchLastId]);
73
70
  });
74
- tx();
75
71
  scanned += rows.length;
76
72
  cursor = batchLastId;
77
73
  await yieldTick();
78
74
  }
79
- markDone(db);
80
- db.run("DELETE FROM seed_state WHERE kind = 'maintenance' AND key = ?", [CURSOR_KEY]);
75
+ await markDone();
76
+ await getDbClient().run("DELETE FROM seed_state WHERE kind = 'maintenance' AND key = ?", [
77
+ CURSOR_KEY
78
+ ]);
81
79
  console.log(`[boot-scrub-logs] complete: scanned=${scanned} scrubbed=${scrubbed}`);
82
80
  }
83
- function markDone(db) {
84
- db.run(`INSERT INTO seed_state (kind, key, seededHash, seededAt)
81
+ async function markDone() {
82
+ await getDbClient().run(`INSERT INTO seed_state (kind, key, seededHash, seededAt)
85
83
  VALUES ('maintenance', ?, 'done', datetime('now'))
86
84
  ON CONFLICT (kind, key) DO UPDATE SET seededHash = 'done', seededAt = datetime('now')`, [SCRUB_KEY]);
87
85
  }
@@ -12,32 +12,32 @@ import {
12
12
  resolveClaudeBinary,
13
13
  resolveClaudeBinaryArgv,
14
14
  resolveClaudeBridgeEnabled
15
- } from "./cli-mp9sg4cg.js";
16
- import"./cli-jxj92gkt.js";
15
+ } from "./cli-8ca5b9j9.js";
16
+ import"./cli-a2brkr6h.js";
17
17
  import"./cli-a3pkfpqs.js";
18
18
  import"./cli-tng3131n.js";
19
19
  import"./cli-zm7njwzd.js";
20
20
  import"./cli-cw70hymf.js";
21
- import"./cli-4bc8vmhm.js";
22
- import"./cli-yv9dttkh.js";
21
+ import"./cli-y37pxs1m.js";
22
+ import"./cli-hp1n6zq3.js";
23
23
  import"./cli-v1mwc5v2.js";
24
- import"./cli-pt43pdp1.js";
24
+ import"./cli-8p37s71j.js";
25
25
  import"./cli-e7d20cty.js";
26
26
  import"./cli-8whqavk2.js";
27
27
  import"./cli-qh4sqfws.js";
28
28
  import"./cli-3dpj7atn.js";
29
29
  import"./cli-f14fvzag.js";
30
- import"./cli-492e7ap5.js";
30
+ import"./cli-dr5tcz68.js";
31
31
  import"./cli-whrvct19.js";
32
- import"./cli-34w2584r.js";
33
- import"./cli-2wv4kj0e.js";
32
+ import"./cli-d2epf5ae.js";
33
+ import"./cli-87zrjxdb.js";
34
34
  import"./cli-a1rrkrb4.js";
35
35
  import"./cli-qt5bt3vk.js";
36
36
  import"./cli-nanaxrz6.js";
37
- import"./cli-1ybr6vw2.js";
38
- import"./cli-jmvk6et8.js";
37
+ import"./cli-s35981d0.js";
38
+ import"./cli-w4ezqgkj.js";
39
39
  import"./cli-mkq1rk7b.js";
40
- import"./cli-ghexzd2d.js";
40
+ import"./cli-pqv5gvyf.js";
41
41
  import"./cli-darcwax3.js";
42
42
  import"./cli-00w4hbam.js";
43
43
  import"./cli-7jcc9y1r.js";
@@ -3,11 +3,11 @@ import {
3
3
  checkClaudeManagedCredentials,
4
4
  composeManagedUserMessage,
5
5
  normalizeRepoUrl
6
- } from "./cli-gtafvdy0.js";
7
- import"./cli-07er7wrs.js";
6
+ } from "./cli-77vf7z36.js";
7
+ import"./cli-hsxj0yar.js";
8
8
  import"./cli-cw70hymf.js";
9
9
  import"./cli-f64gdfxc.js";
10
- import"./cli-yv9dttkh.js";
10
+ import"./cli-hp1n6zq3.js";
11
11
  import"./cli-jepmgn7r.js";
12
12
  import"./cli-mkq1rk7b.js";
13
13
  import"./cli-pq2ee5ja.js";