@cleocode/core 2026.9.8 → 2026.9.10

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 (569) hide show
  1. package/dist/audit/reconstruct.d.ts +13 -43
  2. package/dist/audit/reconstruct.d.ts.map +1 -1
  3. package/dist/audit/reconstruct.js +295 -290
  4. package/dist/audit/reconstruct.js.map +1 -1
  5. package/dist/bootstrap.d.ts.map +1 -1
  6. package/dist/bootstrap.js +8 -2
  7. package/dist/bootstrap.js.map +1 -1
  8. package/dist/compliance/protocol-rules.d.ts.map +1 -1
  9. package/dist/compliance/protocol-rules.js +3 -1
  10. package/dist/compliance/protocol-rules.js.map +1 -1
  11. package/dist/dispatch/mutate-projection.d.ts.map +1 -1
  12. package/dist/dispatch/mutate-projection.js +12 -0
  13. package/dist/dispatch/mutate-projection.js.map +1 -1
  14. package/dist/dispatch/mvi-projection.d.ts +29 -6
  15. package/dist/dispatch/mvi-projection.d.ts.map +1 -1
  16. package/dist/dispatch/mvi-projection.js +109 -139
  17. package/dist/dispatch/mvi-projection.js.map +1 -1
  18. package/dist/docs/docs-read-model.d.ts +3 -2
  19. package/dist/docs/docs-read-model.d.ts.map +1 -1
  20. package/dist/docs/docs-read-model.js +4 -3
  21. package/dist/docs/docs-read-model.js.map +1 -1
  22. package/dist/docs/export-document.js +5129 -2297
  23. package/dist/docs/export-document.js.map +3 -3
  24. package/dist/docs/projection.d.ts +67 -0
  25. package/dist/docs/projection.d.ts.map +1 -0
  26. package/dist/docs/projection.js +370 -0
  27. package/dist/docs/projection.js.map +1 -0
  28. package/dist/doctor/acceptance-drift.d.ts +6 -2
  29. package/dist/doctor/acceptance-drift.d.ts.map +1 -1
  30. package/dist/doctor/acceptance-drift.js +43 -5
  31. package/dist/doctor/acceptance-drift.js.map +1 -1
  32. package/dist/doctor/knowledge-summary.d.ts +41 -0
  33. package/dist/doctor/knowledge-summary.d.ts.map +1 -0
  34. package/dist/doctor/knowledge-summary.js +81 -0
  35. package/dist/doctor/knowledge-summary.js.map +1 -0
  36. package/dist/doctor/knowledge.d.ts +192 -0
  37. package/dist/doctor/knowledge.d.ts.map +1 -0
  38. package/dist/doctor/knowledge.js +1864 -0
  39. package/dist/doctor/knowledge.js.map +1 -0
  40. package/dist/git/work-tree.d.ts +169 -0
  41. package/dist/git/work-tree.d.ts.map +1 -0
  42. package/dist/git/work-tree.js +341 -0
  43. package/dist/git/work-tree.js.map +1 -0
  44. package/dist/hooks/handlers/task-hooks.d.ts +8 -5
  45. package/dist/hooks/handlers/task-hooks.d.ts.map +1 -1
  46. package/dist/hooks/handlers/task-hooks.js +15 -60
  47. package/dist/hooks/handlers/task-hooks.js.map +1 -1
  48. package/dist/identity/cleo-identity.d.ts +13 -0
  49. package/dist/identity/cleo-identity.d.ts.map +1 -1
  50. package/dist/identity/cleo-identity.js +20 -6
  51. package/dist/identity/cleo-identity.js.map +1 -1
  52. package/dist/injection.d.ts.map +1 -1
  53. package/dist/injection.js +29 -13
  54. package/dist/injection.js.map +1 -1
  55. package/dist/internal.d.ts +3 -0
  56. package/dist/internal.d.ts.map +1 -1
  57. package/dist/internal.js +4 -0
  58. package/dist/internal.js.map +1 -1
  59. package/dist/lifecycle/verification/satisfies-validator.d.ts.map +1 -1
  60. package/dist/lifecycle/verification/satisfies-validator.js +124 -120
  61. package/dist/lifecycle/verification/satisfies-validator.js.map +1 -1
  62. package/dist/llm/plugin-facade.js +4047 -1726
  63. package/dist/llm/plugin-facade.js.map +3 -3
  64. package/dist/memory/brain-backfill.d.ts +27 -12
  65. package/dist/memory/brain-backfill.d.ts.map +1 -1
  66. package/dist/memory/brain-backfill.js +325 -134
  67. package/dist/memory/brain-backfill.js.map +1 -1
  68. package/dist/memory/brain-doctor.d.ts +21 -0
  69. package/dist/memory/brain-doctor.d.ts.map +1 -1
  70. package/dist/memory/brain-doctor.js +111 -53
  71. package/dist/memory/brain-doctor.js.map +1 -1
  72. package/dist/memory/brain-links.d.ts.map +1 -1
  73. package/dist/memory/brain-links.js +31 -4
  74. package/dist/memory/brain-links.js.map +1 -1
  75. package/dist/memory/brain-reasoning.d.ts.map +1 -1
  76. package/dist/memory/brain-reasoning.js +28 -2
  77. package/dist/memory/brain-reasoning.js.map +1 -1
  78. package/dist/memory/brain-reconciler.d.ts +14 -19
  79. package/dist/memory/brain-reconciler.d.ts.map +1 -1
  80. package/dist/memory/brain-reconciler.js +70 -97
  81. package/dist/memory/brain-reconciler.js.map +1 -1
  82. package/dist/memory/brain-search.d.ts +2 -0
  83. package/dist/memory/brain-search.d.ts.map +1 -1
  84. package/dist/memory/brain-search.js +59 -29
  85. package/dist/memory/brain-search.js.map +1 -1
  86. package/dist/memory/brain-similarity.d.ts.map +1 -1
  87. package/dist/memory/brain-similarity.js +5 -4
  88. package/dist/memory/brain-similarity.js.map +1 -1
  89. package/dist/memory/brain-stub-prune.d.ts +31 -9
  90. package/dist/memory/brain-stub-prune.d.ts.map +1 -1
  91. package/dist/memory/brain-stub-prune.js +65 -18
  92. package/dist/memory/brain-stub-prune.js.map +1 -1
  93. package/dist/memory/brain-writer-handlers.d.ts +10 -1
  94. package/dist/memory/brain-writer-handlers.d.ts.map +1 -1
  95. package/dist/memory/brain-writer-handlers.js +23 -3
  96. package/dist/memory/brain-writer-handlers.js.map +1 -1
  97. package/dist/memory/brain-writer-thread.d.ts +11 -1
  98. package/dist/memory/brain-writer-thread.d.ts.map +1 -1
  99. package/dist/memory/brain-writer-thread.js +87 -20
  100. package/dist/memory/brain-writer-thread.js.map +1 -1
  101. package/dist/memory/brain-writer-worker.js +8 -1
  102. package/dist/memory/brain-writer-worker.js.map +1 -1
  103. package/dist/memory/decision-cross-link.d.ts +39 -0
  104. package/dist/memory/decision-cross-link.d.ts.map +1 -1
  105. package/dist/memory/decision-cross-link.js +316 -0
  106. package/dist/memory/decision-cross-link.js.map +1 -1
  107. package/dist/memory/decisions.d.ts +4 -1
  108. package/dist/memory/decisions.d.ts.map +1 -1
  109. package/dist/memory/decisions.js +7 -24
  110. package/dist/memory/decisions.js.map +1 -1
  111. package/dist/memory/dispatch-trace.d.ts +12 -5
  112. package/dist/memory/dispatch-trace.d.ts.map +1 -1
  113. package/dist/memory/dispatch-trace.js +17 -7
  114. package/dist/memory/dispatch-trace.js.map +1 -1
  115. package/dist/memory/eligibility.d.ts +51 -0
  116. package/dist/memory/eligibility.d.ts.map +1 -0
  117. package/dist/memory/eligibility.js +77 -0
  118. package/dist/memory/eligibility.js.map +1 -0
  119. package/dist/memory/engine-compat.d.ts +2 -0
  120. package/dist/memory/engine-compat.d.ts.map +1 -1
  121. package/dist/memory/engine-compat.js +10 -0
  122. package/dist/memory/engine-compat.js.map +1 -1
  123. package/dist/memory/extraction-gate.d.ts +21 -7
  124. package/dist/memory/extraction-gate.d.ts.map +1 -1
  125. package/dist/memory/extraction-gate.js +178 -216
  126. package/dist/memory/extraction-gate.js.map +1 -1
  127. package/dist/memory/graph-auto-populate.d.ts +38 -5
  128. package/dist/memory/graph-auto-populate.d.ts.map +1 -1
  129. package/dist/memory/graph-auto-populate.js +182 -60
  130. package/dist/memory/graph-auto-populate.js.map +1 -1
  131. package/dist/memory/graph-memory-bridge.d.ts +14 -1
  132. package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
  133. package/dist/memory/graph-memory-bridge.js +66 -28
  134. package/dist/memory/graph-memory-bridge.js.map +1 -1
  135. package/dist/memory/index.d.ts +1 -19
  136. package/dist/memory/index.d.ts.map +1 -1
  137. package/dist/memory/index.js +1 -50
  138. package/dist/memory/index.js.map +1 -1
  139. package/dist/memory/learnings.d.ts.map +1 -1
  140. package/dist/memory/learnings.js +2 -23
  141. package/dist/memory/learnings.js.map +1 -1
  142. package/dist/memory/manifest-filter.d.ts +21 -0
  143. package/dist/memory/manifest-filter.d.ts.map +1 -0
  144. package/dist/memory/manifest-filter.js +51 -0
  145. package/dist/memory/manifest-filter.js.map +1 -0
  146. package/dist/memory/manifest-ingestion.d.ts +28 -30
  147. package/dist/memory/manifest-ingestion.d.ts.map +1 -1
  148. package/dist/memory/manifest-ingestion.js +104 -235
  149. package/dist/memory/manifest-ingestion.js.map +1 -1
  150. package/dist/memory/observer-reflector.d.ts +2 -0
  151. package/dist/memory/observer-reflector.d.ts.map +1 -1
  152. package/dist/memory/observer-reflector.js +6 -49
  153. package/dist/memory/observer-reflector.js.map +1 -1
  154. package/dist/memory/patterns.d.ts +10 -0
  155. package/dist/memory/patterns.d.ts.map +1 -1
  156. package/dist/memory/patterns.js +25 -33
  157. package/dist/memory/patterns.js.map +1 -1
  158. package/dist/memory/pipeline-manifest-sqlite.d.ts +72 -9
  159. package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
  160. package/dist/memory/pipeline-manifest-sqlite.js +508 -412
  161. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
  162. package/dist/memory/retrieval/build-retrieval-bundle.d.ts.map +1 -1
  163. package/dist/memory/retrieval/build-retrieval-bundle.js +16 -15
  164. package/dist/memory/retrieval/build-retrieval-bundle.js.map +1 -1
  165. package/dist/memory/retrieval/fetch.d.ts +7 -0
  166. package/dist/memory/retrieval/fetch.d.ts.map +1 -1
  167. package/dist/memory/retrieval/fetch.js +14 -11
  168. package/dist/memory/retrieval/fetch.js.map +1 -1
  169. package/dist/memory/retrieval/observe.d.ts +7 -1
  170. package/dist/memory/retrieval/observe.d.ts.map +1 -1
  171. package/dist/memory/retrieval/observe.js +58 -4
  172. package/dist/memory/retrieval/observe.js.map +1 -1
  173. package/dist/memory/retrieval/search.d.ts +14 -1
  174. package/dist/memory/retrieval/search.d.ts.map +1 -1
  175. package/dist/memory/retrieval/search.js +133 -69
  176. package/dist/memory/retrieval/search.js.map +1 -1
  177. package/dist/memory/retrieval/telemetry.d.ts +31 -0
  178. package/dist/memory/retrieval/telemetry.d.ts.map +1 -0
  179. package/dist/memory/retrieval/telemetry.js +53 -0
  180. package/dist/memory/retrieval/telemetry.js.map +1 -0
  181. package/dist/nexus/analyze-orchestrator.d.ts +41 -9
  182. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  183. package/dist/nexus/analyze-orchestrator.js +257 -58
  184. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  185. package/dist/nexus/api-contracts.d.ts +2 -6
  186. package/dist/nexus/api-contracts.d.ts.map +1 -1
  187. package/dist/nexus/api-contracts.js +11 -2
  188. package/dist/nexus/api-contracts.js.map +1 -1
  189. package/dist/nexus/context.d.ts.map +1 -1
  190. package/dist/nexus/context.js +14 -37
  191. package/dist/nexus/context.js.map +1 -1
  192. package/dist/nexus/diff.d.ts.map +1 -1
  193. package/dist/nexus/diff.js +2 -1
  194. package/dist/nexus/diff.js.map +1 -1
  195. package/dist/nexus/identity.d.ts +29 -3
  196. package/dist/nexus/identity.d.ts.map +1 -1
  197. package/dist/nexus/identity.js +63 -12
  198. package/dist/nexus/identity.js.map +1 -1
  199. package/dist/nexus/impact.d.ts +21 -19
  200. package/dist/nexus/impact.d.ts.map +1 -1
  201. package/dist/nexus/impact.js +96 -192
  202. package/dist/nexus/impact.js.map +1 -1
  203. package/dist/nexus/knowledge.d.ts +80 -0
  204. package/dist/nexus/knowledge.d.ts.map +1 -0
  205. package/dist/nexus/knowledge.js +786 -0
  206. package/dist/nexus/knowledge.js.map +1 -0
  207. package/dist/nexus/living-brain.d.ts +8 -5
  208. package/dist/nexus/living-brain.d.ts.map +1 -1
  209. package/dist/nexus/living-brain.js +252 -188
  210. package/dist/nexus/living-brain.js.map +1 -1
  211. package/dist/nexus/registry.d.ts +11 -2
  212. package/dist/nexus/registry.d.ts.map +1 -1
  213. package/dist/nexus/registry.js +144 -128
  214. package/dist/nexus/registry.js.map +1 -1
  215. package/dist/nexus/source-roots.d.ts +16 -0
  216. package/dist/nexus/source-roots.d.ts.map +1 -0
  217. package/dist/nexus/source-roots.js +174 -0
  218. package/dist/nexus/source-roots.js.map +1 -0
  219. package/dist/nexus/task-evidence.d.ts +22 -0
  220. package/dist/nexus/task-evidence.d.ts.map +1 -0
  221. package/dist/nexus/task-evidence.js +210 -0
  222. package/dist/nexus/task-evidence.js.map +1 -0
  223. package/dist/nexus/tasks-bridge.d.ts +14 -7
  224. package/dist/nexus/tasks-bridge.d.ts.map +1 -1
  225. package/dist/nexus/tasks-bridge.js +81 -40
  226. package/dist/nexus/tasks-bridge.js.map +1 -1
  227. package/dist/orchestrate/lifecycle-ops.d.ts.map +1 -1
  228. package/dist/orchestrate/lifecycle-ops.js +170 -120
  229. package/dist/orchestrate/lifecycle-ops.js.map +1 -1
  230. package/dist/orchestrate/query-ops.d.ts +6 -7
  231. package/dist/orchestrate/query-ops.d.ts.map +1 -1
  232. package/dist/orchestrate/query-ops.js +509 -532
  233. package/dist/orchestrate/query-ops.js.map +1 -1
  234. package/dist/orchestration/bootstrap.d.ts +15 -1
  235. package/dist/orchestration/bootstrap.d.ts.map +1 -1
  236. package/dist/orchestration/bootstrap.js +21 -10
  237. package/dist/orchestration/bootstrap.js.map +1 -1
  238. package/dist/orchestration/index.d.ts +35 -3
  239. package/dist/orchestration/index.d.ts.map +1 -1
  240. package/dist/orchestration/index.js +64 -35
  241. package/dist/orchestration/index.js.map +1 -1
  242. package/dist/orchestration/lead-rollup.d.ts +24 -1
  243. package/dist/orchestration/lead-rollup.d.ts.map +1 -1
  244. package/dist/orchestration/lead-rollup.js +31 -11
  245. package/dist/orchestration/lead-rollup.js.map +1 -1
  246. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  247. package/dist/orchestration/spawn-prompt.js +25 -45
  248. package/dist/orchestration/spawn-prompt.js.map +1 -1
  249. package/dist/orchestration/unblock.d.ts +15 -1
  250. package/dist/orchestration/unblock.d.ts.map +1 -1
  251. package/dist/orchestration/unblock.js +23 -12
  252. package/dist/orchestration/unblock.js.map +1 -1
  253. package/dist/orchestration/validate-spawn.d.ts.map +1 -1
  254. package/dist/orchestration/validate-spawn.js +3 -3
  255. package/dist/orchestration/validate-spawn.js.map +1 -1
  256. package/dist/orchestration/waves.d.ts +29 -13
  257. package/dist/orchestration/waves.d.ts.map +1 -1
  258. package/dist/orchestration/waves.js +43 -55
  259. package/dist/orchestration/waves.js.map +1 -1
  260. package/dist/paths.d.ts +17 -163
  261. package/dist/paths.d.ts.map +1 -1
  262. package/dist/paths.js +145 -496
  263. package/dist/paths.js.map +1 -1
  264. package/dist/project-info.d.ts +2 -11
  265. package/dist/project-info.d.ts.map +1 -1
  266. package/dist/project-info.js +3 -31
  267. package/dist/project-info.js.map +1 -1
  268. package/dist/project-scope.d.ts +239 -0
  269. package/dist/project-scope.d.ts.map +1 -0
  270. package/dist/project-scope.js +473 -0
  271. package/dist/project-scope.js.map +1 -0
  272. package/dist/release/pr-evidence.d.ts +23 -4
  273. package/dist/release/pr-evidence.d.ts.map +1 -1
  274. package/dist/release/pr-evidence.js +65 -9
  275. package/dist/release/pr-evidence.js.map +1 -1
  276. package/dist/render/nexus/graph/index.d.ts.map +1 -1
  277. package/dist/render/nexus/graph/index.js +4 -2
  278. package/dist/render/nexus/graph/index.js.map +1 -1
  279. package/dist/render/orchestration/audit-reconstruct.d.ts +11 -0
  280. package/dist/render/orchestration/audit-reconstruct.d.ts.map +1 -1
  281. package/dist/render/orchestration/audit-reconstruct.js +21 -6
  282. package/dist/render/orchestration/audit-reconstruct.js.map +1 -1
  283. package/dist/render/tasks/show.js +2 -1
  284. package/dist/render/tasks/show.js.map +1 -1
  285. package/dist/resources/spawn-wrapper.d.ts +82 -14
  286. package/dist/resources/spawn-wrapper.d.ts.map +1 -1
  287. package/dist/resources/spawn-wrapper.js +585 -27
  288. package/dist/resources/spawn-wrapper.js.map +1 -1
  289. package/dist/selfimprove/fix-gen.js +4055 -1734
  290. package/dist/selfimprove/fix-gen.js.map +3 -3
  291. package/dist/sequence/index.d.ts.map +1 -1
  292. package/dist/sequence/index.js +76 -68
  293. package/dist/sequence/index.js.map +1 -1
  294. package/dist/session/canon-lint.d.ts +24 -3
  295. package/dist/session/canon-lint.d.ts.map +1 -1
  296. package/dist/session/canon-lint.js +72 -31
  297. package/dist/session/canon-lint.js.map +1 -1
  298. package/dist/session/engine-ops.d.ts +1 -4
  299. package/dist/session/engine-ops.d.ts.map +1 -1
  300. package/dist/session/engine-ops.js +42 -6
  301. package/dist/session/engine-ops.js.map +1 -1
  302. package/dist/sessions/briefing.d.ts +11 -1
  303. package/dist/sessions/briefing.d.ts.map +1 -1
  304. package/dist/sessions/briefing.js +76 -8
  305. package/dist/sessions/briefing.js.map +1 -1
  306. package/dist/sessions/handoff.d.ts +3 -1
  307. package/dist/sessions/handoff.d.ts.map +1 -1
  308. package/dist/sessions/handoff.js +2 -0
  309. package/dist/sessions/handoff.js.map +1 -1
  310. package/dist/shutdown-deadline.d.ts +24 -33
  311. package/dist/shutdown-deadline.d.ts.map +1 -1
  312. package/dist/shutdown-deadline.js +71 -14
  313. package/dist/shutdown-deadline.js.map +1 -1
  314. package/dist/shutdown.d.ts +21 -10
  315. package/dist/shutdown.d.ts.map +1 -1
  316. package/dist/shutdown.js +89 -42
  317. package/dist/shutdown.js.map +1 -1
  318. package/dist/skills/index.d.ts +1 -1
  319. package/dist/skills/index.d.ts.map +1 -1
  320. package/dist/skills/index.js +1 -1
  321. package/dist/skills/index.js.map +1 -1
  322. package/dist/skills/orchestrator/validator.d.ts +87 -20
  323. package/dist/skills/orchestrator/validator.d.ts.map +1 -1
  324. package/dist/skills/orchestrator/validator.js +330 -241
  325. package/dist/skills/orchestrator/validator.js.map +1 -1
  326. package/dist/store/agent-resolver.d.ts.map +1 -1
  327. package/dist/store/agent-resolver.js +16 -9
  328. package/dist/store/agent-resolver.js.map +1 -1
  329. package/dist/store/attachment-store.d.ts +4 -1
  330. package/dist/store/attachment-store.d.ts.map +1 -1
  331. package/dist/store/attachment-store.js +20 -3
  332. package/dist/store/attachment-store.js.map +1 -1
  333. package/dist/store/background-jobs.d.ts +426 -105
  334. package/dist/store/background-jobs.d.ts.map +1 -1
  335. package/dist/store/background-jobs.js +1208 -252
  336. package/dist/store/background-jobs.js.map +1 -1
  337. package/dist/store/background-ops.d.ts +145 -8
  338. package/dist/store/background-ops.d.ts.map +1 -1
  339. package/dist/store/background-ops.js +459 -15
  340. package/dist/store/background-ops.js.map +1 -1
  341. package/dist/store/backup-inspect.d.ts +48 -4
  342. package/dist/store/backup-inspect.d.ts.map +1 -1
  343. package/dist/store/backup-inspect.js +384 -4
  344. package/dist/store/backup-inspect.js.map +1 -1
  345. package/dist/store/converters.d.ts.map +1 -1
  346. package/dist/store/converters.js +19 -2
  347. package/dist/store/converters.js.map +1 -1
  348. package/dist/store/data-accessor.d.ts +9 -1
  349. package/dist/store/data-accessor.d.ts.map +1 -1
  350. package/dist/store/data-accessor.js +22 -5
  351. package/dist/store/data-accessor.js.map +1 -1
  352. package/dist/store/data-safety-central.d.ts.map +1 -1
  353. package/dist/store/data-safety-central.js +272 -232
  354. package/dist/store/data-safety-central.js.map +1 -1
  355. package/dist/store/db-helpers.d.ts +19 -3
  356. package/dist/store/db-helpers.d.ts.map +1 -1
  357. package/dist/store/db-helpers.js +42 -58
  358. package/dist/store/db-helpers.js.map +1 -1
  359. package/dist/store/dual-scope-db.d.ts +63 -4
  360. package/dist/store/dual-scope-db.d.ts.map +1 -1
  361. package/dist/store/dual-scope-db.js +166 -19
  362. package/dist/store/dual-scope-db.js.map +1 -1
  363. package/dist/store/exodus/archive.d.ts +21 -7
  364. package/dist/store/exodus/archive.d.ts.map +1 -1
  365. package/dist/store/exodus/archive.js +60 -18
  366. package/dist/store/exodus/archive.js.map +1 -1
  367. package/dist/store/exodus/migrate.d.ts.map +1 -1
  368. package/dist/store/exodus/migrate.js +27 -23
  369. package/dist/store/exodus/migrate.js.map +1 -1
  370. package/dist/store/exodus/on-open.d.ts +16 -27
  371. package/dist/store/exodus/on-open.d.ts.map +1 -1
  372. package/dist/store/exodus/on-open.js +121 -169
  373. package/dist/store/exodus/on-open.js.map +1 -1
  374. package/dist/store/exodus/recovery.d.ts +90 -0
  375. package/dist/store/exodus/recovery.d.ts.map +1 -0
  376. package/dist/store/exodus/recovery.js +434 -0
  377. package/dist/store/exodus/recovery.js.map +1 -0
  378. package/dist/store/exodus/types.d.ts +15 -0
  379. package/dist/store/exodus/types.d.ts.map +1 -1
  380. package/dist/store/memory-accessor.d.ts +52 -3
  381. package/dist/store/memory-accessor.d.ts.map +1 -1
  382. package/dist/store/memory-accessor.js +122 -7
  383. package/dist/store/memory-accessor.js.map +1 -1
  384. package/dist/store/nexus-sqlite.d.ts +24 -6
  385. package/dist/store/nexus-sqlite.d.ts.map +1 -1
  386. package/dist/store/nexus-sqlite.js +39 -20
  387. package/dist/store/nexus-sqlite.js.map +1 -1
  388. package/dist/store/ports/domain-binding.d.ts.map +1 -1
  389. package/dist/store/ports/domain-binding.js +27 -5
  390. package/dist/store/ports/domain-binding.js.map +1 -1
  391. package/dist/store/schema/background-jobs.d.ts +181 -2
  392. package/dist/store/schema/background-jobs.d.ts.map +1 -1
  393. package/dist/store/schema/background-jobs.js +27 -3
  394. package/dist/store/schema/background-jobs.js.map +1 -1
  395. package/dist/store/schema/cleo-global/skills.d.ts +2 -2
  396. package/dist/store/schema/cleo-project/lifecycle.d.ts +2 -2
  397. package/dist/store/schema/cleo-project/runtime.d.ts +1 -1
  398. package/dist/store/schema/cleo-project/tasks-core.d.ts +1 -1
  399. package/dist/store/schema/lifecycle.d.ts +2 -2
  400. package/dist/store/schema/skills-schema.d.ts +2 -2
  401. package/dist/store/schema/tasks.d.ts +1 -1
  402. package/dist/store/session-store.d.ts +3 -1
  403. package/dist/store/session-store.d.ts.map +1 -1
  404. package/dist/store/session-store.js +252 -207
  405. package/dist/store/session-store.js.map +1 -1
  406. package/dist/store/sqlite-data-accessor.d.ts +39 -4
  407. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  408. package/dist/store/sqlite-data-accessor.js +689 -527
  409. package/dist/store/sqlite-data-accessor.js.map +1 -1
  410. package/dist/store/tasks-sqlite.d.ts +3 -1
  411. package/dist/store/tasks-sqlite.d.ts.map +1 -1
  412. package/dist/store/tasks-sqlite.js +309 -279
  413. package/dist/store/tasks-sqlite.js.map +1 -1
  414. package/dist/store/validation-schemas.d.ts +8 -8
  415. package/dist/store/writer-lease.d.ts +80 -8
  416. package/dist/store/writer-lease.d.ts.map +1 -1
  417. package/dist/store/writer-lease.js +503 -134
  418. package/dist/store/writer-lease.js.map +1 -1
  419. package/dist/system/audit.d.ts +2 -1
  420. package/dist/system/audit.d.ts.map +1 -1
  421. package/dist/system/audit.js +118 -71
  422. package/dist/system/audit.js.map +1 -1
  423. package/dist/system/backup.d.ts.map +1 -1
  424. package/dist/system/backup.js +5 -5
  425. package/dist/system/backup.js.map +1 -1
  426. package/dist/system/inject-generate.js +1 -1
  427. package/dist/task-work/index.d.ts +3 -0
  428. package/dist/task-work/index.d.ts.map +1 -1
  429. package/dist/task-work/index.js +34 -37
  430. package/dist/task-work/index.js.map +1 -1
  431. package/dist/tasks/ac-coverage-gate.d.ts.map +1 -1
  432. package/dist/tasks/ac-coverage-gate.js +4 -0
  433. package/dist/tasks/ac-coverage-gate.js.map +1 -1
  434. package/dist/tasks/ac-immutability.d.ts +7 -4
  435. package/dist/tasks/ac-immutability.d.ts.map +1 -1
  436. package/dist/tasks/ac-immutability.js +19 -17
  437. package/dist/tasks/ac-immutability.js.map +1 -1
  438. package/dist/tasks/ac-table.d.ts +5 -5
  439. package/dist/tasks/ac-table.d.ts.map +1 -1
  440. package/dist/tasks/ac-table.js +26 -12
  441. package/dist/tasks/ac-table.js.map +1 -1
  442. package/dist/tasks/acceptance-input.d.ts +52 -0
  443. package/dist/tasks/acceptance-input.d.ts.map +1 -0
  444. package/dist/tasks/acceptance-input.js +259 -0
  445. package/dist/tasks/acceptance-input.js.map +1 -0
  446. package/dist/tasks/add.d.ts +67 -29
  447. package/dist/tasks/add.d.ts.map +1 -1
  448. package/dist/tasks/add.js +255 -97
  449. package/dist/tasks/add.js.map +1 -1
  450. package/dist/tasks/complete.d.ts +16 -1
  451. package/dist/tasks/complete.d.ts.map +1 -1
  452. package/dist/tasks/complete.js +152 -55
  453. package/dist/tasks/complete.js.map +1 -1
  454. package/dist/tasks/decompose.d.ts +103 -0
  455. package/dist/tasks/decompose.d.ts.map +1 -0
  456. package/dist/tasks/decompose.js +224 -0
  457. package/dist/tasks/decompose.js.map +1 -0
  458. package/dist/tasks/delete.d.ts +5 -8
  459. package/dist/tasks/delete.d.ts.map +1 -1
  460. package/dist/tasks/delete.js +4 -3
  461. package/dist/tasks/delete.js.map +1 -1
  462. package/dist/tasks/dependency-check.d.ts +59 -0
  463. package/dist/tasks/dependency-check.d.ts.map +1 -1
  464. package/dist/tasks/dependency-check.js +73 -0
  465. package/dist/tasks/dependency-check.js.map +1 -1
  466. package/dist/tasks/deps-ready.d.ts +13 -1
  467. package/dist/tasks/deps-ready.d.ts.map +1 -1
  468. package/dist/tasks/deps-ready.js +16 -5
  469. package/dist/tasks/deps-ready.js.map +1 -1
  470. package/dist/tasks/engine-converters.d.ts +7 -0
  471. package/dist/tasks/engine-converters.d.ts.map +1 -1
  472. package/dist/tasks/engine-converters.js +8 -1
  473. package/dist/tasks/engine-converters.js.map +1 -1
  474. package/dist/tasks/evidence.d.ts +88 -27
  475. package/dist/tasks/evidence.d.ts.map +1 -1
  476. package/dist/tasks/evidence.js +344 -43
  477. package/dist/tasks/evidence.js.map +1 -1
  478. package/dist/tasks/find.d.ts +16 -12
  479. package/dist/tasks/find.d.ts.map +1 -1
  480. package/dist/tasks/find.js +107 -93
  481. package/dist/tasks/find.js.map +1 -1
  482. package/dist/tasks/gate-preview.d.ts +73 -0
  483. package/dist/tasks/gate-preview.d.ts.map +1 -0
  484. package/dist/tasks/gate-preview.js +119 -0
  485. package/dist/tasks/gate-preview.js.map +1 -0
  486. package/dist/tasks/gate-runner.d.ts +88 -14
  487. package/dist/tasks/gate-runner.d.ts.map +1 -1
  488. package/dist/tasks/gate-runner.js +719 -250
  489. package/dist/tasks/gate-runner.js.map +1 -1
  490. package/dist/tasks/hierarchy-policy.d.ts +8 -0
  491. package/dist/tasks/hierarchy-policy.d.ts.map +1 -1
  492. package/dist/tasks/hierarchy-policy.js +9 -2
  493. package/dist/tasks/hierarchy-policy.js.map +1 -1
  494. package/dist/tasks/hierarchy.d.ts +67 -1
  495. package/dist/tasks/hierarchy.d.ts.map +1 -1
  496. package/dist/tasks/hierarchy.js +81 -1
  497. package/dist/tasks/hierarchy.js.map +1 -1
  498. package/dist/tasks/index.d.ts +3 -0
  499. package/dist/tasks/index.d.ts.map +1 -1
  500. package/dist/tasks/index.js +3 -0
  501. package/dist/tasks/index.js.map +1 -1
  502. package/dist/tasks/infer-add-params.d.ts +1 -20
  503. package/dist/tasks/infer-add-params.d.ts.map +1 -1
  504. package/dist/tasks/infer-add-params.js +2 -203
  505. package/dist/tasks/infer-add-params.js.map +1 -1
  506. package/dist/tasks/list.d.ts +7 -2
  507. package/dist/tasks/list.d.ts.map +1 -1
  508. package/dist/tasks/list.js +24 -36
  509. package/dist/tasks/list.js.map +1 -1
  510. package/dist/tasks/ops.d.ts +6 -61
  511. package/dist/tasks/ops.d.ts.map +1 -1
  512. package/dist/tasks/ops.js +5 -53
  513. package/dist/tasks/ops.js.map +1 -1
  514. package/dist/tasks/plan.d.ts +15 -1
  515. package/dist/tasks/plan.d.ts.map +1 -1
  516. package/dist/tasks/plan.js +23 -25
  517. package/dist/tasks/plan.js.map +1 -1
  518. package/dist/tasks/population.d.ts +46 -0
  519. package/dist/tasks/population.d.ts.map +1 -0
  520. package/dist/tasks/population.js +88 -0
  521. package/dist/tasks/population.js.map +1 -0
  522. package/dist/tasks/reconcile-scope.d.ts +157 -0
  523. package/dist/tasks/reconcile-scope.d.ts.map +1 -0
  524. package/dist/tasks/reconcile-scope.js +242 -0
  525. package/dist/tasks/reconcile-scope.js.map +1 -0
  526. package/dist/tasks/req.d.ts +51 -12
  527. package/dist/tasks/req.d.ts.map +1 -1
  528. package/dist/tasks/req.js +125 -69
  529. package/dist/tasks/req.js.map +1 -1
  530. package/dist/tasks/session-scope.d.ts +6 -31
  531. package/dist/tasks/session-scope.d.ts.map +1 -1
  532. package/dist/tasks/session-scope.js +3 -17
  533. package/dist/tasks/session-scope.js.map +1 -1
  534. package/dist/tasks/severity-attestation.d.ts +39 -10
  535. package/dist/tasks/severity-attestation.d.ts.map +1 -1
  536. package/dist/tasks/severity-attestation.js +75 -36
  537. package/dist/tasks/severity-attestation.js.map +1 -1
  538. package/dist/tasks/task-next.d.ts +5 -0
  539. package/dist/tasks/task-next.d.ts.map +1 -1
  540. package/dist/tasks/task-next.js +10 -9
  541. package/dist/tasks/task-next.js.map +1 -1
  542. package/dist/tasks/task-reparent.d.ts.map +1 -1
  543. package/dist/tasks/task-reparent.js +3 -13
  544. package/dist/tasks/task-reparent.js.map +1 -1
  545. package/dist/tasks/update.d.ts +20 -43
  546. package/dist/tasks/update.d.ts.map +1 -1
  547. package/dist/tasks/update.js +64 -49
  548. package/dist/tasks/update.js.map +1 -1
  549. package/dist/validation/engine-ops.d.ts +17 -1
  550. package/dist/validation/engine-ops.d.ts.map +1 -1
  551. package/dist/validation/engine-ops.js +149 -11
  552. package/dist/validation/engine-ops.js.map +1 -1
  553. package/dist/workgraph/reparent-preflight.d.ts +1 -1
  554. package/dist/workgraph/reparent-preflight.d.ts.map +1 -1
  555. package/dist/workgraph/reparent-preflight.js +6 -1
  556. package/dist/workgraph/reparent-preflight.js.map +1 -1
  557. package/dist/workgraph/scaffold-apply.d.ts.map +1 -1
  558. package/dist/workgraph/scaffold-apply.js +81 -76
  559. package/dist/workgraph/scaffold-apply.js.map +1 -1
  560. package/dist/workgraph/structure-validation.d.ts +1 -1
  561. package/dist/workgraph/structure-validation.d.ts.map +1 -1
  562. package/dist/workgraph/structure-validation.js +6 -1
  563. package/dist/workgraph/structure-validation.js.map +1 -1
  564. package/migrations/drizzle-tasks/20260919180000_t12263-job-ownership-fences/migration.sql +34 -0
  565. package/migrations/drizzle-tasks/20260919184500_t12265-durable-pending-proposals/migration.sql +4 -0
  566. package/package.json +18 -13
  567. package/schemas/config.schema.json +2 -2
  568. package/schemas/project-context.schema.json +12 -0
  569. package/templates/CLEO-INJECTION.md +114 -101
@@ -1,16 +1,17 @@
1
1
  /**
2
- * Fuzzy task search with minimal output.
2
+ * Lexical task search with explicit fuzzy opt-in and match provenance.
3
3
  * @task T4460
4
4
  * @epic T4454
5
5
  */
6
6
  import { ExitCode } from '@cleocode/contracts';
7
+ import { discloseProjection } from '../dispatch/mvi-projection.js';
7
8
  import { engineSuccess } from '../engine-result.js';
8
9
  import { CleoError } from '../errors.js';
9
10
  import { cleoErrorToEngineResult } from '../errors-to-engine.js';
10
11
  import { taskListItemNext } from '../mvi-helpers.js';
11
- import { resolveSagaMemberIds } from '../sagas/storage.js';
12
12
  import { getTaskAccessor } from '../store/data-accessor.js';
13
13
  import { taskToRecord } from './engine-converters.js';
14
+ import { paginateTaskPopulation, readTaskPopulation } from './population.js';
14
15
  /**
15
16
  * Predicate for the unified urgency surface (T9905).
16
17
  *
@@ -40,7 +41,7 @@ export function isUrgentTask(task) {
40
41
  * number of English sentences, so this tier is noise whenever anything
41
42
  * better exists.
42
43
  *
43
- * {@link findTasks} keeps the weak tier only when NO strong match was found,
44
+ * With explicit fuzzy opt-in, {@link findTasks} keeps the weak tier only when NO strong match was found,
44
45
  * which preserves typo tolerance for genuinely obscure queries without
45
46
  * letting the weak tier flood a normal search.
46
47
  *
@@ -224,11 +225,11 @@ export function extractInlineFilters(options) {
224
225
  return next;
225
226
  }
226
227
  /**
227
- * Search tasks by fuzzy matching, ID prefix, exact title, or filter-only.
228
+ * Search tasks lexically, by explicit fuzzy matching, ID, exact title, or filters.
228
229
  * Returns minimal fields only (context-efficient).
229
230
  *
230
231
  * Accepts any of:
231
- * - positional `query` for fuzzy title/description search
232
+ * - positional `query` for lexical title/description search (`fuzzy` opts in)
232
233
  * - `id` prefix
233
234
  * - `status` / `kind` filter (any of these alone is sufficient — no
234
235
  * query required, returns all matches)
@@ -240,6 +241,16 @@ export function extractInlineFilters(options) {
240
241
  */
241
242
  export async function findTasks(rawOptions, cwd, accessor) {
242
243
  const options = extractInlineFilters(rawOptions);
244
+ const supportedFields = ['title', 'description', 'notes', 'id'];
245
+ if (options.field && !supportedFields.includes(options.field)) {
246
+ throw new CleoError(ExitCode.INVALID_INPUT, `Unsupported search field '${options.field}'; use title, description, notes, or id`);
247
+ }
248
+ if (options.exact && (options.fuzzy || (options.field && options.field !== 'title'))) {
249
+ throw new CleoError(ExitCode.INVALID_INPUT, 'Exact title search cannot be combined with fuzzy or another field');
250
+ }
251
+ const fields = options.field
252
+ ? [options.field]
253
+ : ['title', 'description'];
243
254
  // T10108: an empty-string or whitespace-only `query` is the same as no
244
255
  // query — without this, `fuzzyScore('', '<any title>')` returns 80 for
245
256
  // every task (the empty string is a substring of every string), bypassing
@@ -256,66 +267,13 @@ export async function findTasks(rawOptions, cwd, accessor) {
256
267
  });
257
268
  }
258
269
  const acc = accessor ?? (await getTaskAccessor(cwd));
259
- // T10108: Saga-aware --parent routing.
260
- // When --parent targets a Saga, resolve members through the canonical
261
- // Saga member helper. Falls back to the default parentId-based query when the
262
- // parent is not a Saga (or does not exist — non-existent IDs collapse to
263
- // an empty result via the default path, preserving historical behaviour).
264
- // Mirrors `listTasks` (ADR-073 §1).
265
- let sagaMemberIds = null;
266
- if (options.parent) {
267
- sagaMemberIds = await resolveSagaMemberIds(acc, options.parent);
268
- }
269
- // Use targeted query with status/label/parent filters when available —
270
- // push them into the accessor so SQLite-backed accessors benefit from the
271
- // existing query predicates. T9904 (label) / T10108 (parent).
272
- const filters = {};
273
- if (options.status) {
274
- filters.status = options.status;
275
- }
276
- if (options.label) {
277
- filters.label = options.label;
278
- }
279
- // T10108: skip the raw parentId filter when routing through the Saga helper;
280
- // the member-set intersection below restricts the result in-memory instead.
281
- if (options.parent && sagaMemberIds === null) {
282
- filters.parentId = options.parent;
283
- }
284
- const queryResult = await acc.queryTasks(filters);
285
- let allTasks = [...queryResult.tasks];
286
- // T10108: Saga path — restrict the queried set to the saga's member IDs.
287
- if (sagaMemberIds !== null) {
288
- const memberOrder = new Map();
289
- for (let idx = 0; idx < sagaMemberIds.length; idx++) {
290
- const id = sagaMemberIds[idx];
291
- if (id !== undefined)
292
- memberOrder.set(id, idx);
293
- }
294
- const memberSet = new Set(sagaMemberIds);
295
- allTasks = allTasks
296
- .filter((t) => memberSet.has(t.id))
297
- .sort((a, b) => (memberOrder.get(a.id) ?? 0) - (memberOrder.get(b.id) ?? 0));
298
- }
299
- // Include archive if requested
300
- if (options.includeArchive) {
301
- const archive = await acc.loadArchive();
302
- if (archive?.archivedTasks) {
303
- let archivedTasks = archive.archivedTasks;
304
- if (options.status) {
305
- archivedTasks = archivedTasks.filter((t) => t.status === options.status);
306
- }
307
- if (options.label) {
308
- // T9904 — archive doesn't flow through queryTasks; apply the label
309
- // predicate here so includeArchive composes correctly.
310
- archivedTasks = archivedTasks.filter((t) => (t.labels ?? []).includes(options.label));
311
- }
312
- allTasks = [...allTasks, ...archivedTasks];
313
- }
314
- }
315
- // T944/T9072: kind filter — applied after status/archive resolution
316
- if (options.kind) {
317
- allTasks = allTasks.filter((t) => t.kind === options.kind);
318
- }
270
+ const filters = {
271
+ status: options.status,
272
+ label: options.label,
273
+ parentId: options.parent,
274
+ kind: options.kind,
275
+ };
276
+ let allTasks = await readTaskPopulation(acc, filters, options.includeArchive);
319
277
  // T9905: unified urgency filter. Disjunctive across the two orthogonal axes:
320
278
  // priority IN ('critical','high') OR severity IN ('P0','P1')
321
279
  if (options.urgent) {
@@ -341,6 +299,12 @@ export async function findTasks(rawOptions, cwd, accessor) {
341
299
  depends: t.depends ?? [],
342
300
  size: t.size ?? undefined,
343
301
  severity: t.severity ?? undefined,
302
+ match: {
303
+ kind: 'id',
304
+ fields: ['id'],
305
+ terms: [idQuery],
306
+ reason: 'Case-insensitive ID equality, prefix, or substring',
307
+ },
344
308
  score: t.id.toUpperCase() === idQuery ? 100 : t.id.toUpperCase().startsWith(idQuery) ? 80 : 50,
345
309
  }));
346
310
  }
@@ -361,12 +325,18 @@ export async function findTasks(rawOptions, cwd, accessor) {
361
325
  size: t.size ?? undefined,
362
326
  severity: t.severity ?? undefined,
363
327
  score: 100,
328
+ match: {
329
+ kind: 'exact',
330
+ fields: ['title'],
331
+ terms: [queryStr],
332
+ reason: 'Exact case-sensitive title equality',
333
+ },
364
334
  }));
365
335
  }
366
336
  else if (options.query == null) {
367
337
  // Filter-only mode — return every task the status/kind filter already
368
338
  // matched. All-equal score=50 so pagination is stable. T1187-followup.
369
- searchType = 'fuzzy';
339
+ searchType = 'filter';
370
340
  queryStr = '';
371
341
  results = allTasks.map((t) => ({
372
342
  id: t.id,
@@ -379,17 +349,49 @@ export async function findTasks(rawOptions, cwd, accessor) {
379
349
  size: t.size ?? undefined,
380
350
  severity: t.severity ?? undefined,
381
351
  score: 50,
352
+ match: {
353
+ kind: 'filter',
354
+ fields: [],
355
+ terms: [],
356
+ reason: 'Matched explicit task filters; no text query',
357
+ },
382
358
  }));
383
359
  }
384
360
  else {
385
- // Fuzzy search
386
- searchType = 'fuzzy';
361
+ // Lexical by default; subsequence matching requires explicit opt-in.
362
+ searchType = options.fuzzy ? 'fuzzy' : 'lexical';
387
363
  queryStr = options.query;
388
364
  const scored = [];
389
365
  for (const t of allTasks) {
390
- const titleScore = fuzzyScore(queryStr, t.title);
391
- const descScore = t.description ? fuzzyScore(queryStr, t.description) * 0.7 : 0;
392
- const score = Math.max(titleScore, descScore);
366
+ const texts = {
367
+ title: t.title,
368
+ description: t.description ?? '',
369
+ notes: (t.notes ?? []).join('\n'),
370
+ id: t.id,
371
+ };
372
+ const terms = queryStr.toLowerCase().trim().split(/\s+/);
373
+ const candidates = fields
374
+ .map((field) => {
375
+ const text = texts[field];
376
+ const literalTerms = terms.filter((term) => text.toLowerCase().includes(term));
377
+ const score = options.fuzzy || literalTerms.length > 0
378
+ ? fuzzyScore(queryStr, text) * (field === 'description' ? 0.7 : 1)
379
+ : 0;
380
+ return { field, score, literalTerms };
381
+ })
382
+ .filter((candidate) => candidate.score > 0);
383
+ const score = Math.max(0, ...candidates.map((candidate) => candidate.score));
384
+ const literalTerms = [...new Set(candidates.flatMap((candidate) => candidate.literalTerms))];
385
+ const match = {
386
+ kind: literalTerms.length ? 'lexical' : 'fuzzy',
387
+ fields: candidates
388
+ .filter((candidate) => !literalTerms.length || candidate.literalTerms.length > 0)
389
+ .map((candidate) => candidate.field),
390
+ terms: literalTerms,
391
+ reason: literalTerms.length
392
+ ? 'Case-insensitive literal query terms in the named fields'
393
+ : 'Explicit fuzzy opt-in: character subsequence, not literal query terms',
394
+ };
393
395
  if (score > 0) {
394
396
  scored.push({
395
397
  id: t.id,
@@ -402,6 +404,7 @@ export async function findTasks(rawOptions, cwd, accessor) {
402
404
  size: t.size ?? undefined,
403
405
  severity: t.severity ?? undefined,
404
406
  score: Math.round(score),
407
+ match,
405
408
  });
406
409
  }
407
410
  }
@@ -411,29 +414,24 @@ export async function findTasks(rawOptions, cwd, accessor) {
411
414
  // makes `total` useless as a signal. When nothing matches strongly the
412
415
  // weak tier is all there is, so keep it rather than return nothing.
413
416
  const hasStrong = scored.some((r) => r.score >= RELEVANCE_STRONG_MIN);
414
- const relevant = hasStrong ? scored.filter((r) => r.score >= RELEVANCE_STRONG_MIN) : scored;
417
+ const relevant = options.fuzzy && hasStrong ? scored.filter((r) => r.score >= RELEVANCE_STRONG_MIN) : scored;
415
418
  results = relevant.sort((a, b) => b.score - a.score);
416
419
  }
417
420
  const total = results.length;
418
- // Apply pagination.
419
- //
420
- // GH #1302 — `limit === 0` means NO LIMIT here, as it always has in
421
- // `listTasks`. It previously meant `slice(offset, offset + 0)`, i.e. ZERO
422
- // rows, so the same flag spelled the same way returned everything on
423
- // `cleo list` and nothing on `cleo find`. The envelope made that worse rather
424
- // than obvious: `{"results": [], "total": 260}` with a message reading "No
425
- // matching tasks found" — the answer and its own refutation in one object.
426
- const limit = options.limit ?? 20;
427
- const offset = options.offset ?? 0;
428
- results = limit === 0 ? results.slice(offset) : results.slice(offset, offset + limit);
421
+ const { rows, population } = paginateTaskPopulation(results, options.limit ?? 20, options.offset ?? 0, options.status === 'archived' ? 'only' : options.includeArchive ? 'included' : 'excluded');
422
+ results = rows;
429
423
  // Enrich each result with _next progressive disclosure directives
430
- const enrichedResults = results.map((r) => ({
431
- ...r,
432
- _next: taskListItemNext(r.id),
433
- }));
424
+ const sourceById = new Map(allTasks.map((task) => [task.id, task]));
425
+ const enrichedResults = results.map((r) => {
426
+ const source = sourceById.get(r.id);
427
+ if (!source)
428
+ throw new CleoError(ExitCode.GENERAL_ERROR, `Search source missing for ${r.id}`);
429
+ return discloseProjection({ ...source }, { ...r, _next: taskListItemNext(r.id) });
430
+ });
434
431
  return {
435
432
  results: enrichedResults,
436
433
  total,
434
+ population,
437
435
  query: queryStr,
438
436
  searchType,
439
437
  };
@@ -442,7 +440,7 @@ export async function findTasks(rawOptions, cwd, accessor) {
442
440
  // EngineResult-returning wrapper (T1568 / ADR-057 / ADR-058)
443
441
  // ---------------------------------------------------------------------------
444
442
  /**
445
- * Fuzzy search tasks by title/description/ID, wrapped in EngineResult.
443
+ * Search tasks with explicit matching provenance, wrapped in EngineResult.
446
444
  *
447
445
  * @param projectRoot - Absolute path to the project root
448
446
  * @param query - Search string to match against title, description, or ID
@@ -460,6 +458,8 @@ export async function taskFind(projectRoot, query, limit, options) {
460
458
  query,
461
459
  id: options?.id,
462
460
  exact: options?.exact,
461
+ fuzzy: options?.fuzzy,
462
+ field: options?.field,
463
463
  status: options?.status,
464
464
  includeArchive: options?.includeArchive,
465
465
  limit: limit ?? 20,
@@ -473,13 +473,21 @@ export async function taskFind(projectRoot, query, limit, options) {
473
473
  const fullResults = [];
474
474
  for (const r of findResult.results) {
475
475
  const task = await accessor.loadSingleTask(r.id);
476
- if (task)
477
- fullResults.push(taskToRecord(task));
476
+ if (!task)
477
+ throw new CleoError(ExitCode.GENERAL_ERROR, `Task ${r.id} disappeared during search projection; retry the query`);
478
+ fullResults.push({ ...taskToRecord(task), match: r.match });
478
479
  }
479
- return engineSuccess({ results: fullResults, total: findResult.total });
480
+ return engineSuccess({
481
+ results: fullResults,
482
+ total: findResult.total,
483
+ population: findResult.population,
484
+ query: findResult.query,
485
+ searchType: findResult.searchType,
486
+ });
480
487
  }
481
- const results = findResult.results.map((r) => ({
488
+ const results = findResult.results.map((r) => discloseProjection({ ...r }, {
482
489
  id: r.id,
490
+ match: r.match,
483
491
  title: r.title,
484
492
  status: r.status,
485
493
  priority: r.priority,
@@ -492,7 +500,13 @@ export async function taskFind(projectRoot, query, limit, options) {
492
500
  // `cleo show` per row.
493
501
  ...(r.severity != null ? { severity: r.severity } : {}),
494
502
  }));
495
- return engineSuccess({ results, total: findResult.total });
503
+ return engineSuccess({
504
+ results,
505
+ total: findResult.total,
506
+ population: findResult.population,
507
+ query: findResult.query,
508
+ searchType: findResult.searchType,
509
+ });
496
510
  }
497
511
  catch (err) {
498
512
  // T9940: preserve CleoError LAFS codes; non-CleoError → E_INTERNAL,
@@ -1 +1 @@
1
- {"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/tasks/find.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/tasks/find.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Typed-gate PREVIEW — run a task's `AcceptanceGate[]` and report the results
3
+ * without recording anything.
4
+ *
5
+ * ## Why this exists (T12308)
6
+ *
7
+ * Typed gates had exactly one way to execute: as a side effect of
8
+ * `cleo verify <id> --gate <g> --evidence <atoms>`. Every typed gate on the
9
+ * task ran, implicitly, during a call whose stated purpose was to ATTEST a
10
+ * different gate — and the only way to discover whether they would pass was to
11
+ * make that attestation.
12
+ *
13
+ * The explicit driver had been documented since T768 and is still emitted into
14
+ * every validation-stage spawn prompt ("Run `cleo verify <id> --run` and
15
+ * capture output"), but the flag was dropped from the command, so an agent
16
+ * following CLEO's own instruction got `Unknown flag` and had no supported way
17
+ * to ask the question. Restoring it as a read-only operation is what makes the
18
+ * two surfaces agree: `--run` observes, `--evidence` attests.
19
+ *
20
+ * Nothing here persists. No verification record, no receipt, no gate state —
21
+ * which is also why it does not need the criterion bindings `runTaskGates`
22
+ * builds: a result that is never stored cannot be mistaken for evidence later.
23
+ *
24
+ * @task T12308
25
+ */
26
+ import type { AcceptanceGateResult, ValidateGateParams } from '@cleocode/contracts';
27
+ /** Outcome of a typed-gate preview run. */
28
+ export interface TaskGatePreview {
29
+ /** Task whose gates were run. */
30
+ taskId: string;
31
+ /** Number of typed gates found on the task's acceptance array. */
32
+ gateCount: number;
33
+ /** One result per typed gate, in acceptance-array order. */
34
+ results: AcceptanceGateResult[];
35
+ /**
36
+ * True when no gate returned `fail` or `error`.
37
+ *
38
+ * `warn` (a failed advisory gate) and `skipped` (a manual gate) do not
39
+ * withhold it — they carry their own meaning in `results`.
40
+ */
41
+ passed: boolean;
42
+ /**
43
+ * Always `false`, and present on purpose.
44
+ *
45
+ * The caller is reading gate outcomes outside the attestation path, and the
46
+ * response has to say so in its own data rather than relying on the reader
47
+ * knowing which verb they used.
48
+ */
49
+ persisted: false;
50
+ /** Present when the task carries no typed gates, explaining the empty result. */
51
+ note?: string;
52
+ }
53
+ /**
54
+ * Run every typed gate on a task and return the results, persisting nothing.
55
+ *
56
+ * Signature follows ADR-057: `(projectRoot, params)`, uniform with every other
57
+ * core function behind a dispatch operation.
58
+ *
59
+ * @param projectRoot - Absolute CLEO store root.
60
+ * @param params - Dispatch params; `taskId` selects the task, `agent` attributes the results.
61
+ * @returns Per-gate results plus an aggregate verdict.
62
+ * @throws When the task does not exist, or the project has no stable identity.
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * const preview = await previewTaskGates(projectRoot, { taskId: 'T489' });
67
+ * if (!preview.passed) console.error(preview.results);
68
+ * ```
69
+ *
70
+ * @task T12308
71
+ */
72
+ export declare function previewTaskGates(projectRoot: string, params: ValidateGateParams): Promise<TaskGatePreview>;
73
+ //# sourceMappingURL=gate-preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-preview.d.ts","sourceRoot":"","sources":["../../src/tasks/gate-preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,KAAK,EAEV,oBAAoB,EAEpB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAY7B,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC;;;;;OAKG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,SAAS,EAAE,KAAK,CAAC;IACjB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAsD1B"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Typed-gate PREVIEW — run a task's `AcceptanceGate[]` and report the results
3
+ * without recording anything.
4
+ *
5
+ * ## Why this exists (T12308)
6
+ *
7
+ * Typed gates had exactly one way to execute: as a side effect of
8
+ * `cleo verify <id> --gate <g> --evidence <atoms>`. Every typed gate on the
9
+ * task ran, implicitly, during a call whose stated purpose was to ATTEST a
10
+ * different gate — and the only way to discover whether they would pass was to
11
+ * make that attestation.
12
+ *
13
+ * The explicit driver had been documented since T768 and is still emitted into
14
+ * every validation-stage spawn prompt ("Run `cleo verify <id> --run` and
15
+ * capture output"), but the flag was dropped from the command, so an agent
16
+ * following CLEO's own instruction got `Unknown flag` and had no supported way
17
+ * to ask the question. Restoring it as a read-only operation is what makes the
18
+ * two surfaces agree: `--run` observes, `--evidence` attests.
19
+ *
20
+ * Nothing here persists. No verification record, no receipt, no gate state —
21
+ * which is also why it does not need the criterion bindings `runTaskGates`
22
+ * builds: a result that is never stored cannot be mistaken for evidence later.
23
+ *
24
+ * @task T12308
25
+ */
26
+ import { randomUUID } from 'node:crypto';
27
+ import { join, resolve } from 'node:path';
28
+ import { readProjectInfoAtDirectorySync } from '../project-scope.js';
29
+ import { createOperationExecutionContext } from '../store/background-ops.js';
30
+ import { getTaskAccessor } from '../store/data-accessor.js';
31
+ import { extractTypedGates, runGates } from './gate-runner.js';
32
+ /** Default per-gate ceiling, mirroring the gate runner's own default. */
33
+ const DEFAULT_GATE_TIMEOUT_MS = Number(process.env['CLEO_GATE_TIMEOUT_MS'] ?? 60_000);
34
+ /** Slack added to the summed per-gate budget for spawn and teardown overhead. */
35
+ const PREVIEW_OVERHEAD_MS = 5_000;
36
+ /**
37
+ * Wall-clock budget for the whole preview: every gate's own ceiling, plus slack.
38
+ *
39
+ * The gate runner's default batch deadline is two seconds, which is right for
40
+ * verification admitted inside a mutation but cannot host a real test suite.
41
+ * Deriving the budget from the gates themselves keeps the bound honest without
42
+ * inventing a number.
43
+ *
44
+ * @param gates - Gates that will run.
45
+ */
46
+ function previewBudgetMs(gates) {
47
+ const total = gates.reduce((sum, gate) => sum + (gate.timeoutMs ?? DEFAULT_GATE_TIMEOUT_MS), PREVIEW_OVERHEAD_MS);
48
+ return Math.min(total, Number.MAX_SAFE_INTEGER);
49
+ }
50
+ /**
51
+ * Run every typed gate on a task and return the results, persisting nothing.
52
+ *
53
+ * Signature follows ADR-057: `(projectRoot, params)`, uniform with every other
54
+ * core function behind a dispatch operation.
55
+ *
56
+ * @param projectRoot - Absolute CLEO store root.
57
+ * @param params - Dispatch params; `taskId` selects the task, `agent` attributes the results.
58
+ * @returns Per-gate results plus an aggregate verdict.
59
+ * @throws When the task does not exist, or the project has no stable identity.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * const preview = await previewTaskGates(projectRoot, { taskId: 'T489' });
64
+ * if (!preview.passed) console.error(preview.results);
65
+ * ```
66
+ *
67
+ * @task T12308
68
+ */
69
+ export async function previewTaskGates(projectRoot, params) {
70
+ const { taskId } = params;
71
+ const root = resolve(projectRoot);
72
+ const accessor = await getTaskAccessor(root);
73
+ const task = await accessor.loadSingleTask(taskId);
74
+ if (!task)
75
+ throw new Error(`Task not found: ${taskId}`);
76
+ const typed = extractTypedGates(task.acceptance ?? []);
77
+ if (typed.length === 0) {
78
+ return {
79
+ taskId,
80
+ gateCount: 0,
81
+ results: [],
82
+ passed: true,
83
+ persisted: false,
84
+ note: `${taskId} has no typed acceptance gates — its criteria are free text, which ` +
85
+ `cannot be executed. Add one with \`cleo req add ${taskId} --gate '<json>'\`.`,
86
+ };
87
+ }
88
+ const gates = typed.map((entry) => entry.gate);
89
+ const identity = readProjectInfoAtDirectorySync(root, join(root, '.cleo'));
90
+ if (!identity.projectId)
91
+ throw new Error('Typed gate execution requires a stable project identity');
92
+ const execution = createOperationExecutionContext({
93
+ projectId: identity.projectId,
94
+ projectRoot: root,
95
+ actor: params.agent ?? process.env['CLEO_AGENT_ID'] ?? 'cleo-verify',
96
+ operation: 'check.gate.verify',
97
+ idempotencyKey: `${taskId}:preview:${randomUUID()}`,
98
+ }, { budgetMs: previewBudgetMs(gates) });
99
+ try {
100
+ const observed = await runGates(gates, { projectRoot: root, execution });
101
+ // Restore the acceptance-array index the runner reports positionally, so a
102
+ // result lines up with the criterion the reader sees in `cleo show`.
103
+ const results = observed.map((result, i) => ({
104
+ ...result,
105
+ index: typed[i]?.originalIndex ?? result.index,
106
+ }));
107
+ return {
108
+ taskId,
109
+ gateCount: results.length,
110
+ results,
111
+ passed: !results.some((r) => r.result === 'fail' || r.result === 'error'),
112
+ persisted: false,
113
+ };
114
+ }
115
+ finally {
116
+ execution.close();
117
+ }
118
+ }
119
+ //# sourceMappingURL=gate-preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-preview.js","sourceRoot":"","sources":["../../src/tasks/gate-preview.ts"],"names":[],"mappings":"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"}