@cleocode/core 2026.9.22 → 2026.9.24

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 (821) hide show
  1. package/dist/admin/import-tasks.d.ts.map +1 -1
  2. package/dist/admin/import-tasks.js +35 -6
  3. package/dist/admin/import-tasks.js.map +1 -1
  4. package/dist/admin/import.d.ts.map +1 -1
  5. package/dist/admin/import.js +25 -6
  6. package/dist/admin/import.js.map +1 -1
  7. package/dist/build-provenance.json +6 -0
  8. package/dist/cloud/http.d.ts +8 -0
  9. package/dist/cloud/http.d.ts.map +1 -1
  10. package/dist/cloud/http.js +8 -1
  11. package/dist/cloud/http.js.map +1 -1
  12. package/dist/cloud/index.d.ts +6 -1
  13. package/dist/cloud/index.d.ts.map +1 -1
  14. package/dist/cloud/index.js +6 -1
  15. package/dist/cloud/index.js.map +1 -1
  16. package/dist/cloud/nexus-auth.d.ts +169 -0
  17. package/dist/cloud/nexus-auth.d.ts.map +1 -0
  18. package/dist/cloud/nexus-auth.js +372 -0
  19. package/dist/cloud/nexus-auth.js.map +1 -0
  20. package/dist/cloud/nexus-credentials.d.ts +188 -0
  21. package/dist/cloud/nexus-credentials.d.ts.map +1 -0
  22. package/dist/cloud/nexus-credentials.js +323 -0
  23. package/dist/cloud/nexus-credentials.js.map +1 -0
  24. package/dist/cloud/nexus-link.d.ts +85 -0
  25. package/dist/cloud/nexus-link.d.ts.map +1 -0
  26. package/dist/cloud/nexus-link.js +226 -0
  27. package/dist/cloud/nexus-link.js.map +1 -0
  28. package/dist/cloud/presence.d.ts +88 -0
  29. package/dist/cloud/presence.d.ts.map +1 -0
  30. package/dist/cloud/presence.js +137 -0
  31. package/dist/cloud/presence.js.map +1 -0
  32. package/dist/cloud/projects.d.ts +3 -1
  33. package/dist/cloud/projects.d.ts.map +1 -1
  34. package/dist/cloud/projects.js +4 -2
  35. package/dist/cloud/projects.js.map +1 -1
  36. package/dist/crypto/credentials.d.ts +14 -4
  37. package/dist/crypto/credentials.d.ts.map +1 -1
  38. package/dist/crypto/credentials.js +15 -1
  39. package/dist/crypto/credentials.js.map +1 -1
  40. package/dist/decide/audit.d.ts +7 -1
  41. package/dist/decide/audit.d.ts.map +1 -1
  42. package/dist/decide/audit.js.map +1 -1
  43. package/dist/decide/bench/dataset.d.ts +125 -0
  44. package/dist/decide/bench/dataset.d.ts.map +1 -0
  45. package/dist/decide/bench/dataset.js +457 -0
  46. package/dist/decide/bench/dataset.js.map +1 -0
  47. package/dist/decide/bench/index.d.ts +23 -0
  48. package/dist/decide/bench/index.d.ts.map +1 -0
  49. package/dist/decide/bench/index.js +23 -0
  50. package/dist/decide/bench/index.js.map +1 -0
  51. package/dist/decide/bench/metrics.d.ts +55 -0
  52. package/dist/decide/bench/metrics.d.ts.map +1 -0
  53. package/dist/decide/bench/metrics.js +100 -0
  54. package/dist/decide/bench/metrics.js.map +1 -0
  55. package/dist/decide/bench/operation.d.ts +119 -0
  56. package/dist/decide/bench/operation.d.ts.map +1 -0
  57. package/dist/decide/bench/operation.js +171 -0
  58. package/dist/decide/bench/operation.js.map +1 -0
  59. package/dist/decide/bench/profiles.d.ts +74 -0
  60. package/dist/decide/bench/profiles.d.ts.map +1 -0
  61. package/dist/decide/bench/profiles.js +131 -0
  62. package/dist/decide/bench/profiles.js.map +1 -0
  63. package/dist/decide/bench/questions.d.ts +40 -0
  64. package/dist/decide/bench/questions.d.ts.map +1 -0
  65. package/dist/decide/bench/questions.js +107 -0
  66. package/dist/decide/bench/questions.js.map +1 -0
  67. package/dist/decide/bench/report.d.ts +21 -0
  68. package/dist/decide/bench/report.d.ts.map +1 -0
  69. package/dist/decide/bench/report.js +120 -0
  70. package/dist/decide/bench/report.js.map +1 -0
  71. package/dist/decide/bench/runner.d.ts +203 -0
  72. package/dist/decide/bench/runner.d.ts.map +1 -0
  73. package/dist/decide/bench/runner.js +335 -0
  74. package/dist/decide/bench/runner.js.map +1 -0
  75. package/dist/decide/bench/source.d.ts +21 -0
  76. package/dist/decide/bench/source.d.ts.map +1 -0
  77. package/dist/decide/bench/source.js +67 -0
  78. package/dist/decide/bench/source.js.map +1 -0
  79. package/dist/decide/bench/spot-check.d.ts +117 -0
  80. package/dist/decide/bench/spot-check.d.ts.map +1 -0
  81. package/dist/decide/bench/spot-check.js +221 -0
  82. package/dist/decide/bench/spot-check.js.map +1 -0
  83. package/dist/decide/bench/stats.d.ts +57 -0
  84. package/dist/decide/bench/stats.d.ts.map +1 -0
  85. package/dist/decide/bench/stats.js +82 -0
  86. package/dist/decide/bench/stats.js.map +1 -0
  87. package/dist/decide/bench/types.d.ts +216 -0
  88. package/dist/decide/bench/types.d.ts.map +1 -0
  89. package/dist/decide/bench/types.js +104 -0
  90. package/dist/decide/bench/types.js.map +1 -0
  91. package/dist/decide/client.d.ts +80 -4
  92. package/dist/decide/client.d.ts.map +1 -1
  93. package/dist/decide/client.js +428 -39
  94. package/dist/decide/client.js.map +1 -1
  95. package/dist/decide/credentials.d.ts +200 -16
  96. package/dist/decide/credentials.d.ts.map +1 -1
  97. package/dist/decide/credentials.js +547 -45
  98. package/dist/decide/credentials.js.map +1 -1
  99. package/dist/decide/index.d.ts +10 -4
  100. package/dist/decide/index.d.ts.map +1 -1
  101. package/dist/decide/index.js +10 -4
  102. package/dist/decide/index.js.map +1 -1
  103. package/dist/decide/jev-wire.d.ts +105 -7
  104. package/dist/decide/jev-wire.d.ts.map +1 -1
  105. package/dist/decide/jev-wire.js +426 -54
  106. package/dist/decide/jev-wire.js.map +1 -1
  107. package/dist/decide/operations.d.ts +149 -21
  108. package/dist/decide/operations.d.ts.map +1 -1
  109. package/dist/decide/operations.js +241 -31
  110. package/dist/decide/operations.js.map +1 -1
  111. package/dist/decide/provider-state.d.ts +162 -0
  112. package/dist/decide/provider-state.d.ts.map +1 -0
  113. package/dist/decide/provider-state.js +267 -0
  114. package/dist/decide/provider-state.js.map +1 -0
  115. package/dist/decide/provider.d.ts +31 -5
  116. package/dist/decide/provider.d.ts.map +1 -1
  117. package/dist/decide/provider.js.map +1 -1
  118. package/dist/decide/providers.d.ts +71 -0
  119. package/dist/decide/providers.d.ts.map +1 -0
  120. package/dist/decide/providers.js +85 -0
  121. package/dist/decide/providers.js.map +1 -0
  122. package/dist/decide/site.d.ts +2 -2
  123. package/dist/decide/site.d.ts.map +1 -1
  124. package/dist/decide/site.js +2 -0
  125. package/dist/decide/site.js.map +1 -1
  126. package/dist/decide/sites/list.d.ts +46 -0
  127. package/dist/decide/sites/list.d.ts.map +1 -0
  128. package/dist/decide/sites/list.js +206 -0
  129. package/dist/decide/sites/list.js.map +1 -0
  130. package/dist/decide/sites/registry.d.ts +152 -0
  131. package/dist/decide/sites/registry.d.ts.map +1 -0
  132. package/dist/decide/sites/registry.js +398 -0
  133. package/dist/decide/sites/registry.js.map +1 -0
  134. package/dist/decide/spend.d.ts +196 -0
  135. package/dist/decide/spend.d.ts.map +1 -0
  136. package/dist/decide/spend.js +387 -0
  137. package/dist/decide/spend.js.map +1 -0
  138. package/dist/decide/wizard.d.ts +61 -0
  139. package/dist/decide/wizard.d.ts.map +1 -0
  140. package/dist/decide/wizard.js +197 -0
  141. package/dist/decide/wizard.js.map +1 -0
  142. package/dist/dispatch/mvi-projection.d.ts +15 -2
  143. package/dist/dispatch/mvi-projection.d.ts.map +1 -1
  144. package/dist/dispatch/mvi-projection.js +73 -12
  145. package/dist/dispatch/mvi-projection.js.map +1 -1
  146. package/dist/docs/adr-allocator.d.ts +2 -2
  147. package/dist/docs/adr-allocator.d.ts.map +1 -1
  148. package/dist/docs/adr-allocator.js +17 -4
  149. package/dist/docs/adr-allocator.js.map +1 -1
  150. package/dist/docs/blob-consolidation.js +1 -1
  151. package/dist/docs/blob-consolidation.js.map +1 -1
  152. package/dist/docs/display-alias.d.ts +1 -1
  153. package/dist/docs/display-alias.d.ts.map +1 -1
  154. package/dist/docs/display-alias.js +7 -4
  155. package/dist/docs/display-alias.js.map +1 -1
  156. package/dist/docs/docs-audit.d.ts.map +1 -1
  157. package/dist/docs/docs-audit.js +1 -2
  158. package/dist/docs/docs-audit.js.map +1 -1
  159. package/dist/docs/docs-inconsistency-detector.js +1 -1
  160. package/dist/docs/docs-inconsistency-detector.js.map +1 -1
  161. package/dist/docs/docs-update.d.ts.map +1 -1
  162. package/dist/docs/docs-update.js +6 -1
  163. package/dist/docs/docs-update.js.map +1 -1
  164. package/dist/docs/export-document.js +3462 -1227
  165. package/dist/docs/export-document.js.map +3 -3
  166. package/dist/docs/numbering.js +1 -1
  167. package/dist/docs/numbering.js.map +1 -1
  168. package/dist/docs/supersede.d.ts.map +1 -1
  169. package/dist/docs/supersede.js +6 -3
  170. package/dist/docs/supersede.js.map +1 -1
  171. package/dist/docs/version-ssot.js +1 -1
  172. package/dist/docs/version-ssot.js.map +1 -1
  173. package/dist/doctor/db-substrate.d.ts.map +1 -1
  174. package/dist/doctor/db-substrate.js +39 -24
  175. package/dist/doctor/db-substrate.js.map +1 -1
  176. package/dist/doctor/knowledge-summary.d.ts +10 -3
  177. package/dist/doctor/knowledge-summary.d.ts.map +1 -1
  178. package/dist/doctor/knowledge-summary.js +10 -3
  179. package/dist/doctor/knowledge-summary.js.map +1 -1
  180. package/dist/doctor/project-identity.d.ts +128 -37
  181. package/dist/doctor/project-identity.d.ts.map +1 -1
  182. package/dist/doctor/project-identity.js +476 -63
  183. package/dist/doctor/project-identity.js.map +1 -1
  184. package/dist/doctor/twin-collapse.d.ts +52 -2
  185. package/dist/doctor/twin-collapse.d.ts.map +1 -1
  186. package/dist/doctor/twin-collapse.js +108 -4
  187. package/dist/doctor/twin-collapse.js.map +1 -1
  188. package/dist/error-catalog.js +2 -2
  189. package/dist/error-catalog.js.map +1 -1
  190. package/dist/error-registry.js +1 -1
  191. package/dist/error-registry.js.map +1 -1
  192. package/dist/gateway-client/generated/types.gen.d.ts +22 -2
  193. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
  194. package/dist/index.d.ts +3 -3
  195. package/dist/index.d.ts.map +1 -1
  196. package/dist/index.js +2 -2
  197. package/dist/index.js.map +1 -1
  198. package/dist/init/scaffold-workflows.d.ts.map +1 -1
  199. package/dist/init/scaffold-workflows.js +6 -3
  200. package/dist/init/scaffold-workflows.js.map +1 -1
  201. package/dist/init/upgrade-workflows.d.ts.map +1 -1
  202. package/dist/init/upgrade-workflows.js +6 -3
  203. package/dist/init/upgrade-workflows.js.map +1 -1
  204. package/dist/init.d.ts.map +1 -1
  205. package/dist/init.js +20 -11
  206. package/dist/init.js.map +1 -1
  207. package/dist/inject/index.d.ts.map +1 -1
  208. package/dist/inject/index.js +2 -3
  209. package/dist/inject/index.js.map +1 -1
  210. package/dist/internal.d.ts +6 -5
  211. package/dist/internal.d.ts.map +1 -1
  212. package/dist/internal.js +7 -5
  213. package/dist/internal.js.map +1 -1
  214. package/dist/llm/credential-remove-entry.d.ts +59 -0
  215. package/dist/llm/credential-remove-entry.d.ts.map +1 -0
  216. package/dist/llm/credential-remove-entry.js +101 -0
  217. package/dist/llm/credential-remove-entry.js.map +1 -0
  218. package/dist/llm/oauth/device-code.d.ts +26 -6
  219. package/dist/llm/oauth/device-code.d.ts.map +1 -1
  220. package/dist/llm/oauth/device-code.js +44 -12
  221. package/dist/llm/oauth/device-code.js.map +1 -1
  222. package/dist/llm/plugin-facade.js +3556 -1321
  223. package/dist/llm/plugin-facade.js.map +3 -3
  224. package/dist/memory/attention.d.ts.map +1 -1
  225. package/dist/memory/attention.js +5 -3
  226. package/dist/memory/attention.js.map +1 -1
  227. package/dist/memory/decision-contradiction.d.ts +3 -3
  228. package/dist/memory/decision-contradiction.d.ts.map +1 -1
  229. package/dist/memory/decision-contradiction.js +4 -3
  230. package/dist/memory/decision-contradiction.js.map +1 -1
  231. package/dist/memory/decisions.d.ts +48 -3
  232. package/dist/memory/decisions.d.ts.map +1 -1
  233. package/dist/memory/decisions.js +98 -14
  234. package/dist/memory/decisions.js.map +1 -1
  235. package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
  236. package/dist/memory/graph-memory-bridge.js +2 -0
  237. package/dist/memory/graph-memory-bridge.js.map +1 -1
  238. package/dist/memory/learnings.d.ts +6 -6
  239. package/dist/memory/observation-type-decision.d.ts +2 -2
  240. package/dist/memory/observation-type-decision.d.ts.map +1 -1
  241. package/dist/memory/observation-type-decision.js +3 -2
  242. package/dist/memory/observation-type-decision.js.map +1 -1
  243. package/dist/memory/patterns.d.ts +4 -4
  244. package/dist/memory/pipeline-manifest-sqlite.d.ts +111 -0
  245. package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
  246. package/dist/memory/pipeline-manifest-sqlite.js +230 -2
  247. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
  248. package/dist/migration/manual/T10165-backfill-adr-index.d.ts.map +1 -1
  249. package/dist/migration/manual/T10165-backfill-adr-index.js +5 -1
  250. package/dist/migration/manual/T10165-backfill-adr-index.js.map +1 -1
  251. package/dist/nexus/fleet-status.d.ts +83 -0
  252. package/dist/nexus/fleet-status.d.ts.map +1 -0
  253. package/dist/nexus/fleet-status.js +414 -0
  254. package/dist/nexus/fleet-status.js.map +1 -0
  255. package/dist/nexus/git-state.d.ts +15 -0
  256. package/dist/nexus/git-state.d.ts.map +1 -1
  257. package/dist/nexus/git-state.js +67 -2
  258. package/dist/nexus/git-state.js.map +1 -1
  259. package/dist/nexus/identity.d.ts.map +1 -1
  260. package/dist/nexus/identity.js +4 -0
  261. package/dist/nexus/identity.js.map +1 -1
  262. package/dist/nexus/index.d.ts +4 -1
  263. package/dist/nexus/index.d.ts.map +1 -1
  264. package/dist/nexus/index.js +7 -1
  265. package/dist/nexus/index.js.map +1 -1
  266. package/dist/nexus/migrate-json-to-sqlite.d.ts +3 -2
  267. package/dist/nexus/migrate-json-to-sqlite.d.ts.map +1 -1
  268. package/dist/nexus/migrate-json-to-sqlite.js +9 -17
  269. package/dist/nexus/migrate-json-to-sqlite.js.map +1 -1
  270. package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
  271. package/dist/nexus/migrations/M-split-graph.js +4 -0
  272. package/dist/nexus/migrations/M-split-graph.js.map +1 -1
  273. package/dist/nexus/ops.d.ts +1 -0
  274. package/dist/nexus/ops.d.ts.map +1 -1
  275. package/dist/nexus/project-activity.d.ts +104 -0
  276. package/dist/nexus/project-activity.d.ts.map +1 -0
  277. package/dist/nexus/project-activity.js +150 -0
  278. package/dist/nexus/project-activity.js.map +1 -0
  279. package/dist/nexus/query.d.ts +2 -2
  280. package/dist/nexus/query.d.ts.map +1 -1
  281. package/dist/nexus/query.js +4 -19
  282. package/dist/nexus/query.js.map +1 -1
  283. package/dist/nexus/registry-errors.d.ts +61 -0
  284. package/dist/nexus/registry-errors.d.ts.map +1 -0
  285. package/dist/nexus/registry-errors.js +85 -0
  286. package/dist/nexus/registry-errors.js.map +1 -0
  287. package/dist/nexus/registry.d.ts +30 -5
  288. package/dist/nexus/registry.d.ts.map +1 -1
  289. package/dist/nexus/registry.js +115 -70
  290. package/dist/nexus/registry.js.map +1 -1
  291. package/dist/nexus/store.d.ts.map +1 -1
  292. package/dist/nexus/store.js +2 -0
  293. package/dist/nexus/store.js.map +1 -1
  294. package/dist/orchestrate/pivot.d.ts +4 -0
  295. package/dist/orchestrate/pivot.d.ts.map +1 -1
  296. package/dist/orchestrate/pivot.js +82 -14
  297. package/dist/orchestrate/pivot.js.map +1 -1
  298. package/dist/orchestrate/plan.d.ts.map +1 -1
  299. package/dist/orchestrate/plan.js +3 -0
  300. package/dist/orchestrate/plan.js.map +1 -1
  301. package/dist/orchestrate/query-ops.d.ts.map +1 -1
  302. package/dist/orchestrate/query-ops.js +29 -27
  303. package/dist/orchestrate/query-ops.js.map +1 -1
  304. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  305. package/dist/orchestrate/spawn-ops.js +29 -3
  306. package/dist/orchestrate/spawn-ops.js.map +1 -1
  307. package/dist/orchestration/bootstrap.d.ts.map +1 -1
  308. package/dist/orchestration/bootstrap.js +20 -14
  309. package/dist/orchestration/bootstrap.js.map +1 -1
  310. package/dist/orchestration/index.d.ts +15 -1
  311. package/dist/orchestration/index.d.ts.map +1 -1
  312. package/dist/orchestration/index.js +25 -6
  313. package/dist/orchestration/index.js.map +1 -1
  314. package/dist/orchestration/lead-rollup.d.ts +7 -1
  315. package/dist/orchestration/lead-rollup.d.ts.map +1 -1
  316. package/dist/orchestration/lead-rollup.js +20 -5
  317. package/dist/orchestration/lead-rollup.js.map +1 -1
  318. package/dist/orchestration/owner-decision-readiness.d.ts +2 -2
  319. package/dist/orchestration/owner-decision-readiness.d.ts.map +1 -1
  320. package/dist/orchestration/owner-decision-readiness.js +3 -2
  321. package/dist/orchestration/owner-decision-readiness.js.map +1 -1
  322. package/dist/orchestration/spawn-prompt.js +1 -1
  323. package/dist/orchestration/spawn-prompt.js.map +1 -1
  324. package/dist/orchestration/validate-spawn.d.ts.map +1 -1
  325. package/dist/orchestration/validate-spawn.js +2 -0
  326. package/dist/orchestration/validate-spawn.js.map +1 -1
  327. package/dist/orchestration/waves.d.ts +21 -10
  328. package/dist/orchestration/waves.d.ts.map +1 -1
  329. package/dist/orchestration/waves.js +38 -35
  330. package/dist/orchestration/waves.js.map +1 -1
  331. package/dist/paths.d.ts +9 -2
  332. package/dist/paths.d.ts.map +1 -1
  333. package/dist/paths.js +30 -13
  334. package/dist/paths.js.map +1 -1
  335. package/dist/phases/index.d.ts +1 -1
  336. package/dist/phases/index.d.ts.map +1 -1
  337. package/dist/phases/index.js +3 -4
  338. package/dist/phases/index.js.map +1 -1
  339. package/dist/project-info.d.ts +40 -3
  340. package/dist/project-info.d.ts.map +1 -1
  341. package/dist/project-info.js +74 -6
  342. package/dist/project-info.js.map +1 -1
  343. package/dist/project-lifecycle.d.ts +28 -7
  344. package/dist/project-lifecycle.d.ts.map +1 -1
  345. package/dist/project-lifecycle.js +114 -47
  346. package/dist/project-lifecycle.js.map +1 -1
  347. package/dist/project-scope.d.ts +86 -3
  348. package/dist/project-scope.d.ts.map +1 -1
  349. package/dist/project-scope.js +192 -17
  350. package/dist/project-scope.js.map +1 -1
  351. package/dist/release/github-pr.d.ts.map +1 -1
  352. package/dist/release/github-pr.js +2 -1
  353. package/dist/release/github-pr.js.map +1 -1
  354. package/dist/release/open.d.ts +12 -2
  355. package/dist/release/open.d.ts.map +1 -1
  356. package/dist/release/open.js +32 -3
  357. package/dist/release/open.js.map +1 -1
  358. package/dist/release/preflight-skip.d.ts +73 -0
  359. package/dist/release/preflight-skip.d.ts.map +1 -0
  360. package/dist/release/preflight-skip.js +254 -0
  361. package/dist/release/preflight-skip.js.map +1 -0
  362. package/dist/render/decide/index.d.ts +51 -0
  363. package/dist/render/decide/index.d.ts.map +1 -0
  364. package/dist/render/decide/index.js +289 -0
  365. package/dist/render/decide/index.js.map +1 -0
  366. package/dist/render/index.d.ts +1 -0
  367. package/dist/render/index.d.ts.map +1 -1
  368. package/dist/render/index.js +1 -0
  369. package/dist/render/index.js.map +1 -1
  370. package/dist/render/nexus/graph/index.d.ts +5 -0
  371. package/dist/render/nexus/graph/index.d.ts.map +1 -1
  372. package/dist/render/nexus/graph/index.js +53 -0
  373. package/dist/render/nexus/graph/index.js.map +1 -1
  374. package/dist/routing/capability-matrix.d.ts.map +1 -1
  375. package/dist/routing/capability-matrix.js +7 -0
  376. package/dist/routing/capability-matrix.js.map +1 -1
  377. package/dist/scaffold/ensure-config.d.ts +14 -6
  378. package/dist/scaffold/ensure-config.d.ts.map +1 -1
  379. package/dist/scaffold/ensure-config.js +39 -17
  380. package/dist/scaffold/ensure-config.js.map +1 -1
  381. package/dist/scaffold/project-identity.d.ts +115 -23
  382. package/dist/scaffold/project-identity.d.ts.map +1 -1
  383. package/dist/scaffold/project-identity.js +196 -44
  384. package/dist/scaffold/project-identity.js.map +1 -1
  385. package/dist/selfimprove/fix-gen.js +3569 -1334
  386. package/dist/selfimprove/fix-gen.js.map +3 -3
  387. package/dist/sentient/cross-project-hygiene.d.ts +12 -6
  388. package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
  389. package/dist/sentient/cross-project-hygiene.js +15 -10
  390. package/dist/sentient/cross-project-hygiene.js.map +1 -1
  391. package/dist/session/engine-ops.d.ts +13 -4
  392. package/dist/session/engine-ops.d.ts.map +1 -1
  393. package/dist/session/engine-ops.js +38 -45
  394. package/dist/session/engine-ops.js.map +1 -1
  395. package/dist/sessions/briefing.d.ts +7 -3
  396. package/dist/sessions/briefing.d.ts.map +1 -1
  397. package/dist/sessions/briefing.js +32 -71
  398. package/dist/sessions/briefing.js.map +1 -1
  399. package/dist/sessions/drift-watchdog.d.ts.map +1 -1
  400. package/dist/sessions/drift-watchdog.js +11 -19
  401. package/dist/sessions/drift-watchdog.js.map +1 -1
  402. package/dist/sessions/focus-state-store.d.ts +109 -27
  403. package/dist/sessions/focus-state-store.d.ts.map +1 -1
  404. package/dist/sessions/focus-state-store.js +171 -39
  405. package/dist/sessions/focus-state-store.js.map +1 -1
  406. package/dist/sessions/handoff.d.ts.map +1 -1
  407. package/dist/sessions/handoff.js +9 -18
  408. package/dist/sessions/handoff.js.map +1 -1
  409. package/dist/sessions/index.d.ts +4 -2
  410. package/dist/sessions/index.d.ts.map +1 -1
  411. package/dist/sessions/index.js +35 -6
  412. package/dist/sessions/index.js.map +1 -1
  413. package/dist/sessions/session-drift.d.ts.map +1 -1
  414. package/dist/sessions/session-drift.js +4 -2
  415. package/dist/sessions/session-drift.js.map +1 -1
  416. package/dist/sessions/session-view.d.ts +8 -1
  417. package/dist/sessions/session-view.d.ts.map +1 -1
  418. package/dist/sessions/session-view.js +9 -2
  419. package/dist/sessions/session-view.js.map +1 -1
  420. package/dist/setup/config-json-merge.d.ts +28 -0
  421. package/dist/setup/config-json-merge.d.ts.map +1 -1
  422. package/dist/setup/config-json-merge.js +52 -0
  423. package/dist/setup/config-json-merge.js.map +1 -1
  424. package/dist/setup/index.d.ts +15 -10
  425. package/dist/setup/index.d.ts.map +1 -1
  426. package/dist/setup/index.js +19 -10
  427. package/dist/setup/index.js.map +1 -1
  428. package/dist/setup/sections/llm.js +1 -1
  429. package/dist/setup/sections/llm.js.map +1 -1
  430. package/dist/setup/sections/nexus-account.d.ts +32 -0
  431. package/dist/setup/sections/nexus-account.d.ts.map +1 -0
  432. package/dist/setup/sections/nexus-account.js +64 -0
  433. package/dist/setup/sections/nexus-account.js.map +1 -0
  434. package/dist/setup/sections/system-one.d.ts +28 -0
  435. package/dist/setup/sections/system-one.d.ts.map +1 -0
  436. package/dist/setup/sections/system-one.js +53 -0
  437. package/dist/setup/sections/system-one.js.map +1 -0
  438. package/dist/setup/wizard.d.ts +15 -1
  439. package/dist/setup/wizard.d.ts.map +1 -1
  440. package/dist/setup/wizard.js +15 -0
  441. package/dist/setup/wizard.js.map +1 -1
  442. package/dist/skills/orchestrator/startup.d.ts.map +1 -1
  443. package/dist/skills/orchestrator/startup.js +18 -31
  444. package/dist/skills/orchestrator/startup.js.map +1 -1
  445. package/dist/skills/prune-bundled.d.ts +40 -1
  446. package/dist/skills/prune-bundled.d.ts.map +1 -1
  447. package/dist/skills/prune-bundled.js +117 -1
  448. package/dist/skills/prune-bundled.js.map +1 -1
  449. package/dist/snapshot/index.d.ts.map +1 -1
  450. package/dist/snapshot/index.js +60 -53
  451. package/dist/snapshot/index.js.map +1 -1
  452. package/dist/spawn/agent-identity.d.ts +33 -1
  453. package/dist/spawn/agent-identity.d.ts.map +1 -1
  454. package/dist/spawn/agent-identity.js +53 -1
  455. package/dist/spawn/agent-identity.js.map +1 -1
  456. package/dist/spawn/index.d.ts +1 -1
  457. package/dist/spawn/index.d.ts.map +1 -1
  458. package/dist/spawn/index.js +1 -1
  459. package/dist/spawn/index.js.map +1 -1
  460. package/dist/stats/index.d.ts.map +1 -1
  461. package/dist/stats/index.js +3 -4
  462. package/dist/stats/index.js.map +1 -1
  463. package/dist/status/index.d.ts +12 -3
  464. package/dist/status/index.d.ts.map +1 -1
  465. package/dist/status/index.js +47 -5
  466. package/dist/status/index.js.map +1 -1
  467. package/dist/store/agent-registry-accessor.d.ts.map +1 -1
  468. package/dist/store/agent-registry-accessor.js +2 -0
  469. package/dist/store/agent-registry-accessor.js.map +1 -1
  470. package/dist/store/attachment-repair.d.ts.map +1 -1
  471. package/dist/store/attachment-repair.js +42 -3
  472. package/dist/store/attachment-repair.js.map +1 -1
  473. package/dist/store/attachment-store.d.ts.map +1 -1
  474. package/dist/store/attachment-store.js +30 -46
  475. package/dist/store/attachment-store.js.map +1 -1
  476. package/dist/store/backup-pack.js +1 -1
  477. package/dist/store/backup-pack.js.map +1 -1
  478. package/dist/store/backup-recover-brain.d.ts +4 -0
  479. package/dist/store/backup-recover-brain.d.ts.map +1 -1
  480. package/dist/store/backup-recover-brain.js +2 -0
  481. package/dist/store/backup-recover-brain.js.map +1 -1
  482. package/dist/store/backup-recover.d.ts +9 -0
  483. package/dist/store/backup-recover.d.ts.map +1 -1
  484. package/dist/store/backup-recover.js +28 -1
  485. package/dist/store/backup-recover.js.map +1 -1
  486. package/dist/store/backup-sidecar.d.ts +30 -0
  487. package/dist/store/backup-sidecar.d.ts.map +1 -1
  488. package/dist/store/backup-sidecar.js +90 -2
  489. package/dist/store/backup-sidecar.js.map +1 -1
  490. package/dist/store/backup.d.ts +15 -1
  491. package/dist/store/backup.d.ts.map +1 -1
  492. package/dist/store/backup.js +18 -2
  493. package/dist/store/backup.js.map +1 -1
  494. package/dist/store/blob-keep.d.ts +135 -0
  495. package/dist/store/blob-keep.d.ts.map +1 -0
  496. package/dist/store/blob-keep.js +283 -0
  497. package/dist/store/blob-keep.js.map +1 -0
  498. package/dist/store/conduit-sqlite.d.ts.map +1 -1
  499. package/dist/store/conduit-sqlite.js +3 -0
  500. package/dist/store/conduit-sqlite.js.map +1 -1
  501. package/dist/store/converters.d.ts.map +1 -1
  502. package/dist/store/converters.js +11 -0
  503. package/dist/store/converters.js.map +1 -1
  504. package/dist/store/credential-transfer.d.ts +37 -5
  505. package/dist/store/credential-transfer.d.ts.map +1 -1
  506. package/dist/store/credential-transfer.js +75 -18
  507. package/dist/store/credential-transfer.js.map +1 -1
  508. package/dist/store/cross-db-cleanup.d.ts.map +1 -1
  509. package/dist/store/cross-db-cleanup.js +2 -0
  510. package/dist/store/cross-db-cleanup.js.map +1 -1
  511. package/dist/store/data-accessor.d.ts +1 -1
  512. package/dist/store/data-accessor.d.ts.map +1 -1
  513. package/dist/store/data-accessor.js.map +1 -1
  514. package/dist/store/db-helpers.d.ts +18 -0
  515. package/dist/store/db-helpers.d.ts.map +1 -1
  516. package/dist/store/db-helpers.js +46 -0
  517. package/dist/store/db-helpers.js.map +1 -1
  518. package/dist/store/dual-scope-db.d.ts.map +1 -1
  519. package/dist/store/dual-scope-db.js +13 -2
  520. package/dist/store/dual-scope-db.js.map +1 -1
  521. package/dist/store/exodus/on-open.d.ts.map +1 -1
  522. package/dist/store/exodus/on-open.js +35 -0
  523. package/dist/store/exodus/on-open.js.map +1 -1
  524. package/dist/store/exodus/runtime-targets.d.ts +3 -3
  525. package/dist/store/exodus/runtime-targets.js +3 -3
  526. package/dist/store/import-remap.d.ts +12 -1
  527. package/dist/store/import-remap.d.ts.map +1 -1
  528. package/dist/store/import-remap.js +14 -0
  529. package/dist/store/import-remap.js.map +1 -1
  530. package/dist/store/legacy-tasks-lineage.d.ts +3 -1
  531. package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
  532. package/dist/store/legacy-tasks-lineage.js +3 -1
  533. package/dist/store/legacy-tasks-lineage.js.map +1 -1
  534. package/dist/store/memory-accessor.js +1 -1
  535. package/dist/store/memory-accessor.js.map +1 -1
  536. package/dist/store/migrate-signaldock-to-conduit.d.ts.map +1 -1
  537. package/dist/store/migrate-signaldock-to-conduit.js +3 -0
  538. package/dist/store/migrate-signaldock-to-conduit.js.map +1 -1
  539. package/dist/store/migration-manager.d.ts +61 -0
  540. package/dist/store/migration-manager.d.ts.map +1 -1
  541. package/dist/store/migration-manager.js +138 -6
  542. package/dist/store/migration-manager.js.map +1 -1
  543. package/dist/store/migration-sqlite.d.ts.map +1 -1
  544. package/dist/store/migration-sqlite.js +2 -0
  545. package/dist/store/migration-sqlite.js.map +1 -1
  546. package/dist/store/nexus-sqlite.d.ts.map +1 -1
  547. package/dist/store/nexus-sqlite.js +3 -0
  548. package/dist/store/nexus-sqlite.js.map +1 -1
  549. package/dist/store/nexus-validation-schemas.d.ts +64 -0
  550. package/dist/store/nexus-validation-schemas.d.ts.map +1 -1
  551. package/dist/store/open-cleo-db.d.ts.map +1 -1
  552. package/dist/store/open-cleo-db.js +3 -0
  553. package/dist/store/open-cleo-db.js.map +1 -1
  554. package/dist/store/portable-bundle-import.d.ts +8 -0
  555. package/dist/store/portable-bundle-import.d.ts.map +1 -1
  556. package/dist/store/portable-bundle-import.js +12 -0
  557. package/dist/store/portable-bundle-import.js.map +1 -1
  558. package/dist/store/portable-bundle-relocate.d.ts.map +1 -1
  559. package/dist/store/portable-bundle-relocate.js +2 -0
  560. package/dist/store/portable-bundle-relocate.js.map +1 -1
  561. package/dist/store/portable-bundle-scan.d.ts.map +1 -1
  562. package/dist/store/portable-bundle-scan.js +2 -1
  563. package/dist/store/portable-bundle-scan.js.map +1 -1
  564. package/dist/store/portable-bundle.d.ts.map +1 -1
  565. package/dist/store/portable-bundle.js +15 -14
  566. package/dist/store/portable-bundle.js.map +1 -1
  567. package/dist/store/ports/domain-binding.d.ts.map +1 -1
  568. package/dist/store/ports/domain-binding.js +5 -0
  569. package/dist/store/ports/domain-binding.js.map +1 -1
  570. package/dist/store/pre-repair-snapshot.d.ts +4 -1
  571. package/dist/store/pre-repair-snapshot.d.ts.map +1 -1
  572. package/dist/store/pre-repair-snapshot.js +5 -1
  573. package/dist/store/pre-repair-snapshot.js.map +1 -1
  574. package/dist/store/regenerators.d.ts +4 -2
  575. package/dist/store/regenerators.d.ts.map +1 -1
  576. package/dist/store/regenerators.js +7 -3
  577. package/dist/store/regenerators.js.map +1 -1
  578. package/dist/store/repair-malformed-dbs.d.ts +4 -0
  579. package/dist/store/repair-malformed-dbs.d.ts.map +1 -1
  580. package/dist/store/repair-malformed-dbs.js +3 -0
  581. package/dist/store/repair-malformed-dbs.js.map +1 -1
  582. package/dist/store/safety-data-accessor.d.ts +8 -3
  583. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  584. package/dist/store/safety-data-accessor.js +11 -4
  585. package/dist/store/safety-data-accessor.js.map +1 -1
  586. package/dist/store/schema/cleo-global/nexus.d.ts +48 -0
  587. package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
  588. package/dist/store/schema/cleo-global/nexus.js +17 -0
  589. package/dist/store/schema/cleo-global/nexus.js.map +1 -1
  590. package/dist/store/schema/cleo-project/docs.d.ts +16 -0
  591. package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
  592. package/dist/store/schema/cleo-project/docs.js +10 -0
  593. package/dist/store/schema/cleo-project/docs.js.map +1 -1
  594. package/dist/store/schema/cleo-project/tasks-core.d.ts +80 -0
  595. package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
  596. package/dist/store/schema/cleo-project/tasks-core.js +25 -1
  597. package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
  598. package/dist/store/schema/cleo-shared/brain.d.ts +1 -1
  599. package/dist/store/schema/memory-schema.d.ts +1 -1
  600. package/dist/store/schema/nexus-schema.d.ts +48 -0
  601. package/dist/store/schema/nexus-schema.d.ts.map +1 -1
  602. package/dist/store/schema/nexus-schema.js +28 -7
  603. package/dist/store/schema/nexus-schema.js.map +1 -1
  604. package/dist/store/session-store.d.ts +65 -0
  605. package/dist/store/session-store.d.ts.map +1 -1
  606. package/dist/store/session-store.js +108 -7
  607. package/dist/store/session-store.js.map +1 -1
  608. package/dist/store/split-brain-import.d.ts.map +1 -1
  609. package/dist/store/split-brain-import.js +2 -0
  610. package/dist/store/split-brain-import.js.map +1 -1
  611. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  612. package/dist/store/sqlite-data-accessor.js +252 -47
  613. package/dist/store/sqlite-data-accessor.js.map +1 -1
  614. package/dist/store/sqlite-native.d.ts.map +1 -1
  615. package/dist/store/sqlite-native.js +1 -0
  616. package/dist/store/sqlite-native.js.map +1 -1
  617. package/dist/store/sqlite.d.ts +15 -3
  618. package/dist/store/sqlite.d.ts.map +1 -1
  619. package/dist/store/sqlite.js +57 -20
  620. package/dist/store/sqlite.js.map +1 -1
  621. package/dist/store/store-write-guard.d.ts +9 -3
  622. package/dist/store/store-write-guard.d.ts.map +1 -1
  623. package/dist/store/store-write-guard.js +25 -4
  624. package/dist/store/store-write-guard.js.map +1 -1
  625. package/dist/store/table-classification.d.ts +1 -1
  626. package/dist/store/table-classification.d.ts.map +1 -1
  627. package/dist/store/table-classification.js +34 -8
  628. package/dist/store/table-classification.js.map +1 -1
  629. package/dist/store/task-claim.d.ts +144 -0
  630. package/dist/store/task-claim.d.ts.map +1 -0
  631. package/dist/store/task-claim.js +195 -0
  632. package/dist/store/task-claim.js.map +1 -0
  633. package/dist/store/task-version.d.ts +43 -5
  634. package/dist/store/task-version.d.ts.map +1 -1
  635. package/dist/store/task-version.js +113 -17
  636. package/dist/store/task-version.js.map +1 -1
  637. package/dist/store/tasks-schema.d.ts +2 -0
  638. package/dist/store/tasks-schema.d.ts.map +1 -1
  639. package/dist/store/tasks-schema.js +1 -0
  640. package/dist/store/tasks-schema.js.map +1 -1
  641. package/dist/store/tasks-sqlite.js +1 -1
  642. package/dist/store/tasks-sqlite.js.map +1 -1
  643. package/dist/store/twin-collapse.d.ts +339 -22
  644. package/dist/store/twin-collapse.d.ts.map +1 -1
  645. package/dist/store/twin-collapse.js +1323 -48
  646. package/dist/store/twin-collapse.js.map +1 -1
  647. package/dist/store/umbrella-data-accessor.d.ts +8 -3
  648. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  649. package/dist/store/umbrella-data-accessor.js +10 -4
  650. package/dist/store/umbrella-data-accessor.js.map +1 -1
  651. package/dist/store/validation-schemas.d.ts +161 -1
  652. package/dist/store/validation-schemas.d.ts.map +1 -1
  653. package/dist/store/with-retry.d.ts +36 -0
  654. package/dist/store/with-retry.d.ts.map +1 -1
  655. package/dist/store/with-retry.js +51 -0
  656. package/dist/store/with-retry.js.map +1 -1
  657. package/dist/store/worktree-build-guard.d.ts +200 -0
  658. package/dist/store/worktree-build-guard.d.ts.map +1 -0
  659. package/dist/store/worktree-build-guard.js +497 -0
  660. package/dist/store/worktree-build-guard.js.map +1 -0
  661. package/dist/store/worktree-isolation-guard.d.ts +138 -0
  662. package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
  663. package/dist/store/worktree-isolation-guard.js +189 -2
  664. package/dist/store/worktree-isolation-guard.js.map +1 -1
  665. package/dist/store/writer-lease.d.ts.map +1 -1
  666. package/dist/store/writer-lease.js +2 -0
  667. package/dist/store/writer-lease.js.map +1 -1
  668. package/dist/system/backup.d.ts +13 -2
  669. package/dist/system/backup.d.ts.map +1 -1
  670. package/dist/system/backup.js +11 -3
  671. package/dist/system/backup.js.map +1 -1
  672. package/dist/system/health.d.ts.map +1 -1
  673. package/dist/system/health.js +3 -1
  674. package/dist/system/health.js.map +1 -1
  675. package/dist/system/inject-generate.d.ts.map +1 -1
  676. package/dist/system/inject-generate.js +23 -10
  677. package/dist/system/inject-generate.js.map +1 -1
  678. package/dist/system/project-health.d.ts +8 -0
  679. package/dist/system/project-health.d.ts.map +1 -1
  680. package/dist/system/project-health.js +13 -5
  681. package/dist/system/project-health.js.map +1 -1
  682. package/dist/task-tools/index.d.ts +4 -2
  683. package/dist/task-tools/index.d.ts.map +1 -1
  684. package/dist/task-tools/index.js +3 -2
  685. package/dist/task-tools/index.js.map +1 -1
  686. package/dist/task-tools/score-task-priority.d.ts +131 -18
  687. package/dist/task-tools/score-task-priority.d.ts.map +1 -1
  688. package/dist/task-tools/score-task-priority.js +243 -80
  689. package/dist/task-tools/score-task-priority.js.map +1 -1
  690. package/dist/task-work/claims.d.ts +215 -0
  691. package/dist/task-work/claims.d.ts.map +1 -0
  692. package/dist/task-work/claims.js +272 -0
  693. package/dist/task-work/claims.js.map +1 -0
  694. package/dist/task-work/index.d.ts +47 -3
  695. package/dist/task-work/index.d.ts.map +1 -1
  696. package/dist/task-work/index.js +74 -41
  697. package/dist/task-work/index.js.map +1 -1
  698. package/dist/tasks/add.d.ts.map +1 -1
  699. package/dist/tasks/add.js +3 -2
  700. package/dist/tasks/add.js.map +1 -1
  701. package/dist/tasks/affected-packages.d.ts +5 -1
  702. package/dist/tasks/affected-packages.d.ts.map +1 -1
  703. package/dist/tasks/affected-packages.js +21 -3
  704. package/dist/tasks/affected-packages.js.map +1 -1
  705. package/dist/tasks/analyze.d.ts +29 -1
  706. package/dist/tasks/analyze.d.ts.map +1 -1
  707. package/dist/tasks/analyze.js +47 -37
  708. package/dist/tasks/analyze.js.map +1 -1
  709. package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
  710. package/dist/tasks/backfill-child-projections.js +4 -1
  711. package/dist/tasks/backfill-child-projections.js.map +1 -1
  712. package/dist/tasks/change-set.d.ts +5 -0
  713. package/dist/tasks/change-set.d.ts.map +1 -1
  714. package/dist/tasks/change-set.js +75 -6
  715. package/dist/tasks/change-set.js.map +1 -1
  716. package/dist/tasks/command-line.d.ts +54 -0
  717. package/dist/tasks/command-line.d.ts.map +1 -0
  718. package/dist/tasks/command-line.js +151 -0
  719. package/dist/tasks/command-line.js.map +1 -0
  720. package/dist/tasks/complete.d.ts +16 -0
  721. package/dist/tasks/complete.d.ts.map +1 -1
  722. package/dist/tasks/complete.js +27 -7
  723. package/dist/tasks/complete.js.map +1 -1
  724. package/dist/tasks/component-pr.d.ts +162 -1
  725. package/dist/tasks/component-pr.d.ts.map +1 -1
  726. package/dist/tasks/component-pr.js +639 -53
  727. package/dist/tasks/component-pr.js.map +1 -1
  728. package/dist/tasks/delete.d.ts.map +1 -1
  729. package/dist/tasks/delete.js +20 -0
  730. package/dist/tasks/delete.js.map +1 -1
  731. package/dist/tasks/done-record.d.ts +14 -1
  732. package/dist/tasks/done-record.d.ts.map +1 -1
  733. package/dist/tasks/done-record.js +37 -0
  734. package/dist/tasks/done-record.js.map +1 -1
  735. package/dist/tasks/duplicate-detector.d.ts +23 -4
  736. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  737. package/dist/tasks/duplicate-detector.js +14 -5
  738. package/dist/tasks/duplicate-detector.js.map +1 -1
  739. package/dist/tasks/engine-wrap-ops.d.ts +48 -10
  740. package/dist/tasks/engine-wrap-ops.d.ts.map +1 -1
  741. package/dist/tasks/engine-wrap-ops.js +78 -10
  742. package/dist/tasks/engine-wrap-ops.js.map +1 -1
  743. package/dist/tasks/engine-wrap.d.ts +1 -1
  744. package/dist/tasks/engine-wrap.d.ts.map +1 -1
  745. package/dist/tasks/engine-wrap.js +1 -1
  746. package/dist/tasks/engine-wrap.js.map +1 -1
  747. package/dist/tasks/evidence.d.ts +2 -0
  748. package/dist/tasks/evidence.d.ts.map +1 -1
  749. package/dist/tasks/evidence.js +30 -4
  750. package/dist/tasks/evidence.js.map +1 -1
  751. package/dist/tasks/gate-runner.d.ts.map +1 -1
  752. package/dist/tasks/gate-runner.js +48 -12
  753. package/dist/tasks/gate-runner.js.map +1 -1
  754. package/dist/tasks/graph-ops.d.ts +9 -2
  755. package/dist/tasks/graph-ops.d.ts.map +1 -1
  756. package/dist/tasks/graph-ops.js +24 -32
  757. package/dist/tasks/graph-ops.js.map +1 -1
  758. package/dist/tasks/index.d.ts +1 -1
  759. package/dist/tasks/index.d.ts.map +1 -1
  760. package/dist/tasks/index.js +1 -1
  761. package/dist/tasks/index.js.map +1 -1
  762. package/dist/tasks/ops.d.ts +1 -0
  763. package/dist/tasks/ops.d.ts.map +1 -1
  764. package/dist/tasks/plan.d.ts.map +1 -1
  765. package/dist/tasks/plan.js +16 -60
  766. package/dist/tasks/plan.js.map +1 -1
  767. package/dist/tasks/ranking-audit.d.ts +122 -0
  768. package/dist/tasks/ranking-audit.d.ts.map +1 -0
  769. package/dist/tasks/ranking-audit.js +193 -0
  770. package/dist/tasks/ranking-audit.js.map +1 -0
  771. package/dist/tasks/task-analyze.d.ts.map +1 -1
  772. package/dist/tasks/task-analyze.js +19 -32
  773. package/dist/tasks/task-analyze.js.map +1 -1
  774. package/dist/tasks/task-context.d.ts.map +1 -1
  775. package/dist/tasks/task-context.js +13 -0
  776. package/dist/tasks/task-context.js.map +1 -1
  777. package/dist/tasks/task-import.d.ts.map +1 -1
  778. package/dist/tasks/task-import.js +21 -12
  779. package/dist/tasks/task-import.js.map +1 -1
  780. package/dist/tasks/task-next.d.ts +67 -2
  781. package/dist/tasks/task-next.d.ts.map +1 -1
  782. package/dist/tasks/task-next.js +99 -102
  783. package/dist/tasks/task-next.js.map +1 -1
  784. package/dist/tasks/task-ops.d.ts +1 -1
  785. package/dist/tasks/task-ops.d.ts.map +1 -1
  786. package/dist/tasks/task-ops.js +1 -1
  787. package/dist/tasks/task-ops.js.map +1 -1
  788. package/dist/tasks/tool-resolver.d.ts +7 -1
  789. package/dist/tasks/tool-resolver.d.ts.map +1 -1
  790. package/dist/tasks/tool-resolver.js +24 -10
  791. package/dist/tasks/tool-resolver.js.map +1 -1
  792. package/dist/tasks/update.d.ts +8 -2
  793. package/dist/tasks/update.d.ts.map +1 -1
  794. package/dist/tasks/update.js +35 -6
  795. package/dist/tasks/update.js.map +1 -1
  796. package/dist/telemetry/sqlite.d.ts.map +1 -1
  797. package/dist/telemetry/sqlite.js +2 -0
  798. package/dist/telemetry/sqlite.js.map +1 -1
  799. package/dist/upgrade.d.ts +1 -1
  800. package/dist/upgrade.d.ts.map +1 -1
  801. package/dist/upgrade.js +48 -9
  802. package/dist/upgrade.js.map +1 -1
  803. package/dist/validation/doctor/checks.d.ts +20 -6
  804. package/dist/validation/doctor/checks.d.ts.map +1 -1
  805. package/dist/validation/doctor/checks.js +53 -10
  806. package/dist/validation/doctor/checks.js.map +1 -1
  807. package/dist/validation/validate-ops.d.ts.map +1 -1
  808. package/dist/validation/validate-ops.js +2 -3
  809. package/dist/validation/validate-ops.js.map +1 -1
  810. package/migrations/drizzle-cleo-global/20260929010000_t12512-registry-probed-opened/migration.sql +35 -0
  811. package/migrations/drizzle-cleo-global/20260929020000_t12721-git-state-head-committed-at/migration.sql +25 -0
  812. package/migrations/drizzle-cleo-project/20260929000000_t12535-docs-attachments-union-shape/migration.sql +21 -0
  813. package/migrations/drizzle-cleo-project/20260929120000_t12502-task-claim-leases/migration.sql +77 -0
  814. package/migrations/drizzle-cleo-project/20260929130000_t12736-claim-lease-iso-repair/migration.sql +37 -0
  815. package/package.json +24 -14
  816. package/schemas/config.schema.json +13 -0
  817. package/schemas/project-info.schema.json +10 -4
  818. package/templates/CLEO-INJECTION.md +1 -1
  819. package/templates/CLEO-REFERENCE.md +7 -3
  820. package/templates/cleo-gitignore +11 -0
  821. package/templates/workflows/release-prepare.yml.tmpl +156 -10
@@ -11,10 +11,16 @@
11
11
  * request with the contract schema (invalid → fallback).
12
12
  * 3. In-memory LRU cache hit → `source: 'cache'`.
13
13
  * 4. Within ONE per-site deadline (default {@link DEFAULT_DECISION_TIMEOUT_MS}):
14
- * take a token from the machine-wide budget, then call the provider.
15
- * Budget denial, timeout, 401/402/429/5xx, network failure or a malformed
16
- * answer → fallback. A 429 also empties the shared budget for its
17
- * `retry-after` so no other process piles on.
14
+ * check the monthly spend cap (`./spend.ts`, D11159), take a token from the
15
+ * machine-wide request budget, then call the provider. Spend cap reached
16
+ * (`budget`), key monthly limit (`key_limit_exceeded`), budget denial,
17
+ * timeout, 401/402/403/429/5xx, network failure or a malformed answer →
18
+ * fallback. A 429 empties the shared budget for its `retry-after`; a
19
+ * 503/529 trips it as a short circuit breaker; a 403 key limit stops
20
+ * decisions until the UTC month ends. Reported cost is added to the spend
21
+ * ledger. A call aborted AFTER it was sent (deadline or caller) may still be
22
+ * billed, so its reserved estimate is committed; only a failure before send
23
+ * or an error response releases the reservation.
18
24
  * 5. Append one audit line (never containing the key or raw state).
19
25
  *
20
26
  * Provider-specific knowledge (endpoints, wire JSON) lives only in
@@ -32,10 +38,38 @@ import { createDecisionCache, decisionCacheKey, hashCanonical, } from './cache.j
32
38
  import { loadDecideConnection } from './credentials.js';
33
39
  import { createJevProvider, JEV_ADAPTER_VERSION } from './jev-wire.js';
34
40
  import { DecisionProviderError, } from './provider.js';
41
+ import { cachedCapabilities, refreshProviderState } from './provider-state.js';
42
+ import { createFileSpendLedger, DEFAULT_MONTHLY_SPEND_CAP_MICROS, MONTHLY_SPEND_CAP_KEY, } from './spend.js';
35
43
  /** Default per-site deadline for the budget + provider round trip, in ms. */
36
44
  export const DEFAULT_DECISION_TIMEOUT_MS = 300;
45
+ /**
46
+ * Default deadline for a whole {@link decideBatch} call, in ms (T12715).
47
+ *
48
+ * `POST /v1/systemone/batch` answers its items serially (2–5 s per 64
49
+ * requests), so the System One integration spec (§1, batch row) requires an
50
+ * HTTP timeout of at least 30 s. Batch callers are background sites (sweeps,
51
+ * the T12495 harness replay), never a latency-critical write path, so the
52
+ * 300 ms single-decision default would time out every real batch.
53
+ */
54
+ export const DEFAULT_BATCH_DECISION_TIMEOUT_MS = 30_000;
55
+ /**
56
+ * Upper bound on the lazy capability detection {@link decideBatch} runs
57
+ * before its first batch, in ms (T12715). Also bounded by
58
+ * {@link CAPABILITY_DETECTION_DEADLINE_SHARE} of the remaining batch deadline.
59
+ */
60
+ export const CAPABILITY_DETECTION_TIMEOUT_MS = 5_000;
61
+ /**
62
+ * Largest share of the remaining {@link decideBatch} deadline the lazy
63
+ * capability detection may use (T12715), so a slow detection never leaves the
64
+ * batch itself without time to run.
65
+ */
66
+ export const CAPABILITY_DETECTION_DEADLINE_SHARE = 0.4;
67
+ /** Circuit-breaker trip after a 503/529 that carried no `retry-after`, ms. */
68
+ export const OVERLOADED_COOLDOWN_MS = 30_000;
37
69
  let defaultCache = null;
38
70
  let defaultBudget = null;
71
+ let defaultSpend = null;
72
+ let defaultSpendCap = null;
39
73
  function processCache() {
40
74
  defaultCache ??= createDecisionCache();
41
75
  return defaultCache;
@@ -44,6 +78,28 @@ function processBudget() {
44
78
  defaultBudget ??= createFileTokenBucket();
45
79
  return defaultBudget;
46
80
  }
81
+ function processSpend() {
82
+ defaultSpend ??= createFileSpendLedger();
83
+ return defaultSpend;
84
+ }
85
+ /** The configured monthly cap, read once per process; the $1 default when unset or unreadable. */
86
+ function processSpendCap(projectRoot) {
87
+ defaultSpendCap ??= (async () => {
88
+ try {
89
+ const { getConfigValue } = await import('../config/registry.js');
90
+ const value = await getConfigValue(MONTHLY_SPEND_CAP_KEY, {
91
+ projectRoot: projectRoot ?? getProjectRoot(),
92
+ });
93
+ return typeof value === 'number' && Number.isFinite(value) && value >= 0
94
+ ? value
95
+ : DEFAULT_MONTHLY_SPEND_CAP_MICROS;
96
+ }
97
+ catch {
98
+ return DEFAULT_MONTHLY_SPEND_CAP_MICROS;
99
+ }
100
+ })();
101
+ return defaultSpendCap;
102
+ }
47
103
  /**
48
104
  * Reset the process-default cache and budget. Tests only.
49
105
  *
@@ -52,6 +108,8 @@ function processBudget() {
52
108
  export function _resetDecideDefaultsForTest() {
53
109
  defaultCache = null;
54
110
  defaultBudget = null;
111
+ defaultSpend = null;
112
+ defaultSpendCap = null;
55
113
  }
56
114
  function redactJson(value) {
57
115
  if (typeof value === 'string')
@@ -83,6 +141,12 @@ export function redactDecisionState(state) {
83
141
  out[k] = redactJson(v);
84
142
  return out;
85
143
  }
144
+ /** Whether `connection` is usable: a non-blank key and an allowed base URL. */
145
+ function usableConnection(connection) {
146
+ return (connection !== null &&
147
+ connection.apiKey.trim() !== '' &&
148
+ decisionProviderConfigSchema.safeParse({ baseUrl: connection.baseUrl }).success);
149
+ }
86
150
  /** The explicit connection, or — when none was passed — the stored one. */
87
151
  function resolveConnection(opts) {
88
152
  if (opts.connection !== undefined)
@@ -94,11 +158,38 @@ function resolveConnection(opts) {
94
158
  function resolveProvider(opts, connection) {
95
159
  if (opts.provider)
96
160
  return opts.provider;
97
- if (!connection || connection.apiKey.trim() === '')
161
+ if (!usableConnection(connection))
98
162
  return null;
99
- if (!decisionProviderConfigSchema.safeParse({ baseUrl: connection.baseUrl }).success)
100
- return null;
101
- return createJevProvider(connection);
163
+ const capabilities = cachedCapabilities(connection, Date.now(), opts.providerStatePath);
164
+ return createJevProvider(connection, {
165
+ ...(capabilities ? { capabilities } : {}),
166
+ ...(opts.fetch ? { fetch: opts.fetch } : {}),
167
+ });
168
+ }
169
+ /**
170
+ * Lazy capability detection (T12715), run by {@link decideBatch} only: when
171
+ * the cached provider state is absent or stale, detect it before building the
172
+ * provider, within {@link CAPABILITY_DETECTION_DEADLINE_SHARE} of
173
+ * `remainingMs` and at most {@link CAPABILITY_DETECTION_TIMEOUT_MS}.
174
+ * {@link refreshProviderState} limits this to one detection per identity per
175
+ * refresh interval. Never throws; an injected provider is never probed.
176
+ *
177
+ * A single {@link decide} never calls this (see `provider-state.ts`).
178
+ */
179
+ async function detectLazily(opts, connection, remainingMs) {
180
+ if (opts.provider || !usableConnection(connection))
181
+ return;
182
+ const timeout = AbortSignal.timeout(Math.max(0, Math.floor(Math.min(remainingMs * CAPABILITY_DETECTION_DEADLINE_SHARE, CAPABILITY_DETECTION_TIMEOUT_MS))));
183
+ const signal = opts.signal ? AbortSignal.any([timeout, opts.signal]) : timeout;
184
+ try {
185
+ await refreshProviderState(connection, signal, {
186
+ ...(opts.fetch ? { fetch: opts.fetch } : {}),
187
+ ...(opts.providerStatePath !== undefined ? { path: opts.providerStatePath } : {}),
188
+ });
189
+ }
190
+ catch {
191
+ /* detection is best effort: the Jev minimum still answers */
192
+ }
102
193
  }
103
194
  function resolveAudit(opts) {
104
195
  if (opts.audit !== undefined)
@@ -120,17 +211,65 @@ function reasonForError(err) {
120
211
  return err.kind;
121
212
  }
122
213
  }
214
+ /**
215
+ * The gates for a call. The configured cap is read BEFORE the deadline
216
+ * starts (a cold config read is not provider wait), once per process.
217
+ */
218
+ async function resolveGates(opts) {
219
+ const budget = opts.budget === undefined ? processBudget() : opts.budget;
220
+ const spend = opts.spend === undefined ? processSpend() : opts.spend;
221
+ const capMicros = opts.spendCapMicros ??
222
+ (spend ? await processSpendCap(opts.projectRoot) : Number.POSITIVE_INFINITY);
223
+ return { budget, spend, capMicros };
224
+ }
123
225
  /** True when `outcome` is contract-valid and answers every question with the right type. */
124
226
  function coversRequest(outcome, req) {
125
227
  if (!decisionOutcomeSchema.safeParse(outcome).success)
126
228
  return false;
127
229
  return Object.entries(req.questions).every(([name, q]) => outcome.answers[name]?.type === q.type);
128
230
  }
129
- /** Budget + provider call; never rejects. */
130
- async function attempt(provider, budget, req, signal) {
131
- if (budget) {
132
- const grant = await budget.tryAcquire();
231
+ /**
232
+ * The reported cost of a billed outcome whose answer the client rejected
233
+ * (`invalid_response`), so callers that account spend (the T12495
234
+ * benchmark) see it on the fallback outcome. Empty when nothing was reported.
235
+ */
236
+ function billedCost(outcome) {
237
+ return {
238
+ ...(outcome.costMicros !== undefined ? { costMicros: outcome.costMicros } : {}),
239
+ ...(outcome.costUsd !== undefined ? { costUsd: outcome.costUsd } : {}),
240
+ };
241
+ }
242
+ /**
243
+ * Cost reserved per question before a call, micro-dollars. Only a
244
+ * reservation: the provider-reported cost replaces it on commit, so this is
245
+ * never what is recorded (layahost bills 5–15 µ$ per decision, 2026-09).
246
+ */
247
+ export const DECISION_COST_ESTIMATE_MICROS_PER_QUESTION = 15;
248
+ /** Estimated cost of asking `reqs`. */
249
+ function estimateMicros(reqs) {
250
+ return reqs.reduce((n, r) => n + Object.keys(r.questions).length * DECISION_COST_ESTIMATE_MICROS_PER_QUESTION, 0);
251
+ }
252
+ /**
253
+ * Spend cap (check and reserve, atomically) then request budget. A
254
+ * reservation is released again when the budget refuses.
255
+ */
256
+ async function passGates(gates, estimate) {
257
+ let reservation;
258
+ if (gates.spend) {
259
+ const r = await gates.spend.reserve(gates.capMicros, estimate);
260
+ if (r.verdict === 'over_budget')
261
+ return { ok: false, reason: 'budget' };
262
+ if (r.verdict === 'key_limited')
263
+ return { ok: false, reason: 'key_limit_exceeded' };
264
+ if (r.verdict === 'unavailable')
265
+ return { ok: false, reason: 'budget_unavailable' };
266
+ reservation = r.id;
267
+ }
268
+ if (gates.budget) {
269
+ const grant = await gates.budget.tryAcquire();
133
270
  if (!grant.granted) {
271
+ if (reservation !== undefined)
272
+ await gates.spend?.release(reservation);
134
273
  return {
135
274
  ok: false,
136
275
  reason: grant.reason === 'exhausted'
@@ -141,19 +280,83 @@ async function attempt(provider, budget, req, signal) {
141
280
  };
142
281
  }
143
282
  }
144
- if (signal.aborted)
283
+ return { ok: true, ...(reservation !== undefined ? { reservation } : {}) };
284
+ }
285
+ /** Commit the reported cost against a reservation (or record it when there is none). */
286
+ async function settle(gates, reservation, micros) {
287
+ if (!gates.spend)
288
+ return;
289
+ if (reservation !== undefined)
290
+ await gates.spend.commit(reservation, micros);
291
+ else
292
+ await gates.spend.record(micros);
293
+ }
294
+ /** Side effects of a provider error on the shared gates; the fallback reason. */
295
+ async function onProviderError(err, gates) {
296
+ if (err.kind === 'rate_limited' && gates.budget)
297
+ await gates.budget.penalize(err.retryAfterMs);
298
+ if (err.kind === 'overloaded' && gates.budget) {
299
+ await gates.budget.penalize(err.retryAfterMs ?? OVERLOADED_COOLDOWN_MS);
300
+ }
301
+ if (err.kind === 'key_limit_exceeded' && gates.spend)
302
+ await gates.spend.markKeyLimited();
303
+ return reasonForError(err);
304
+ }
305
+ /**
306
+ * Whether a failed call may still have been billed: it was aborted (deadline
307
+ * or caller) AFTER the request was handed to the provider. The server may
308
+ * have answered and billed it, so its reservation is committed at the
309
+ * estimate rather than released. Every other failure is an error response or
310
+ * a transport failure, which the provider does not bill.
311
+ */
312
+ function abortedAfterSend(err, signal) {
313
+ return signal.aborted || (err instanceof DecisionProviderError && err.kind === 'aborted');
314
+ }
315
+ /**
316
+ * Settle a reservation after a failed call: commit the estimate when the
317
+ * call was aborted after send ({@link abortedAfterSend}), else release it.
318
+ */
319
+ async function settleFailure(gates, reservation, estimate, err, signal) {
320
+ if (reservation === undefined || !gates.spend)
321
+ return;
322
+ if (abortedAfterSend(err, signal))
323
+ await gates.spend.commit(reservation, estimate);
324
+ else
325
+ await gates.spend.release(reservation);
326
+ }
327
+ /** Micro-dollars an outcome reported, preferring the exact integer. */
328
+ function reportedMicros(outcome) {
329
+ if (outcome.costMicros !== undefined)
330
+ return outcome.costMicros;
331
+ return outcome.costUsd !== undefined ? Math.round(outcome.costUsd * 1e6) : 0;
332
+ }
333
+ /** Spend gate + budget + provider call; never rejects. */
334
+ async function attempt(provider, gates, req, signal) {
335
+ const estimate = estimateMicros([req]);
336
+ const gate = await passGates(gates, estimate);
337
+ if (!gate.ok)
338
+ return { ok: false, reason: gate.reason };
339
+ if (signal.aborted) {
340
+ // Pre-send: nothing left the machine, so nothing can be billed.
341
+ if (gate.reservation !== undefined)
342
+ await gates.spend?.release(gate.reservation);
145
343
  return { ok: false, reason: 'timeout' };
344
+ }
146
345
  try {
147
346
  const outcome = await provider.decide(req, signal);
148
- if (!coversRequest(outcome, req))
149
- return { ok: false, reason: 'invalid_response' };
347
+ // A 2xx is billed even when its body is unusable.
348
+ await settle(gates, gate.reservation, reportedMicros(outcome));
349
+ if (!coversRequest(outcome, req)) {
350
+ return { ok: false, reason: 'invalid_response', billed: billedCost(outcome) };
351
+ }
150
352
  return { ok: true, outcome };
151
353
  }
152
354
  catch (err) {
355
+ // Failed requests are not billed (provider docs), but one aborted after
356
+ // send may have been answered and billed: charge its estimate.
357
+ await settleFailure(gates, gate.reservation, estimate, err, signal);
153
358
  if (err instanceof DecisionProviderError) {
154
- if (err.kind === 'rate_limited' && budget)
155
- await budget.penalize(err.retryAfterMs);
156
- return { ok: false, reason: reasonForError(err) };
359
+ return { ok: false, reason: await onProviderError(err, gates) };
157
360
  }
158
361
  return { ok: false, reason: signal.aborted ? 'timeout' : 'provider_error' };
159
362
  }
@@ -163,7 +366,7 @@ async function attempt(provider, budget, req, signal) {
163
366
  * deadline or the caller's signal fires, even if the provider ignores its
164
367
  * abort signal.
165
368
  */
166
- function withDeadline(run, timeoutMs, callerSignal) {
369
+ function withDeadline(run, timeoutMs, callerSignal, timedOut, crashed) {
167
370
  const controller = new AbortController();
168
371
  return new Promise((resolve) => {
169
372
  let settled = false;
@@ -177,7 +380,7 @@ function withDeadline(run, timeoutMs, callerSignal) {
177
380
  };
178
381
  const onTimeout = () => {
179
382
  controller.abort();
180
- finish({ ok: false, reason: 'timeout' });
383
+ finish(timedOut);
181
384
  };
182
385
  const onCallerAbort = () => onTimeout();
183
386
  const timer = setTimeout(onTimeout, Math.max(0, timeoutMs));
@@ -186,7 +389,7 @@ function withDeadline(run, timeoutMs, callerSignal) {
186
389
  return;
187
390
  }
188
391
  callerSignal?.addEventListener('abort', onCallerAbort, { once: true });
189
- run(controller.signal).then(finish, () => finish({ ok: false, reason: 'provider_error' }));
392
+ run(controller.signal).then(finish, () => finish(crashed));
190
393
  });
191
394
  }
192
395
  /**
@@ -213,10 +416,29 @@ function withDeadline(run, timeoutMs, callerSignal) {
213
416
  * ```
214
417
  */
215
418
  export async function decide(siteId, req, fallback, opts = {}) {
216
- const started = performance.now();
217
- const elapsed = () => Math.max(0, performance.now() - started);
218
419
  const audit = resolveAudit(opts);
219
420
  const connection = resolveConnection(opts);
421
+ const item = prepare(siteId, req, fallback, opts, audit, connection);
422
+ const provider = resolveProvider(opts, connection);
423
+ if (!provider)
424
+ return item.useFallback('unconfigured');
425
+ if (!item.valid)
426
+ return item.useFallback('invalid_request');
427
+ const cache = opts.cache === undefined ? processCache() : opts.cache;
428
+ const hit = cache?.get(item.key);
429
+ if (hit)
430
+ return item.finish({ ...hit, source: 'cache', latencyMs: item.elapsed() });
431
+ const gates = await resolveGates(opts);
432
+ const result = await withDeadline((signal) => attempt(provider, gates, item.sent, signal), opts.timeoutMs ?? DEFAULT_DECISION_TIMEOUT_MS, opts.signal, { ok: false, reason: 'timeout' }, { ok: false, reason: 'provider_error' });
433
+ if (!result.ok)
434
+ return item.useFallback(result.reason, result.billed);
435
+ cache?.set(item.key, result.outcome);
436
+ return item.finish({ ...result.outcome, source: 'provider', latencyMs: item.elapsed() });
437
+ }
438
+ /** Redact, validate, key and wire the audit for one request. */
439
+ function prepare(siteId, req, fallback, opts, audit, connection) {
440
+ const started = performance.now();
441
+ const elapsed = () => Math.max(0, performance.now() - started);
220
442
  const defaultModel = req.model === undefined ? connection?.model : undefined;
221
443
  const sent = {
222
444
  ...req,
@@ -237,26 +459,193 @@ export async function decide(siteId, req, fallback, opts = {}) {
237
459
  ...(reason ? { fallbackReason: reason } : {}),
238
460
  latencyMs: outcome.latencyMs,
239
461
  ...(outcome.costUsd !== undefined ? { costUsd: outcome.costUsd } : {}),
462
+ ...(outcome.costMicros !== undefined ? { costMicros: outcome.costMicros } : {}),
463
+ ...(outcome.balanceMicros !== undefined ? { balanceMicros: outcome.balanceMicros } : {}),
464
+ ...(outcome.checkpoint !== undefined ? { checkpoint: outcome.checkpoint } : {}),
240
465
  ...(sent.model !== undefined ? { model: sent.model } : {}),
241
466
  });
242
467
  return outcome;
243
468
  };
244
- const useFallback = (reason) => finish({ answers: fallback(req), source: 'fallback', latencyMs: elapsed() }, reason);
245
- const provider = resolveProvider(opts, connection);
246
- if (!provider)
247
- return useFallback('unconfigured');
248
- if (!decisionRequestSchema.safeParse(sent).success)
249
- return useFallback('invalid_request');
469
+ return {
470
+ sent,
471
+ valid: decisionRequestSchema.safeParse(sent).success,
472
+ key: decisionCacheKey(opts.adapterVersion ?? JEV_ADAPTER_VERSION, sent),
473
+ elapsed,
474
+ finish,
475
+ useFallback: (reason, billed) => finish({ answers: fallback(req), source: 'fallback', latencyMs: elapsed(), ...(billed ?? {}) }, reason),
476
+ };
477
+ }
478
+ /**
479
+ * Ask several typed decisions at call site `siteId` under ONE deadline.
480
+ *
481
+ * When the provider reports a batch capability (`capabilities().batch`) and
482
+ * the entries fit its limits, the uncached ones go out as a single batch call
483
+ * (one spend check, one budget token). Otherwise it degrades to sequential
484
+ * {@link decide} calls that share the remaining deadline; entries the
485
+ * deadline cannot reach fall back with reason `timeout`. Never rejects; each
486
+ * entry is audited like a single decision.
487
+ *
488
+ * The whole-batch deadline defaults to {@link DEFAULT_BATCH_DECISION_TIMEOUT_MS}
489
+ * (30 s), not the 300 ms single-decision default. In the sequential
490
+ * degradation each call is additionally capped at
491
+ * {@link DEFAULT_DECISION_TIMEOUT_MS} unless the caller set `timeoutMs`, so a
492
+ * slow provider without the batch capability cannot hold one entry for 30 s.
493
+ *
494
+ * @param siteId - Stable call-site identifier.
495
+ * @param entries - Requests with their heuristics.
496
+ * @param opts - Same wiring as {@link decide}; `timeoutMs` covers the whole batch
497
+ * (default {@link DEFAULT_BATCH_DECISION_TIMEOUT_MS}).
498
+ * @returns One outcome per entry, in order.
499
+ */
500
+ export async function decideBatch(siteId, entries, opts = {}) {
501
+ if (entries.length === 0)
502
+ return [];
503
+ const started = performance.now();
504
+ const deadlineMs = opts.timeoutMs ?? DEFAULT_BATCH_DECISION_TIMEOUT_MS;
505
+ const remaining = () => Math.max(0, deadlineMs - (performance.now() - started));
506
+ const connection = resolveConnection(opts);
507
+ /** One decision per entry, each under its own cap (the sequential degradation). */
508
+ const sequential = async (indices, out) => {
509
+ for (const i of indices) {
510
+ const entry = entries[i];
511
+ if (entry === undefined)
512
+ continue;
513
+ const timeoutMs = opts.timeoutMs === undefined
514
+ ? Math.min(remaining(), DEFAULT_DECISION_TIMEOUT_MS)
515
+ : remaining();
516
+ // model-site-allowed: plumbing — the caller's siteId is checked at its decideBatch call (gate 35)
517
+ out[i] = await decide(siteId, entry.req, entry.fallback, { ...opts, timeoutMs });
518
+ }
519
+ };
520
+ if (!opts.provider && !usableConnection(connection)) {
521
+ // Unconfigured: every entry falls back (decide() audits each one).
522
+ const out = [];
523
+ await sequential(entries.map((_, i) => i), out);
524
+ return out.flatMap((o) => (o ? [o] : []));
525
+ }
526
+ // Cache first: a batch answered entirely from the cache never detects.
527
+ const audit = resolveAudit(opts);
250
528
  const cache = opts.cache === undefined ? processCache() : opts.cache;
251
- const key = decisionCacheKey(opts.adapterVersion ?? JEV_ADAPTER_VERSION, sent);
252
- const hit = cache?.get(key);
253
- if (hit)
254
- return finish({ ...hit, source: 'cache', latencyMs: elapsed() });
255
- const budget = opts.budget === undefined ? processBudget() : opts.budget;
256
- const result = await withDeadline((signal) => attempt(provider, budget, sent, signal), opts.timeoutMs ?? DEFAULT_DECISION_TIMEOUT_MS, opts.signal);
257
- if (!result.ok)
258
- return useFallback(result.reason);
259
- cache?.set(key, result.outcome);
260
- return finish({ ...result.outcome, source: 'provider', latencyMs: elapsed() });
529
+ const items = entries.map((e) => prepare(siteId, e.req, e.fallback, opts, audit, connection));
530
+ const out = items.map((item) => {
531
+ if (!item.valid)
532
+ return item.useFallback('invalid_request');
533
+ const hit = cache?.get(item.key);
534
+ return hit ? item.finish({ ...hit, source: 'cache', latencyMs: item.elapsed() }) : undefined;
535
+ });
536
+ const pending = items.flatMap((item, i) => (out[i] === undefined ? [{ item, i }] : []));
537
+ if (pending.length === 0)
538
+ return items.map((item, i) => out[i] ?? item.useFallback('provider_error'));
539
+ // Batch is the non-latency-critical path, so it may detect capabilities
540
+ // lazily before its first call, within a share of the remaining deadline.
541
+ await detectLazily(opts, connection, remaining());
542
+ const provider = resolveProvider(opts, connection);
543
+ const limits = provider?.capabilities?.().batch;
544
+ const questions = pending.reduce((n, p) => n + Object.keys(p.item.sent.questions).length, 0);
545
+ const batchable = provider !== null &&
546
+ provider.decideBatch !== undefined &&
547
+ limits !== undefined &&
548
+ pending.length > 1 &&
549
+ pending.length <= limits.maxRequests &&
550
+ questions <= limits.maxQuestions;
551
+ if (!batchable || !provider?.decideBatch) {
552
+ await sequential(pending.map((p) => p.i), out);
553
+ }
554
+ else {
555
+ const gates = await resolveGates(opts);
556
+ const batch = provider.decideBatch.bind(provider);
557
+ const result = await withDeadline(async (signal) => {
558
+ const sent = pending.map((p) => p.item.sent);
559
+ const estimate = estimateMicros(sent);
560
+ const gate = await passGates(gates, estimate);
561
+ if (!gate.ok)
562
+ return { ok: false, reason: gate.reason };
563
+ if (signal.aborted) {
564
+ if (gate.reservation !== undefined)
565
+ await gates.spend?.release(gate.reservation);
566
+ return { ok: false, reason: 'timeout' };
567
+ }
568
+ try {
569
+ const answered = await batch(sent, signal);
570
+ const billed = answered.reduce((n, a) => n + (a.ok ? reportedMicros(a.outcome) : 0), 0);
571
+ await settle(gates, gate.reservation, billed);
572
+ return { ok: true, items: answered };
573
+ }
574
+ catch (err) {
575
+ await settleFailure(gates, gate.reservation, estimate, err, signal);
576
+ if (err instanceof DecisionProviderError) {
577
+ return { ok: false, reason: await onProviderError(err, gates) };
578
+ }
579
+ return { ok: false, reason: signal.aborted ? 'timeout' : 'provider_error' };
580
+ }
581
+ }, remaining(), opts.signal, { ok: false, reason: 'timeout' }, { ok: false, reason: 'provider_error' });
582
+ if (result.ok)
583
+ await applyBatchItemErrors(result.items, gates);
584
+ for (const [k, { item, i }] of pending.entries()) {
585
+ if (!result.ok) {
586
+ out[i] = item.useFallback(result.reason);
587
+ continue;
588
+ }
589
+ const answered = result.items[k];
590
+ if (answered?.ok && coversRequest(answered.outcome, item.sent)) {
591
+ cache?.set(item.key, answered.outcome);
592
+ out[i] = item.finish({
593
+ ...answered.outcome,
594
+ source: 'provider',
595
+ latencyMs: item.elapsed(),
596
+ });
597
+ }
598
+ else {
599
+ out[i] =
600
+ answered && !answered.ok
601
+ ? item.useFallback(batchItemReason(answered.errorKind))
602
+ : item.useFallback('invalid_response', answered?.ok ? billedCost(answered.outcome) : undefined);
603
+ }
604
+ }
605
+ }
606
+ return items.map((item, i) => out[i] ?? item.useFallback('provider_error'));
607
+ }
608
+ /** Fallback reason for a failed batch item. */
609
+ function batchItemReason(kind) {
610
+ switch (kind) {
611
+ case 'unauthorized':
612
+ case 'insufficient_credits':
613
+ case 'key_limit_exceeded':
614
+ case 'rate_limited':
615
+ case 'overloaded':
616
+ case 'server_error':
617
+ case 'invalid_request':
618
+ case 'invalid_response':
619
+ return kind;
620
+ default:
621
+ return 'provider_error';
622
+ }
623
+ }
624
+ /** Batch item error kinds with a side effect on the shared gates. */
625
+ const GATE_ERROR_KINDS = new Set(['key_limit_exceeded', 'rate_limited', 'overloaded']);
626
+ /** The gate-affecting provider error kind named by a batch item, if any. */
627
+ function gateErrorKind(kind) {
628
+ for (const k of GATE_ERROR_KINDS)
629
+ if (k === kind)
630
+ return k;
631
+ return null;
632
+ }
633
+ /**
634
+ * Give failed batch items the same gate side effects as a failed single
635
+ * call (key-limit stop, rate-limit and overload back-off), once per kind.
636
+ */
637
+ async function applyBatchItemErrors(items, gates) {
638
+ const seen = new Set();
639
+ for (const item of items) {
640
+ if (item.ok)
641
+ continue;
642
+ const kind = gateErrorKind(item.errorKind);
643
+ if (kind === null || seen.has(kind))
644
+ continue;
645
+ seen.add(kind);
646
+ await onProviderError(new DecisionProviderError(kind, `batch item failed: ${kind}`, {
647
+ ...(item.status !== undefined ? { status: item.status } : {}),
648
+ }), gates);
649
+ }
261
650
  }
262
651
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/decide/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/decide/client.ts"],"names":[],"mappings":"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"}