@cleocode/core 2026.10.21 → 2026.10.22-rc.ci.693

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
@@ -0,0 +1,554 @@
1
+ /**
2
+ * Graph links from accepted verification evidence (T13950).
3
+ *
4
+ * When `cleo verify` accepts evidence atoms it has already validated them
5
+ * against git, the filesystem or GitHub. Those atoms are the most reliable
6
+ * statement of what a task touched, so they become graph edges:
7
+ *
8
+ * | atom | graph write |
9
+ * |-------------|----------------------------------------------------------------|
10
+ * | `commit` | `task:<id> --touches_code--> commit:<sha>` (`ensureCommitNode`) |
11
+ * | `pr` | the same, for the PR's merge commit |
12
+ * | `files` | `task:<id> --touches_code--> file:<path>` |
13
+ * | `decision` | `decision:<id> --applies_to--> task:<id>` |
14
+ *
15
+ * Other atoms (tool runs, test runs, notes, `satisfies` bindings that already
16
+ * live in the tasks store) add no edge. Writes are explicit (they do not depend
17
+ * on `brain.autoCapture`) and idempotent: nodes are created when absent and an
18
+ * existing edge is left unchanged, so re-verifying adds nothing.
19
+ *
20
+ * Node ids are permanent and sync between devices, so a file node is keyed by
21
+ * its POSIX path relative to the checkout that holds it. A path outside both
22
+ * the evidence repository and the store root gets no node and is reported in
23
+ * `skipped`. File and commit ids of every repository but the store's primary
24
+ * one carry a repository key (`file:<repo>::<path>`, `commit:<repo>::<sha>`;
25
+ * T14012, {@link createEvidenceRepoResolver}), so same-named files in two child
26
+ * repositories stay separate nodes.
27
+ *
28
+ * Code placed in `packages/core/` per Package-Boundary Check — verified against AGENTS.md.
29
+ *
30
+ * @module memory/evidence-graph-links
31
+ * @task T13950
32
+ */
33
+ import { existsSync, mkdirSync, realpathSync } from 'node:fs';
34
+ import { basename, dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
35
+ import { and, eq } from 'drizzle-orm';
36
+ import { findNestedGitWorkTrees, gitCommonDir, gitHasCommit, gitHeadHasPath, gitOriginUrl, gitSubmoduleToplevels, gitToplevel, resolveDeclaredEvidenceGitRoot, } from '../git/work-tree.js';
37
+ import { extractRepoOwnerAndName } from '../release/github-pr.js';
38
+ import { writeJsonFileAtomic } from '../store/file-utils.js';
39
+ import { getBrainDb } from '../store/memory-sqlite.js';
40
+ import { brainPageEdges, brainPageNodes } from '../store/schema/memory-schema.js';
41
+ import { resolveEvidenceExecutionRoot } from '../tasks/evidence.js';
42
+ import { ensureCommitNode, REPO_ID_SEPARATOR, repoQualifiedNodeId, writeGraphBatch, } from './graph-auto-populate.js';
43
+ /** Provenance stamped on every edge this module writes. */
44
+ export const EVIDENCE_EDGE_PROVENANCE = 'evidence:verify';
45
+ /**
46
+ * Resolve symlinks (macOS `/tmp` → `/private/tmp`) through the nearest
47
+ * existing ancestor, so a file deleted since verify still compares equal.
48
+ */
49
+ function real(path) {
50
+ const abs = resolve(path);
51
+ const parent = dirname(abs);
52
+ if (existsSync(abs) || parent === abs) {
53
+ try {
54
+ return realpathSync(abs);
55
+ }
56
+ catch {
57
+ return abs;
58
+ }
59
+ }
60
+ return join(real(parent), basename(abs));
61
+ }
62
+ /** True when `child` is `root` or lies below it. */
63
+ function within(root, child) {
64
+ const rel = relative(real(root), real(child));
65
+ return !(rel === '..' || rel.startsWith(`..${sep}`) || isAbsolute(rel));
66
+ }
67
+ /** POSIX form of `rel`, or `null` when it escapes its base. */
68
+ function posixInside(rel) {
69
+ if (rel === '..' || rel.startsWith(`..${sep}`) || isAbsolute(rel))
70
+ return null;
71
+ return rel.split(sep).join('/');
72
+ }
73
+ /**
74
+ * Repository key of an `origin` URL, the same on every device for the same
75
+ * repository: `github.com/<owner>/<repo>` through the github.com-anchored
76
+ * {@link extractRepoOwnerAndName} the PR evidence uses, else `<host>/<path>`.
77
+ * Scheme, user, port (only a `scheme://` URL has one; in scp form the digits
78
+ * after the colon are an owner) and `.git` are dropped and the key is
79
+ * lowercased, so `git@github.com:O/R.git`, `https://github.com/o/r` and
80
+ * `ssh://git@github.com:22/o/r` agree. A local-path remote has no key.
81
+ *
82
+ * @param url - Raw `origin` URL.
83
+ * @returns The key, or `null`.
84
+ * @example
85
+ * ```ts
86
+ * originRepoKey('ssh://git@github.com:22/O/R.git'); // 'github.com/o/r'
87
+ * ```
88
+ * @task T14012
89
+ */
90
+ export function originRepoKey(url) {
91
+ const trimmed = url.trim();
92
+ const scheme = /^[a-z][a-z0-9+.-]*:\/\//i.exec(trimmed);
93
+ const rest = trimmed.slice(scheme?.[0].length ?? 0).replace(/^[^@/]+@/, '');
94
+ // Only a URL with a scheme has a port; in scp form (`git@host:1234/repo`)
95
+ // the digits after the colon are an owner or group (T14012).
96
+ const match = scheme ? /^([^/:]+)(?::\d+)?\/+(.+)$/.exec(rest) : /^([^/:]+)[:/]+(.+)$/.exec(rest);
97
+ const host = match?.[1]?.toLowerCase();
98
+ const path = match?.[2]?.replace(/\/+$/, '').replace(/\.git$/i, '');
99
+ if (!host || !path || /^\.+$/.test(host))
100
+ return null;
101
+ if (host === 'github.com') {
102
+ const github = extractRepoOwnerAndName(`https://github.com/${path}`);
103
+ return github ? `github.com/${github.owner}/${github.repo}`.toLowerCase() : null;
104
+ }
105
+ return `${host}/${path}`.toLowerCase();
106
+ }
107
+ /**
108
+ * Create an {@link EvidenceRepoResolver} for one CLEO store.
109
+ *
110
+ * The primary repository is the store root's own: the checkout whose toplevel
111
+ * is the store root, or an outer repository that tracks files under it (a
112
+ * store inside a monorepo); failing that, the declared evidence git root
113
+ * (`evidence.gitRoot` or `CLEO_EVIDENCE_GIT_ROOT`). Its files and commits, in
114
+ * any of its worktrees, keep unqualified ids, so single-repo stores never
115
+ * change. Without either, nothing is primary: the id of a child repository
116
+ * never depends on how many repositories the store holds, so adding one later
117
+ * moves nothing. Every other checkout (a child repository, a submodule) is
118
+ * keyed by {@link originRepoKey}; without a usable origin, by its main
119
+ * checkout's directory relative to the store root. An outer repository that
120
+ * tracks nothing under the store root (a dotfiles repository at `~`) is
121
+ * ignored: files under the store root are keyed against the store root.
122
+ *
123
+ * @param storeRoot - CLEO store root.
124
+ * @returns The resolver.
125
+ * @example
126
+ * ```ts
127
+ * const repos = createEvidenceRepoResolver('/work');
128
+ * repos.file('api/src/x.ts', '/work'); // { repo: 'github.com/o/api', path: 'src/x.ts' }
129
+ * ```
130
+ * @task T14012
131
+ */
132
+ export function createEvidenceRepoResolver(storeRoot) {
133
+ const toplevels = new Map();
134
+ const classes = new Map();
135
+ const commits = new Map();
136
+ let primaryCommonDir;
137
+ let known;
138
+ const toplevelOf = (dir) => {
139
+ let top = toplevels.get(dir);
140
+ if (top === undefined) {
141
+ top = existsSync(dir) ? gitToplevel(dir) : null;
142
+ toplevels.set(dir, top);
143
+ }
144
+ return top;
145
+ };
146
+ /** The store root's own checkout (its toplevel or a tracking outer repository). */
147
+ const storeTop = () => {
148
+ const top = toplevelOf(storeRoot);
149
+ if (top === null)
150
+ return null;
151
+ const rel = posixInside(relative(real(top), real(storeRoot)));
152
+ return rel === '' || (rel !== null && gitHeadHasPath(top, rel)) ? top : null;
153
+ };
154
+ const declaredTop = () => {
155
+ const declared = resolveDeclaredEvidenceGitRoot(storeRoot);
156
+ return declared === null ? null : toplevelOf(declared.path);
157
+ };
158
+ const primaryCommon = () => {
159
+ if (primaryCommonDir === undefined) {
160
+ const top = storeTop() ?? declaredTop();
161
+ primaryCommonDir = top === null ? null : gitCommonDir(top);
162
+ }
163
+ return primaryCommonDir;
164
+ };
165
+ const classify = (top) => {
166
+ const cached = classes.get(top);
167
+ if (cached)
168
+ return cached;
169
+ const common = gitCommonDir(top);
170
+ const primary = primaryCommon();
171
+ let result;
172
+ if (common !== null && common === primary)
173
+ result = { kind: 'primary' };
174
+ else if (top !== real(storeRoot) && within(top, storeRoot))
175
+ result = { kind: 'ignored' };
176
+ else {
177
+ const main = common !== null && basename(common) === '.git' ? dirname(common) : top;
178
+ const rel = posixInside(relative(real(storeRoot), real(main)));
179
+ const origin = gitOriginUrl(top);
180
+ const key = (origin !== null ? originRepoKey(origin) : null) ??
181
+ (rel !== null && rel !== '' ? rel : basename(main));
182
+ result = { kind: 'repo', key };
183
+ }
184
+ classes.set(top, result);
185
+ return result;
186
+ };
187
+ /** Toplevel of the git checkout holding `abs` (via its nearest existing directory). */
188
+ const checkoutOf = (abs) => {
189
+ let dir = dirname(abs);
190
+ while (!existsSync(dir) && dirname(dir) !== dir)
191
+ dir = dirname(dir);
192
+ return toplevelOf(dir);
193
+ };
194
+ const checkouts = () => {
195
+ if (known === undefined) {
196
+ const tops = [storeTop(), declaredTop(), ...findNestedGitWorkTrees(storeRoot)].filter((top) => top !== null);
197
+ known = [...new Set(tops.flatMap((top) => [top, ...gitSubmoduleToplevels(top)]))];
198
+ }
199
+ return known;
200
+ };
201
+ return {
202
+ file(path, executionRoot) {
203
+ if (path.includes(REPO_ID_SEPARATOR))
204
+ return null;
205
+ const fromExecution = isAbsolute(path) ? path : resolve(executionRoot, path);
206
+ const fromStore = resolve(storeRoot, path);
207
+ const abs = existsSync(fromExecution) || !existsSync(fromStore) ? fromExecution : fromStore;
208
+ const insideExecution = within(executionRoot, abs);
209
+ if (!insideExecution && !within(storeRoot, abs))
210
+ return null;
211
+ let base = insideExecution ? executionRoot : storeRoot;
212
+ let repo = null;
213
+ const top = checkoutOf(abs);
214
+ if (top !== null) {
215
+ const cls = classify(top);
216
+ if (cls.kind !== 'ignored')
217
+ base = top;
218
+ if (cls.kind === 'repo')
219
+ repo = cls.key;
220
+ }
221
+ const rel = posixInside(relative(real(base), real(abs)));
222
+ return rel === null || rel === '' ? null : { repo, path: rel };
223
+ },
224
+ repoOf(dir) {
225
+ const top = toplevelOf(dir);
226
+ if (top === null)
227
+ return null;
228
+ const cls = classify(top);
229
+ return cls.kind === 'repo' ? cls.key : null;
230
+ },
231
+ commit(sha) {
232
+ const cached = commits.get(sha);
233
+ if (cached !== undefined)
234
+ return cached;
235
+ const repos = new Set();
236
+ for (const checkout of checkouts()) {
237
+ const cls = classify(checkout);
238
+ if (cls.kind !== 'ignored' && gitHasCommit(checkout, sha)) {
239
+ repos.add(cls.kind === 'repo' ? cls.key : null);
240
+ }
241
+ }
242
+ const [only] = repos;
243
+ const result = repos.size === 1 && only !== undefined ? { repo: only } : null;
244
+ commits.set(sha, result);
245
+ return result;
246
+ },
247
+ checkouts,
248
+ };
249
+ }
250
+ /**
251
+ * The POSIX path of an evidence file relative to the checkout that holds it,
252
+ * or `null` when it lies outside both the execution and the store root.
253
+ *
254
+ * The file is located as `validateFiles` located it: the execution root when it
255
+ * exists there, else the store root, else (validated at a commit only) the
256
+ * execution root. Keying by the holding checkout makes a file verified from a
257
+ * worktree, from the main checkout, or through a store that parents several
258
+ * repositories (T14005) one node with the commit-anchored form; the repository
259
+ * itself is {@link EvidenceRepoResolver.file}'s `repo` (T14012).
260
+ *
261
+ * @param path - Path as the `files:` atom stored it.
262
+ * @param executionRoot - Root of the repository the evidence is about.
263
+ * @param storeRoot - CLEO store root.
264
+ * @returns The normalised path, or `null`.
265
+ * @example
266
+ * ```ts
267
+ * repoRelativeEvidencePath('./src/a.ts', '/repo', '/repo'); // 'src/a.ts'
268
+ * ```
269
+ */
270
+ export function repoRelativeEvidencePath(path, executionRoot, storeRoot) {
271
+ return createEvidenceRepoResolver(storeRoot).file(path, executionRoot)?.path ?? null;
272
+ }
273
+ /**
274
+ * Link a task to the commits, files and decisions its accepted evidence names.
275
+ *
276
+ * @param projectRoot - Project whose brain graph is written.
277
+ * @param taskId - Task the evidence was accepted for.
278
+ * @param atoms - Validated atoms the verification stored.
279
+ * @returns Counts of linked targets (repeat links count again; writes are
280
+ * idempotent) and the paths skipped as outside the repository.
281
+ * @example
282
+ * ```ts
283
+ * await linkVerifiedEvidence(root, 'T123', evidenceStored);
284
+ * ```
285
+ */
286
+ export async function linkVerifiedEvidence(projectRoot, taskId, atoms) {
287
+ const result = { commits: 0, files: 0, decisions: 0, skipped: [] };
288
+ const taskNode = `task:${taskId}`;
289
+ const nodes = [{ id: taskNode, nodeType: 'task', label: taskId, qualityScore: 0.7 }];
290
+ const edges = [];
291
+ const shas = [];
292
+ for (const atom of atoms) {
293
+ if (atom.kind === 'commit')
294
+ shas.push(atom.sha);
295
+ else if (atom.kind === 'pr')
296
+ shas.push(atom.mergeCommitSha);
297
+ }
298
+ const repos = createEvidenceRepoResolver(projectRoot);
299
+ let executionRoot;
300
+ for (const atom of atoms) {
301
+ if (atom.kind === 'files') {
302
+ // The same anchor validateAtom hands the resolver for a files: atom.
303
+ executionRoot ??= resolveEvidenceExecutionRoot(projectRoot, undefined, shas[0] ? { commitSha: shas[0] } : {});
304
+ for (const file of atom.files) {
305
+ const key = repos.file(file.path, executionRoot);
306
+ if (key === null) {
307
+ result.skipped.push(file.path);
308
+ continue;
309
+ }
310
+ const fileNode = repoQualifiedNodeId('file', key.repo, key.path);
311
+ nodes.push({ id: fileNode, nodeType: 'file', label: key.path, qualityScore: 0.8 });
312
+ edges.push({
313
+ fromId: taskNode,
314
+ toId: fileNode,
315
+ edgeType: 'touches_code',
316
+ provenance: EVIDENCE_EDGE_PROVENANCE,
317
+ });
318
+ result.files++;
319
+ }
320
+ }
321
+ else if (atom.kind === 'decision') {
322
+ const decisionNode = `decision:${atom.decisionId}`;
323
+ nodes.push({
324
+ id: decisionNode,
325
+ nodeType: 'decision',
326
+ label: atom.decisionId,
327
+ qualityScore: 0.8,
328
+ });
329
+ edges.push({
330
+ fromId: decisionNode,
331
+ toId: taskNode,
332
+ edgeType: 'applies_to',
333
+ provenance: EVIDENCE_EDGE_PROVENANCE,
334
+ });
335
+ result.decisions++;
336
+ }
337
+ }
338
+ await writeGraphBatch(projectRoot, nodes, edges);
339
+ const failed = [];
340
+ for (const sha of shas) {
341
+ try {
342
+ // The same rule as files; a commit no single repository holds stays unqualified.
343
+ await ensureCommitNode(projectRoot, sha, taskId, {
344
+ provenance: EVIDENCE_EDGE_PROVENANCE,
345
+ explicit: true,
346
+ repo: repos.commit(sha)?.repo ?? null,
347
+ });
348
+ result.commits++;
349
+ }
350
+ catch (error) {
351
+ failed.push({ sha, error });
352
+ }
353
+ }
354
+ if (failed.length > 0) {
355
+ const first = failed[0]?.error;
356
+ // @sync-invariant none:local-only the verification already committed; the caller warns
357
+ throw new Error(`commit links failed for ${failed.map((f) => f.sha.slice(0, 12)).join(', ')}; ` +
358
+ `written: task, ${result.files} file, ${result.decisions} decision and ${result.commits} commit link(s): ` +
359
+ (first instanceof Error ? first.message : String(first)));
360
+ }
361
+ return result;
362
+ }
363
+ /**
364
+ * Default receipt path of an applied evidence repo-id migration.
365
+ *
366
+ * @param projectRoot - Project root.
367
+ * @param migratedAt - ISO timestamp of the apply.
368
+ * @returns Absolute receipt path under `.cleo/backups/migrations/`.
369
+ * @example
370
+ * ```ts
371
+ * defaultEvidenceRepoReceiptPath(root, '2026-10-24T00:00:00.000Z');
372
+ * ```
373
+ * @task T14012
374
+ */
375
+ export function defaultEvidenceRepoReceiptPath(projectRoot, migratedAt) {
376
+ return join(projectRoot, '.cleo', 'backups', 'migrations', `evidence-repo-ids-${migratedAt.replace(/[:.]/g, '-')}.json`);
377
+ }
378
+ /** A node's metadata object, or an empty one when absent or not an object. */
379
+ function parseMetadata(json) {
380
+ if (json === null)
381
+ return {};
382
+ try {
383
+ const parsed = JSON.parse(json);
384
+ return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)
385
+ ? Object.fromEntries(Object.entries(parsed))
386
+ : {};
387
+ }
388
+ catch {
389
+ return {};
390
+ }
391
+ }
392
+ /** Write a receipt atomically, creating its directory. */
393
+ function writeReceipt(path, receipt) {
394
+ mkdirSync(dirname(path), { recursive: true });
395
+ writeJsonFileAtomic(path, receipt);
396
+ }
397
+ /**
398
+ * Forward migration of evidence file and commit node ids to repo-qualified ids
399
+ * (T14012), by the rule {@link createEvidenceRepoResolver} applies to new links.
400
+ *
401
+ * Only `evidence:verify` edges move. A commit belongs to the repository whose
402
+ * checkout contains it. A file belongs to the one repository whose checkout has
403
+ * its path, or, when several do, to the one the same task's commits belong to.
404
+ * Anything still ambiguous or absent everywhere is reported in `unresolved`
405
+ * and left as it is. Old nodes are never deleted here (other tables and
406
+ * writers may still reference them; a later prune owns that); a copied commit
407
+ * node records its `repo` in its metadata. Re-running is a no-op.
408
+ *
409
+ * A dry run is the default; only `apply` writes, after recording a receipt
410
+ * (status `started`, every old id → new id) and completing it once the single
411
+ * transaction commits. It never runs automatically.
412
+ *
413
+ * @param projectRoot - CLEO store root.
414
+ * @param options - `apply` writes; `receiptPath` overrides the default; `now` for tests.
415
+ * @returns The moves, the created nodes, the unresolved edges and the receipt path.
416
+ * @example
417
+ * ```ts
418
+ * const plan = await migrateEvidenceRepoIds(root);
419
+ * const done = await migrateEvidenceRepoIds(root, { apply: true });
420
+ * ```
421
+ * @task T14012
422
+ */
423
+ export async function migrateEvidenceRepoIds(projectRoot, options = {}) {
424
+ const result = {
425
+ dryRun: options.apply !== true,
426
+ receiptPath: null,
427
+ moved: [],
428
+ nodes: [],
429
+ unresolved: [],
430
+ };
431
+ const repos = createEvidenceRepoResolver(projectRoot);
432
+ const checkouts = repos.checkouts();
433
+ const db = await getBrainDb(projectRoot);
434
+ const evidenceEdges = db
435
+ .select()
436
+ .from(brainPageEdges)
437
+ .where(and(eq(brainPageEdges.provenance, EVIDENCE_EDGE_PROVENANCE), eq(brainPageEdges.edgeType, 'touches_code')))
438
+ .all();
439
+ // Repositories each task's commits belong to (`null` = the primary repository).
440
+ const taskRepos = new Map();
441
+ for (const edge of evidenceEdges) {
442
+ if (!edge.toId.startsWith('commit:'))
443
+ continue;
444
+ const rest = edge.toId.slice('commit:'.length);
445
+ const at = rest.lastIndexOf(REPO_ID_SEPARATOR);
446
+ const owner = at === -1 ? repos.commit(rest) : { repo: rest.slice(0, at) };
447
+ if (owner === null)
448
+ continue;
449
+ const set = taskRepos.get(edge.fromId) ?? new Set();
450
+ set.add(owner.repo);
451
+ taskRepos.set(edge.fromId, set);
452
+ }
453
+ const moves = [];
454
+ for (const edge of evidenceEdges) {
455
+ const target = edge.toId;
456
+ if (target.includes(REPO_ID_SEPARATOR))
457
+ continue;
458
+ let newTarget = null;
459
+ if (target.startsWith('commit:')) {
460
+ const sha = target.slice('commit:'.length);
461
+ const owner = repos.commit(sha);
462
+ if (owner === null) {
463
+ result.unresolved.push({
464
+ from: edge.fromId,
465
+ target,
466
+ reason: 'no known checkout, or checkouts of more than one repository, contain this commit',
467
+ });
468
+ continue;
469
+ }
470
+ if (owner.repo !== null)
471
+ newTarget = repoQualifiedNodeId('commit', owner.repo, sha);
472
+ }
473
+ else if (target.startsWith('file:')) {
474
+ const path = target.slice('file:'.length);
475
+ const candidates = new Map();
476
+ for (const base of [projectRoot, ...checkouts]) {
477
+ const abs = join(base, path);
478
+ if (!existsSync(abs) && !(base !== projectRoot && gitHeadHasPath(base, path)))
479
+ continue;
480
+ const key = repos.file(abs, base);
481
+ if (key)
482
+ candidates.set(repoQualifiedNodeId('file', key.repo, key.path), key.repo);
483
+ }
484
+ let picks = [...candidates.keys()];
485
+ const fromTask = taskRepos.get(edge.fromId);
486
+ if (picks.length > 1 && fromTask) {
487
+ picks = picks.filter((id) => fromTask.has(candidates.get(id) ?? null));
488
+ }
489
+ if (picks.length !== 1) {
490
+ result.unresolved.push({
491
+ from: edge.fromId,
492
+ target,
493
+ reason: candidates.size === 0
494
+ ? 'no checkout has this path'
495
+ : "more than one checkout has this path and the task's commits do not decide",
496
+ });
497
+ continue;
498
+ }
499
+ newTarget = picks[0] ?? null;
500
+ }
501
+ if (newTarget !== null && newTarget !== target)
502
+ moves.push({ edge, newTarget });
503
+ }
504
+ for (const { edge, newTarget } of moves) {
505
+ result.moved.push({ from: edge.fromId, oldTarget: edge.toId, newTarget });
506
+ }
507
+ const pairs = new Map(moves.map((m) => [m.newTarget, m.edge.toId]));
508
+ result.nodes = [...pairs].map(([newId, oldId]) => ({ oldId, newId }));
509
+ if (result.dryRun)
510
+ return result;
511
+ const at = (options.now ?? new Date()).toISOString();
512
+ const receiptPath = options.receiptPath ?? defaultEvidenceRepoReceiptPath(projectRoot, at);
513
+ const receipt = {
514
+ version: 1,
515
+ migratedAt: at,
516
+ status: 'started',
517
+ moved: result.moved,
518
+ nodes: result.nodes,
519
+ unresolved: result.unresolved,
520
+ };
521
+ writeReceipt(receiptPath, receipt);
522
+ result.receiptPath = receiptPath;
523
+ // @sync-side-effect identity.local-minting copies evidence file and commit nodes to repo-qualified ids and re-points their edges (T14012)
524
+ db.transaction((tx) => {
525
+ for (const { oldId, newId } of result.nodes) {
526
+ const old = tx.select().from(brainPageNodes).where(eq(brainPageNodes.id, oldId)).get();
527
+ const sep = newId.lastIndexOf(REPO_ID_SEPARATOR);
528
+ const repo = newId.slice(newId.indexOf(':') + 1, sep);
529
+ const label = newId.slice(sep + REPO_ID_SEPARATOR.length);
530
+ const isCommit = newId.startsWith('commit:');
531
+ const metadataJson = isCommit
532
+ ? JSON.stringify({ ...parseMetadata(old?.metadataJson ?? null), repo })
533
+ : (old?.metadataJson ?? null);
534
+ tx.insert(brainPageNodes)
535
+ .values(old
536
+ ? { ...old, id: newId, metadataJson }
537
+ : { id: newId, nodeType: isCommit ? 'commit' : 'file', label, metadataJson })
538
+ .onConflictDoNothing()
539
+ .run();
540
+ }
541
+ for (const { edge, newTarget } of moves) {
542
+ tx.insert(brainPageEdges)
543
+ .values({ ...edge, toId: newTarget })
544
+ .onConflictDoNothing()
545
+ .run();
546
+ tx.delete(brainPageEdges)
547
+ .where(and(eq(brainPageEdges.fromId, edge.fromId), eq(brainPageEdges.toId, edge.toId), eq(brainPageEdges.edgeType, edge.edgeType)))
548
+ .run();
549
+ }
550
+ });
551
+ writeReceipt(receiptPath, { ...receipt, status: 'complete' });
552
+ return result;
553
+ }
554
+ //# sourceMappingURL=evidence-graph-links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-graph-links.js","sourceRoot":"","sources":["../../src/memory/evidence-graph-links.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,13 @@ export interface MemoryCandidate {
52
52
  * Automatically set for 'manual' source and 'owner'/'task-outcome' sourceConfidence.
53
53
  */
54
54
  trusted?: boolean;
55
+ /**
56
+ * The observation type the caller asked for, when it did. A `lesson`
57
+ * deduplicates only against lessons, and any other observation only against
58
+ * non-lessons, so a lesson is never merged into a plain observation with the
59
+ * same text (T13989; the main brain matches type since T13988).
60
+ */
61
+ observationType?: string;
55
62
  }
56
63
  /** Result of passing a candidate through the verification gate. */
57
64
  export interface GateResult {
@@ -1 +1 @@
1
- {"version":3,"file":"extraction-gate.d.ts","sourceRoot":"","sources":["../../src/memory/extraction-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACtB,MAAM,kCAAkC,CAAC;AAQ1C;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,EAAE,kBAAkB,CAAC;IAC/B,iDAAiD;IACjD,IAAI,EAAE,eAAe,CAAC;IACtB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,MAAM,EAAE,YAAY,GAAG,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzE,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IACrD;;;OAGG;IACH,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAeD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAQxC,CAAC;AA+FX;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GACtB,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,CAAC;AAuDtB;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC,CAE7D;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,UAAU,CAAC,CAqHrB;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,eAAe,EAAE,GAC5B,OAAO,CAAC,UAAU,EAAE,CAAC,CAMvB;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,MAAM,CAAC,CAwDjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,UAAU,CAAC,CAuBrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,eAAe,EAAE,GAC5B,OAAO,CAAC,UAAU,EAAE,CAAC,CAMvB"}
1
+ {"version":3,"file":"extraction-gate.d.ts","sourceRoot":"","sources":["../../src/memory/extraction-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACtB,MAAM,kCAAkC,CAAC;AAS1C;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,EAAE,kBAAkB,CAAC;IAC/B,iDAAiD;IACjD,IAAI,EAAE,eAAe,CAAC;IACtB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,MAAM,EAAE,YAAY,GAAG,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzE,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IACrD;;;OAGG;IACH,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAeD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAQxC,CAAC;AAyGX;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GACtB,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,CAAC;AA2DtB;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC,CAE7D;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,UAAU,CAAC,CA0HrB;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,eAAe,EAAE,GAC5B,OAAO,CAAC,UAAU,EAAE,CAAC,CAMvB;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,MAAM,CAAC,CAwDjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,UAAU,CAAC,CAuBrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,eAAe,EAAE,GAC5B,OAAO,CAAC,UAAU,EAAE,CAAC,CAMvB"}