@desplega.ai/agent-swarm 1.158.0 → 1.160.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 (378) hide show
  1. package/README.md +1 -1
  2. package/dist/{acp-adapter-xaq4n6pc.js → acp-adapter-2mjwcsfh.js} +124 -27
  3. package/dist/{actions-p9hz5yat.js → actions-e43rxskr.js} +35 -30
  4. package/dist/{anthropic-messages-51pz26qe.js → anthropic-messages-5qx80j9k.js} +106 -16
  5. package/dist/{app-g26wdcz6.js → app-mc7xfagn.js} +12 -10
  6. package/dist/{assistant-wydfqkb3.js → assistant-sedkzv3b.js} +42 -31
  7. package/dist/{azure-openai-responses-8gksqtmz.js → azure-openai-responses-nfb21z9a.js} +13 -14
  8. package/dist/{boot-reembed-se8zmdcp.js → boot-reembed-cqz9swn5.js} +13 -12
  9. package/dist/{boot-reembed-g5ckg9yb.js → boot-reembed-m3656j2n.js} +14 -13
  10. package/dist/{boot-scrub-logs-wfxqan61.js → boot-scrub-logs-xbxf5d7w.js} +11 -9
  11. package/dist/boot-seeds-gsetbs5y.js +28 -0
  12. package/dist/{claude-adapter-tv2x4f36.js → claude-adapter-dc6289mc.js} +28 -23
  13. package/dist/{claude-managed-adapter-41b2s7fd.js → claude-managed-adapter-naaw51me.js} +4 -3
  14. package/dist/{claude-managed-setup-60g8aazx.js → claude-managed-setup-eacvchx0.js} +12 -3
  15. package/dist/claude-sdk-session-bqp2xvym.js +29722 -0
  16. package/dist/{cli-987hg0aa.js → cli-0jwe9034.js} +2 -2
  17. package/dist/{cli-vj6h9kc2.js → cli-0m7wct0d.js} +59 -1
  18. package/dist/{cli-c07r9a2m.js → cli-0q3avq3s.js} +12 -11
  19. package/dist/{cli-19jenss3.js → cli-0wgxmwf6.js} +31 -10
  20. package/dist/cli-0x01kwrd.js +491 -0
  21. package/dist/cli-0xqde53b.js +176 -0
  22. package/dist/cli-10nhj6xq.js +8355 -0
  23. package/dist/{cli-tt9k8r35.js → cli-12tszpk9.js} +479 -910
  24. package/dist/{cli-5b6b62tz.js → cli-13hw4z91.js} +1 -1
  25. package/dist/{cli-cqt19wg6.js → cli-1a2j50m0.js} +11 -2
  26. package/dist/{cli-xberxa1r.js → cli-25fcq4b4.js} +2 -2
  27. package/dist/{cli-npssxgaz.js → cli-2pdaysab.js} +52 -2
  28. package/dist/cli-3qhyh31j.js +166 -0
  29. package/dist/cli-447dt1h3.js +3828 -0
  30. package/dist/cli-4derpgyk.js +115 -0
  31. package/dist/{cli-00w2c66p.js → cli-523679eh.js} +13 -2
  32. package/dist/{cli-y95wp3tg.js → cli-58e8yr0d.js} +1 -1
  33. package/dist/{cli-24k806sc.js → cli-5nbmpy8w.js} +3 -3
  34. package/dist/{cli-53sz8gkz.js → cli-6cs6wzxt.js} +1 -1
  35. package/dist/cli-741yb0xx.js +1027 -0
  36. package/dist/cli-74h9hscv.js +69 -0
  37. package/dist/cli-7cxw8b60.js +14910 -0
  38. package/dist/{cli-xhaeg2nc.js → cli-7e398j1h.js} +1 -1
  39. package/dist/cli-7kyk9jr3.js +22 -0
  40. package/dist/cli-89s4ngw3.js +183 -0
  41. package/dist/{cli-9b13ggd1.js → cli-89v6kyq7.js} +1 -0
  42. package/dist/{cli-ftfvggzx.js → cli-9hsgwz4w.js} +1045 -581
  43. package/dist/{cli-rqz8qbw7.js → cli-a8dvhzrt.js} +59 -20
  44. package/dist/{cli-j57qkrpq.js → cli-azhgzetg.js} +395 -56
  45. package/dist/cli-br0qdrnp.js +2150 -0
  46. package/dist/{cli-rj19hc34.js → cli-btfv8y88.js} +1 -1
  47. package/dist/{cli-8qmme6vd.js → cli-c8a36vcc.js} +2 -2
  48. package/dist/cli-cpvsaqsw.js +333 -0
  49. package/dist/cli-d5czme6m.js +17805 -0
  50. package/dist/{cli-h38x0qhg.js → cli-et8m9xsv.js} +4 -3
  51. package/dist/{cli-x24pshtq.js → cli-evvtk35y.js} +6 -6
  52. package/dist/{cli-7s3syk22.js → cli-f8gy6r2r.js} +5 -5
  53. package/dist/{cli-zt1227k1.js → cli-fkqhbg8g.js} +5 -3
  54. package/dist/{cli-9httdpyq.js → cli-g2whhdrf.js} +1 -1
  55. package/dist/cli-gt4hxb8p.js +99 -0
  56. package/dist/{cli-s8eet254.js → cli-jajnsm8q.js} +37184 -53838
  57. package/dist/{cli-7gtvvpbh.js → cli-jayjpjmb.js} +21 -12
  58. package/dist/{cli-68w09sjw.js → cli-jyk0ynw2.js} +27 -89
  59. package/dist/{cli-aehm1rbq.js → cli-jz4w45qt.js} +1152 -61
  60. package/dist/cli-kmcpfwn2.js +333856 -0
  61. package/dist/{cli-4198qc9v.js → cli-ktmyrtpn.js} +19 -3
  62. package/dist/{cli-j55n64b6.js → cli-mfe5btp9.js} +505 -189
  63. package/dist/{cli-q67y4wzm.js → cli-phsaj4xq.js} +24 -2
  64. package/dist/{cli-1hkrch3k.js → cli-pm1rst0h.js} +46 -7
  65. package/dist/{cli-pw9rj5t9.js → cli-pqetb83f.js} +1 -176
  66. package/dist/{cli-ggm92wcn.js → cli-ptr8h7kp.js} +20 -1
  67. package/dist/{cli-s8s499xy.js → cli-qbksc292.js} +3 -2
  68. package/dist/{cli-47m6dkd3.js → cli-qydf22qq.js} +597 -346
  69. package/dist/{cli-3gmcwfyx.js → cli-r1mxd1xh.js} +13 -6
  70. package/dist/cli-rb9m6rpe.js +4980 -0
  71. package/dist/cli-rykfmgwg.js +102 -0
  72. package/dist/{cli-5d10vd2m.js → cli-shkxm1vn.js} +6 -5
  73. package/dist/{cli-eetrvv91.js → cli-t3p77qk1.js} +1 -1
  74. package/dist/cli-tfky2838.js +756 -0
  75. package/dist/{cli-g8djp6qe.js → cli-tmqt7dpj.js} +40 -0
  76. package/dist/{cli-fgqxwrpv.js → cli-tpq83z89.js} +1631 -127
  77. package/dist/cli-trc24wk2.js +143 -0
  78. package/dist/{cli-aky8tctm.js → cli-tzx2ke1v.js} +3 -3
  79. package/dist/cli-v7fn5gms.js +1425 -0
  80. package/dist/{cli-wscdvcqz.js → cli-vctdqs5h.js} +1 -1
  81. package/dist/{cli-cw9zck8j.js → cli-xjcywfsf.js} +8 -4
  82. package/dist/{cli-k0g1sjzm.js → cli-ybgv4kw2.js} +18 -11
  83. package/dist/{cli-rjehvrts.js → cli-ydmcgve1.js} +8 -8
  84. package/dist/{cli-vhjwh6cz.js → cli-ygwm91nt.js} +1 -1
  85. package/dist/{cli-mcnhgnn1.js → cli-ykk5jaax.js} +184 -26
  86. package/dist/{cli-de1396j2.js → cli-ywybs5as.js} +7 -1
  87. package/dist/cli-zpep9q5e.js +491 -0
  88. package/dist/cli.js +41 -32
  89. package/dist/cloudflare-workers-ai-system-one-k6fbxw9d.js +46 -0
  90. package/dist/{codex-adapter-cnm8wk11.js → codex-adapter-nmxcatww.js} +26 -17
  91. package/dist/{codex-hook-9hptmdhj.js → codex-hook-20me6byw.js} +2 -2
  92. package/dist/{codex-login-x3jk4etn.js → codex-login-w6fz4xbz.js} +50 -5
  93. package/dist/{codex-session-runner-gfg547zj.js → codex-session-runner-90aa80ev.js} +24 -17
  94. package/dist/{commands-e3bn0p75.js → commands-8wcq1kn7.js} +11 -9
  95. package/dist/{db-03v9kzr2.js → db-j40kc4se.js} +25 -11
  96. package/dist/{devin-adapter-8vgkwh29.js → devin-adapter-dpsv6hd9.js} +1 -1
  97. package/dist/{dispatcher-nrmg8yht.js → dispatcher-4zqy768d.js} +34 -29
  98. package/dist/{dsh-adapter-k03nfqa6.js → dsh-adapter-mpnzgztj.js} +3 -3
  99. package/dist/{e2b-93x1k0j5.js → e2b-ez07znam.js} +4 -3
  100. package/dist/execute-6e7qeyk4.js +1017 -0
  101. package/dist/{google-generative-ai-bxmv50nc.js → google-generative-ai-k6n5nbpp.js} +6 -5
  102. package/dist/{google-vertex-809af514.js → google-vertex-44xxtcvp.js} +6 -5
  103. package/dist/{handlers-aqcedbyb.js → handlers-kjdce1w5.js} +37 -32
  104. package/dist/{hook-ybvmrmhq.js → hook-czx13n12.js} +19 -15
  105. package/dist/{hook-7vkskkre.js → hook-r2t4bqfg.js} +18 -14
  106. package/dist/{http-2eqa8t24.js → http-3bbb19be.js} +900 -145
  107. package/dist/{index-f6cryxwe.js → index-4a5njnm1.js} +2 -59
  108. package/dist/{index-x71bvq0p.js → index-668me3f0.js} +35 -30
  109. package/dist/{index-c6zsv1bd.js → index-7aj368tw.js} +13 -12
  110. package/dist/{index-1yks3qcr.js → index-fg0dsp6c.js} +34 -29
  111. package/dist/{index-chgdkq36.js → index-kkv84jq9.js} +34 -29
  112. package/dist/{index-a3vn96n8.js → index-zg7vp46x.js} +198 -54
  113. package/dist/{keepalive-vtkf5n99.js → keepalive-yra8dy57.js} +13 -11
  114. package/dist/{lead-h3sp357x.js → lead-va0pad2c.js} +54 -49
  115. package/dist/llama-cpp-classify-tgj35k8d.js +335 -0
  116. package/dist/{maintenance-jzeqtk3q.js → maintenance-hqewtmyg.js} +14 -13
  117. package/dist/{mistral-conversations-zx0kn554.js → mistral-conversations-pc3ntnxt.js} +14 -17
  118. package/dist/{oauth-refresh-sweep-qp3dzmdp.js → oauth-refresh-sweep-7rdt1m9n.js} +12 -10
  119. package/dist/{onboard-tmsp0qbz.js → onboard-j6ms6d0x.js} +6 -5
  120. package/dist/{openai-codex-responses-4vjqzvjp.js → openai-codex-responses-bbancrr0.js} +21 -8
  121. package/dist/{openai-completions-9hjrqbw8.js → openai-completions-jpaj5g2b.js} +9 -12
  122. package/dist/{openai-responses-7b1pn0xt.js → openai-responses-200k1wx4.js} +23 -18
  123. package/dist/{opencode-adapter-x6x2da1z.js → opencode-adapter-89rabkw2.js} +8 -7
  124. package/dist/{openrouter-images-9f9ek4rw.js → openrouter-images-8yx3487g.js} +5 -7
  125. package/dist/{otel-impl-9mz73q65.js → otel-impl-a792rjz0.js} +1 -1
  126. package/dist/{pi-messages-txpjj39q.js → pi-messages-vxdt8v7j.js} +2 -1
  127. package/dist/{pi-mono-adapter-m6dvv0dz.js → pi-mono-adapter-g7qzvr3v.js} +295 -70
  128. package/dist/pricing-refresh-wx0tp7cb.js +39 -0
  129. package/dist/quickjs-r1pq2107.wasm +0 -0
  130. package/dist/{rbac-roles-c9wqz83x.js → rbac-roles-8tzawacv.js} +12 -10
  131. package/dist/{render-v2-gryrh9h8.js → render-v2-mm7zswb8.js} +12 -10
  132. package/dist/runtime-zyssgse0.js +24 -0
  133. package/dist/{setup-q9720bt6.js → setup-8y70ys6t.js} +6 -5
  134. package/dist/typesafe-system-one-2ef30pec.js +27 -0
  135. package/dist/{virtual-modules-3htpgn8x.js → virtual-modules-6nmk7h3n.js} +22 -13
  136. package/dist/{work-objects-b76x7deb.js → work-objects-fg6xkb0n.js} +37 -32
  137. package/dist/{worker-6vrxbv41.js → worker-wmwhxsph.js} +54 -49
  138. package/openapi.json +1314 -91
  139. package/package.json +12 -11
  140. package/src/be/db/agents.ts +20 -0
  141. package/src/be/db/api-keys.ts +70 -0
  142. package/src/be/db/tasks/human-free.ts +442 -0
  143. package/src/be/db/tasks/read.ts +56 -1
  144. package/src/be/db/tasks/write.ts +107 -11
  145. package/src/be/db.ts +274 -188
  146. package/src/be/harness-model-support.ts +182 -0
  147. package/src/be/human-free-drain.ts +67 -0
  148. package/src/be/memory/providers/sqlite-store.ts +51 -15
  149. package/src/be/migrations/182_task_human_free_flag.sql +63 -0
  150. package/src/be/migrations/183_human_free_reclassify_queue.sql +25 -0
  151. package/src/be/migrations/184_model_catalog.sql +120 -0
  152. package/src/be/migrations/185_api_key_auth_failures.sql +6 -0
  153. package/src/be/migrations/186_api_key_seat_mismatch.sql +8 -0
  154. package/src/be/model-catalog-store.ts +644 -0
  155. package/src/be/model-tier-keys.ts +46 -0
  156. package/src/be/model-tier-resolution.ts +534 -0
  157. package/src/be/model-validation.ts +188 -0
  158. package/src/be/models-catalog.ts +61 -7
  159. package/src/be/modelsdev-cache.json +82 -0
  160. package/src/be/modelsdev-cache.ts +2 -0
  161. package/src/be/pricing-refresh.ts +154 -12
  162. package/src/be/scripts/typecheck.ts +15 -0
  163. package/src/be/seed/runner.ts +18 -12
  164. package/src/be/seed/types.ts +1 -0
  165. package/src/be/seed-scripts/catalog/task-failure-audit.ts +61 -9
  166. package/src/be/swarm-config-guard.ts +8 -0
  167. package/src/cli.tsx +10 -0
  168. package/src/commands/claude-managed-setup.ts +3 -1
  169. package/src/commands/codex-login.ts +67 -0
  170. package/src/commands/credential-outcome-report.ts +191 -0
  171. package/src/commands/rate-limit-outcome.ts +34 -4
  172. package/src/commands/runner.ts +357 -186
  173. package/src/commands/seat-mismatch-report.ts +46 -0
  174. package/src/extensions/apply-task-create.ts +27 -1
  175. package/src/extensions/contract-types.generated.ts +1 -1
  176. package/src/heartbeat/heartbeat.ts +79 -17
  177. package/src/heartbeat/templates.ts +2 -2
  178. package/src/http/agents.ts +62 -1
  179. package/src/http/api-keys.ts +140 -2
  180. package/src/http/codex-oauth-keep-warm.ts +3 -5
  181. package/src/http/index.ts +8 -0
  182. package/src/http/memory.ts +12 -5
  183. package/src/http/models-catalog.ts +357 -8
  184. package/src/http/poll.ts +54 -3
  185. package/src/http/schedules.ts +51 -6
  186. package/src/http/script-runs.ts +12 -0
  187. package/src/http/session-data.ts +2 -5
  188. package/src/http/stats.ts +6 -8
  189. package/src/http/status.ts +15 -1
  190. package/src/http/tasks.ts +90 -7
  191. package/src/http/usage-cache.ts +56 -15
  192. package/src/http/workflows.ts +46 -8
  193. package/src/mcp-client/http-client.ts +5 -0
  194. package/src/memory/recall-query.ts +74 -0
  195. package/src/prompts/base-prompt.ts +15 -4
  196. package/src/prompts/session-templates.ts +23 -1
  197. package/src/providers/acp-adapter.ts +1 -0
  198. package/src/providers/claude-adapter.ts +14 -5
  199. package/src/providers/claude-managed-adapter.ts +1 -0
  200. package/src/providers/claude-managed-models.ts +47 -161
  201. package/src/providers/claude-sdk-session.ts +3 -1
  202. package/src/providers/codex-adapter.ts +14 -14
  203. package/src/providers/codex-models.ts +65 -198
  204. package/src/providers/devin-adapter.ts +1 -0
  205. package/src/providers/dsh-adapter.ts +2 -1
  206. package/src/providers/harness-version.ts +83 -7
  207. package/src/providers/opencode-adapter.ts +53 -1
  208. package/src/providers/pi-binary-root/src/extensions/codemode/worker.ts +11 -0
  209. package/src/providers/pi-codemode-runtime.ts +17 -0
  210. package/src/providers/pi-mono-adapter.ts +361 -83
  211. package/src/providers/pi-mono-extension.ts +16 -1
  212. package/src/providers/reasoning-effort.ts +44 -140
  213. package/src/providers/types.ts +8 -0
  214. package/src/rbac/legacy-policy.ts +43 -0
  215. package/src/rbac/permissions.ts +15 -0
  216. package/src/scripts-runtime/sdk-allowlist.ts +4 -0
  217. package/src/scripts-runtime/types/stdlib.d.ts +15 -0
  218. package/src/scripts-runtime/types/swarm-extension.d.ts +3 -0
  219. package/src/scripts-runtime/types/swarm-sdk.d.ts +15 -0
  220. package/src/server.ts +6 -0
  221. package/src/slack/assistant.ts +13 -0
  222. package/src/slack/message-text.ts +56 -2
  223. package/src/slack/render-v2.ts +87 -37
  224. package/src/slack/session-status.ts +541 -0
  225. package/src/slack/thread-buffer.ts +10 -2
  226. package/src/tasks/sibling-awareness.ts +3 -2
  227. package/src/telemetry.ts +5 -4
  228. package/src/templates.d.ts +6 -0
  229. package/src/tests/agents-list-model-display.test.ts +4 -6
  230. package/src/tests/api-key-auth-failure-route.test.ts +142 -0
  231. package/src/tests/api-key-tracking.test.ts +368 -1
  232. package/src/tests/base-prompt.test.ts +43 -2
  233. package/src/tests/claude-adapter.test.ts +68 -0
  234. package/src/tests/claude-managed-adapter.test.ts +12 -18
  235. package/src/tests/codex-adapter.test.ts +2 -1
  236. package/src/tests/codex-auth-failure.test.ts +52 -0
  237. package/src/tests/codex-gpt6-release.test.ts +66 -5
  238. package/src/tests/codex-login.test.ts +116 -0
  239. package/src/tests/context-window.test.ts +7 -5
  240. package/src/tests/credential-exhaustion-policy.test.ts +118 -3
  241. package/src/tests/credential-outcome-report.test.ts +171 -0
  242. package/src/tests/credential-status-api.test.ts +103 -2
  243. package/src/tests/db-extraction-contract.test.ts +1 -0
  244. package/src/tests/db-task-read-contract.test.ts +10 -1
  245. package/src/tests/db-task-write-contract.test.ts +535 -2
  246. package/src/tests/docs-index-footprint.test.js +3 -3
  247. package/src/tests/dokploy-deploy.test.ts +315 -0
  248. package/src/tests/dsh-adapter.test.ts +1 -1
  249. package/src/tests/explicit-model-validation.test.ts +583 -0
  250. package/src/tests/extensions-pre-task.test.ts +73 -0
  251. package/src/tests/fetch-resolved-env.test.ts +46 -0
  252. package/src/tests/hang-watchdog-worker.ts +47 -0
  253. package/src/tests/hang-watchdog.test.ts +45 -0
  254. package/src/tests/hang-watchdog.ts +30 -0
  255. package/src/tests/harness-model-guard.test.ts +123 -0
  256. package/src/tests/harness-model-support.test.ts +374 -0
  257. package/src/tests/harness-version.test.ts +70 -3
  258. package/src/tests/heartbeat-checklist-config.test.ts +71 -0
  259. package/src/tests/heartbeat-checklist.test.ts +4 -2
  260. package/src/tests/heartbeat-orphan-resume.test.ts +48 -0
  261. package/src/tests/http-task-write-ownership.test.ts +172 -0
  262. package/src/tests/human-free-flag.test.ts +279 -0
  263. package/src/tests/human-free-oracle.ts +57 -0
  264. package/src/tests/human-free-reclassify.test.ts +669 -0
  265. package/src/tests/memory-fts-populate.test.ts +139 -0
  266. package/src/tests/memory-http-recall-gating.test.ts +125 -1
  267. package/src/tests/migration-046-budgets.test.ts +3 -3
  268. package/src/tests/model-catalog-migration.test.ts +134 -0
  269. package/src/tests/model-catalog-table.test.ts +249 -0
  270. package/src/tests/model-catalog-write-access.test.ts +387 -0
  271. package/src/tests/model-rate-limit-windows.test.ts +19 -0
  272. package/src/tests/model-tier-resolution.test.ts +611 -0
  273. package/src/tests/models-catalog.test.ts +1 -1
  274. package/src/tests/multi-runtime-enabled-stats.test.ts +65 -1
  275. package/src/tests/opencode-adapter.test.ts +157 -2
  276. package/src/tests/package-publish.test.ts +137 -36
  277. package/src/tests/pi-codemode.test.ts +246 -0
  278. package/src/tests/pi-mono-adapter.test.ts +3 -0
  279. package/src/tests/pi-native-mcp.test.ts +193 -0
  280. package/src/tests/pi-tool-exposure.test.ts +374 -0
  281. package/src/tests/preload.ts +3 -0
  282. package/src/tests/pricing-routes.test.ts +2 -2
  283. package/src/tests/prompt-template-session.test.ts +5 -3
  284. package/src/tests/rate-limit-event.test.ts +65 -0
  285. package/src/tests/rate-limit-outcome.test.ts +90 -0
  286. package/src/tests/rbac-engine.test.ts +77 -3
  287. package/src/tests/reasoning-effort.test.ts +109 -0
  288. package/src/tests/refresh-modelsdev-carryforward.test.ts +5 -5
  289. package/src/tests/runner-key-completion-outcome.test.ts +112 -0
  290. package/src/tests/runner-key-outcome-late-reset.test.ts +224 -0
  291. package/src/tests/runner-registration-retry.test.ts +149 -0
  292. package/src/tests/runtime-model-catalog.test.ts +86 -0
  293. package/src/tests/script-connections.test.ts +9 -0
  294. package/src/tests/seat-mismatch-report.test.ts +85 -0
  295. package/src/tests/seed-scripts.test.ts +138 -0
  296. package/src/tests/seed.test.ts +25 -0
  297. package/src/tests/session-costs.test.ts +14 -11
  298. package/src/tests/slack-message-text.test.ts +101 -0
  299. package/src/tests/slack-render-v2.test.ts +96 -0
  300. package/src/tests/slack-session-status.test.ts +626 -0
  301. package/src/tests/slack-thread-buffer-context.test.ts +93 -0
  302. package/src/tests/status.test.ts +29 -0
  303. package/src/tests/steering-promotion.test.ts +51 -0
  304. package/src/tests/store-progress-ownership.test.ts +136 -0
  305. package/src/tests/subscription-plans.test.ts +28 -0
  306. package/src/tests/task-cascade-fail.test.ts +148 -2
  307. package/src/tests/task-citations.test.ts +3 -2
  308. package/src/tests/tool-annotations.test.ts +1 -1
  309. package/src/tests/usage-cache.test.ts +166 -0
  310. package/src/tests/workflow-agent-task.test.ts +30 -0
  311. package/src/tests/workflow-executors.test.ts +5 -2
  312. package/src/tests/workflow-system-one-decision-review.test.ts +1021 -0
  313. package/src/tests/workflow-system-one-decision-save-warnings.test.ts +365 -0
  314. package/src/tests/workflow-system-one-decision.test.ts +2063 -0
  315. package/src/tests/workflow-triggers-v2.test.ts +320 -0
  316. package/src/tools/model-catalog/index.ts +137 -0
  317. package/src/tools/schedules/create-schedule.ts +17 -2
  318. package/src/tools/schedules/patch-schedule.ts +31 -1
  319. package/src/tools/schedules/update-schedule.ts +31 -1
  320. package/src/tools/send-task.ts +18 -1
  321. package/src/tools/store-progress.ts +49 -4
  322. package/src/tools/task-action.ts +14 -1
  323. package/src/tools/tool-config.ts +3 -1
  324. package/src/tools/workflows/create-workflow.ts +17 -4
  325. package/src/tools/workflows/patch-workflow-node.ts +17 -7
  326. package/src/tools/workflows/patch-workflow.ts +9 -2
  327. package/src/tools/workflows/update-workflow.ts +17 -4
  328. package/src/types.ts +41 -1
  329. package/src/utils/codex-auth-failure.ts +34 -0
  330. package/src/utils/context-window.ts +47 -53
  331. package/src/utils/credentials.ts +72 -30
  332. package/src/utils/error-tracker.ts +80 -0
  333. package/src/utils/harness-cli-version.ts +115 -0
  334. package/src/utils/harness-model-error.ts +33 -0
  335. package/src/utils/model-rate-limit-windows.ts +12 -0
  336. package/src/utils/runtime-model-catalog.ts +152 -0
  337. package/src/utils/spawn-model-guard.ts +43 -0
  338. package/src/utils/subscription-plans.ts +22 -0
  339. package/src/workflows/approval-resolution.ts +39 -0
  340. package/src/workflows/definition.ts +7 -0
  341. package/src/workflows/engine.ts +69 -1
  342. package/src/workflows/executors/agent-task.ts +16 -6
  343. package/src/workflows/executors/base.ts +53 -0
  344. package/src/workflows/executors/human-in-the-loop.ts +8 -8
  345. package/src/workflows/executors/index.ts +1 -0
  346. package/src/workflows/executors/registry.ts +2 -0
  347. package/src/workflows/executors/system-one-decision.ts +1232 -0
  348. package/src/workflows/executors/system-one-providers.ts +301 -0
  349. package/src/workflows/executors/workflow-llm.ts +13 -1
  350. package/src/workflows/model-validation.ts +45 -0
  351. package/src/workflows/patch-definition.ts +5 -0
  352. package/src/workflows/readiness.ts +86 -0
  353. package/src/workflows/recovery.ts +12 -12
  354. package/src/workflows/resume.ts +23 -9
  355. package/src/workflows/triggers.ts +85 -0
  356. package/templates/schedules/daily-blocker-digest/content.md +4 -5
  357. package/templates/skills/agent-browser/SKILL.md +6 -5
  358. package/templates/skills/agent-browser/content.md +6 -5
  359. package/templates/skills/heartbeat-runbook/config.json +1 -1
  360. package/templates/skills/heartbeat-runbook/content.md +2 -2
  361. package/templates/skills/swarm-scripts/SKILL.md +1 -1
  362. package/templates/skills/swarm-scripts/content.md +1 -1
  363. package/templates/skills/workflow-iterate/content.md +82 -1
  364. package/templates/workflows/claude-code-changelog-watch/content.md +2 -0
  365. package/templates/workflows/pr-review-status-sweep/content.md +2 -0
  366. package/dist/boot-seeds-s3q01xj3.js +0 -26
  367. package/dist/claude-sdk-session-t442qz6f.js +0 -39108
  368. package/dist/cli-0xjkj1j7.js +0 -61
  369. package/dist/cli-20cj37vt.js +0 -335561
  370. package/dist/cli-2djtr51b.js +0 -48
  371. package/dist/cli-65hjmev5.js +0 -1141
  372. package/dist/cli-aw1jwp1r.js +0 -14075
  373. package/dist/cli-h967nb6r.js +0 -6603
  374. package/dist/cli-vapyk8sw.js +0 -20
  375. package/dist/cli-ws6rqycm.js +0 -247
  376. package/dist/pricing-refresh-v1cbr9te.js +0 -27
  377. package/src/providers/modelsdev-reasoning.json +0 -6453
  378. package/dist/{index-f24115ge.js → index-2wsdsnmm.js} +3 -3
@@ -37,6 +37,28 @@ function manifest(source: string): string[] {
37
37
  return [...names].sort();
38
38
  }
39
39
 
40
+ // Top-level declarations that carry code, exported or not. Re-exports, imports, types and
41
+ // top-level statements (the configure*Dependencies wiring) are not bodies.
42
+ function topLevelBodies(source: string): string[] {
43
+ const file = ts.createSourceFile("module.ts", source, ts.ScriptTarget.Latest, true);
44
+ const names = new Set<string>();
45
+ for (const node of file.statements) {
46
+ if (ts.isVariableStatement(node)) {
47
+ for (const declaration of node.declarationList.declarations)
48
+ names.add(declaration.name.getText(file));
49
+ } else if (
50
+ ((ts.isFunctionDeclaration(node) && node.body) ||
51
+ ts.isClassDeclaration(node) ||
52
+ ts.isEnumDeclaration(node) ||
53
+ ts.isModuleDeclaration(node)) &&
54
+ node.name
55
+ ) {
56
+ names.add(node.name.getText(file));
57
+ }
58
+ }
59
+ return [...names].sort();
60
+ }
61
+
40
62
  // Complete public facade and selected range manifests captured from merged base 8ac7b4a7.
41
63
  const baseFacade = `type:AgentMailInboxMapping
42
64
  type:ApiKeyStatus
@@ -65,6 +87,7 @@ type:ExistingTrackerContextWorkReason
65
87
  type:InboxSummary
66
88
  type:InsertPricingRowInput
67
89
  type:InsertTaskAttachmentInput
90
+ type:KeyAuthFailureResult
68
91
  type:KeyCostSummary
69
92
  type:KvJsonFieldEquals
70
93
  type:McpServerFilters
@@ -233,6 +256,7 @@ value:getAgentMailInboxMapping
233
256
  value:getAgentMailInboxMappingsByAgent
234
257
  value:getAgentMcpServers
235
258
  value:getAgentSkills
259
+ value:getAgentStatusCounts
236
260
  value:getAgentWithTasks
237
261
  value:getAgentWorkingOnThread
238
262
  value:getAllAgentMailInboxMappings
@@ -387,6 +411,7 @@ value:getStepCountForNode
387
411
  value:getStuckApprovalRuns
388
412
  value:getStuckWaitRuns
389
413
  value:getStuckWorkflowRuns
414
+ value:getSupersededTasksWithUnsettledDependents
390
415
  value:getSupersededTasksWithoutResume
391
416
  value:getSwarmConfigById
392
417
  value:getSwarmConfigLookupById
@@ -410,7 +435,6 @@ value:getUnassignedTaskIdsForAgent
410
435
  value:getUnassignedTasksCount
411
436
  value:getUnreadInboxMessages
412
437
  value:getUnreadMessages
413
- value:getUsageDataVersion
414
438
  value:getUserById
415
439
  value:getWaitStateById
416
440
  value:getWaitStateByStepId
@@ -443,6 +467,7 @@ value:isExtensionAgent
443
467
  value:isPendingSlackMessage
444
468
  value:isPoolAffinityEnforcementEnabled
445
469
  value:isSettledSlackMessage
470
+ value:isSlackThreadAwaitingHuman
446
471
  value:isSqliteVecAvailable
447
472
  value:kvPrefixUpperBound
448
473
  value:listAgentsWithCredStatusByProvider
@@ -464,6 +489,7 @@ value:listScriptRunJournalSteps
464
489
  value:listScriptRuns
465
490
  value:listSkillFileManifest
466
491
  value:listSkills
492
+ value:listSlackThreadsAwaitingHuman
467
493
  value:listTaskTemplates
468
494
  value:listUserFavorites
469
495
  value:listWorkflowRuns
@@ -497,7 +523,9 @@ value:promoteDraftTask
497
523
  value:reassociateSessionLogs
498
524
  value:recordBudgetRefusalNotification
499
525
  value:recordInlineScriptRun
526
+ value:recordKeyAuthFailure
500
527
  value:recordKeyRateLimitWindows
528
+ value:recordKeySeatMismatch
501
529
  value:recordKeyUsage
502
530
  value:recordSlackMessage
503
531
  value:recordTaskPullRequestAttachments
@@ -530,6 +558,7 @@ value:setBudgetRefusalFollowUpTaskId
530
558
  value:setFavorite
531
559
  value:setSlackMessageTracking
532
560
  value:setUserFavorite
561
+ value:settleSupersededTaskDependents
533
562
  value:shouldBlockPolling
534
563
  value:startTask
535
564
  value:supersedeTask
@@ -597,6 +626,7 @@ value:overwriteTerminalTaskResultText
597
626
  value:pauseTask
598
627
  value:resetOrphanedInProgressTasksForAgent
599
628
  value:resumeTask
629
+ value:settleSupersededTaskDependents
600
630
  value:startTask
601
631
  value:supersedeTask
602
632
  value:updateTaskClaudeSessionId
@@ -604,6 +634,498 @@ value:updateTaskProgress
604
634
  value:updateTaskTitle`.split("\n");
605
635
  const internal = ["value:configureTaskWriteDependencies"];
606
636
 
637
+ // Top-level bodies in src/be/db.ts, frozen at main 7e6b97bf. The list may only shrink: delete an
638
+ // entry when its code moves to src/be/db/<domain>/. Do not add to it; add a domain module instead.
639
+ const frozenFacadeBodies = `BINARY_SKILL_FILE_PLACEHOLDER
640
+ BUDGETED_IDENTITY_FIELDS
641
+ ELIGIBILITY_SCAN_BATCH_SIZE
642
+ ELIGIBILITY_SCAN_CAP
643
+ GENERATED_PULL_REQUEST_DESCRIPTION
644
+ GENERATED_PULL_REQUEST_INTENT
645
+ GENERATED_PULL_REQUEST_PROVIDER_ID
646
+ GENERATED_PULL_REQUEST_SOURCE
647
+ HUMAN_FREE_SQL
648
+ KvTypeCollisionError
649
+ PENDING_SLACK_MESSAGE_TS_PREFIX
650
+ RESERVED_CONFIG_PLACEHOLDER
651
+ ROUTING_HOLDER_SQL
652
+ SCHEDULE_TEMPLATE_PREVIEW_LENGTH
653
+ SKILL_FILE_LIMITS
654
+ SKILL_SLIM_COLUMNS
655
+ STEERING_MESSAGE_SELECT
656
+ UNATTRIBUTED_USER_ID
657
+ VERSIONABLE_FIELDS
658
+ WEEK_SECONDS
659
+ WORKFLOW_RUN_SUMMARY_COLUMNS
660
+ abandonSlackOutcomeDelivery
661
+ acceptTask
662
+ assertSkillFileLimits
663
+ assetKeyPrefixPattern
664
+ assetSummaryQueries
665
+ autoEncryptLegacyPlaintextSecrets
666
+ bindSlackMessageTimestamp
667
+ bumpSkillVersion
668
+ byteSize
669
+ cancelApprovalRequestById
670
+ cancelPendingApprovalRequestsForRun
671
+ cancelPendingSteeringForTask
672
+ captureRoutingDecisionSnapshot
673
+ cascadeFailDependents
674
+ checkDependencies
675
+ checkoutPromptTemplate
676
+ claimApprovalCancellationNotification
677
+ claimInboxMessages
678
+ claimKv
679
+ claimMentions
680
+ claimOfferedTask
681
+ claimTask
682
+ cleanupAgentSessions
683
+ cleanupStaleSessions
684
+ clearKeyRateLimit
685
+ completeApprovalCancellationNotificationClaim
686
+ countActiveScriptRuns
687
+ countAllMetrics
688
+ countAllPages
689
+ countKv
690
+ countMetricsByAgent
691
+ countPagesByAgent
692
+ countScriptRunJournalAgentTaskSteps
693
+ countScriptRunJournalSteps
694
+ countScriptRuns
695
+ countSessions
696
+ countWorkflowRuns
697
+ createAgentMailInboxMapping
698
+ createAppVersion
699
+ createApprovalRequest
700
+ createChannel
701
+ createContextSnapshot
702
+ createInboxMessage
703
+ createLogEntry
704
+ createMcpServer
705
+ createMetric
706
+ createMetricVersion
707
+ createPage
708
+ createPageVersion
709
+ createScheduledTask
710
+ createScriptRun
711
+ createService
712
+ createSessionCost
713
+ createSessionLogs
714
+ createSkill
715
+ createSteeringMessage
716
+ createSwarmRepo
717
+ createTaskExtended
718
+ createUser
719
+ createWaitState
720
+ createWorkflow
721
+ createWorkflowRun
722
+ createWorkflowRunStep
723
+ createWorkflowVersion
724
+ credentialKey
725
+ currentAssetKey
726
+ decodeKvRow
727
+ defaultProviderId
728
+ defaultProviderKey
729
+ deleteActiveSession
730
+ deleteActiveSessionById
731
+ deleteAgentMailInboxMapping
732
+ deleteBudget
733
+ deleteChannel
734
+ deleteKv
735
+ deleteMcpServer
736
+ deleteMetric
737
+ deletePage
738
+ deletePricingRow
739
+ deletePromptTemplate
740
+ deleteScheduledTask
741
+ deleteService
742
+ deleteServicesByAgentId
743
+ deleteSkill
744
+ deleteSkillFile
745
+ deleteSlackMessageRecord
746
+ deleteSwarmConfig
747
+ deleteSwarmConfigByKey
748
+ deleteSwarmRepo
749
+ deleteTaskAttachment
750
+ deleteUser
751
+ deleteWorkflow
752
+ deleteWorkflowRows
753
+ detachTaskFromWorkflowRunStep
754
+ emitBuiltInIntegrationConnectedOnce
755
+ emitMcpServerConnectedTelemetry
756
+ emitTaskLifecycleTelemetryAfterCommit
757
+ emitWorkflowTerminalTelemetry
758
+ encodeKvValue
759
+ ensureSlackDelegationActivation
760
+ ensureSlackRenderV2Activation
761
+ failPendingResumeIfUnclaimed
762
+ findLatestRoutingCandidate
763
+ findRecentSimilarTasks
764
+ findTaskByAgentMailThread
765
+ getActivePricingRow
766
+ getActiveSessionForTask
767
+ getActiveSessions
768
+ getAgentMailInboxMapping
769
+ getAgentMailInboxMappingsByAgent
770
+ getAgentMcpServers
771
+ getAgentSkills
772
+ getAgentWithTasks
773
+ getAllAgentMailInboxMappings
774
+ getAllAgentsWithTasks
775
+ getAllChannelActivityCursors
776
+ getAllChannels
777
+ getAllLogs
778
+ getAllPricingRows
779
+ getAllServices
780
+ getAllSessionCosts
781
+ getAllUsers
782
+ getAppVersion
783
+ getAppVersions
784
+ getApprovalRequestById
785
+ getApprovalRequestByStepId
786
+ getAssetKeyMapping
787
+ getAssetKeyMappingByProvider
788
+ getAttributionByPerson
789
+ getAvailableKeyIndices
790
+ getBudget
791
+ getBudgetRefusalNotification
792
+ getBudgets
793
+ getChannelActivityCursor
794
+ getChannelById
795
+ getChannelByName
796
+ getChannelMessages
797
+ getCompletedStepNodeIds
798
+ getConcurrentContext
799
+ getContextSnapshotsBySessionId
800
+ getContextSnapshotsByTaskId
801
+ getContextSummaryByTaskId
802
+ getCredentialLabels
803
+ getCurrentStepForNode
804
+ getDailySpendForAgent
805
+ getDailySpendForUser
806
+ getDailySpendGlobal
807
+ getDashboardCostSummary
808
+ getDependentTasks
809
+ getDueScheduledTasks
810
+ getDueWaitStates
811
+ getExpiredPendingApprovals
812
+ getFavoriteItemIdSet
813
+ getIdleWorkersWithCapacity
814
+ getInboxMessageById
815
+ getInboxSummary
816
+ getInjectableGlobalConfigs
817
+ getInstanceActivity
818
+ getKeyCostSummary
819
+ getKeyStatuses
820
+ getKv
821
+ getLastReadAt
822
+ getLastRunStart
823
+ getLastSuccessfulRun
824
+ getLatestPageBySlug
825
+ getLatestStepForNode
826
+ getLiveAgentCounts
827
+ getLogsByAgentId
828
+ getLogsByEventType
829
+ getLogsByTaskId
830
+ getLogsByTaskIdAndEventType
831
+ getLogsByTaskIdChronological
832
+ getMcpServerById
833
+ getMcpServerByName
834
+ getMentionsForAgent
835
+ getMessageById
836
+ getMetric
837
+ getMetricBySlug
838
+ getMetricVersion
839
+ getMetricVersions
840
+ getOfferedTasksForAgent
841
+ getPage
842
+ getPageBySlug
843
+ getPageVersion
844
+ getPageVersions
845
+ getPendingEventWaitNames
846
+ getPendingSteeringForAgent
847
+ getPendingSteeringForTask
848
+ getPendingWaitsByEvent
849
+ getPricingRows
850
+ getPromptTemplateById
851
+ getPromptTemplateHistory
852
+ getPromptTemplates
853
+ getReadyAgentCounts
854
+ getRecentBudgetRefusalNotifications
855
+ getRecentCompletedCount
856
+ getRecentFailedCount
857
+ getRecentFailedTasks
858
+ getResolvableDeferralOutcomes
859
+ getResolvedConfig
860
+ getRetryableSteps
861
+ getRootTaskChain
862
+ getRunningScriptRuns
863
+ getScheduledTaskById
864
+ getScheduledTaskByName
865
+ getScheduledTasks
866
+ getScriptRun
867
+ getScriptRunByIdempotencyKey
868
+ getScriptRunJournalStep
869
+ getServiceByAgentAndName
870
+ getServiceById
871
+ getServicesByAgentId
872
+ getSessionCostSummary
873
+ getSessionCostsByAgentId
874
+ getSessionCostsByTaskId
875
+ getSessionCostsFiltered
876
+ getSessionLogsBySession
877
+ getSessionLogsByTaskId
878
+ getSkillById
879
+ getSkillByName
880
+ getSkillFile
881
+ getSkillFiles
882
+ getSlackDelegationActivatedAt
883
+ getSlackMessageByChannelTs
884
+ getSlackOutcomeMessage
885
+ getSlackRenderV2ActivatedAt
886
+ getSlackTasksInThread
887
+ getSlackTreeMessage
888
+ getSlackTreeMessageByThread
889
+ getSlackTreeMessages
890
+ getStaleApprovalRequests
891
+ getStalePinnedResumes
892
+ getStaleUnassignedAffinityTasks
893
+ getStalledInProgressTasks
894
+ getSteeringMessageById
895
+ getSteeringMessagesForTask
896
+ getStepByIdempotencyKey
897
+ getStepCountForNode
898
+ getStuckApprovalRuns
899
+ getStuckWaitRuns
900
+ getStuckWorkflowRuns
901
+ getSwarmConfigById
902
+ getSwarmConfigLookupById
903
+ getSwarmConfigs
904
+ getSwarmMetrics
905
+ getSwarmRepoById
906
+ getSwarmRepoByName
907
+ getSwarmRepoByUrl
908
+ getSwarmRepos
909
+ getSystemDefaultSkills
910
+ getTaskAttachments
911
+ getTaskByWorkflowRunStepId
912
+ getUnassignedPoolTasks
913
+ getUnassignedTaskIds
914
+ getUnassignedTaskIdsForAgent
915
+ getUnassignedTasksCount
916
+ getUnreadInboxMessages
917
+ getUnreadMessages
918
+ getUserById
919
+ getWaitStateById
920
+ getWaitStateByStepId
921
+ getWorkflow
922
+ getWorkflowRun
923
+ getWorkflowRunStep
924
+ getWorkflowRunStepsByRunId
925
+ getWorkflowVersion
926
+ getWorkflowVersions
927
+ getWorkflowsByScheduleId
928
+ hasBudgetRefusalNotificationToday
929
+ hasFirstCompletedTask
930
+ hasPendingSteering
931
+ heartbeatActiveSession
932
+ incrKv
933
+ incrementPageViewCount
934
+ insertActiveSession
935
+ insertAssetKeyHistory
936
+ insertPricingRow
937
+ insertTaskAttachment
938
+ insertTaskAttachmentRow
939
+ installMcpServer
940
+ installSkill
941
+ installSystemDefaultSkillsForAgent
942
+ isPendingSlackMessage
943
+ isSettledSlackMessage
944
+ isSlackThreadAwaitingHuman
945
+ kvJsonFieldConditions
946
+ kvPrefixCondition
947
+ kvPrefixUpperBound
948
+ listAllMetrics
949
+ listAllPages
950
+ listApprovalRequests
951
+ listAssetSummaries
952
+ listCancelledApprovalRequestsForRun
953
+ listCancelledApprovalRequestsForStep
954
+ listFavorites
955
+ listInboxState
956
+ listKv
957
+ listMcpServers
958
+ listMetricsByAgent
959
+ listPagesByAgent
960
+ listRecentSessions
961
+ listScriptRunJournalSteps
962
+ listScriptRuns
963
+ listSkillFileManifest
964
+ listSkills
965
+ listSlackThreadsAwaitingHuman
966
+ listTaskTemplates
967
+ listUserFavorites
968
+ listWorkflowRuns
969
+ listWorkflowRunsPage
970
+ listWorkflows
971
+ literalPrefixPattern
972
+ logRoutingDecisionFailure
973
+ markInboxMessageDelegated
974
+ markInboxMessageRead
975
+ markInboxMessageResponded
976
+ markKeyRateLimited
977
+ markSlackDeferralResolved
978
+ markSlackTreeRendered
979
+ markSteeringDelivered
980
+ markSteeringHandled
981
+ markSteeringPromoted
982
+ markTaskSlackReplySent
983
+ maskSecrets
984
+ mergeRateLimitWindowTelemetry
985
+ moveAssetKey
986
+ moveTaskFromBacklog
987
+ moveTaskToBacklog
988
+ normalizeSkillFileInput
989
+ normalizeSkillFilePath
990
+ noteSlackOutcomeDeliveryFailure
991
+ parseAttachmentCapabilities
992
+ parseJsonColumn
993
+ parseRateLimitWindowsJson
994
+ postMessage
995
+ previewText
996
+ promoteAbandonedDraftTasks
997
+ promoteDraftTask
998
+ pullRequestKey
999
+ quoteSqlIdentifier
1000
+ reassociateSessionLogs
1001
+ reconcileTaskPullRequestAttachments
1002
+ recordBudgetRefusalNotification
1003
+ recordInlineScriptRun
1004
+ recordKeyAuthFailure
1005
+ recordKeyRateLimitWindows
1006
+ recordKeyUsage
1007
+ recordSlackMessage
1008
+ recordTaskPullRequestAttachments
1009
+ refreshDraftTaskLease
1010
+ refreshEstimatedClaudePlan
1011
+ rejectTask
1012
+ releaseApprovalCancellationNotificationClaim
1013
+ releaseMentionProcessing
1014
+ releaseStaleMentionProcessing
1015
+ releaseStaleOfferedTasksForOfflineAgents
1016
+ releaseStaleProcessingInbox
1017
+ releaseStaleReviewingTasks
1018
+ releaseTask
1019
+ replaceTaskAttachment
1020
+ reserveSlackMessage
1021
+ resetPromptTemplateToDefault
1022
+ resolveApprovalRequest
1023
+ resolvePromptTemplate
1024
+ resolveWaitState
1025
+ rowToAgentLog
1026
+ rowToAgentMcpServer
1027
+ rowToAgentSkill
1028
+ rowToApiKeyStatus
1029
+ rowToAppVersion
1030
+ rowToApprovalRequest
1031
+ rowToAssetKeyMapping
1032
+ rowToBudget
1033
+ rowToBudgetRefusalNotification
1034
+ rowToChannel
1035
+ rowToChannelActivityCursor
1036
+ rowToChannelMessage
1037
+ rowToContextSnapshot
1038
+ rowToInboxItemState
1039
+ rowToInboxMessage
1040
+ rowToMcpServer
1041
+ rowToMcpServerWithInstall
1042
+ rowToMetric
1043
+ rowToMetricSummary
1044
+ rowToMetricVersion
1045
+ rowToPage
1046
+ rowToPageSummary
1047
+ rowToPageVersion
1048
+ rowToPricingRow
1049
+ rowToPromptTemplate
1050
+ rowToPromptTemplateHistory
1051
+ rowToScheduledTask
1052
+ rowToScheduledTaskSummary
1053
+ rowToScriptRun
1054
+ rowToScriptRunJournalEntry
1055
+ rowToScriptRunListItem
1056
+ rowToService
1057
+ rowToSessionCost
1058
+ rowToSessionLog
1059
+ rowToSkill
1060
+ rowToSkillFile
1061
+ rowToSkillWithInstall
1062
+ rowToSlackMessage
1063
+ rowToSteeringMessage
1064
+ rowToSwarmConfig
1065
+ rowToSwarmRepo
1066
+ rowToTaskAttachment
1067
+ rowToTaskTemplate
1068
+ rowToUser
1069
+ rowToUserFavorite
1070
+ rowToWaitState
1071
+ rowToWorkflow
1072
+ rowToWorkflowRun
1073
+ rowToWorkflowRunStep
1074
+ rowToWorkflowSummary
1075
+ rowToWorkflowVersion
1076
+ scriptRunUpdateSets
1077
+ searchSkills
1078
+ setApiKeyName
1079
+ setApiKeyPlan
1080
+ setBudgetRefusalFollowUpTaskId
1081
+ setFavorite
1082
+ setSlackMessageTracking
1083
+ setUserFavorite
1084
+ stringifyAttachmentCapabilities
1085
+ sweepExpiredKv
1086
+ sweepExpiredKvPrefix
1087
+ taskContextForTelemetry
1088
+ toggleAgentSkill
1089
+ uninstallMcpServer
1090
+ uninstallSkill
1091
+ updateActiveSessionProviderSessionId
1092
+ updateAgentName
1093
+ updateAgentProfile
1094
+ updateApprovalCancellationNotificationClaim
1095
+ updateApprovalRequestNotifications
1096
+ updateMcpServer
1097
+ updateMetric
1098
+ updatePage
1099
+ updateReadState
1100
+ updateScheduledTask
1101
+ updateScriptRun
1102
+ updateScriptRunGuarded
1103
+ updateScriptRunIfNotTerminal
1104
+ updateScriptRunIfRunning
1105
+ updateServiceStatus
1106
+ updateSkill
1107
+ updateSlackMessageRecord
1108
+ updateSwarmRepo
1109
+ updateTaskVcs
1110
+ updateUser
1111
+ updateWorkflow
1112
+ updateWorkflowRun
1113
+ updateWorkflowRunStep
1114
+ upsertAssetKeyMapping
1115
+ upsertBudget
1116
+ upsertChannelActivityCursor
1117
+ upsertInboxState
1118
+ upsertKv
1119
+ upsertPromptTemplate
1120
+ upsertScriptRunJournalStep
1121
+ upsertService
1122
+ upsertSkillFile
1123
+ upsertSkillFileUnchecked
1124
+ upsertSkillFiles
1125
+ upsertSwarmConfig
1126
+ withFavoriteFlags
1127
+ writeEnvFile`.split("\n");
1128
+
607
1129
  test("complete facade, selected public bindings and internal-only manifest remain exact", async () => {
608
1130
  const facade = await Bun.file(new URL("../be/db.ts", import.meta.url)).text();
609
1131
  const target = await Bun.file(new URL("../be/db/tasks/write.ts", import.meta.url)).text();
@@ -629,7 +1151,18 @@ test("complete facade, selected public bindings and internal-only manifest remai
629
1151
  }
630
1152
  expect(target).not.toMatch(/from ["'][^"']*(?:be\/db|\.\.\/\.\.\/db)["']/);
631
1153
  expect(target).not.toContain("bun:sqlite");
632
- expect(facade.split("\n").length).toBeLessThanOrEqual(14133);
1154
+ });
1155
+
1156
+ test("db.ts gains no new top-level bodies; new db code lives in src/be/db/<domain>/", async () => {
1157
+ const facade = await Bun.file(new URL("../be/db.ts", import.meta.url)).text();
1158
+ const frozen = new Set(frozenFacadeBodies);
1159
+ const added = topLevelBodies(facade)
1160
+ .filter((name) => !frozen.has(name))
1161
+ .map(
1162
+ (name) =>
1163
+ `${name}: new top-level body in src/be/db.ts. Move it to src/be/db/<domain>/ and re-export it from db.ts.`,
1164
+ );
1165
+ expect(added).toEqual([]);
633
1166
  });
634
1167
 
635
1168
  test(
@@ -78,7 +78,7 @@ describe("docs API index footprint", () => {
78
78
  expect(tasks).toContain('"path":"/api/task-templates","method":"get"');
79
79
  });
80
80
 
81
- test("OpenAPI and generated pages keep all 383 operations", async () => {
81
+ test("OpenAPI and generated pages keep all 391 operations", async () => {
82
82
  const spec = await Bun.file(resolve(repoRoot, "openapi.json")).json();
83
83
  const operationKeys = [];
84
84
  const tags = new Set();
@@ -103,8 +103,8 @@ describe("docs API index footprint", () => {
103
103
  expect(spec.paths["/api/agents/{id}/runtime"]?.get).toBeDefined();
104
104
 
105
105
  const generatedKeys = await generatedOperationKeys();
106
- expect(operationKeys).toHaveLength(383);
107
- expect(generatedKeys).toHaveLength(383);
106
+ expect(operationKeys).toHaveLength(391);
107
+ expect(generatedKeys).toHaveLength(391);
108
108
  expect(new Set(generatedKeys)).toEqual(new Set(operationKeys));
109
109
  });
110
110