@cleocode/core 2026.10.21 → 2026.10.22

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 (420) hide show
  1. package/STABILITY.md +1 -1
  2. package/dist/build-provenance.json +2 -2
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +2 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/docs/document-edges.d.ts +38 -0
  7. package/dist/docs/document-edges.d.ts.map +1 -0
  8. package/dist/docs/document-edges.js +62 -0
  9. package/dist/docs/document-edges.js.map +1 -0
  10. package/dist/docs/projection.d.ts +3 -2
  11. package/dist/docs/projection.d.ts.map +1 -1
  12. package/dist/docs/projection.js +33 -36
  13. package/dist/docs/projection.js.map +1 -1
  14. package/dist/events/event-bus.d.ts +6 -5
  15. package/dist/events/event-bus.d.ts.map +1 -1
  16. package/dist/events/event-bus.js +9 -8
  17. package/dist/events/event-bus.js.map +1 -1
  18. package/dist/gateway-client/generated/index.d.ts +2 -2
  19. package/dist/gateway-client/generated/index.d.ts.map +1 -1
  20. package/dist/gateway-client/generated/index.js +1 -1
  21. package/dist/gateway-client/generated/index.js.map +1 -1
  22. package/dist/gateway-client/generated/namespaces.gen.d.ts +1 -0
  23. package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -1
  24. package/dist/gateway-client/generated/namespaces.gen.js +2 -1
  25. package/dist/gateway-client/generated/namespaces.gen.js.map +1 -1
  26. package/dist/gateway-client/generated/sdk.gen.d.ts +5 -1
  27. package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -1
  28. package/dist/gateway-client/generated/sdk.gen.js +11 -0
  29. package/dist/gateway-client/generated/sdk.gen.js.map +1 -1
  30. package/dist/gateway-client/generated/types.gen.d.ts +34 -0
  31. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
  32. package/dist/git/base-ref.d.ts +81 -0
  33. package/dist/git/base-ref.d.ts.map +1 -0
  34. package/dist/git/base-ref.js +135 -0
  35. package/dist/git/base-ref.js.map +1 -0
  36. package/dist/git/hooks-install.d.ts +1 -1
  37. package/dist/git/hooks-install.d.ts.map +1 -1
  38. package/dist/git/work-tree.d.ts +40 -0
  39. package/dist/git/work-tree.d.ts.map +1 -1
  40. package/dist/git/work-tree.js +62 -7
  41. package/dist/git/work-tree.js.map +1 -1
  42. package/dist/hooks/handlers/conduit-hooks.d.ts +2 -1
  43. package/dist/hooks/handlers/conduit-hooks.d.ts.map +1 -1
  44. package/dist/hooks/handlers/conduit-hooks.js +9 -23
  45. package/dist/hooks/handlers/conduit-hooks.js.map +1 -1
  46. package/dist/hooks/handlers/index.d.ts +0 -1
  47. package/dist/hooks/handlers/index.d.ts.map +1 -1
  48. package/dist/hooks/handlers/index.js +0 -2
  49. package/dist/hooks/handlers/index.js.map +1 -1
  50. package/dist/hooks.d.ts +1 -1
  51. package/dist/hooks.d.ts.map +1 -1
  52. package/dist/init.d.ts.map +1 -1
  53. package/dist/init.js +5 -12
  54. package/dist/init.js.map +1 -1
  55. package/dist/internal.d.ts +2 -3
  56. package/dist/internal.d.ts.map +1 -1
  57. package/dist/internal.js +1 -1
  58. package/dist/internal.js.map +1 -1
  59. package/dist/lifecycle/index.d.ts +15 -1
  60. package/dist/lifecycle/index.d.ts.map +1 -1
  61. package/dist/lifecycle/index.js +12 -6
  62. package/dist/lifecycle/index.js.map +1 -1
  63. package/dist/lifecycle/stage-guidance.js +1 -1
  64. package/dist/lifecycle/stage-guidance.js.map +1 -1
  65. package/dist/memory/auto-row-quarantine.d.ts +196 -0
  66. package/dist/memory/auto-row-quarantine.d.ts.map +1 -0
  67. package/dist/memory/auto-row-quarantine.js +363 -0
  68. package/dist/memory/auto-row-quarantine.js.map +1 -0
  69. package/dist/memory/auto-row-rules.d.ts +29 -0
  70. package/dist/memory/auto-row-rules.d.ts.map +1 -0
  71. package/dist/memory/auto-row-rules.js +55 -0
  72. package/dist/memory/auto-row-rules.js.map +1 -0
  73. package/dist/memory/brain-lifecycle.d.ts.map +1 -1
  74. package/dist/memory/brain-lifecycle.js +13 -8
  75. package/dist/memory/brain-lifecycle.js.map +1 -1
  76. package/dist/memory/brain-search.d.ts +49 -29
  77. package/dist/memory/brain-search.d.ts.map +1 -1
  78. package/dist/memory/brain-search.js +159 -156
  79. package/dist/memory/brain-search.js.map +1 -1
  80. package/dist/memory/brain-similarity.d.ts +27 -4
  81. package/dist/memory/brain-similarity.d.ts.map +1 -1
  82. package/dist/memory/brain-similarity.js +41 -20
  83. package/dist/memory/brain-similarity.js.map +1 -1
  84. package/dist/memory/brain-stub-prune.d.ts +13 -0
  85. package/dist/memory/brain-stub-prune.d.ts.map +1 -1
  86. package/dist/memory/brain-stub-prune.js +14 -3
  87. package/dist/memory/brain-stub-prune.js.map +1 -1
  88. package/dist/memory/brain-writer-handlers.d.ts +3 -7
  89. package/dist/memory/brain-writer-handlers.d.ts.map +1 -1
  90. package/dist/memory/brain-writer-handlers.js +5 -20
  91. package/dist/memory/brain-writer-handlers.js.map +1 -1
  92. package/dist/memory/brain-writer-thread.d.ts +2 -11
  93. package/dist/memory/brain-writer-thread.d.ts.map +1 -1
  94. package/dist/memory/brain-writer-thread.js +20 -78
  95. package/dist/memory/brain-writer-thread.js.map +1 -1
  96. package/dist/memory/brain-writer-worker.js +1 -8
  97. package/dist/memory/brain-writer-worker.js.map +1 -1
  98. package/dist/memory/dispatch-trace-format.d.ts +13 -14
  99. package/dist/memory/dispatch-trace-format.d.ts.map +1 -1
  100. package/dist/memory/dispatch-trace-format.js +13 -14
  101. package/dist/memory/dispatch-trace-format.js.map +1 -1
  102. package/dist/memory/eligibility.d.ts +22 -0
  103. package/dist/memory/eligibility.d.ts.map +1 -1
  104. package/dist/memory/eligibility.js +36 -0
  105. package/dist/memory/eligibility.js.map +1 -1
  106. package/dist/memory/engine-compat.d.ts.map +1 -1
  107. package/dist/memory/engine-compat.js +11 -1
  108. package/dist/memory/engine-compat.js.map +1 -1
  109. package/dist/memory/evidence-graph-links.d.ts +253 -0
  110. package/dist/memory/evidence-graph-links.d.ts.map +1 -0
  111. package/dist/memory/evidence-graph-links.js +554 -0
  112. package/dist/memory/evidence-graph-links.js.map +1 -0
  113. package/dist/memory/extraction-gate.d.ts +7 -0
  114. package/dist/memory/extraction-gate.d.ts.map +1 -1
  115. package/dist/memory/extraction-gate.js +20 -8
  116. package/dist/memory/extraction-gate.js.map +1 -1
  117. package/dist/memory/global-brain.d.ts +4 -6
  118. package/dist/memory/global-brain.d.ts.map +1 -1
  119. package/dist/memory/global-brain.js +15 -2
  120. package/dist/memory/global-brain.js.map +1 -1
  121. package/dist/memory/graph-auto-populate.d.ts +73 -1
  122. package/dist/memory/graph-auto-populate.d.ts.map +1 -1
  123. package/dist/memory/graph-auto-populate.js +111 -8
  124. package/dist/memory/graph-auto-populate.js.map +1 -1
  125. package/dist/memory/import-from-provider.d.ts +19 -6
  126. package/dist/memory/import-from-provider.d.ts.map +1 -1
  127. package/dist/memory/import-from-provider.js +28 -15
  128. package/dist/memory/import-from-provider.js.map +1 -1
  129. package/dist/memory/lessons-import.d.ts +175 -0
  130. package/dist/memory/lessons-import.d.ts.map +1 -0
  131. package/dist/memory/lessons-import.js +233 -0
  132. package/dist/memory/lessons-import.js.map +1 -0
  133. package/dist/memory/lessons.d.ts +67 -0
  134. package/dist/memory/lessons.d.ts.map +1 -0
  135. package/dist/memory/lessons.js +121 -0
  136. package/dist/memory/lessons.js.map +1 -0
  137. package/dist/memory/memory-bridge.d.ts.map +1 -1
  138. package/dist/memory/memory-bridge.js +3 -2
  139. package/dist/memory/memory-bridge.js.map +1 -1
  140. package/dist/memory/public-api.d.ts.map +1 -1
  141. package/dist/memory/public-api.js +7 -6
  142. package/dist/memory/public-api.js.map +1 -1
  143. package/dist/memory/recall-ranking.d.ts +88 -0
  144. package/dist/memory/recall-ranking.d.ts.map +1 -0
  145. package/dist/memory/recall-ranking.js +130 -0
  146. package/dist/memory/recall-ranking.js.map +1 -0
  147. package/dist/memory/retrieval/build-retrieval-bundle.js +5 -5
  148. package/dist/memory/retrieval/build-retrieval-bundle.js.map +1 -1
  149. package/dist/memory/retrieval/fetch.d.ts +3 -2
  150. package/dist/memory/retrieval/fetch.d.ts.map +1 -1
  151. package/dist/memory/retrieval/fetch.js +4 -3
  152. package/dist/memory/retrieval/fetch.js.map +1 -1
  153. package/dist/memory/retrieval/observe.d.ts +1 -7
  154. package/dist/memory/retrieval/observe.d.ts.map +1 -1
  155. package/dist/memory/retrieval/observe.js +9 -58
  156. package/dist/memory/retrieval/observe.js.map +1 -1
  157. package/dist/memory/retrieval/search.d.ts +5 -6
  158. package/dist/memory/retrieval/search.d.ts.map +1 -1
  159. package/dist/memory/retrieval/search.js +38 -102
  160. package/dist/memory/retrieval/search.js.map +1 -1
  161. package/dist/memory/retrieval/telemetry.d.ts +5 -16
  162. package/dist/memory/retrieval/telemetry.d.ts.map +1 -1
  163. package/dist/memory/retrieval/telemetry.js +5 -22
  164. package/dist/memory/retrieval/telemetry.js.map +1 -1
  165. package/dist/nexus/analyze-orchestrator.d.ts +15 -0
  166. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  167. package/dist/nexus/analyze-orchestrator.js +53 -6
  168. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  169. package/dist/nexus/brief-map.d.ts +60 -0
  170. package/dist/nexus/brief-map.d.ts.map +1 -0
  171. package/dist/nexus/brief-map.js +234 -0
  172. package/dist/nexus/brief-map.js.map +1 -0
  173. package/dist/nexus/freshness.d.ts +128 -13
  174. package/dist/nexus/freshness.d.ts.map +1 -1
  175. package/dist/nexus/freshness.js +374 -86
  176. package/dist/nexus/freshness.js.map +1 -1
  177. package/dist/nexus/graph-manifest.d.ts +47 -0
  178. package/dist/nexus/graph-manifest.d.ts.map +1 -1
  179. package/dist/nexus/graph-manifest.js +69 -0
  180. package/dist/nexus/graph-manifest.js.map +1 -1
  181. package/dist/nexus/hooks-augment.d.ts.map +1 -1
  182. package/dist/nexus/hooks-augment.js +7 -3
  183. package/dist/nexus/hooks-augment.js.map +1 -1
  184. package/dist/nexus/index-health.d.ts +112 -0
  185. package/dist/nexus/index-health.d.ts.map +1 -0
  186. package/dist/nexus/index-health.js +199 -0
  187. package/dist/nexus/index-health.js.map +1 -0
  188. package/dist/nexus/living-brain.d.ts.map +1 -1
  189. package/dist/nexus/living-brain.js +2 -15
  190. package/dist/nexus/living-brain.js.map +1 -1
  191. package/dist/nexus/pid-lock.d.ts +50 -0
  192. package/dist/nexus/pid-lock.d.ts.map +1 -0
  193. package/dist/nexus/pid-lock.js +135 -0
  194. package/dist/nexus/pid-lock.js.map +1 -0
  195. package/dist/nexus/projects-clean.d.ts.map +1 -1
  196. package/dist/nexus/projects-clean.js +33 -2
  197. package/dist/nexus/projects-clean.js.map +1 -1
  198. package/dist/nexus/refresh-child.js +4 -0
  199. package/dist/nexus/refresh-child.js.map +1 -1
  200. package/dist/nexus/registry-host.d.ts +70 -0
  201. package/dist/nexus/registry-host.d.ts.map +1 -0
  202. package/dist/nexus/registry-host.js +79 -0
  203. package/dist/nexus/registry-host.js.map +1 -0
  204. package/dist/nexus/registry.d.ts +37 -0
  205. package/dist/nexus/registry.d.ts.map +1 -1
  206. package/dist/nexus/registry.js +49 -1
  207. package/dist/nexus/registry.js.map +1 -1
  208. package/dist/nexus/reindex-on-merge.d.ts +94 -0
  209. package/dist/nexus/reindex-on-merge.d.ts.map +1 -0
  210. package/dist/nexus/reindex-on-merge.js +192 -0
  211. package/dist/nexus/reindex-on-merge.js.map +1 -0
  212. package/dist/orchestrate/handoff-ops.d.ts.map +1 -1
  213. package/dist/orchestrate/handoff-ops.js +1 -13
  214. package/dist/orchestrate/handoff-ops.js.map +1 -1
  215. package/dist/orchestrate/index.d.ts +2 -3
  216. package/dist/orchestrate/index.d.ts.map +1 -1
  217. package/dist/orchestrate/index.js +2 -2
  218. package/dist/orchestrate/index.js.map +1 -1
  219. package/dist/orchestrate/lifecycle-ops.d.ts +3 -0
  220. package/dist/orchestrate/lifecycle-ops.d.ts.map +1 -1
  221. package/dist/orchestrate/lifecycle-ops.js +5 -5
  222. package/dist/orchestrate/lifecycle-ops.js.map +1 -1
  223. package/dist/orchestrate/spawn-ops.d.ts +8 -28
  224. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  225. package/dist/orchestrate/spawn-ops.js +8 -67
  226. package/dist/orchestrate/spawn-ops.js.map +1 -1
  227. package/dist/orchestration/lead-rollup.d.ts +7 -0
  228. package/dist/orchestration/lead-rollup.d.ts.map +1 -1
  229. package/dist/orchestration/lead-rollup.js.map +1 -1
  230. package/dist/orchestration/spawn-prompt.d.ts +8 -29
  231. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  232. package/dist/orchestration/spawn-prompt.js +44 -112
  233. package/dist/orchestration/spawn-prompt.js.map +1 -1
  234. package/dist/orchestration/spawn.d.ts +7 -14
  235. package/dist/orchestration/spawn.d.ts.map +1 -1
  236. package/dist/orchestration/spawn.js +2 -5
  237. package/dist/orchestration/spawn.js.map +1 -1
  238. package/dist/orchestration/wave-topic.d.ts +0 -13
  239. package/dist/orchestration/wave-topic.d.ts.map +1 -1
  240. package/dist/orchestration/wave-topic.js +0 -20
  241. package/dist/orchestration/wave-topic.js.map +1 -1
  242. package/dist/release/engine-ops.js +2 -2
  243. package/dist/release/engine-ops.js.map +1 -1
  244. package/dist/release/github-pr.d.ts +8 -5
  245. package/dist/release/github-pr.d.ts.map +1 -1
  246. package/dist/release/github-pr.js +11 -16
  247. package/dist/release/github-pr.js.map +1 -1
  248. package/dist/release/plan.d.ts +4 -2
  249. package/dist/release/plan.d.ts.map +1 -1
  250. package/dist/release/plan.js +11 -4
  251. package/dist/release/plan.js.map +1 -1
  252. package/dist/release/pr-evidence.d.ts +39 -11
  253. package/dist/release/pr-evidence.d.ts.map +1 -1
  254. package/dist/release/pr-evidence.js +122 -31
  255. package/dist/release/pr-evidence.js.map +1 -1
  256. package/dist/release/reconcile.d.ts +15 -0
  257. package/dist/release/reconcile.d.ts.map +1 -1
  258. package/dist/release/reconcile.js +36 -0
  259. package/dist/release/reconcile.js.map +1 -1
  260. package/dist/render/brain/index.d.ts +3 -2
  261. package/dist/render/brain/index.d.ts.map +1 -1
  262. package/dist/render/brain/index.js +4 -2
  263. package/dist/render/brain/index.js.map +1 -1
  264. package/dist/render/brain/migrate-repo-ids.d.ts +19 -0
  265. package/dist/render/brain/migrate-repo-ids.d.ts.map +1 -0
  266. package/dist/render/brain/migrate-repo-ids.js +41 -0
  267. package/dist/render/brain/migrate-repo-ids.js.map +1 -0
  268. package/dist/render/nexus/graph/index.d.ts.map +1 -1
  269. package/dist/render/nexus/graph/index.js +10 -1
  270. package/dist/render/nexus/graph/index.js.map +1 -1
  271. package/dist/resources/admission-ledger.d.ts +39 -4
  272. package/dist/resources/admission-ledger.d.ts.map +1 -1
  273. package/dist/resources/admission-ledger.js +147 -32
  274. package/dist/resources/admission-ledger.js.map +1 -1
  275. package/dist/resources/hook-footprint.d.ts +90 -0
  276. package/dist/resources/hook-footprint.d.ts.map +1 -0
  277. package/dist/resources/hook-footprint.js +245 -0
  278. package/dist/resources/hook-footprint.js.map +1 -0
  279. package/dist/resources/pressure-gate.d.ts +3 -2
  280. package/dist/resources/pressure-gate.d.ts.map +1 -1
  281. package/dist/resources/pressure-gate.js +8 -5
  282. package/dist/resources/pressure-gate.js.map +1 -1
  283. package/dist/resources/run-admission.d.ts +23 -3
  284. package/dist/resources/run-admission.d.ts.map +1 -1
  285. package/dist/resources/run-admission.js +70 -8
  286. package/dist/resources/run-admission.js.map +1 -1
  287. package/dist/resources/run-class.d.ts +1 -0
  288. package/dist/resources/run-class.d.ts.map +1 -1
  289. package/dist/resources/run-class.js +7 -0
  290. package/dist/resources/run-class.js.map +1 -1
  291. package/dist/resources/run-governed.d.ts +13 -1
  292. package/dist/resources/run-governed.d.ts.map +1 -1
  293. package/dist/resources/run-governed.js +29 -6
  294. package/dist/resources/run-governed.js.map +1 -1
  295. package/dist/resources/top-memory.d.ts +67 -0
  296. package/dist/resources/top-memory.d.ts.map +1 -0
  297. package/dist/resources/top-memory.js +143 -0
  298. package/dist/resources/top-memory.js.map +1 -0
  299. package/dist/scaffold/global-scaffold.d.ts +6 -1
  300. package/dist/scaffold/global-scaffold.d.ts.map +1 -1
  301. package/dist/scaffold/global-scaffold.js +11 -2
  302. package/dist/scaffold/global-scaffold.js.map +1 -1
  303. package/dist/scaffold/scaffold-global.d.ts +3 -2
  304. package/dist/scaffold/scaffold-global.d.ts.map +1 -1
  305. package/dist/scaffold/scaffold-global.js +3 -2
  306. package/dist/scaffold/scaffold-global.js.map +1 -1
  307. package/dist/sentient/ingesters/brain-ingester.d.ts.map +1 -1
  308. package/dist/sentient/ingesters/brain-ingester.js +2 -1
  309. package/dist/sentient/ingesters/brain-ingester.js.map +1 -1
  310. package/dist/session/engine-ops.js +1 -1
  311. package/dist/session/engine-ops.js.map +1 -1
  312. package/dist/sessions/briefing.d.ts +26 -0
  313. package/dist/sessions/briefing.d.ts.map +1 -1
  314. package/dist/sessions/briefing.js +46 -0
  315. package/dist/sessions/briefing.js.map +1 -1
  316. package/dist/sessions/session-end-snapshot.d.ts +1 -1
  317. package/dist/sessions/session-end-snapshot.js +1 -1
  318. package/dist/sessions/session-id.d.ts +2 -1
  319. package/dist/sessions/session-id.d.ts.map +1 -1
  320. package/dist/sessions/session-id.js +3 -2
  321. package/dist/sessions/session-id.js.map +1 -1
  322. package/dist/store/agent-resolver.d.ts +0 -6
  323. package/dist/store/agent-resolver.d.ts.map +1 -1
  324. package/dist/store/agent-resolver.js +0 -31
  325. package/dist/store/agent-resolver.js.map +1 -1
  326. package/dist/store/memory-accessor.d.ts +45 -2
  327. package/dist/store/memory-accessor.d.ts.map +1 -1
  328. package/dist/store/memory-accessor.js +81 -7
  329. package/dist/store/memory-accessor.js.map +1 -1
  330. package/dist/store/schema/cleo-shared/brain.d.ts +2 -2
  331. package/dist/store/schema/memory-schema.d.ts +3 -3
  332. package/dist/store/schema/memory-schema.d.ts.map +1 -1
  333. package/dist/store/schema/memory-schema.js +2 -0
  334. package/dist/store/schema/memory-schema.js.map +1 -1
  335. package/dist/store/session-store.d.ts +5 -2
  336. package/dist/store/session-store.d.ts.map +1 -1
  337. package/dist/store/session-store.js +10 -5
  338. package/dist/store/session-store.js.map +1 -1
  339. package/dist/store/sqlite-native.d.ts +5 -4
  340. package/dist/store/sqlite-native.d.ts.map +1 -1
  341. package/dist/store/sqlite-native.js +5 -4
  342. package/dist/store/sqlite-native.js.map +1 -1
  343. package/dist/store/sync/merge/rules.d.ts.map +1 -1
  344. package/dist/store/sync/merge/rules.js +4 -3
  345. package/dist/store/sync/merge/rules.js.map +1 -1
  346. package/dist/store/validation-schemas.d.ts +1 -0
  347. package/dist/store/validation-schemas.d.ts.map +1 -1
  348. package/dist/store/vault-manifest.js +1 -1
  349. package/dist/store/vault-manifest.js.map +1 -1
  350. package/dist/system/project-health.d.ts +7 -0
  351. package/dist/system/project-health.d.ts.map +1 -1
  352. package/dist/system/project-health.js +13 -0
  353. package/dist/system/project-health.js.map +1 -1
  354. package/dist/tasks/add.d.ts.map +1 -1
  355. package/dist/tasks/add.js +0 -15
  356. package/dist/tasks/add.js.map +1 -1
  357. package/dist/tasks/affected-packages.d.ts +26 -11
  358. package/dist/tasks/affected-packages.d.ts.map +1 -1
  359. package/dist/tasks/affected-packages.js +54 -17
  360. package/dist/tasks/affected-packages.js.map +1 -1
  361. package/dist/tasks/affected-scope.d.ts +24 -0
  362. package/dist/tasks/affected-scope.d.ts.map +1 -1
  363. package/dist/tasks/affected-scope.js +57 -0
  364. package/dist/tasks/affected-scope.js.map +1 -1
  365. package/dist/tasks/change-set.d.ts +72 -9
  366. package/dist/tasks/change-set.d.ts.map +1 -1
  367. package/dist/tasks/change-set.js +227 -20
  368. package/dist/tasks/change-set.js.map +1 -1
  369. package/dist/tasks/complete-ci.d.ts.map +1 -1
  370. package/dist/tasks/complete-ci.js +2 -0
  371. package/dist/tasks/complete-ci.js.map +1 -1
  372. package/dist/tasks/complete.d.ts +2 -2
  373. package/dist/tasks/complete.d.ts.map +1 -1
  374. package/dist/tasks/complete.js +38 -17
  375. package/dist/tasks/complete.js.map +1 -1
  376. package/dist/tasks/done-plan.d.ts.map +1 -1
  377. package/dist/tasks/done-plan.js +66 -18
  378. package/dist/tasks/done-plan.js.map +1 -1
  379. package/dist/tasks/epic-enforcement.d.ts +39 -1
  380. package/dist/tasks/epic-enforcement.d.ts.map +1 -1
  381. package/dist/tasks/epic-enforcement.js +46 -2
  382. package/dist/tasks/epic-enforcement.js.map +1 -1
  383. package/dist/tasks/evidence.d.ts +74 -22
  384. package/dist/tasks/evidence.d.ts.map +1 -1
  385. package/dist/tasks/evidence.js +221 -35
  386. package/dist/tasks/evidence.js.map +1 -1
  387. package/dist/tasks/gate-runner.d.ts.map +1 -1
  388. package/dist/tasks/gate-runner.js +2 -12
  389. package/dist/tasks/gate-runner.js.map +1 -1
  390. package/dist/tasks/qa-run-binding.d.ts +2 -0
  391. package/dist/tasks/qa-run-binding.d.ts.map +1 -1
  392. package/dist/tasks/qa-run-binding.js +6 -2
  393. package/dist/tasks/qa-run-binding.js.map +1 -1
  394. package/dist/tasks/test-run-binding.d.ts +2 -0
  395. package/dist/tasks/test-run-binding.d.ts.map +1 -1
  396. package/dist/tasks/test-run-binding.js +8 -3
  397. package/dist/tasks/test-run-binding.js.map +1 -1
  398. package/dist/tasks/verification-policy.d.ts +57 -1
  399. package/dist/tasks/verification-policy.d.ts.map +1 -1
  400. package/dist/tasks/verification-policy.js +94 -1
  401. package/dist/tasks/verification-policy.js.map +1 -1
  402. package/dist/upgrade.d.ts.map +1 -1
  403. package/dist/upgrade.js +2 -15
  404. package/dist/upgrade.js.map +1 -1
  405. package/dist/validation/engine-ops.d.ts.map +1 -1
  406. package/dist/validation/engine-ops.js +39 -19
  407. package/dist/validation/engine-ops.js.map +1 -1
  408. package/package.json +13 -13
  409. package/schemas/config.schema.json +69 -0
  410. package/templates/CLEO-INJECTION.md +4 -5
  411. package/templates/CLEO-REFERENCE.md +2 -4
  412. package/templates/git-hooks/post-merge +25 -0
  413. package/dist/memory/dispatch-trace.d.ts +0 -44
  414. package/dist/memory/dispatch-trace.d.ts.map +0 -1
  415. package/dist/memory/dispatch-trace.js +0 -65
  416. package/dist/memory/dispatch-trace.js.map +0 -1
  417. package/dist/memory/retrieval/increment-citation-counts.d.ts +0 -11
  418. package/dist/memory/retrieval/increment-citation-counts.d.ts.map +0 -1
  419. package/dist/memory/retrieval/increment-citation-counts.js +0 -43
  420. package/dist/memory/retrieval/increment-citation-counts.js.map +0 -1
@@ -26,55 +26,76 @@ function parseIdPrefix(id) {
26
26
  return 'observation';
27
27
  return null;
28
28
  }
29
- // ============================================================================
30
- // Implementation
31
- // ============================================================================
32
29
  /**
33
30
  * Search for entries similar to a query string using vector similarity.
34
31
  *
32
+ * Returns an empty array when the vector layer is unavailable; use
33
+ * {@link searchSimilarWithStatus} to learn why.
34
+ *
35
+ * @param query - Text to find similar entries for
36
+ * @param projectRoot - Project root directory
37
+ * @param limit - Maximum results to return (default 10)
38
+ * @returns Array of similar entries ranked by distance (ascending)
39
+ */
40
+ export async function searchSimilar(query, projectRoot, limit) {
41
+ return (await searchSimilarWithStatus(query, projectRoot, limit)).results;
42
+ }
43
+ /**
44
+ * Vector similarity search that reports an unavailable vector layer instead
45
+ * of returning a silent empty list (T13948).
46
+ *
35
47
  * 1. Embeds the query text via the registered embedding provider.
36
48
  * 2. Runs KNN query against brain_embeddings vec0 table.
37
49
  * 3. Joins with observation/decision/pattern/learning tables for full entries.
38
50
  *
39
- * Returns empty array when embedding is unavailable (graceful fallback).
40
- *
41
51
  * @param query - Text to find similar entries for
42
52
  * @param projectRoot - Project root directory
43
53
  * @param limit - Maximum results to return (default 10)
44
- * @returns Array of similar entries ranked by distance (ascending)
54
+ * @returns The hits, plus `unavailable` when no provider, vector, extension or
55
+ * embedding for the active model exists, or the KNN query failed.
56
+ * @example
57
+ * ```ts
58
+ * const { results, unavailable } = await searchSimilarWithStatus('worktree', root, 10);
59
+ * ```
45
60
  */
46
- export async function searchSimilar(query, projectRoot, limit) {
61
+ export async function searchSimilarWithStatus(query, projectRoot, limit) {
47
62
  if (!query?.trim())
48
- return [];
63
+ return { results: [] };
49
64
  if (!isEmbeddingAvailable())
50
- return [];
65
+ return { results: [], unavailable: 'no embedding provider' };
51
66
  const maxResults = limit ?? 10;
52
67
  // Embed the query text; only vectors of the same model are comparable (T13740).
53
68
  const model = getEmbeddingProvider()?.model;
54
69
  const queryVector = await embedText(query);
55
- if (!queryVector || !model)
56
- return [];
70
+ if (!queryVector || !model) {
71
+ return { results: [], unavailable: 'the embedding provider returned no vector' };
72
+ }
57
73
  // Ensure brain.db is initialized
58
74
  const { getBrainDb, getBrainNativeDb, isBrainVecLoaded } = await import('../store/memory-sqlite.js');
59
75
  await getBrainDb(projectRoot);
60
76
  const nativeDb = getBrainNativeDb(projectRoot);
61
77
  if (!nativeDb)
62
- return [];
78
+ return { results: [], unavailable: 'BRAIN database unavailable' };
63
79
  // Require sqlite-vec for KNN queries
64
- if (!isBrainVecLoaded(projectRoot))
65
- return [];
80
+ if (!isBrainVecLoaded(projectRoot)) {
81
+ return { results: [], unavailable: 'sqlite-vec extension not loaded' };
82
+ }
66
83
  // Run KNN query against vec0 table
67
84
  let knnRows;
68
85
  try {
69
86
  const stmt = nativeDb.prepare('SELECT id, distance FROM brain_embeddings WHERE embedding MATCH ? AND model = ? ORDER BY distance LIMIT ?');
70
87
  knnRows = typedAll(stmt, new Float32Array(queryVector.buffer, queryVector.byteOffset, queryVector.length), model, maxResults);
71
88
  }
72
- catch {
73
- // vec0 query failed — table may not exist or extension not loaded
74
- return [];
89
+ catch (err) {
90
+ return {
91
+ results: [],
92
+ unavailable: `vector query failed: ${err instanceof Error ? err.message : String(err)}`,
93
+ };
94
+ }
95
+ // KNN returns up to LIMIT rows whenever any vector of this model exists.
96
+ if (knnRows.length === 0) {
97
+ return { results: [], unavailable: `no embeddings stored for model ${model}` };
75
98
  }
76
- if (knnRows.length === 0)
77
- return [];
78
99
  // Resolve each ID to its full entry
79
100
  const accessor = await getBrainAccessor(projectRoot);
80
101
  const results = [];
@@ -142,6 +163,6 @@ export async function searchSimilar(query, projectRoot, limit) {
142
163
  // Skip entries that fail to resolve
143
164
  }
144
165
  }
145
- return results;
166
+ return { results };
146
167
  }
147
168
  //# sourceMappingURL=brain-similarity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"brain-similarity.js","sourceRoot":"","sources":["../../src/memory/brain-similarity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brain-similarity.js","sourceRoot":"","sources":["../../src/memory/brain-similarity.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,19 @@ export interface StubPruneResult {
95
95
  /** Up to 5 example rows, so a dry run shows what would go. */
96
96
  readonly sample: readonly StubPruneCandidate[];
97
97
  }
98
+ /**
99
+ * Combined SQL predicate over unaliased `brain_observations` columns matching
100
+ * every content-free stub, across all {@link STUB_PRUNE_RULES}.
101
+ *
102
+ * Recall uses it to exclude stubs without deleting them (T13946).
103
+ *
104
+ * @returns A parenthesis-free OR of the rule clauses; wrap it before combining.
105
+ * @example
106
+ * ```ts
107
+ * db.prepare(`SELECT id FROM main.brain_observations WHERE ${stubObservationClause()}`);
108
+ * ```
109
+ */
110
+ export declare function stubObservationClause(): string;
98
111
  /**
99
112
  * Count, sample and reversibly quarantine confirmed content-free observation stubs.
100
113
  *
@@ -1 +1 @@
1
- {"version":3,"file":"brain-stub-prune.d.ts","sourceRoot":"","sources":["../../src/memory/brain-stub-prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,aAAa,EAsBpD,CAAC;AAEF,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,sEAAsE;IACtE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAChD;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,eAAe,CAmE7F;AAkBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAiBhG"}
1
+ {"version":3,"file":"brain-stub-prune.d.ts","sourceRoot":"","sources":["../../src/memory/brain-stub-prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,aAAa,EAsBpD,CAAC;AAEF,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,sEAAsE;IACtE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAChD;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,eAAe,CAmE7F;AAkBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAiBhG"}
@@ -77,8 +77,19 @@ export const STUB_PRUNE_RULES = [
77
77
  function ruleClause(rule) {
78
78
  return `(${rule.predicate}) AND length(COALESCE(narrative, '')) <= ${MAX_STUB_NARRATIVE} AND COALESCE(verified, 0) != 1 AND invalid_at IS NULL`;
79
79
  }
80
- /** Combined predicate across every rule. */
81
- function allRulesClause() {
80
+ /**
81
+ * Combined SQL predicate over unaliased `brain_observations` columns matching
82
+ * every content-free stub, across all {@link STUB_PRUNE_RULES}.
83
+ *
84
+ * Recall uses it to exclude stubs without deleting them (T13946).
85
+ *
86
+ * @returns A parenthesis-free OR of the rule clauses; wrap it before combining.
87
+ * @example
88
+ * ```ts
89
+ * db.prepare(`SELECT id FROM main.brain_observations WHERE ${stubObservationClause()}`);
90
+ * ```
91
+ */
92
+ export function stubObservationClause() {
82
93
  return STUB_PRUNE_RULES.map(ruleClause).join(' OR ');
83
94
  }
84
95
  /**
@@ -109,7 +120,7 @@ export function pruneObservationStubs(nativeDb, apply) {
109
120
  .get();
110
121
  byRule[rule.id] = row.c;
111
122
  }
112
- const combined = allRulesClause();
123
+ const combined = stubObservationClause();
113
124
  const matched = nativeDb
114
125
  .prepare(`SELECT COUNT(*) AS c FROM main.brain_observations WHERE ${combined}`)
115
126
  .get().c;
@@ -1 +1 @@
1
- {"version":3,"file":"brain-stub-prune.js","sourceRoot":"","sources":["../../src/memory/brain-stub-prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAYtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD;QACE,EAAE,EAAE,kBAAkB;QACtB,MAAM,EACJ,uPAAuP;QACzP,SAAS,EACP,oHAAoH;KACvH;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,MAAM,EACJ,+JAA+J;QACjK,SAAS,EACP,0JAA0J;KAC7J;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,MAAM,EACJ,0MAA0M;QAC5M,SAAS,EACP,iUAAiU;KACpU;CACF,CAAC;AAgCF,wEAAwE;AACxE,SAAS,UAAU,CAAC,IAAmB;IACrC,OAAO,IAAI,IAAI,CAAC,SAAS,4CAA4C,kBAAkB,wDAAwD,CAAC;AAClJ,CAAC;AAED,4CAA4C;AAC5C,SAAS,cAAc;IACrB,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAsB,EAAE,KAAc;IAC1E,MAAM,QAAQ,GAAG,GAAW,EAAE,CAE1B,QAAQ;SACL,OAAO,CAAC,4EAA4E,CAAC;SACrF,GAAG,EACP,CAAC,CAAC,CAAC;IAEN,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;IAE1B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,QAAQ;aACjB,OAAO,CAAC,2DAA2D,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;aACtF,GAAG,EAAmB,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,OAAO,GACX,QAAQ;SACL,OAAO,CAAC,2DAA2D,QAAQ,EAAE,CAAC;SAC9E,GAAG,EAGP,CAAC,CAAC,CAAC;IAEJ,MAAM,YAAY,GAAG,QAAQ;SAC1B,OAAO,CAAC,gDAAgD,QAAQ,cAAc,CAAC;SAC/E,GAAG,EAAE;SACL,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAElE,MAAM,MAAM,GAAG,QAAQ;SACpB,OAAO,CACN,6FAA6F,QAAQ,UAAU,CAChH;SACA,GAAG,EAA6D,CAAC;IAEpE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM;YACN,KAAK,EAAE,MAAM;YACb,OAAO;YACP,YAAY;YACZ,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAChF,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,QAAQ;SACtB,OAAO,CAAC,2DAA2D,QAAQ,eAAe,CAAC;SAC3F,GAAG,CAAC,aAAa,CAAC,CAAC;IACtB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/F,OAAO;QACL,OAAO,EAAE,IAAI;QACb,cAAc;QACd,aAAa;QACb,MAAM;QACN,KAAK,EAAE,QAAQ,EAAE;QACjB,OAAO;QACP,YAAY;QACZ,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAChF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,SAAiB,EAAE,KAAa;IACpD,IAAI,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACvE,IAAI,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAChE,IAAI,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,oBAAoB,CAAC;IACtE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAsB,EAAE,OAAwB;IACtF,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM;QAAE,OAAO,CAAC,CAAC;IACxE,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAChC,sFAAsF,CACvF,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACrD,IAAI,CAAC;QACH,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,cAAc;YACrC,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;QACvE,QAAQ,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"brain-stub-prune.js","sourceRoot":"","sources":["../../src/memory/brain-stub-prune.ts"],"names":[],"mappings":"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"}
@@ -13,22 +13,18 @@
13
13
  * @epic T10286
14
14
  * @saga T10281
15
15
  */
16
- import type { OperationExecutionContext } from '@cleocode/contracts/jobs';
17
16
  import type { BrainWriteOp, BrainWriteResult } from './brain-writer-thread.js';
18
17
  /**
19
18
  * Dispatch a write op to its terminal handler. Throws on failure — the worker
20
19
  * envelope code converts the throw into an `ok:false` response.
21
20
  *
22
21
  * @param op - The discriminated write op.
23
- * @param execution - Optional original operation lifetime and persisted document job fence.
24
- * @throws Error when scope, cancellation, authority or the domain write fails.
25
- * @remarks Scoped observations use their existing routing context and start no
26
- * semantic enrichment. The committed result is not reclassified by late cancellation.
22
+ * @throws Error when the domain write fails.
27
23
  * @returns A typed `BrainWriteResult` mirroring the op's `kind`.
28
24
  * @example
29
25
  * ```ts
30
- * const result = await handleWriteOp(op, admittedContext);
26
+ * const result = await handleWriteOp(op);
31
27
  * ```
32
28
  */
33
- export declare function handleWriteOp(op: BrainWriteOp, execution?: OperationExecutionContext): Promise<BrainWriteResult>;
29
+ export declare function handleWriteOp(op: BrainWriteOp): Promise<BrainWriteResult>;
34
30
  //# sourceMappingURL=brain-writer-handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brain-writer-handlers.d.ts","sourceRoot":"","sources":["../../src/memory/brain-writer-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAG1E,OAAO,KAAK,EAQV,YAAY,EACZ,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAqClC;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,YAAY,EAChB,SAAS,CAAC,EAAE,yBAAyB,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAyC3B"}
1
+ {"version":3,"file":"brain-writer-handlers.d.ts","sourceRoot":"","sources":["../../src/memory/brain-writer-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAQV,YAAY,EACZ,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAqClC;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4B/E"}
@@ -56,28 +56,14 @@ function syncWorkerCleoDir(projectRoot) {
56
56
  * envelope code converts the throw into an `ok:false` response.
57
57
  *
58
58
  * @param op - The discriminated write op.
59
- * @param execution - Optional original operation lifetime and persisted document job fence.
60
- * @throws Error when scope, cancellation, authority or the domain write fails.
61
- * @remarks Scoped observations use their existing routing context and start no
62
- * semantic enrichment. The committed result is not reclassified by late cancellation.
59
+ * @throws Error when the domain write fails.
63
60
  * @returns A typed `BrainWriteResult` mirroring the op's `kind`.
64
61
  * @example
65
62
  * ```ts
66
- * const result = await handleWriteOp(op, admittedContext);
63
+ * const result = await handleWriteOp(op);
67
64
  * ```
68
65
  */
69
- export async function handleWriteOp(op, execution) {
70
- execution?.assertActive();
71
- if (execution) {
72
- if (!execution.writeFence ||
73
- execution.identity.operation !== 'docs.projection' ||
74
- op.kind !== 'observe' ||
75
- !op.params._skipGate ||
76
- op.projectRoot !== execution.identity.projectRoot) {
77
- throw new Error('Scoped writer supports only authenticated document observations');
78
- }
79
- return handleObserve(op, execution);
80
- }
66
+ export async function handleWriteOp(op) {
81
67
  // Re-point CLEO_DIR to the op's project root on the worker thread so all
82
68
  // downstream `.cleo` resolution (incl. cross-db write-guards) is consistent
83
69
  // with the main thread regardless of the worker's stale env snapshot.
@@ -121,17 +107,16 @@ async function handleEmbed(op) {
121
107
  // ---------------------------------------------------------------------------
122
108
  // observe — full observeBrain pipeline on the writer side.
123
109
  // ---------------------------------------------------------------------------
124
- async function handleObserve(op, execution) {
110
+ async function handleObserve(op) {
125
111
  // T10351: route to the direct-write path inside observeBrain so the
126
112
  // chokepoint actually performs the row insert. Passing `_skipQueue: true`
127
113
  // signals observeBrain to skip the queue and write directly (preventing
128
114
  // an infinite enqueue loop when the worker thread itself calls observeBrain).
129
115
  const { observeBrain } = await import('./retrieval/observe.js');
130
- execution?.assertActive();
131
116
  const result = await observeBrain(op.projectRoot, {
132
117
  ...op.params,
133
118
  _skipQueue: true,
134
- }, execution);
119
+ });
135
120
  return { kind: 'observe', result };
136
121
  }
137
122
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"brain-writer-handlers.js","sourceRoot":"","sources":["../../src/memory/brain-writer-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brain-writer-handlers.js","sourceRoot":"","sources":["../../src/memory/brain-writer-handlers.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,6 @@
58
58
  * @saga T10281
59
59
  */
60
60
  import type { ObserveBrainParams, ObserveBrainResult } from '@cleocode/contracts';
61
- import type { OperationExecutionContext, OperationExecutionTransfer } from '@cleocode/contracts/jobs';
62
61
  import type { NewBrainDecisionRow, NewBrainLearningRow } from '../store/schema/memory-schema.js';
63
62
  /**
64
63
  * Discriminated union of all hot-path brain.db write operations.
@@ -191,11 +190,6 @@ export type BrainWriteResult = {
191
190
  };
192
191
  /** Outbound message envelope (main → worker). */
193
192
  export interface WriterRequestEnvelope {
194
- /**
195
- * Original admitted lifetime and job fence, serialized without renewing its budget.
196
- * @defaultValue undefined — legacy unscoped operation.
197
- */
198
- execution?: OperationExecutionTransfer;
199
193
  seq: number;
200
194
  op: BrainWriteOp;
201
195
  }
@@ -277,13 +271,10 @@ export declare class BrainWriterShutDownError extends Error {
277
271
  * ```
278
272
  *
279
273
  * @param op - The write op (discriminated by `kind`).
280
- * @param execution - Optional original lifetime and validated document job authority.
281
- * @throws Error when scoped admission, ownership, shutdown or worker execution fails.
282
- * @remarks Scoped operations preserve their original budget and never retry an
283
- * uncertain worker outcome inline. A received committed result survives later cancellation.
274
+ * @throws Error when the op fails inline or in the worker.
284
275
  * @returns Worker result for the op.
285
276
  */
286
- export declare function enqueueBrainWrite(op: BrainWriteOp, execution?: OperationExecutionContext): Promise<BrainWriteResult>;
277
+ export declare function enqueueBrainWrite(op: BrainWriteOp): Promise<BrainWriteResult>;
287
278
  /**
288
279
  * Shutdown the writer-thread singleton (mostly used by tests).
289
280
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"brain-writer-thread.d.ts","sourceRoot":"","sources":["../../src/memory/brain-writer-thread.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brain-writer-thread.d.ts","sourceRoot":"","sources":["../../src/memory/brain-writer-thread.ts"],"names":[],"mappings":"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"}
@@ -61,7 +61,6 @@ import { existsSync } from 'node:fs';
61
61
  import { dirname, join } from 'node:path';
62
62
  import { fileURLToPath } from 'node:url';
63
63
  import { getLogger } from '../logger.js';
64
- import { transferOperationContext } from '../store/background-ops.js';
65
64
  import { resolveDualScopeDbPath } from '../store/dual-scope-db.js';
66
65
  import { acquireWriterLease, assertWriterLeaseHeld, resolveLeaseMode, } from '../store/writer-lease.js';
67
66
  import { _resetLongLivedBrainHostForTests, isLongLivedBrainHost, markLongLivedBrainHost, } from './brain-host.js';
@@ -146,15 +145,14 @@ class BrainWriterManager {
146
145
  seqCounter = 0;
147
146
  shuttingDown = false;
148
147
  /** Lazy-initialize the worker thread on first enqueue. */
149
- async ensureWorker(execution) {
150
- execution?.assertActive();
148
+ async ensureWorker() {
151
149
  if (this.workerReady || this.shuttingDown)
152
150
  return;
153
151
  if (this.workerInitError)
154
152
  throw this.workerInitError;
155
153
  if (this.initPromise)
156
154
  return this.initPromise;
157
- this.initPromise = this.doInit(execution);
155
+ this.initPromise = this.doInit();
158
156
  try {
159
157
  await this.initPromise;
160
158
  }
@@ -162,8 +160,7 @@ class BrainWriterManager {
162
160
  this.initPromise = null;
163
161
  }
164
162
  }
165
- async doInit(execution) {
166
- execution?.assertActive();
163
+ async doInit() {
167
164
  const workerPath = resolveWorkerPath();
168
165
  if (!workerPath) {
169
166
  // Worker file unavailable (test sandbox, esbuild bundle). Fall back to
@@ -172,7 +169,6 @@ class BrainWriterManager {
172
169
  throw this.workerInitError;
173
170
  }
174
171
  const { Worker } = await import('node:worker_threads');
175
- execution?.assertActive();
176
172
  if (this.shuttingDown || isBrainWriterShuttingDown())
177
173
  throw new BrainWriterShutDownError('observe');
178
174
  const worker = new Worker(workerPath);
@@ -221,16 +217,14 @@ class BrainWriterManager {
221
217
  * Enqueue a write op. Returns a promise that resolves with the worker's
222
218
  * result envelope payload (shape depends on op kind).
223
219
  */
224
- async enqueue(op, execution, transfer) {
225
- execution?.assertActive();
220
+ async enqueue(op) {
226
221
  // Defence in depth (T12239 AC3). The instance flag alone misses a manager
227
222
  // captured BEFORE teardown and used after — `getManager()` returns a
228
223
  // reference, and nothing stops a caller holding it across a shutdown.
229
224
  if (this.shuttingDown || isBrainWriterShuttingDown()) {
230
225
  throw new BrainWriterShutDownError(op.kind);
231
226
  }
232
- await this.ensureWorker(execution);
233
- execution?.assertActive();
227
+ await this.ensureWorker();
234
228
  if (this.shuttingDown || isBrainWriterShuttingDown())
235
229
  throw new BrainWriterShutDownError(op.kind);
236
230
  const worker = this.worker;
@@ -238,11 +232,7 @@ class BrainWriterManager {
238
232
  throw new Error('brain-writer worker is not available');
239
233
  }
240
234
  const seq = ++this.seqCounter;
241
- const envelope = {
242
- seq,
243
- op,
244
- ...(transfer ? { execution: transfer } : {}),
245
- };
235
+ const envelope = { seq, op };
246
236
  return new Promise((resolve, reject) => {
247
237
  this.pending.set(seq, { resolve, reject });
248
238
  try {
@@ -311,25 +301,7 @@ const _brainBatches = new Map();
311
301
  * @returns A release callback the caller MUST invoke (in a `finally`) when its
312
302
  * write completes; the underlying row is freed only when the batch quiesces.
313
303
  */
314
- async function enterBrainBatchLease(dbPath, execution) {
315
- if (execution) {
316
- execution.assertActive();
317
- const handle = await acquireWriterLease(BRAIN_LEASE_SCOPE, BRAIN_LEASE_LANE, {
318
- priority: 50,
319
- dbPath,
320
- execution,
321
- });
322
- return async () => {
323
- await handle.release();
324
- if (handle.cleanupPending) {
325
- getLogger('brain-writer').warn({
326
- event: 'scoped-lease-cleanup-pending',
327
- dbPath,
328
- jobId: execution.writeFence?.lease.jobId,
329
- }, 'Committed write outcome is unchanged; original lease cleanup requires TTL recovery');
330
- }
331
- };
332
- }
304
+ async function enterBrainBatchLease(dbPath) {
333
305
  if (resolveLeaseMode() === 'off') {
334
306
  // No lease in off-mode — pass-through (busy_timeout serializes).
335
307
  return async () => { };
@@ -391,8 +363,8 @@ async function enterBrainBatchLease(dbPath, execution) {
391
363
  * would reintroduce the very race condition the chokepoint exists to eliminate.
392
364
  */
393
365
  let inlineQueueTail = Promise.resolve();
394
- function runInline(op, execution) {
395
- const next = inlineQueueTail.then(() => executeInline(op, execution));
366
+ function runInline(op) {
367
+ const next = inlineQueueTail.then(() => executeInline(op));
396
368
  // Swallow rejection in the chain marker so failures don't break later writes.
397
369
  inlineQueueTail = next.catch(() => undefined);
398
370
  return next;
@@ -407,17 +379,13 @@ function runInline(op, execution) {
407
379
  * The handler module is shared between the worker thread and this fallback,
408
380
  * so behaviour is identical except for the thread of execution.
409
381
  */
410
- async function executeInline(op, execution) {
411
- execution?.assertActive();
412
- if (execution && isBrainWriterShuttingDown())
413
- throw new BrainWriterShutDownError(op.kind);
382
+ async function executeInline(op) {
414
383
  // AC4 guard: a lease-less write must NOT open the brain WRITE handle. This is
415
384
  // enforcement, not convention — `enqueueBrainWrite` holds the batch lease before
416
385
  // it reaches here, so a held grant exists in every mode except `off` (exempt).
417
- assertWriterLeaseHeld(BRAIN_LEASE_SCOPE, BRAIN_LEASE_LANE, execution?.writeFence?.dbPath ?? resolveDualScopeDbPath(BRAIN_LEASE_SCOPE, op.projectRoot));
386
+ assertWriterLeaseHeld(BRAIN_LEASE_SCOPE, BRAIN_LEASE_LANE, resolveDualScopeDbPath(BRAIN_LEASE_SCOPE, op.projectRoot));
418
387
  const { handleWriteOp } = await import('./brain-writer-handlers.js');
419
- execution?.assertActive();
420
- return handleWriteOp(op, execution);
388
+ return handleWriteOp(op);
421
389
  }
422
390
  // ============================================================================
423
391
  // Public API
@@ -522,56 +490,31 @@ function getManager(kind = 'observe') {
522
490
  * ```
523
491
  *
524
492
  * @param op - The write op (discriminated by `kind`).
525
- * @param execution - Optional original lifetime and validated document job authority.
526
- * @throws Error when scoped admission, ownership, shutdown or worker execution fails.
527
- * @remarks Scoped operations preserve their original budget and never retry an
528
- * uncertain worker outcome inline. A received committed result survives later cancellation.
493
+ * @throws Error when the op fails inline or in the worker.
529
494
  * @returns Worker result for the op.
530
495
  */
531
- export async function enqueueBrainWrite(op, execution) {
532
- execution?.assertActive();
533
- if (execution) {
534
- if (!execution.writeFence ||
535
- execution.identity.operation !== 'docs.projection' ||
536
- op.kind !== 'observe' ||
537
- !op.params._skipGate ||
538
- op.projectRoot !== execution.identity.projectRoot) {
539
- throw new Error('Scoped brain writer requires a fenced, validated document observation in its captured project');
540
- }
541
- if (isBrainWriterShuttingDown())
542
- throw new BrainWriterShutDownError(op.kind);
543
- op = structuredClone(op);
544
- }
545
- const transfer = execution
546
- ? transferOperationContext(execution, {
547
- bytes: Buffer.byteLength(JSON.stringify(op), 'utf8'),
548
- items: 1,
549
- })
550
- : undefined;
496
+ export async function enqueueBrainWrite(op) {
551
497
  let releaseBatch;
552
498
  // Seam 2 (AC4): hold the `brain` lease for the duration of this write. The lease
553
499
  // is batch-granular (acquire-once / drain-N / release) via the process-local
554
500
  // refcount — concurrent callers share one grant, freed when the batch quiesces.
555
501
  // The lease-less path is blocked at the write primitive by `assertWriterLeaseHeld`.
556
- const dbPath = execution?.writeFence?.dbPath ?? resolveDualScopeDbPath(BRAIN_LEASE_SCOPE, op.projectRoot);
502
+ const dbPath = resolveDualScopeDbPath(BRAIN_LEASE_SCOPE, op.projectRoot);
557
503
  try {
558
- releaseBatch = await enterBrainBatchLease(dbPath, execution);
559
- execution?.assertActive();
504
+ releaseBatch = await enterBrainBatchLease(dbPath);
560
505
  // Bypass mode — log audit warn and run inline.
561
506
  if (bypassEnabled()) {
562
- return await runInline(op, execution);
507
+ return await runInline(op);
563
508
  }
564
509
  // Default: inline under the lease + mutex. Only an opted-in long-lived host
565
510
  // pays for the worker isolate (T13126).
566
511
  if (!brainWriterThreadEnabled()) {
567
- return await runInline(op, execution);
512
+ return await runInline(op);
568
513
  }
569
514
  try {
570
- return await getManager(op.kind).enqueue(op, execution, transfer?.transfer);
515
+ return await getManager(op.kind).enqueue(op);
571
516
  }
572
517
  catch (err) {
573
- if (execution)
574
- throw err; // Never replay an uncertain committed worker write inline.
575
518
  // Worker was unavailable (tests, esbuild bundle, etc.). Fall back to
576
519
  // inline mode — still serialized via the inline mutex. The write is NOT
577
520
  // lost in either branch.
@@ -585,11 +528,10 @@ export async function enqueueBrainWrite(op, execution) {
585
528
  else {
586
529
  getLogger('brain-writer').debug({ err: msg }, 'Brain writer-thread unavailable — falling back to inline serialized executor');
587
530
  }
588
- return await runInline(op, execution);
531
+ return await runInline(op);
589
532
  }
590
533
  }
591
534
  finally {
592
- transfer?.release();
593
535
  await releaseBatch?.();
594
536
  }
595
537
  }