@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
@@ -1,37 +1,150 @@
1
1
  /**
2
- * scoreTask — pure-functional task priority scorer.
2
+ * scoreTask — THE task ranker (T12661, tiered per council verdict D11161 / T12691).
3
3
  *
4
- * Computes a numeric score for a task given its attributes and project context.
5
4
  * Pure functional — no I/O, no DB access, no async.
6
5
  *
6
+ * `cleo next`, the briefing's `nextTasks` and both `cleo analyze` paths rank
7
+ * through this module. The order is LEXICOGRAPHIC, never an additive sum:
8
+ *
9
+ * 1. **Priority band** — the owner's priority: critical > high > medium > low.
10
+ * 2. **Severity** — attested severity: P0 > P1 > P2 > P3 > unknown. An unset
11
+ * severity is `unknown`; nothing is imputed (not even for a bug).
12
+ * 3. **Bounded tiebreak** — computed graph facts: dependencies ready (+10),
13
+ * phase alignment (+20), leverage (+5 per open dependent, capped at +20),
14
+ * anti-starvation age (+1 per week after the first, capped at +10).
15
+ * 4. **createdAt** — older first (parsed and normalised to UTC).
16
+ * 5. **id**.
17
+ *
18
+ * Computed signals therefore never cross a band: a plain ready critical task
19
+ * always outranks a low-priority P0 bug carrying every bonus. The additive
20
+ * scorer this replaces let that bug win 115 to 110. BRAIN success/failure
21
+ * patterns are informational factors only; they are not part of the order.
22
+ *
7
23
  * @arch SDK Tool (Category B) — pure, no side effects, contracts-typed
8
24
  * @task T10068
25
+ * @task T12661
26
+ * @task T12691
9
27
  * @epic T9835
10
28
  */
11
- import type { ScoreTaskContext, ScoreTaskInput, ScoreTaskResult } from '@cleocode/contracts';
29
+ import type { ScoreFactor, ScoreTaskContext, ScoreTaskInput, ScoreTaskKey, ScoreTaskResult, TaskSeverity } from '@cleocode/contracts';
30
+ /** Tier 1 — owner priority band rank (higher first). */
31
+ export declare const PRIORITY_BAND: Readonly<Record<string, number>>;
32
+ /** Tier 2 — attested severity rank (higher first); `unknown` is 0. */
33
+ export declare const SEVERITY_RANK: Readonly<Record<TaskSeverity, number>>;
34
+ /** Tier 3 — bonus when every dependency is satisfied. */
35
+ export declare const DEPS_READY_SCORE = 10;
36
+ /** Tier 3 — bonus when the task's phase matches the current phase. */
37
+ export declare const PHASE_ALIGNMENT_SCORE = 20;
38
+ /** Tier 3 — bonus per open task this task unblocks. */
39
+ export declare const LEVERAGE_PER_DEPENDENT = 5;
40
+ /** Tier 3 — cap on the leverage bonus. */
41
+ export declare const MAX_LEVERAGE_SCORE = 20;
42
+ /** Tier 3 — cap on the anti-starvation age bonus (+1 per week after the first). */
43
+ export declare const MAX_AGE_SCORE = 10;
12
44
  /**
13
- * Compute a priority score for a single task.
45
+ * Parse a task timestamp to epoch milliseconds, normalised to UTC.
14
46
  *
15
- * Scoring formula:
16
- * - **Priority** (+25/+50/+75/+100 depending on level)
17
- * - **Phase alignment** (+20 when task phase matches `ctx.currentPhase`)
18
- * - **Dependency readiness** (+10 when all deps are done/cancelled)
19
- * - **Age bonus** (+1 per week over 7 days, capped at +15)
20
- * - **Brain success pattern** (+10 for first matching success pattern)
21
- * - **Brain failure pattern** (-5 for first matching failure pattern)
47
+ * Stores hold both ISO-8601 with a zone (`2026-09-01T10:00:00Z`) and SQLite's
48
+ * zone-less `YYYY-MM-DD HH:MM:SS`. `Date.parse` reads the zone-less form as
49
+ * LOCAL time, so the same instant scored and sorted differently by machine
50
+ * (T12661 review). A timestamp without a zone is taken as UTC.
51
+ *
52
+ * @param value - Timestamp text.
53
+ * @returns Epoch milliseconds, or `NaN` when unparseable.
54
+ */
55
+ export declare function parseTimestampMs(value: string | null | undefined): number;
56
+ /**
57
+ * Score a single task: its lexicographic key, every factor tagged with its
58
+ * comparator tier, and the key folded into one number that sorts identically.
22
59
  *
23
60
  * @param task - Task to score
24
- * @param ctx - Scoring context (phase, dep statuses, patterns)
25
- * @returns Score and individual factors
61
+ * @param ctx - Scoring context (phase, dep statuses, leverage, `nowMs`, patterns)
62
+ * @returns Score, key and factors
26
63
  *
27
64
  * @example
28
65
  * ```typescript
29
- * const result = scoreTask(
30
- * { id: 'T1', title: 'Auth', priority: 'high', phase: 'v2', depends: ['T0'] },
31
- * { currentPhase: 'v2', taskStatuses: new Map([['T0', 'done']]) },
32
- * );
33
- * // result.score === 75 (priority) + 20 (phase) + 10 (deps) = 105
66
+ * scoreTask({ id: 'T1', title: 'Auth', priority: 'high', kind: 'bug' }, {}).key;
67
+ * // { band: 3, severity: 0, tiebreak: 10 } — severity unknown, deps ready
34
68
  * ```
35
69
  */
36
70
  export declare function scoreTask(task: ScoreTaskInput, ctx: ScoreTaskContext): ScoreTaskResult;
71
+ /**
72
+ * Render one factor as an `--explain` line naming its comparator tier.
73
+ *
74
+ * @param factor - Scored factor.
75
+ * @returns e.g. `tier 1 band: priority high`, `tier 3 depsReady: all dependencies satisfied (+10)`,
76
+ * or `info brainSuccess: … (not in the order)`.
77
+ */
78
+ export declare function formatScoreFactor(factor: ScoreFactor): string;
79
+ /**
80
+ * Count, for every task id, the OPEN tasks that depend on it — the leverage
81
+ * input of {@link scoreTask}. Done, archived and cancelled dependents are not
82
+ * work this task unblocks.
83
+ *
84
+ * @param tasks - Tasks with `depends` and `status`.
85
+ * @returns Map of task id to number of open dependents.
86
+ */
87
+ export declare function computeLeverage(tasks: ReadonlyArray<{
88
+ depends?: string[];
89
+ status?: string;
90
+ }>): Map<string, number>;
91
+ /** A task with its score, key and factors, as {@link rankTasks} returns it. */
92
+ export interface RankedTask<T extends ScoreTaskInput> {
93
+ /** The task. */
94
+ task: T;
95
+ /** The key folded into one sortable number. */
96
+ score: number;
97
+ /** Every factor, tagged with its comparator tier. */
98
+ factors: ScoreFactor[];
99
+ /** The lexicographic key. */
100
+ key?: ScoreTaskKey;
101
+ }
102
+ /**
103
+ * Order tasks by the tiered key: band, severity, tiebreak (all higher first),
104
+ * then older `createdAt` (parsed, UTC), then id — deterministic, so every
105
+ * ranker returns the same order for the same input.
106
+ *
107
+ * @param tasks - Candidate tasks.
108
+ * @param ctx - Shared scoring context.
109
+ * @returns Ranked tasks.
110
+ */
111
+ export declare function rankTasks<T extends ScoreTaskInput>(tasks: readonly T[], ctx: ScoreTaskContext): RankedTask<T>[];
112
+ /**
113
+ * Build the {@link ScoreTaskContext} every ordering surface shares (T12692):
114
+ * dependency statuses from the canonical readiness lookup, leverage over the
115
+ * population, the ranking phase and one clock instant. `cleo next`,
116
+ * `cleo orchestrate ready`, the focus ready wave and the wave listing all
117
+ * build their context here, so the same tasks rank the same way everywhere.
118
+ *
119
+ * @param population - Tasks whose open dependents count as leverage.
120
+ * @param dependencyLookup - Canonical dependency records (archived included).
121
+ * @param opts - Ranking phase and optional clock.
122
+ * @returns The scoring context.
123
+ * @task T12692
124
+ */
125
+ export declare function buildRankingContext(population: Iterable<{
126
+ depends?: string[];
127
+ status?: string;
128
+ }>, dependencyLookup: ReadonlyMap<string, {
129
+ id: string;
130
+ status: string;
131
+ }>, opts: {
132
+ currentPhase: string | null;
133
+ nowMs?: number;
134
+ }): ScoreTaskContext & {
135
+ leverage: ReadonlyMap<string, number>;
136
+ };
137
+ /**
138
+ * Reorder items by THE comparator ({@link rankTasks}, D11161): band,
139
+ * severity, bounded tiebreak, createdAt, id. Items whose task record is not
140
+ * in `tasksById` keep their input order after every ranked item.
141
+ *
142
+ * @param items - Items to order (not mutated).
143
+ * @param idOf - Task id of an item.
144
+ * @param tasksById - Task records to rank the items by.
145
+ * @param ctx - Shared scoring context (see {@link buildRankingContext}).
146
+ * @returns A new array in ranked order.
147
+ * @task T12692
148
+ */
149
+ export declare function orderByRanking<T>(items: readonly T[], idOf: (item: T) => string, tasksById: ReadonlyMap<string, ScoreTaskInput>, ctx: ScoreTaskContext): T[];
37
150
  //# sourceMappingURL=score-task-priority.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"score-task-priority.d.ts","sourceRoot":"","sources":["../../src/task-tools/score-task-priority.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAuB7B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,gBAAgB,GAAG,eAAe,CAyEtF"}
1
+ {"version":3,"file":"score-task-priority.d.ts","sourceRoot":"","sources":["../../src/task-tools/score-task-priority.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACb,MAAM,qBAAqB,CAAC;AAG7B,wDAAwD;AACxD,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK1D,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAKhE,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,uDAAuD;AACvD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,mFAAmF;AACnF,eAAO,MAAM,aAAa,KAAK,CAAC;AAMhC;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAMzE;AAeD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,gBAAgB,GAAG,eAAe,CA+EtF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAM7D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5D,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOrB;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,cAAc;IAClD,gBAAgB;IAChB,IAAI,EAAE,CAAC,CAAC;IACR,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,6BAA6B;IAC7B,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,cAAc,EAChD,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,GAAG,EAAE,gBAAgB,GACpB,UAAU,CAAC,CAAC,CAAC,EAAE,CAqBjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,QAAQ,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAC7D,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EACrE,IAAI,EAAE;IAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,gBAAgB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAS9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EACzB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC9C,GAAG,EAAE,gBAAgB,GACpB,CAAC,EAAE,CAiBL"}
@@ -1,118 +1,281 @@
1
1
  /**
2
- * scoreTask — pure-functional task priority scorer.
2
+ * scoreTask — THE task ranker (T12661, tiered per council verdict D11161 / T12691).
3
3
  *
4
- * Computes a numeric score for a task given its attributes and project context.
5
4
  * Pure functional — no I/O, no DB access, no async.
6
5
  *
6
+ * `cleo next`, the briefing's `nextTasks` and both `cleo analyze` paths rank
7
+ * through this module. The order is LEXICOGRAPHIC, never an additive sum:
8
+ *
9
+ * 1. **Priority band** — the owner's priority: critical > high > medium > low.
10
+ * 2. **Severity** — attested severity: P0 > P1 > P2 > P3 > unknown. An unset
11
+ * severity is `unknown`; nothing is imputed (not even for a bug).
12
+ * 3. **Bounded tiebreak** — computed graph facts: dependencies ready (+10),
13
+ * phase alignment (+20), leverage (+5 per open dependent, capped at +20),
14
+ * anti-starvation age (+1 per week after the first, capped at +10).
15
+ * 4. **createdAt** — older first (parsed and normalised to UTC).
16
+ * 5. **id**.
17
+ *
18
+ * Computed signals therefore never cross a band: a plain ready critical task
19
+ * always outranks a low-priority P0 bug carrying every bonus. The additive
20
+ * scorer this replaces let that bug win 115 to 110. BRAIN success/failure
21
+ * patterns are informational factors only; they are not part of the order.
22
+ *
7
23
  * @arch SDK Tool (Category B) — pure, no side effects, contracts-typed
8
24
  * @task T10068
25
+ * @task T12661
26
+ * @task T12691
9
27
  * @epic T9835
10
28
  */
11
- const PRIORITY_SCORE = {
12
- critical: 100,
13
- high: 75,
14
- medium: 50,
15
- low: 25,
29
+ import { isReadinessDependencySatisfied } from '../tasks/dependency-check.js';
30
+ /** Tier 1 — owner priority band rank (higher first). */
31
+ export const PRIORITY_BAND = {
32
+ critical: 4,
33
+ high: 3,
34
+ medium: 2,
35
+ low: 1,
16
36
  };
17
- const SATISFIED_STATUSES = new Set(['done', 'cancelled']);
37
+ /** Tier 2 — attested severity rank (higher first); `unknown` is 0. */
38
+ export const SEVERITY_RANK = {
39
+ P0: 4,
40
+ P1: 3,
41
+ P2: 2,
42
+ P3: 1,
43
+ };
44
+ /** Tier 3 — bonus when every dependency is satisfied. */
45
+ export const DEPS_READY_SCORE = 10;
46
+ /** Tier 3 — bonus when the task's phase matches the current phase. */
47
+ export const PHASE_ALIGNMENT_SCORE = 20;
48
+ /** Tier 3 — bonus per open task this task unblocks. */
49
+ export const LEVERAGE_PER_DEPENDENT = 5;
50
+ /** Tier 3 — cap on the leverage bonus. */
51
+ export const MAX_LEVERAGE_SCORE = 20;
52
+ /** Tier 3 — cap on the anti-starvation age bonus (+1 per week after the first). */
53
+ export const MAX_AGE_SCORE = 10;
54
+ /** Weights that fold the key into one sortable number (tiebreak stays below 1000). */
55
+ const BAND_WEIGHT = 10000;
56
+ const SEVERITY_WEIGHT = 1000;
57
+ /**
58
+ * Parse a task timestamp to epoch milliseconds, normalised to UTC.
59
+ *
60
+ * Stores hold both ISO-8601 with a zone (`2026-09-01T10:00:00Z`) and SQLite's
61
+ * zone-less `YYYY-MM-DD HH:MM:SS`. `Date.parse` reads the zone-less form as
62
+ * LOCAL time, so the same instant scored and sorted differently by machine
63
+ * (T12661 review). A timestamp without a zone is taken as UTC.
64
+ *
65
+ * @param value - Timestamp text.
66
+ * @returns Epoch milliseconds, or `NaN` when unparseable.
67
+ */
68
+ export function parseTimestampMs(value) {
69
+ if (!value)
70
+ return Number.NaN;
71
+ const text = value.trim();
72
+ const hasZone = /(?:[zZ]|[+-]\d{2}:?\d{2})$/.test(text);
73
+ if (hasZone || !/\d{2}:\d{2}/.test(text))
74
+ return Date.parse(text);
75
+ return Date.parse(`${text.replace(' ', 'T')}Z`);
76
+ }
77
+ /**
78
+ * Whether every dependency of a task is satisfied, under the same readiness
79
+ * policy as `depsReady` (cancelled work still blocks).
80
+ */
18
81
  function areDepsReady(depends, taskStatuses) {
19
82
  if (!depends?.length)
20
83
  return true;
21
84
  if (!taskStatuses)
22
85
  return false;
23
- return depends.every((depId) => {
24
- const status = taskStatuses.get(depId);
25
- return status !== undefined && SATISFIED_STATUSES.has(status);
26
- });
86
+ return depends.every((depId) => isReadinessDependencySatisfied(taskStatuses.get(depId)));
27
87
  }
28
88
  /**
29
- * Compute a priority score for a single task.
30
- *
31
- * Scoring formula:
32
- * - **Priority** (+25/+50/+75/+100 depending on level)
33
- * - **Phase alignment** (+20 when task phase matches `ctx.currentPhase`)
34
- * - **Dependency readiness** (+10 when all deps are done/cancelled)
35
- * - **Age bonus** (+1 per week over 7 days, capped at +15)
36
- * - **Brain success pattern** (+10 for first matching success pattern)
37
- * - **Brain failure pattern** (-5 for first matching failure pattern)
89
+ * Score a single task: its lexicographic key, every factor tagged with its
90
+ * comparator tier, and the key folded into one number that sorts identically.
38
91
  *
39
92
  * @param task - Task to score
40
- * @param ctx - Scoring context (phase, dep statuses, patterns)
41
- * @returns Score and individual factors
93
+ * @param ctx - Scoring context (phase, dep statuses, leverage, `nowMs`, patterns)
94
+ * @returns Score, key and factors
42
95
  *
43
96
  * @example
44
97
  * ```typescript
45
- * const result = scoreTask(
46
- * { id: 'T1', title: 'Auth', priority: 'high', phase: 'v2', depends: ['T0'] },
47
- * { currentPhase: 'v2', taskStatuses: new Map([['T0', 'done']]) },
48
- * );
49
- * // result.score === 75 (priority) + 20 (phase) + 10 (deps) = 105
98
+ * scoreTask({ id: 'T1', title: 'Auth', priority: 'high', kind: 'bug' }, {}).key;
99
+ * // { band: 3, severity: 0, tiebreak: 10 } — severity unknown, deps ready
50
100
  * ```
51
101
  */
52
102
  export function scoreTask(task, ctx) {
53
103
  const factors = [];
54
- let score = 0;
55
- // Priority
56
- const priorityDelta = PRIORITY_SCORE[task.priority] ?? 50;
57
- score += priorityDelta;
58
- factors.push({ name: 'priority', delta: priorityDelta, detail: `${task.priority}` });
59
- // Phase alignment
104
+ const priority = task.priority ?? 'medium';
105
+ // Own-property lookups only: an unvalidated value such as `toString` must
106
+ // fall back, never yield a prototype member (which would fold to NaN).
107
+ const band = Object.hasOwn(PRIORITY_BAND, priority)
108
+ ? PRIORITY_BAND[priority]
109
+ : PRIORITY_BAND['medium'];
110
+ factors.push({
111
+ name: 'band',
112
+ delta: band * BAND_WEIGHT,
113
+ detail: `priority ${priority}`,
114
+ tier: 1,
115
+ });
116
+ const severity = task.severity && Object.hasOwn(SEVERITY_RANK, task.severity) ? SEVERITY_RANK[task.severity] : 0;
117
+ factors.push({
118
+ name: 'severity',
119
+ delta: severity * SEVERITY_WEIGHT,
120
+ detail: task.severity ?? 'unknown (not set)',
121
+ tier: 2,
122
+ });
123
+ let tiebreak = 0;
124
+ const bonus = (name, delta, detail) => {
125
+ tiebreak += delta;
126
+ factors.push({ name, delta, detail, tier: 3 });
127
+ };
128
+ if (areDepsReady(task.depends, ctx.taskStatuses)) {
129
+ bonus('depsReady', DEPS_READY_SCORE, 'all dependencies satisfied');
130
+ }
60
131
  if (ctx.currentPhase && task.phase === ctx.currentPhase) {
61
- score += 20;
62
- factors.push({
63
- name: 'phaseAlignment',
64
- delta: 20,
65
- detail: `matches current phase "${ctx.currentPhase}"`,
66
- });
132
+ bonus('phaseAlignment', PHASE_ALIGNMENT_SCORE, `matches current phase "${ctx.currentPhase}"`);
67
133
  }
68
- // Dependency readiness
69
- if (areDepsReady(task.depends, ctx.taskStatuses)) {
70
- score += 10;
71
- factors.push({ name: 'depsReady', delta: 10, detail: 'all dependencies satisfied' });
134
+ const dependents = ctx.leverage?.get(task.id) ?? 0;
135
+ if (dependents > 0) {
136
+ bonus('leverage', Math.min(MAX_LEVERAGE_SCORE, dependents * LEVERAGE_PER_DEPENDENT), `unblocks ${dependents} open task(s) (capped at +${MAX_LEVERAGE_SCORE})`);
72
137
  }
73
- // Age bonus
74
138
  if (task.createdAt) {
75
139
  const nowMs = ctx.nowMs ?? Date.now();
76
- const ageMs = nowMs - new Date(task.createdAt).getTime();
77
- const ageDays = ageMs / (1000 * 60 * 60 * 24);
140
+ const ageDays = (nowMs - parseTimestampMs(task.createdAt)) / (1000 * 60 * 60 * 24);
78
141
  if (ageDays > 7) {
79
- const ageBonus = Math.min(15, Math.floor(ageDays / 7));
80
- score += ageBonus;
81
- factors.push({
82
- name: 'age',
83
- delta: ageBonus,
84
- detail: `${Math.floor(ageDays)} days old`,
85
- });
142
+ bonus('age', Math.min(MAX_AGE_SCORE, Math.floor(ageDays / 7)), `anti-starvation: ${Math.floor(ageDays)} days old (capped at +${MAX_AGE_SCORE})`);
86
143
  }
87
144
  }
88
- // Brain pattern scoring
145
+ // BRAIN patterns: informational only — not part of the order (D11161).
89
146
  if (ctx.successPatterns?.length || ctx.failurePatterns?.length) {
90
- const titleLower = task.title.toLowerCase();
91
- const labels = (task.labels ?? []).map((l) => l.toLowerCase());
92
- const matchText = [titleLower, ...labels].join(' ');
93
- for (const sp of ctx.successPatterns ?? []) {
94
- if (matchText.includes(sp.pattern.toLowerCase())) {
95
- score += 10;
96
- factors.push({
97
- name: 'brainSuccess',
98
- delta: 10,
99
- detail: `success pattern "${sp.pattern}"`,
100
- });
101
- break;
102
- }
103
- }
104
- for (const fp of ctx.failurePatterns ?? []) {
105
- if (matchText.includes(fp.pattern.toLowerCase())) {
106
- score -= 5;
107
- factors.push({
108
- name: 'brainFailure',
109
- delta: -5,
110
- detail: `failure pattern "${fp.pattern}"`,
111
- });
112
- break;
113
- }
147
+ const matchText = [task.title, ...(task.labels ?? [])].join(' ').toLowerCase();
148
+ const success = ctx.successPatterns?.find((p) => matchText.includes(p.pattern.toLowerCase()));
149
+ if (success)
150
+ factors.push({
151
+ name: 'brainSuccess',
152
+ delta: 0,
153
+ detail: `success pattern "${success.pattern}"`,
154
+ tier: null,
155
+ });
156
+ const failure = ctx.failurePatterns?.find((p) => matchText.includes(p.pattern.toLowerCase()));
157
+ if (failure)
158
+ factors.push({
159
+ name: 'brainFailure',
160
+ delta: 0,
161
+ detail: `failure pattern "${failure.pattern}"`,
162
+ tier: null,
163
+ });
164
+ }
165
+ const key = { band, severity, tiebreak };
166
+ return { score: band * BAND_WEIGHT + severity * SEVERITY_WEIGHT + tiebreak, factors, key };
167
+ }
168
+ /**
169
+ * Render one factor as an `--explain` line naming its comparator tier.
170
+ *
171
+ * @param factor - Scored factor.
172
+ * @returns e.g. `tier 1 band: priority high`, `tier 3 depsReady: all dependencies satisfied (+10)`,
173
+ * or `info brainSuccess: … (not in the order)`.
174
+ */
175
+ export function formatScoreFactor(factor) {
176
+ if (factor.tier === null)
177
+ return `info ${factor.name}: ${factor.detail} (not in the order)`;
178
+ if (factor.tier === 1 || factor.tier === 2)
179
+ return `tier ${factor.tier} ${factor.name}: ${factor.detail}`;
180
+ const sign = factor.delta >= 0 ? '+' : '';
181
+ return `tier 3 ${factor.name}: ${factor.detail} (${sign}${factor.delta})`;
182
+ }
183
+ /**
184
+ * Count, for every task id, the OPEN tasks that depend on it — the leverage
185
+ * input of {@link scoreTask}. Done, archived and cancelled dependents are not
186
+ * work this task unblocks.
187
+ *
188
+ * @param tasks - Tasks with `depends` and `status`.
189
+ * @returns Map of task id to number of open dependents.
190
+ */
191
+ export function computeLeverage(tasks) {
192
+ const leverage = new Map();
193
+ for (const task of tasks) {
194
+ if (isReadinessDependencySatisfied(task.status) || task.status === 'cancelled')
195
+ continue;
196
+ for (const dep of task.depends ?? [])
197
+ leverage.set(dep, (leverage.get(dep) ?? 0) + 1);
198
+ }
199
+ return leverage;
200
+ }
201
+ /**
202
+ * Order tasks by the tiered key: band, severity, tiebreak (all higher first),
203
+ * then older `createdAt` (parsed, UTC), then id — deterministic, so every
204
+ * ranker returns the same order for the same input.
205
+ *
206
+ * @param tasks - Candidate tasks.
207
+ * @param ctx - Shared scoring context.
208
+ * @returns Ranked tasks.
209
+ */
210
+ export function rankTasks(tasks, ctx) {
211
+ // Missing or unparseable timestamps sort after every dated task.
212
+ const created = (task) => {
213
+ const ms = parseTimestampMs(task.createdAt);
214
+ return Number.isNaN(ms) ? Number.POSITIVE_INFINITY : ms;
215
+ };
216
+ const zero = { band: 0, severity: 0, tiebreak: 0 };
217
+ return tasks
218
+ .map((task) => ({ task, ...scoreTask(task, ctx), createdMs: created(task) }))
219
+ .sort((a, b) => {
220
+ const ka = a.key ?? zero;
221
+ const kb = b.key ?? zero;
222
+ return (kb.band - ka.band ||
223
+ kb.severity - ka.severity ||
224
+ kb.tiebreak - ka.tiebreak ||
225
+ (a.createdMs === b.createdMs ? 0 : a.createdMs < b.createdMs ? -1 : 1) ||
226
+ a.task.id.localeCompare(b.task.id));
227
+ })
228
+ .map(({ createdMs: _createdMs, ...rest }) => rest);
229
+ }
230
+ /**
231
+ * Build the {@link ScoreTaskContext} every ordering surface shares (T12692):
232
+ * dependency statuses from the canonical readiness lookup, leverage over the
233
+ * population, the ranking phase and one clock instant. `cleo next`,
234
+ * `cleo orchestrate ready`, the focus ready wave and the wave listing all
235
+ * build their context here, so the same tasks rank the same way everywhere.
236
+ *
237
+ * @param population - Tasks whose open dependents count as leverage.
238
+ * @param dependencyLookup - Canonical dependency records (archived included).
239
+ * @param opts - Ranking phase and optional clock.
240
+ * @returns The scoring context.
241
+ * @task T12692
242
+ */
243
+ export function buildRankingContext(population, dependencyLookup, opts) {
244
+ return {
245
+ currentPhase: opts.currentPhase,
246
+ nowMs: opts.nowMs ?? Date.now(),
247
+ taskStatuses: new Map([...dependencyLookup.values()].map((task) => [task.id, task.status])),
248
+ leverage: computeLeverage([...population]),
249
+ };
250
+ }
251
+ /**
252
+ * Reorder items by THE comparator ({@link rankTasks}, D11161): band,
253
+ * severity, bounded tiebreak, createdAt, id. Items whose task record is not
254
+ * in `tasksById` keep their input order after every ranked item.
255
+ *
256
+ * @param items - Items to order (not mutated).
257
+ * @param idOf - Task id of an item.
258
+ * @param tasksById - Task records to rank the items by.
259
+ * @param ctx - Shared scoring context (see {@link buildRankingContext}).
260
+ * @returns A new array in ranked order.
261
+ * @task T12692
262
+ */
263
+ export function orderByRanking(items, idOf, tasksById, ctx) {
264
+ const known = [];
265
+ const seen = new Set();
266
+ for (const item of items) {
267
+ const id = idOf(item);
268
+ const task = tasksById.get(id);
269
+ if (task && !seen.has(id)) {
270
+ seen.add(id);
271
+ known.push(task);
114
272
  }
115
273
  }
116
- return { score, factors };
274
+ const position = new Map(rankTasks(known, ctx).map((r, index) => [r.task.id, index]));
275
+ const rank = (item) => position.get(idOf(item)) ?? Number.POSITIVE_INFINITY;
276
+ return items
277
+ .map((item, index) => ({ item, index, rank: rank(item) }))
278
+ .sort((a, b) => (a.rank === b.rank ? a.index - b.index : a.rank < b.rank ? -1 : 1))
279
+ .map(({ item }) => item);
117
280
  }
118
281
  //# sourceMappingURL=score-task-priority.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"score-task-priority.js","sourceRoot":"","sources":["../../src/task-tools/score-task-priority.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"score-task-priority.js","sourceRoot":"","sources":["../../src/task-tools/score-task-priority.ts"],"names":[],"mappings":"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"}