@jamesaphoenix/tx-core 0.8.1 → 0.9.2

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 (517) hide show
  1. package/dist/db.d.ts +6 -6
  2. package/dist/db.d.ts.map +1 -1
  3. package/dist/db.js +29 -2
  4. package/dist/db.js.map +1 -1
  5. package/dist/index.d.ts +8 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +8 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/internal/cycle-scan-service-impl.d.ts +28 -0
  10. package/dist/internal/cycle-scan-service-impl.d.ts.map +1 -0
  11. package/dist/internal/cycle-scan-service-impl.js +877 -0
  12. package/dist/internal/cycle-scan-service-impl.js.map +1 -0
  13. package/dist/internal/doc-service-impl.d.ts +42 -0
  14. package/dist/internal/doc-service-impl.d.ts.map +1 -0
  15. package/dist/internal/doc-service-impl.js +812 -0
  16. package/dist/internal/doc-service-impl.js.map +1 -0
  17. package/dist/internal/embedding-service-impl.d.ts +202 -0
  18. package/dist/internal/embedding-service-impl.d.ts.map +1 -0
  19. package/dist/internal/embedding-service-impl.js +466 -0
  20. package/dist/internal/embedding-service-impl.js.map +1 -0
  21. package/dist/internal/memory-service-impl.d.ts +49 -0
  22. package/dist/internal/memory-service-impl.d.ts.map +1 -0
  23. package/dist/internal/memory-service-impl.js +1061 -0
  24. package/dist/internal/memory-service-impl.js.map +1 -0
  25. package/dist/internal/spec-trace-service-impl.d.ts +50 -0
  26. package/dist/internal/spec-trace-service-impl.d.ts.map +1 -0
  27. package/dist/internal/spec-trace-service-impl.js +707 -0
  28. package/dist/internal/spec-trace-service-impl.js.map +1 -0
  29. package/dist/internal/sync/service-impl.d.ts +41 -0
  30. package/dist/internal/sync/service-impl.d.ts.map +1 -0
  31. package/dist/{services/sync-service.js → internal/sync/service-impl.js} +954 -499
  32. package/dist/internal/sync/service-impl.js.map +1 -0
  33. package/dist/layer.d.ts +8 -5
  34. package/dist/layer.d.ts.map +1 -1
  35. package/dist/layer.js +22 -10
  36. package/dist/layer.js.map +1 -1
  37. package/dist/mappers/anchor.d.ts.map +1 -1
  38. package/dist/mappers/anchor.js +5 -4
  39. package/dist/mappers/anchor.js.map +1 -1
  40. package/dist/mappers/attempt.d.ts.map +1 -1
  41. package/dist/mappers/attempt.js +2 -1
  42. package/dist/mappers/attempt.js.map +1 -1
  43. package/dist/mappers/candidate.d.ts.map +1 -1
  44. package/dist/mappers/candidate.js +2 -1
  45. package/dist/mappers/candidate.js.map +1 -1
  46. package/dist/mappers/claim.d.ts.map +1 -1
  47. package/dist/mappers/claim.js +2 -1
  48. package/dist/mappers/claim.js.map +1 -1
  49. package/dist/mappers/doc.d.ts.map +1 -1
  50. package/dist/mappers/doc.js +9 -8
  51. package/dist/mappers/doc.js.map +1 -1
  52. package/dist/mappers/edge.d.ts.map +1 -1
  53. package/dist/mappers/edge.js +4 -3
  54. package/dist/mappers/edge.js.map +1 -1
  55. package/dist/mappers/file-learning.d.ts.map +1 -1
  56. package/dist/mappers/file-learning.js +2 -1
  57. package/dist/mappers/file-learning.js.map +1 -1
  58. package/dist/mappers/index.d.ts +1 -0
  59. package/dist/mappers/index.d.ts.map +1 -1
  60. package/dist/mappers/index.js +2 -0
  61. package/dist/mappers/index.js.map +1 -1
  62. package/dist/mappers/learning.d.ts.map +1 -1
  63. package/dist/mappers/learning.js +4 -3
  64. package/dist/mappers/learning.js.map +1 -1
  65. package/dist/mappers/memory.d.ts.map +1 -1
  66. package/dist/mappers/memory.js +7 -6
  67. package/dist/mappers/memory.js.map +1 -1
  68. package/dist/mappers/orchestrator-state.d.ts.map +1 -1
  69. package/dist/mappers/orchestrator-state.js +2 -1
  70. package/dist/mappers/orchestrator-state.js.map +1 -1
  71. package/dist/mappers/pin.d.ts.map +1 -1
  72. package/dist/mappers/pin.js +2 -1
  73. package/dist/mappers/pin.js.map +1 -1
  74. package/dist/mappers/run.d.ts.map +1 -1
  75. package/dist/mappers/run.js +4 -3
  76. package/dist/mappers/run.js.map +1 -1
  77. package/dist/mappers/spec-trace.d.ts +11 -0
  78. package/dist/mappers/spec-trace.d.ts.map +1 -0
  79. package/dist/mappers/spec-trace.js +59 -0
  80. package/dist/mappers/spec-trace.js.map +1 -0
  81. package/dist/mappers/task.d.ts.map +1 -1
  82. package/dist/mappers/task.js +4 -4
  83. package/dist/mappers/task.js.map +1 -1
  84. package/dist/mappers/worker.d.ts.map +1 -1
  85. package/dist/mappers/worker.js +2 -1
  86. package/dist/mappers/worker.js.map +1 -1
  87. package/dist/migrations-embedded.d.ts.map +1 -1
  88. package/dist/migrations-embedded.js +15 -0
  89. package/dist/migrations-embedded.js.map +1 -1
  90. package/dist/repo/anchor-repo.d.ts +2 -2
  91. package/dist/repo/anchor-repo.d.ts.map +1 -1
  92. package/dist/repo/anchor-repo.js +18 -17
  93. package/dist/repo/anchor-repo.js.map +1 -1
  94. package/dist/repo/attempt-repo.d.ts.map +1 -1
  95. package/dist/repo/attempt-repo.js +11 -10
  96. package/dist/repo/attempt-repo.js.map +1 -1
  97. package/dist/repo/candidate-repo.d.ts.map +1 -1
  98. package/dist/repo/candidate-repo.js +8 -7
  99. package/dist/repo/candidate-repo.js.map +1 -1
  100. package/dist/repo/claim-repo.d.ts +4 -4
  101. package/dist/repo/claim-repo.d.ts.map +1 -1
  102. package/dist/repo/claim-repo.js +14 -13
  103. package/dist/repo/claim-repo.js.map +1 -1
  104. package/dist/repo/compaction-repo.d.ts +4 -4
  105. package/dist/repo/compaction-repo.d.ts.map +1 -1
  106. package/dist/repo/compaction-repo.js +7 -6
  107. package/dist/repo/compaction-repo.js.map +1 -1
  108. package/dist/repo/deduplication-repo.d.ts.map +1 -1
  109. package/dist/repo/deduplication-repo.js +80 -57
  110. package/dist/repo/deduplication-repo.js.map +1 -1
  111. package/dist/repo/dep-repo.d.ts.map +1 -1
  112. package/dist/repo/dep-repo.js +90 -88
  113. package/dist/repo/dep-repo.js.map +1 -1
  114. package/dist/repo/doc-repo.d.ts +2 -63
  115. package/dist/repo/doc-repo.d.ts.map +1 -1
  116. package/dist/repo/doc-repo.js +6 -4
  117. package/dist/repo/doc-repo.js.map +1 -1
  118. package/dist/repo/doc-repo.types.d.ts +64 -0
  119. package/dist/repo/doc-repo.types.d.ts.map +1 -0
  120. package/dist/repo/doc-repo.types.js +2 -0
  121. package/dist/repo/doc-repo.types.js.map +1 -0
  122. package/dist/repo/edge-repo.d.ts.map +1 -1
  123. package/dist/repo/edge-repo.js +91 -81
  124. package/dist/repo/edge-repo.js.map +1 -1
  125. package/dist/repo/file-learning-repo.d.ts.map +1 -1
  126. package/dist/repo/file-learning-repo.js +7 -6
  127. package/dist/repo/file-learning-repo.js.map +1 -1
  128. package/dist/repo/guard-repo.d.ts +4 -4
  129. package/dist/repo/guard-repo.d.ts.map +1 -1
  130. package/dist/repo/guard-repo.js +8 -7
  131. package/dist/repo/guard-repo.js.map +1 -1
  132. package/dist/repo/index.d.ts +1 -0
  133. package/dist/repo/index.d.ts.map +1 -1
  134. package/dist/repo/index.js +1 -0
  135. package/dist/repo/index.js.map +1 -1
  136. package/dist/repo/label-repo.d.ts +4 -4
  137. package/dist/repo/label-repo.d.ts.map +1 -1
  138. package/dist/repo/label-repo.js +9 -8
  139. package/dist/repo/label-repo.js.map +1 -1
  140. package/dist/repo/learning-repo.d.ts +2 -2
  141. package/dist/repo/learning-repo.d.ts.map +1 -1
  142. package/dist/repo/learning-repo.js +37 -31
  143. package/dist/repo/learning-repo.js.map +1 -1
  144. package/dist/repo/memory-repo/document.d.ts +4 -0
  145. package/dist/repo/memory-repo/document.d.ts.map +1 -0
  146. package/dist/repo/memory-repo/document.js +205 -0
  147. package/dist/repo/memory-repo/document.js.map +1 -0
  148. package/dist/repo/memory-repo/link.d.ts +4 -0
  149. package/dist/repo/memory-repo/link.d.ts.map +1 -0
  150. package/dist/repo/memory-repo/link.js +124 -0
  151. package/dist/repo/memory-repo/link.js.map +1 -0
  152. package/dist/repo/memory-repo/property.d.ts +4 -0
  153. package/dist/repo/memory-repo/property.d.ts.map +1 -0
  154. package/dist/repo/memory-repo/property.js +56 -0
  155. package/dist/repo/memory-repo/property.js.map +1 -0
  156. package/dist/repo/memory-repo/shared.d.ts +28 -0
  157. package/dist/repo/memory-repo/shared.d.ts.map +1 -0
  158. package/dist/repo/memory-repo/shared.js +63 -0
  159. package/dist/repo/memory-repo/shared.js.map +1 -0
  160. package/dist/repo/memory-repo/source.d.ts +4 -0
  161. package/dist/repo/memory-repo/source.d.ts.map +1 -0
  162. package/dist/repo/memory-repo/source.js +58 -0
  163. package/dist/repo/memory-repo/source.js.map +1 -0
  164. package/dist/repo/memory-repo.d.ts +14 -10
  165. package/dist/repo/memory-repo.d.ts.map +1 -1
  166. package/dist/repo/memory-repo.js +8 -527
  167. package/dist/repo/memory-repo.js.map +1 -1
  168. package/dist/repo/message-repo.d.ts.map +1 -1
  169. package/dist/repo/message-repo.js +9 -8
  170. package/dist/repo/message-repo.js.map +1 -1
  171. package/dist/repo/orchestrator-state-repo.d.ts.map +1 -1
  172. package/dist/repo/orchestrator-state-repo.js +2 -1
  173. package/dist/repo/orchestrator-state-repo.js.map +1 -1
  174. package/dist/repo/pin-repo.d.ts.map +1 -1
  175. package/dist/repo/pin-repo.js +5 -4
  176. package/dist/repo/pin-repo.js.map +1 -1
  177. package/dist/repo/run-repo.d.ts.map +1 -1
  178. package/dist/repo/run-repo.js +11 -10
  179. package/dist/repo/run-repo.js.map +1 -1
  180. package/dist/repo/spec-trace-repo.d.ts +9 -0
  181. package/dist/repo/spec-trace-repo.d.ts.map +1 -0
  182. package/dist/repo/spec-trace-repo.filter.d.ts +3 -0
  183. package/dist/repo/spec-trace-repo.filter.d.ts.map +1 -0
  184. package/dist/repo/spec-trace-repo.filter.js +13 -0
  185. package/dist/repo/spec-trace-repo.filter.js.map +1 -0
  186. package/dist/repo/spec-trace-repo.js +323 -0
  187. package/dist/repo/spec-trace-repo.js.map +1 -0
  188. package/dist/repo/spec-trace-repo.types.d.ts +60 -0
  189. package/dist/repo/spec-trace-repo.types.d.ts.map +1 -0
  190. package/dist/repo/spec-trace-repo.types.js +2 -0
  191. package/dist/repo/spec-trace-repo.types.js.map +1 -0
  192. package/dist/repo/task-repo/factory.d.ts +4 -0
  193. package/dist/repo/task-repo/factory.d.ts.map +1 -0
  194. package/dist/repo/task-repo/factory.js +7 -0
  195. package/dist/repo/task-repo/factory.js.map +1 -0
  196. package/dist/repo/task-repo/read.d.ts +6 -0
  197. package/dist/repo/task-repo/read.d.ts.map +1 -0
  198. package/dist/repo/task-repo/read.js +332 -0
  199. package/dist/repo/task-repo/read.js.map +1 -0
  200. package/dist/repo/task-repo/shared.d.ts +10 -0
  201. package/dist/repo/task-repo/shared.d.ts.map +1 -0
  202. package/dist/repo/task-repo/shared.js +29 -0
  203. package/dist/repo/task-repo/shared.js.map +1 -0
  204. package/dist/repo/task-repo/write.d.ts +6 -0
  205. package/dist/repo/task-repo/write.d.ts.map +1 -0
  206. package/dist/repo/task-repo/write.js +182 -0
  207. package/dist/repo/task-repo/write.js.map +1 -0
  208. package/dist/repo/task-repo.d.ts +5 -4
  209. package/dist/repo/task-repo.d.ts.map +1 -1
  210. package/dist/repo/task-repo.js +2 -520
  211. package/dist/repo/task-repo.js.map +1 -1
  212. package/dist/repo/tracked-project-repo.d.ts.map +1 -1
  213. package/dist/repo/tracked-project-repo.js +6 -5
  214. package/dist/repo/tracked-project-repo.js.map +1 -1
  215. package/dist/repo/worker-repo.d.ts.map +1 -1
  216. package/dist/repo/worker-repo.js +60 -47
  217. package/dist/repo/worker-repo.js.map +1 -1
  218. package/dist/schemas/index.d.ts +4 -2
  219. package/dist/schemas/index.d.ts.map +1 -1
  220. package/dist/schemas/index.js +2 -1
  221. package/dist/schemas/index.js.map +1 -1
  222. package/dist/schemas/sync-events.d.ts +25 -0
  223. package/dist/schemas/sync-events.d.ts.map +1 -0
  224. package/dist/schemas/sync-events.js +23 -0
  225. package/dist/schemas/sync-events.js.map +1 -0
  226. package/dist/schemas/sync.d.ts +20 -10
  227. package/dist/schemas/sync.d.ts.map +1 -1
  228. package/dist/schemas/sync.js +10 -4
  229. package/dist/schemas/sync.js.map +1 -1
  230. package/dist/services/agent-service.d.ts +4 -4
  231. package/dist/services/agent-service.d.ts.map +1 -1
  232. package/dist/services/agent-service.js.map +1 -1
  233. package/dist/services/anchor/anchor-service-core-ops.d.ts +125 -0
  234. package/dist/services/anchor/anchor-service-core-ops.d.ts.map +1 -0
  235. package/dist/services/anchor/anchor-service-core-ops.js +41 -0
  236. package/dist/services/anchor/anchor-service-core-ops.js.map +1 -0
  237. package/dist/services/anchor/anchor-service-deps.d.ts +10 -0
  238. package/dist/services/anchor/anchor-service-deps.d.ts.map +1 -0
  239. package/dist/services/anchor/anchor-service-deps.js +2 -0
  240. package/dist/services/anchor/anchor-service-deps.js.map +1 -0
  241. package/dist/services/anchor/anchor-service-ops.d.ts +296 -0
  242. package/dist/services/anchor/anchor-service-ops.d.ts.map +1 -0
  243. package/dist/services/anchor/anchor-service-ops.js +9 -0
  244. package/dist/services/anchor/anchor-service-ops.js.map +1 -0
  245. package/dist/services/anchor/anchor-service-state-ops.d.ts +116 -0
  246. package/dist/services/anchor/anchor-service-state-ops.d.ts.map +1 -0
  247. package/dist/services/anchor/anchor-service-state-ops.js +150 -0
  248. package/dist/services/anchor/anchor-service-state-ops.js.map +1 -0
  249. package/dist/services/anchor/anchor-service-validation.d.ts +7 -0
  250. package/dist/services/anchor/anchor-service-validation.d.ts.map +1 -0
  251. package/dist/services/anchor/anchor-service-validation.js +114 -0
  252. package/dist/services/anchor/anchor-service-validation.js.map +1 -0
  253. package/dist/services/anchor/anchor-service-verification-ops.d.ts +71 -0
  254. package/dist/services/anchor/anchor-service-verification-ops.d.ts.map +1 -0
  255. package/dist/services/anchor/anchor-service-verification-ops.js +169 -0
  256. package/dist/services/anchor/anchor-service-verification-ops.js.map +1 -0
  257. package/dist/services/anchor/anchor-verification-batch.d.ts +12 -0
  258. package/dist/services/anchor/anchor-verification-batch.d.ts.map +1 -0
  259. package/dist/services/anchor/anchor-verification-batch.js +109 -0
  260. package/dist/services/anchor/anchor-verification-batch.js.map +1 -0
  261. package/dist/services/anchor/anchor-verification-single.d.ts +7 -0
  262. package/dist/services/anchor/anchor-verification-single.d.ts.map +1 -0
  263. package/dist/services/anchor/anchor-verification-single.js +407 -0
  264. package/dist/services/anchor/anchor-verification-single.js.map +1 -0
  265. package/dist/services/anchor/anchor-verification-utils.d.ts +19 -0
  266. package/dist/services/anchor/anchor-verification-utils.d.ts.map +1 -0
  267. package/dist/services/anchor/anchor-verification-utils.js +107 -0
  268. package/dist/services/anchor/anchor-verification-utils.js.map +1 -0
  269. package/dist/services/anchor-service.d.ts +12 -90
  270. package/dist/services/anchor-service.d.ts.map +1 -1
  271. package/dist/services/anchor-service.js +5 -530
  272. package/dist/services/anchor-service.js.map +1 -1
  273. package/dist/services/anchor-verification.d.ts +9 -60
  274. package/dist/services/anchor-verification.d.ts.map +1 -1
  275. package/dist/services/anchor-verification.js +5 -796
  276. package/dist/services/anchor-verification.js.map +1 -1
  277. package/dist/services/ast-grep-service/patterns.d.ts +90 -0
  278. package/dist/services/ast-grep-service/patterns.d.ts.map +1 -0
  279. package/dist/services/ast-grep-service/patterns.js +261 -0
  280. package/dist/services/ast-grep-service/patterns.js.map +1 -0
  281. package/dist/services/ast-grep-service.d.ts +2 -13
  282. package/dist/services/ast-grep-service.d.ts.map +1 -1
  283. package/dist/services/ast-grep-service.js +3 -261
  284. package/dist/services/ast-grep-service.js.map +1 -1
  285. package/dist/services/auto-sync-service.d.ts +3 -3
  286. package/dist/services/auto-sync-service.d.ts.map +1 -1
  287. package/dist/services/auto-sync-service.js +12 -13
  288. package/dist/services/auto-sync-service.js.map +1 -1
  289. package/dist/services/compaction-service.d.ts +6 -6
  290. package/dist/services/compaction-service.d.ts.map +1 -1
  291. package/dist/services/compaction-service.js +11 -7
  292. package/dist/services/compaction-service.js.map +1 -1
  293. package/dist/services/cycle-scan-service.d.ts +1 -27
  294. package/dist/services/cycle-scan-service.d.ts.map +1 -1
  295. package/dist/services/cycle-scan-service.js +1 -876
  296. package/dist/services/cycle-scan-service.js.map +1 -1
  297. package/dist/services/daemon-service/process.d.ts +93 -0
  298. package/dist/services/daemon-service/process.d.ts.map +1 -0
  299. package/dist/services/daemon-service/process.js +325 -0
  300. package/dist/services/daemon-service/process.js.map +1 -0
  301. package/dist/services/daemon-service/templates.d.ts +88 -0
  302. package/dist/services/daemon-service/templates.d.ts.map +1 -0
  303. package/dist/services/daemon-service/templates.js +119 -0
  304. package/dist/services/daemon-service/templates.js.map +1 -0
  305. package/dist/services/daemon-service.d.ts +8 -160
  306. package/dist/services/daemon-service.d.ts.map +1 -1
  307. package/dist/services/daemon-service.js +4 -440
  308. package/dist/services/daemon-service.js.map +1 -1
  309. package/dist/services/doc-service.d.ts +1 -41
  310. package/dist/services/doc-service.d.ts.map +1 -1
  311. package/dist/services/doc-service.js +1 -780
  312. package/dist/services/doc-service.js.map +1 -1
  313. package/dist/services/edge-service.d.ts +6 -6
  314. package/dist/services/edge-service.d.ts.map +1 -1
  315. package/dist/services/edge-service.js.map +1 -1
  316. package/dist/services/embedding-service.d.ts +1 -201
  317. package/dist/services/embedding-service.d.ts.map +1 -1
  318. package/dist/services/embedding-service.js +1 -465
  319. package/dist/services/embedding-service.js.map +1 -1
  320. package/dist/services/feedback-tracker.d.ts +2 -2
  321. package/dist/services/feedback-tracker.d.ts.map +1 -1
  322. package/dist/services/feedback-tracker.js.map +1 -1
  323. package/dist/services/file-watcher-service/shared.d.ts +76 -0
  324. package/dist/services/file-watcher-service/shared.d.ts.map +1 -0
  325. package/dist/services/file-watcher-service/shared.js +43 -0
  326. package/dist/services/file-watcher-service/shared.js.map +1 -0
  327. package/dist/services/file-watcher-service.d.ts +2 -42
  328. package/dist/services/file-watcher-service.d.ts.map +1 -1
  329. package/dist/services/file-watcher-service.js +1 -46
  330. package/dist/services/file-watcher-service.js.map +1 -1
  331. package/dist/services/graph-expansion/from-files.d.ts +14 -0
  332. package/dist/services/graph-expansion/from-files.d.ts.map +1 -0
  333. package/dist/services/graph-expansion/from-files.js +187 -0
  334. package/dist/services/graph-expansion/from-files.js.map +1 -0
  335. package/dist/services/graph-expansion/live.d.ts +11 -0
  336. package/dist/services/graph-expansion/live.d.ts.map +1 -0
  337. package/dist/services/graph-expansion/live.js +263 -0
  338. package/dist/services/graph-expansion/live.js.map +1 -0
  339. package/dist/services/graph-expansion.d.ts +17 -20
  340. package/dist/services/graph-expansion.d.ts.map +1 -1
  341. package/dist/services/graph-expansion.js +2 -439
  342. package/dist/services/graph-expansion.js.map +1 -1
  343. package/dist/services/guard-service.d.ts +2 -2
  344. package/dist/services/guard-service.d.ts.map +1 -1
  345. package/dist/services/guard-service.js.map +1 -1
  346. package/dist/services/index.d.ts +3 -1
  347. package/dist/services/index.d.ts.map +1 -1
  348. package/dist/services/index.js +3 -1
  349. package/dist/services/index.js.map +1 -1
  350. package/dist/services/learning-service.d.ts +4 -4
  351. package/dist/services/learning-service.d.ts.map +1 -1
  352. package/dist/services/learning-service.js.map +1 -1
  353. package/dist/services/llm-service.d.ts +4 -4
  354. package/dist/services/llm-service.d.ts.map +1 -1
  355. package/dist/services/llm-service.js.map +1 -1
  356. package/dist/services/memory-retriever-service.d.ts.map +1 -1
  357. package/dist/services/memory-retriever-service.js.map +1 -1
  358. package/dist/services/memory-service.d.ts +1 -48
  359. package/dist/services/memory-service.d.ts.map +1 -1
  360. package/dist/services/memory-service.js +1 -1060
  361. package/dist/services/memory-service.js.map +1 -1
  362. package/dist/services/migration-service.d.ts +6 -6
  363. package/dist/services/migration-service.d.ts.map +1 -1
  364. package/dist/services/migration-service.js +6 -2
  365. package/dist/services/migration-service.js.map +1 -1
  366. package/dist/services/orchestrator-service.d.ts +2 -2
  367. package/dist/services/orchestrator-service.d.ts.map +1 -1
  368. package/dist/services/orchestrator-service.js.map +1 -1
  369. package/dist/services/pin-service.d.ts.map +1 -1
  370. package/dist/services/pin-service.js +21 -28
  371. package/dist/services/pin-service.js.map +1 -1
  372. package/dist/services/promotion-service.d.ts +4 -4
  373. package/dist/services/promotion-service.d.ts.map +1 -1
  374. package/dist/services/promotion-service.js.map +1 -1
  375. package/dist/services/query-expansion-service.d.ts +2 -2
  376. package/dist/services/query-expansion-service.d.ts.map +1 -1
  377. package/dist/services/query-expansion-service.js.map +1 -1
  378. package/dist/services/reflect-service.d.ts +6 -6
  379. package/dist/services/reflect-service.d.ts.map +1 -1
  380. package/dist/services/reflect-service.js.map +1 -1
  381. package/dist/services/reranker-service.d.ts +2 -2
  382. package/dist/services/reranker-service.d.ts.map +1 -1
  383. package/dist/services/reranker-service.js.map +1 -1
  384. package/dist/services/retriever-scoring.d.ts +52 -0
  385. package/dist/services/retriever-scoring.d.ts.map +1 -0
  386. package/dist/services/retriever-scoring.js +146 -0
  387. package/dist/services/retriever-scoring.js.map +1 -0
  388. package/dist/services/retriever-service.d.ts.map +1 -1
  389. package/dist/services/retriever-service.js +1 -191
  390. package/dist/services/retriever-service.js.map +1 -1
  391. package/dist/services/run-heartbeat-service.d.ts +10 -10
  392. package/dist/services/run-heartbeat-service.d.ts.map +1 -1
  393. package/dist/services/run-heartbeat-service.js.map +1 -1
  394. package/dist/services/score-service.d.ts +2 -2
  395. package/dist/services/score-service.d.ts.map +1 -1
  396. package/dist/services/score-service.js.map +1 -1
  397. package/dist/services/spec-trace-service.d.ts +2 -0
  398. package/dist/services/spec-trace-service.d.ts.map +1 -0
  399. package/dist/services/spec-trace-service.js +2 -0
  400. package/dist/services/spec-trace-service.js.map +1 -0
  401. package/dist/services/stream-service.d.ts +31 -0
  402. package/dist/services/stream-service.d.ts.map +1 -0
  403. package/dist/services/stream-service.js +162 -0
  404. package/dist/services/stream-service.js.map +1 -0
  405. package/dist/services/swarm-verification/shared.d.ts +71 -0
  406. package/dist/services/swarm-verification/shared.d.ts.map +1 -0
  407. package/dist/services/swarm-verification/shared.js +108 -0
  408. package/dist/services/swarm-verification/shared.js.map +1 -0
  409. package/dist/services/swarm-verification.d.ts +4 -68
  410. package/dist/services/swarm-verification.d.ts.map +1 -1
  411. package/dist/services/swarm-verification.js +2 -122
  412. package/dist/services/swarm-verification.js.map +1 -1
  413. package/dist/services/sync/converters.d.ts +63 -0
  414. package/dist/services/sync/converters.d.ts.map +1 -0
  415. package/dist/services/sync/converters.js +253 -0
  416. package/dist/services/sync/converters.js.map +1 -0
  417. package/dist/services/sync/entity-export.d.ts +22 -0
  418. package/dist/services/sync/entity-export.d.ts.map +1 -0
  419. package/dist/services/sync/entity-export.js +15 -0
  420. package/dist/services/sync/entity-export.js.map +1 -0
  421. package/dist/services/sync/entity-import.d.ts +22 -0
  422. package/dist/services/sync/entity-import.d.ts.map +1 -0
  423. package/dist/services/sync/entity-import.js +15 -0
  424. package/dist/services/sync/entity-import.js.map +1 -0
  425. package/dist/services/sync/file-utils.d.ts +23 -0
  426. package/dist/services/sync/file-utils.d.ts.map +1 -0
  427. package/dist/services/sync/file-utils.js +97 -0
  428. package/dist/services/sync/file-utils.js.map +1 -0
  429. package/dist/services/sync/index.d.ts +3 -0
  430. package/dist/services/sync/index.d.ts.map +1 -0
  431. package/dist/services/sync/index.js +2 -0
  432. package/dist/services/sync/index.js.map +1 -0
  433. package/dist/services/sync/service.d.ts +2 -0
  434. package/dist/services/sync/service.d.ts.map +1 -0
  435. package/dist/services/sync/service.js +2 -0
  436. package/dist/services/sync/service.js.map +1 -0
  437. package/dist/services/sync/sync-helpers.d.ts +54 -0
  438. package/dist/services/sync/sync-helpers.d.ts.map +1 -0
  439. package/dist/services/sync/sync-helpers.js +245 -0
  440. package/dist/services/sync/sync-helpers.js.map +1 -0
  441. package/dist/services/sync/types.d.ts +104 -0
  442. package/dist/services/sync/types.d.ts.map +1 -0
  443. package/dist/services/sync/types.js +5 -0
  444. package/dist/services/sync/types.js.map +1 -0
  445. package/dist/services/task-service/internals.d.ts +36 -0
  446. package/dist/services/task-service/internals.d.ts.map +1 -0
  447. package/dist/services/task-service/internals.js +270 -0
  448. package/dist/services/task-service/internals.js.map +1 -0
  449. package/dist/services/task-service.d.ts +2 -1
  450. package/dist/services/task-service.d.ts.map +1 -1
  451. package/dist/services/task-service.js +28 -236
  452. package/dist/services/task-service.js.map +1 -1
  453. package/dist/services/tracing-service.d.ts +2 -2
  454. package/dist/services/tracing-service.d.ts.map +1 -1
  455. package/dist/services/tracing-service.js.map +1 -1
  456. package/dist/services/transcript-adapter.d.ts +6 -6
  457. package/dist/services/transcript-adapter.d.ts.map +1 -1
  458. package/dist/services/transcript-adapter.js +3 -8
  459. package/dist/services/transcript-adapter.js.map +1 -1
  460. package/dist/services/validation-service.d.ts +8 -8
  461. package/dist/services/validation-service.d.ts.map +1 -1
  462. package/dist/services/validation-service.js.map +1 -1
  463. package/dist/services/verify-service.d.ts +2 -2
  464. package/dist/services/verify-service.d.ts.map +1 -1
  465. package/dist/services/verify-service.js.map +1 -1
  466. package/dist/services/worker-process/runtime.d.ts +51 -0
  467. package/dist/services/worker-process/runtime.d.ts.map +1 -0
  468. package/dist/services/worker-process/runtime.js +150 -0
  469. package/dist/services/worker-process/runtime.js.map +1 -0
  470. package/dist/services/worker-process.d.ts +3 -18
  471. package/dist/services/worker-process.d.ts.map +1 -1
  472. package/dist/services/worker-process.js +3 -173
  473. package/dist/services/worker-process.js.map +1 -1
  474. package/dist/services/worker-service.d.ts +6 -6
  475. package/dist/services/worker-service.d.ts.map +1 -1
  476. package/dist/services/worker-service.js.map +1 -1
  477. package/dist/utils/db-result.d.ts +14 -0
  478. package/dist/utils/db-result.d.ts.map +1 -0
  479. package/dist/utils/db-result.js +37 -0
  480. package/dist/utils/db-result.js.map +1 -0
  481. package/dist/utils/doc-renderer.d.ts +10 -10
  482. package/dist/utils/doc-renderer.d.ts.map +1 -1
  483. package/dist/utils/doc-renderer.js.map +1 -1
  484. package/dist/utils/ears-validator.d.ts +2 -2
  485. package/dist/utils/ears-validator.d.ts.map +1 -1
  486. package/dist/utils/ears-validator.js.map +1 -1
  487. package/dist/utils/file-path.d.ts +27 -0
  488. package/dist/utils/file-path.d.ts.map +1 -0
  489. package/dist/utils/file-path.js +77 -0
  490. package/dist/utils/file-path.js.map +1 -0
  491. package/dist/utils/glob.d.ts +2 -11
  492. package/dist/utils/glob.d.ts.map +1 -1
  493. package/dist/utils/glob.js +22 -13
  494. package/dist/utils/glob.js.map +1 -1
  495. package/dist/utils/spec-discovery.d.ts +34 -0
  496. package/dist/utils/spec-discovery.d.ts.map +1 -0
  497. package/dist/utils/spec-discovery.js +344 -0
  498. package/dist/utils/spec-discovery.js.map +1 -0
  499. package/dist/utils/toml-config.d.ts +7 -2
  500. package/dist/utils/toml-config.d.ts.map +1 -1
  501. package/dist/utils/toml-config.js +106 -2
  502. package/dist/utils/toml-config.js.map +1 -1
  503. package/dist/utils/ulid.d.ts +8 -0
  504. package/dist/utils/ulid.d.ts.map +1 -0
  505. package/dist/utils/ulid.js +30 -0
  506. package/dist/utils/ulid.js.map +1 -0
  507. package/dist/worker/hooks.d.ts +10 -10
  508. package/dist/worker/hooks.d.ts.map +1 -1
  509. package/dist/worker/run-worker.d.ts.map +1 -1
  510. package/dist/worker/run-worker.js.map +1 -1
  511. package/migrations/033_sync_events.sql +33 -0
  512. package/migrations/034_spec_test_traceability.sql +51 -0
  513. package/migrations/035_anchor_schema_repair.sql +82 -0
  514. package/package.json +4 -3
  515. package/dist/services/sync-service.d.ts +0 -247
  516. package/dist/services/sync-service.d.ts.map +0 -1
  517. package/dist/services/sync-service.js.map +0 -1
@@ -6,551 +6,32 @@
6
6
  */
7
7
  import { Context, Effect, Layer } from "effect";
8
8
  import { SqliteClient } from "../db.js";
9
- import { DatabaseError } from "../errors.js";
10
- import { rowToMemoryDocument, rowToMemoryDocumentWithoutEmbedding, rowToMemoryLink, rowToMemorySource, rowToMemoryProperty, float32ArrayToBuffer, } from "../mappers/memory.js";
11
- /**
12
- * Max SQL bind variables per statement (SQLite default limit is 999).
13
- * Use 900 to leave headroom for other parameters in the query.
14
- */
15
- const MAX_SQL_VARIABLES = 900;
16
- /**
17
- * Chunk an array into batches that fit within SQLite's variable limit.
18
- */
19
- const chunkBySqlLimit = (items, maxPerChunk = MAX_SQL_VARIABLES) => {
20
- const chunks = [];
21
- for (let i = 0; i < items.length; i += maxPerChunk) {
22
- chunks.push(items.slice(i, i + maxPerChunk));
23
- }
24
- return chunks;
25
- };
26
- /**
27
- * All memory document columns EXCEPT embedding.
28
- * Avoids loading ~6KB Float32Array per doc for listing/search operations.
29
- */
30
- const COLS_NO_EMBEDDING = "id, file_path, root_dir, title, content, frontmatter, tags, file_hash, file_mtime, created_at, indexed_at";
31
- /**
32
- * Same columns but table-qualified with `d.` prefix for JOINs.
33
- */
34
- const COLS_NO_EMBEDDING_QUALIFIED = "d.id, d.file_path, d.root_dir, d.title, d.content, d.frontmatter, d.tags, d.file_hash, d.file_mtime, d.created_at, d.indexed_at";
35
- /**
36
- * Build a three-tier FTS5 query for optimal relevance.
37
- * Reuses the same pattern from learning-repo.ts.
38
- * Uses Unicode property escapes (\p{L}, \p{N}) so diacritics, CJK, etc. are preserved.
39
- */
40
- const buildFTS5Query = (query) => {
41
- const sanitized = query.replace(/[^\p{L}\p{N}\s']/gu, "").trim();
42
- const terms = sanitized
43
- .split(/\s+/)
44
- .filter(t => t.length >= 2);
45
- if (terms.length === 0)
46
- return "";
47
- if (terms.length === 1) {
48
- return `"${terms[0].replace(/"/g, '""')}"`;
49
- }
50
- const quoted = terms.map(t => `"${t.replace(/"/g, '""')}"`);
51
- const phrase = `"${terms.join(" ").replace(/"/g, '""')}"`;
52
- const near = `NEAR(${quoted.join(" ")}, 10)`;
53
- const or = quoted.join(" OR ");
54
- return `(${phrase}) OR (${near}) OR (${or})`;
55
- };
56
- // =============================================================================
57
- // MemoryDocumentRepository
58
- // =============================================================================
9
+ import { createMemoryDocumentRepository } from "./memory-repo/document.js";
10
+ import { createMemoryLinkRepository } from "./memory-repo/link.js";
11
+ import { createMemoryPropertyRepository } from "./memory-repo/property.js";
12
+ import { createMemorySourceRepository } from "./memory-repo/source.js";
59
13
  export class MemoryDocumentRepository extends Context.Tag("MemoryDocumentRepository")() {
60
14
  }
61
15
  export const MemoryDocumentRepositoryLive = Layer.effect(MemoryDocumentRepository, Effect.gen(function* () {
62
16
  const db = yield* SqliteClient;
63
- return {
64
- upsertDocument: (doc) => Effect.try({
65
- try: () => {
66
- // Wrap DELETE + INSERT in a transaction to prevent FTS desync if a crash
67
- // occurs between the two statements. DELETE fires memory_fts_ad,
68
- // INSERT fires memory_fts_ai — both must succeed atomically.
69
- db.exec("BEGIN IMMEDIATE");
70
- try {
71
- db.prepare("DELETE FROM memory_documents WHERE file_path = ? AND root_dir = ?").run(doc.filePath, doc.rootDir);
72
- db.prepare(`
73
- INSERT INTO memory_documents (id, file_path, root_dir, title, content, frontmatter, tags, file_hash, file_mtime, created_at, indexed_at)
74
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
75
- `).run(doc.id, doc.filePath, doc.rootDir, doc.title, doc.content, doc.frontmatter, doc.tags, doc.fileHash, doc.fileMtime, doc.createdAt, doc.indexedAt);
76
- db.exec("COMMIT");
77
- }
78
- catch (e) {
79
- db.exec("ROLLBACK");
80
- throw e;
81
- }
82
- },
83
- catch: (cause) => new DatabaseError({ cause })
84
- }),
85
- findById: (id) => Effect.try({
86
- try: () => {
87
- const row = db.prepare(`SELECT ${COLS_NO_EMBEDDING} FROM memory_documents WHERE id = ?`).get(id);
88
- return row ? rowToMemoryDocumentWithoutEmbedding(row) : null;
89
- },
90
- catch: (cause) => new DatabaseError({ cause })
91
- }),
92
- findByPath: (filePath, rootDir) => Effect.try({
93
- try: () => {
94
- const row = db.prepare(`SELECT ${COLS_NO_EMBEDDING} FROM memory_documents WHERE file_path = ? AND root_dir = ?`).get(filePath, rootDir);
95
- return row ? rowToMemoryDocumentWithoutEmbedding(row) : null;
96
- },
97
- catch: (cause) => new DatabaseError({ cause })
98
- }),
99
- findByHash: (hash) => Effect.try({
100
- try: () => {
101
- const rows = db.prepare(`SELECT ${COLS_NO_EMBEDDING} FROM memory_documents WHERE file_hash = ?`).all(hash);
102
- return rows.map(rowToMemoryDocumentWithoutEmbedding);
103
- },
104
- catch: (cause) => new DatabaseError({ cause })
105
- }),
106
- searchBM25: (query, limit) => Effect.try({
107
- try: () => {
108
- const ftsQuery = buildFTS5Query(query);
109
- if (!ftsQuery)
110
- return [];
111
- // Cap limit to prevent unbounded queries.
112
- // Callers are responsible for over-fetching (e.g. limit * 3) when needed.
113
- const safeLimit = Math.min(Math.max(1, limit), 1000);
114
- const rows = db.prepare(`
115
- SELECT ${COLS_NO_EMBEDDING_QUALIFIED}, bm25(memory_fts) as bm25_score
116
- FROM memory_documents d
117
- JOIN memory_fts ON d.rowid = memory_fts.rowid
118
- WHERE memory_fts MATCH ?
119
- ORDER BY bm25_score ASC -- Most negative = most relevant in FTS5
120
- LIMIT ?
121
- `).all(ftsQuery, safeLimit);
122
- if (rows.length === 0)
123
- return [];
124
- // FTS5 bm25() returns negative values (more negative = more relevant).
125
- // Negate to get positive scores, then normalize to [0, 1] range.
126
- const scores = rows.map(r => -r.bm25_score);
127
- const maxScore = scores[0]; // First row is most relevant (most negative bm25)
128
- const normalizer = maxScore > 0 ? maxScore : 1;
129
- return rows.map((row, idx) => ({
130
- document: rowToMemoryDocumentWithoutEmbedding(row),
131
- score: Math.max(0, Math.min(1.0, scores[idx] / normalizer))
132
- }));
133
- },
134
- catch: (cause) => new DatabaseError({ cause })
135
- }),
136
- findWithEmbeddings: (limit) => Effect.try({
137
- try: () => {
138
- // ORDER BY id for deterministic results (no recency bias, but stable across calls)
139
- const rows = db.prepare(`SELECT * FROM memory_documents WHERE embedding IS NOT NULL ORDER BY id ASC LIMIT ?`).all(limit);
140
- return rows.map(rowToMemoryDocument);
141
- },
142
- catch: (cause) => new DatabaseError({ cause })
143
- }),
144
- listAll: (filter) => Effect.try({
145
- try: () => {
146
- let sql = `SELECT ${COLS_NO_EMBEDDING} FROM memory_documents`;
147
- const params = [];
148
- const conditions = [];
149
- if (filter?.rootDir) {
150
- conditions.push("root_dir = ?");
151
- params.push(filter.rootDir);
152
- }
153
- if (filter?.tags && filter.tags.length > 0) {
154
- // Use json_each for correct tag matching (avoids substring false positives)
155
- for (const tag of filter.tags) {
156
- conditions.push(`EXISTS (SELECT 1 FROM json_each(tags) WHERE json_each.value = ?)`);
157
- params.push(tag);
158
- }
159
- }
160
- if (conditions.length > 0) {
161
- sql += " WHERE " + conditions.join(" AND ");
162
- }
163
- sql += " ORDER BY indexed_at DESC LIMIT 10000";
164
- const rows = db.prepare(sql).all(...params);
165
- return rows.map(rowToMemoryDocumentWithoutEmbedding);
166
- },
167
- catch: (cause) => new DatabaseError({ cause })
168
- }),
169
- deleteByRootDir: (rootDir) => Effect.try({
170
- try: () => {
171
- db.exec("BEGIN IMMEDIATE");
172
- try {
173
- // Null out target_doc_id for incoming links BEFORE deleting documents
174
- // (no FK on target_doc_id, so CASCADE won't handle this)
175
- db.prepare(`UPDATE memory_links SET target_doc_id = NULL
176
- WHERE target_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ?)`).run(rootDir);
177
- // Delete outgoing links FROM docs being removed (prevents phantom backlinks)
178
- db.prepare(`DELETE FROM memory_links
179
- WHERE source_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ?)`).run(rootDir);
180
- const result = db.prepare("DELETE FROM memory_documents WHERE root_dir = ?").run(rootDir);
181
- db.exec("COMMIT");
182
- return result.changes;
183
- }
184
- catch (e) {
185
- db.exec("ROLLBACK");
186
- throw e;
187
- }
188
- },
189
- catch: (cause) => new DatabaseError({ cause })
190
- }),
191
- deleteById: (id) => Effect.try({
192
- try: () => {
193
- db.exec("BEGIN IMMEDIATE");
194
- try {
195
- // Null out target_doc_id for incoming links before deleting the document
196
- db.prepare("UPDATE memory_links SET target_doc_id = NULL WHERE target_doc_id = ?").run(id);
197
- // Delete outgoing links explicitly (consistent with deleteByRootDir/removeSource)
198
- db.prepare("DELETE FROM memory_links WHERE source_doc_id = ?").run(id);
199
- db.prepare("DELETE FROM memory_documents WHERE id = ?").run(id);
200
- db.exec("COMMIT");
201
- }
202
- catch (e) {
203
- db.exec("ROLLBACK");
204
- throw e;
205
- }
206
- },
207
- catch: (cause) => new DatabaseError({ cause })
208
- }),
209
- deleteByPaths: (rootDir, paths) => Effect.try({
210
- try: () => {
211
- if (paths.length === 0)
212
- return 0;
213
- let total = 0;
214
- db.exec("BEGIN IMMEDIATE");
215
- try {
216
- for (const chunk of chunkBySqlLimit(paths)) {
217
- const placeholders = chunk.map(() => "?").join(", ");
218
- // Null out target_doc_id for incoming links before deleting documents
219
- db.prepare(`UPDATE memory_links SET target_doc_id = NULL
220
- WHERE target_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ? AND file_path IN (${placeholders}))`).run(rootDir, ...chunk);
221
- // Delete outgoing links explicitly (consistent with deleteByRootDir/removeSource)
222
- db.prepare(`DELETE FROM memory_links
223
- WHERE source_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ? AND file_path IN (${placeholders}))`).run(rootDir, ...chunk);
224
- const result = db.prepare(`DELETE FROM memory_documents WHERE root_dir = ? AND file_path IN (${placeholders})`).run(rootDir, ...chunk);
225
- total += result.changes;
226
- }
227
- db.exec("COMMIT");
228
- }
229
- catch (e) {
230
- db.exec("ROLLBACK");
231
- throw e;
232
- }
233
- return total;
234
- },
235
- catch: (cause) => new DatabaseError({ cause })
236
- }),
237
- updateFileHash: (id, hash) => Effect.try({
238
- try: () => {
239
- const result = db.prepare("UPDATE memory_documents SET file_hash = ? WHERE id = ?").run(hash, id);
240
- if (result.changes === 0) {
241
- throw new Error(`updateFileHash: no document found with id=${id}`);
242
- }
243
- },
244
- catch: (cause) => new DatabaseError({ cause })
245
- }),
246
- updateEmbedding: (id, embedding) => Effect.try({
247
- try: () => {
248
- const result = db.prepare("UPDATE memory_documents SET embedding = ? WHERE id = ?").run(float32ArrayToBuffer(embedding), id);
249
- if (result.changes === 0) {
250
- throw new Error(`updateEmbedding: no document found with id=${id}`);
251
- }
252
- },
253
- catch: (cause) => new DatabaseError({ cause })
254
- }),
255
- count: () => Effect.try({
256
- try: () => {
257
- const result = db.prepare("SELECT COUNT(*) as cnt FROM memory_documents").get();
258
- return result.cnt;
259
- },
260
- catch: (cause) => new DatabaseError({ cause })
261
- }),
262
- countWithEmbeddings: () => Effect.try({
263
- try: () => {
264
- const result = db.prepare("SELECT COUNT(*) as cnt FROM memory_documents WHERE embedding IS NOT NULL").get();
265
- return result.cnt;
266
- },
267
- catch: (cause) => new DatabaseError({ cause })
268
- }),
269
- listPathsByRootDir: (rootDir) => Effect.try({
270
- try: () => {
271
- const rows = db.prepare("SELECT file_path FROM memory_documents WHERE root_dir = ?").all(rootDir);
272
- return rows.map(r => r.file_path);
273
- },
274
- catch: (cause) => new DatabaseError({ cause })
275
- }),
276
- };
17
+ return createMemoryDocumentRepository(db);
277
18
  }));
278
- // =============================================================================
279
- // MemoryLinkRepository
280
- // =============================================================================
281
19
  export class MemoryLinkRepository extends Context.Tag("MemoryLinkRepository")() {
282
20
  }
283
21
  export const MemoryLinkRepositoryLive = Layer.effect(MemoryLinkRepository, Effect.gen(function* () {
284
22
  const db = yield* SqliteClient;
285
- return {
286
- insertLinks: (links) => Effect.try({
287
- try: () => {
288
- if (links.length === 0)
289
- return;
290
- db.exec("BEGIN IMMEDIATE");
291
- try {
292
- const stmt = db.prepare("INSERT OR IGNORE INTO memory_links (source_doc_id, target_ref, link_type, created_at) VALUES (?, ?, ?, ?)");
293
- const now = new Date().toISOString();
294
- for (const link of links) {
295
- stmt.run(link.sourceDocId, link.targetRef, link.linkType, now);
296
- }
297
- db.exec("COMMIT");
298
- }
299
- catch (e) {
300
- db.exec("ROLLBACK");
301
- throw e;
302
- }
303
- },
304
- catch: (cause) => new DatabaseError({ cause })
305
- }),
306
- findOutgoing: (docId) => Effect.try({
307
- try: () => {
308
- const rows = db.prepare("SELECT * FROM memory_links WHERE source_doc_id = ? ORDER BY id").all(docId);
309
- return rows.map(rowToMemoryLink);
310
- },
311
- catch: (cause) => new DatabaseError({ cause })
312
- }),
313
- findIncoming: (docId) => Effect.try({
314
- try: () => {
315
- const rows = db.prepare("SELECT * FROM memory_links WHERE target_doc_id = ? ORDER BY id").all(docId);
316
- return rows.map(rowToMemoryLink);
317
- },
318
- catch: (cause) => new DatabaseError({ cause })
319
- }),
320
- deleteBySource: (docId) => Effect.try({
321
- try: () => {
322
- db.exec("BEGIN IMMEDIATE");
323
- try {
324
- db.prepare("DELETE FROM memory_links WHERE source_doc_id = ?").run(docId);
325
- db.exec("COMMIT");
326
- }
327
- catch (e) {
328
- db.exec("ROLLBACK");
329
- throw e;
330
- }
331
- },
332
- catch: (cause) => new DatabaseError({ cause })
333
- }),
334
- resolveTargets: () => Effect.try({
335
- try: () => {
336
- // Resolve unresolved target_refs by exact title match or file path match.
337
- // Two-step approach: SELECT unresolved links, then UPDATE each with best match.
338
- // Both steps inside one transaction to prevent TOCTOU races.
339
- db.exec("BEGIN IMMEDIATE");
340
- try {
341
- const unresolved = db.prepare("SELECT id, source_doc_id, target_ref FROM memory_links WHERE target_doc_id IS NULL").all();
342
- if (unresolved.length === 0) {
343
- db.exec("COMMIT");
344
- return 0;
345
- }
346
- // For each unresolved link, find the best matching document
347
- // Priority: exact file_path > file_path + .md > title match
348
- // Tiebreaker: indexed_at ASC then id ASC for deterministic resolution
349
- // Case-insensitive matching: wikilinks like [[my doc]] must resolve
350
- // to titles like "My Doc" or file paths like "My Doc.md"
351
- const findBest = db.prepare(`
352
- SELECT d.id FROM memory_documents d
353
- WHERE LOWER(d.file_path) = LOWER(?) OR LOWER(d.file_path) = LOWER(? || '.md') OR LOWER(d.title) = LOWER(?)
354
- ORDER BY
355
- CASE
356
- WHEN LOWER(d.file_path) = LOWER(?) THEN 0
357
- WHEN LOWER(d.file_path) = LOWER(? || '.md') THEN 1
358
- ELSE 2
359
- END,
360
- d.indexed_at ASC,
361
- d.id ASC
362
- LIMIT 1
363
- `);
364
- const updateStmt = db.prepare("UPDATE memory_links SET target_doc_id = ? WHERE id = ? AND target_doc_id IS NULL");
365
- let resolved = 0;
366
- for (const link of unresolved) {
367
- const match = findBest.get(link.target_ref, link.target_ref, link.target_ref, link.target_ref, link.target_ref);
368
- // Skip self-links: a document should not link to itself
369
- if (match && match.id !== link.source_doc_id) {
370
- updateStmt.run(match.id, link.id);
371
- resolved++;
372
- }
373
- }
374
- db.exec("COMMIT");
375
- return resolved;
376
- }
377
- catch (e) {
378
- db.exec("ROLLBACK");
379
- throw e;
380
- }
381
- },
382
- catch: (cause) => new DatabaseError({ cause })
383
- }),
384
- insertExplicit: (sourceId, targetRef) => Effect.try({
385
- try: () => {
386
- // Wrap INSERT + resolution UPDATE in a transaction to prevent
387
- // partial failure leaving a permanently-unresolved link row.
388
- db.exec("BEGIN IMMEDIATE");
389
- try {
390
- const now = new Date().toISOString();
391
- db.prepare("INSERT OR IGNORE INTO memory_links (source_doc_id, target_ref, link_type, created_at) VALUES (?, ?, 'explicit', ?)").run(sourceId, targetRef, now);
392
- // Attempt immediate resolution so explicit links work without a full index() run
393
- // Case-insensitive matching (same as resolveTargets)
394
- const match = db.prepare(`
395
- SELECT d.id FROM memory_documents d
396
- WHERE LOWER(d.file_path) = LOWER(?) OR LOWER(d.file_path) = LOWER(? || '.md') OR LOWER(d.title) = LOWER(?)
397
- ORDER BY
398
- CASE
399
- WHEN LOWER(d.file_path) = LOWER(?) THEN 0
400
- WHEN LOWER(d.file_path) = LOWER(? || '.md') THEN 1
401
- ELSE 2
402
- END,
403
- d.indexed_at ASC, d.id ASC
404
- LIMIT 1
405
- `).get(targetRef, targetRef, targetRef, targetRef, targetRef);
406
- if (match && match.id !== sourceId) {
407
- db.prepare("UPDATE memory_links SET target_doc_id = ? WHERE source_doc_id = ? AND target_ref = ? AND link_type = 'explicit'").run(match.id, sourceId, targetRef);
408
- }
409
- db.exec("COMMIT");
410
- }
411
- catch (e) {
412
- db.exec("ROLLBACK");
413
- throw e;
414
- }
415
- },
416
- catch: (cause) => new DatabaseError({ cause })
417
- }),
418
- count: () => Effect.try({
419
- try: () => {
420
- const result = db.prepare("SELECT COUNT(*) as cnt FROM memory_links").get();
421
- return result.cnt;
422
- },
423
- catch: (cause) => new DatabaseError({ cause })
424
- }),
425
- };
23
+ return createMemoryLinkRepository(db);
426
24
  }));
427
- // =============================================================================
428
- // MemoryPropertyRepository
429
- // =============================================================================
430
25
  export class MemoryPropertyRepository extends Context.Tag("MemoryPropertyRepository")() {
431
26
  }
432
27
  export const MemoryPropertyRepositoryLive = Layer.effect(MemoryPropertyRepository, Effect.gen(function* () {
433
28
  const db = yield* SqliteClient;
434
- return {
435
- setProperty: (docId, key, value) => Effect.try({
436
- try: () => {
437
- db.prepare("INSERT INTO memory_properties (doc_id, key, value) VALUES (?, ?, ?) ON CONFLICT(doc_id, key) DO UPDATE SET value = excluded.value").run(docId, key, value);
438
- },
439
- catch: (cause) => new DatabaseError({ cause })
440
- }),
441
- getProperty: (docId, key) => Effect.try({
442
- try: () => {
443
- const row = db.prepare("SELECT * FROM memory_properties WHERE doc_id = ? AND key = ?").get(docId, key);
444
- return row ? rowToMemoryProperty(row) : null;
445
- },
446
- catch: (cause) => new DatabaseError({ cause })
447
- }),
448
- getProperties: (docId) => Effect.try({
449
- try: () => {
450
- const rows = db.prepare("SELECT * FROM memory_properties WHERE doc_id = ? ORDER BY key").all(docId);
451
- return rows.map(rowToMemoryProperty);
452
- },
453
- catch: (cause) => new DatabaseError({ cause })
454
- }),
455
- deleteProperty: (docId, key) => Effect.try({
456
- try: () => {
457
- db.prepare("DELETE FROM memory_properties WHERE doc_id = ? AND key = ?").run(docId, key);
458
- },
459
- catch: (cause) => new DatabaseError({ cause })
460
- }),
461
- syncFromFrontmatter: (docId, properties) => Effect.try({
462
- try: () => {
463
- db.exec("BEGIN IMMEDIATE");
464
- try {
465
- // Delete existing properties for this doc
466
- db.prepare("DELETE FROM memory_properties WHERE doc_id = ?").run(docId);
467
- // Insert new ones
468
- const stmt = db.prepare("INSERT INTO memory_properties (doc_id, key, value) VALUES (?, ?, ?)");
469
- for (const [key, value] of Object.entries(properties)) {
470
- stmt.run(docId, key, String(value));
471
- }
472
- db.exec("COMMIT");
473
- }
474
- catch (e) {
475
- db.exec("ROLLBACK");
476
- throw e;
477
- }
478
- },
479
- catch: (cause) => new DatabaseError({ cause })
480
- }),
481
- findByProperty: (key, value) => Effect.try({
482
- try: () => {
483
- const rows = value !== undefined
484
- ? db.prepare("SELECT doc_id FROM memory_properties WHERE key = ? AND value = ?").all(key, value)
485
- : db.prepare("SELECT doc_id FROM memory_properties WHERE key = ?").all(key);
486
- return rows.map(r => r.doc_id);
487
- },
488
- catch: (cause) => new DatabaseError({ cause })
489
- }),
490
- };
29
+ return createMemoryPropertyRepository(db);
491
30
  }));
492
- // =============================================================================
493
- // MemorySourceRepository
494
- // =============================================================================
495
31
  export class MemorySourceRepository extends Context.Tag("MemorySourceRepository")() {
496
32
  }
497
33
  export const MemorySourceRepositoryLive = Layer.effect(MemorySourceRepository, Effect.gen(function* () {
498
34
  const db = yield* SqliteClient;
499
- return {
500
- addSource: (rootDir, label) => Effect.try({
501
- try: () => {
502
- const now = new Date().toISOString();
503
- db.exec("BEGIN IMMEDIATE");
504
- try {
505
- db.prepare("INSERT INTO memory_sources (root_dir, label, created_at) VALUES (?, ?, ?) ON CONFLICT(root_dir) DO UPDATE SET label = excluded.label").run(rootDir, label ?? null, now);
506
- const row = db.prepare("SELECT * FROM memory_sources WHERE root_dir = ?").get(rootDir);
507
- db.exec("COMMIT");
508
- return rowToMemorySource(row);
509
- }
510
- catch (e) {
511
- db.exec("ROLLBACK");
512
- throw e;
513
- }
514
- },
515
- catch: (cause) => new DatabaseError({ cause })
516
- }),
517
- removeSource: (rootDir) => Effect.try({
518
- try: () => {
519
- // Atomic removal: null-out incoming links → delete outgoing links → delete documents → delete source
520
- // All in one transaction to prevent orphaned rows if index() runs concurrently
521
- db.exec("BEGIN IMMEDIATE");
522
- try {
523
- // Null-out incoming target_doc_id references (other sources linking TO docs in this source)
524
- db.prepare(`UPDATE memory_links SET target_doc_id = NULL
525
- WHERE target_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ?)`).run(rootDir);
526
- // Delete outgoing links FROM docs in this source (prevents phantom backlinks)
527
- db.prepare(`DELETE FROM memory_links
528
- WHERE source_doc_id IN (SELECT id FROM memory_documents WHERE root_dir = ?)`).run(rootDir);
529
- db.prepare("DELETE FROM memory_documents WHERE root_dir = ?").run(rootDir);
530
- db.prepare("DELETE FROM memory_sources WHERE root_dir = ?").run(rootDir);
531
- db.exec("COMMIT");
532
- }
533
- catch (e) {
534
- db.exec("ROLLBACK");
535
- throw e;
536
- }
537
- },
538
- catch: (cause) => new DatabaseError({ cause })
539
- }),
540
- listSources: () => Effect.try({
541
- try: () => {
542
- const rows = db.prepare("SELECT * FROM memory_sources ORDER BY created_at").all();
543
- return rows.map(rowToMemorySource);
544
- },
545
- catch: (cause) => new DatabaseError({ cause })
546
- }),
547
- findSource: (rootDir) => Effect.try({
548
- try: () => {
549
- const row = db.prepare("SELECT * FROM memory_sources WHERE root_dir = ?").get(rootDir);
550
- return row ? rowToMemorySource(row) : null;
551
- },
552
- catch: (cause) => new DatabaseError({ cause })
553
- }),
554
- };
35
+ return createMemorySourceRepository(db);
555
36
  }));
556
37
  //# sourceMappingURL=memory-repo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-repo.js","sourceRoot":"","sources":["../../src/repo/memory-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-repo.js","sourceRoot":"","sources":["../../src/repo/memory-repo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AA4CtE,MAAM,OAAO,wBAAyB,SAAQ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAGlF;CAAG;AAEN,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC,MAAM,CACtD,wBAAwB,EACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAC9B,OAAO,8BAA8B,CAAC,EAAE,CAAC,CAAA;AAC3C,CAAC,CAAC,CACH,CAAA;AAYD,MAAM,OAAO,oBAAqB,SAAQ,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAG1E;CAAG;AAEN,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAClD,oBAAoB,EACpB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAC9B,OAAO,0BAA0B,CAAC,EAAE,CAAC,CAAA;AACvC,CAAC,CAAC,CACH,CAAA;AAWD,MAAM,OAAO,wBAAyB,SAAQ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAGlF;CAAG;AAEN,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC,MAAM,CACtD,wBAAwB,EACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAC9B,OAAO,8BAA8B,CAAC,EAAE,CAAC,CAAA;AAC3C,CAAC,CAAC,CACH,CAAA;AASD,MAAM,OAAO,sBAAuB,SAAQ,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAG9E;CAAG;AAEN,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC,MAAM,CACpD,sBAAsB,EACtB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAC9B,OAAO,4BAA4B,CAAC,EAAE,CAAC,CAAA;AACzC,CAAC,CAAC,CACH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"message-repo.d.ts","sourceRoot":"","sources":["../../src/repo/message-repo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAoB,MAAM,cAAc,CAAA;AAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;;IAKlD,4CAA4C;qBAC3B,CAAC,MAAM,EAAE;QACxB,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;QAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QACrB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KACzB,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;IAE3C;;;OAGG;4BACqB,CAAC,MAAM,EAAE;QAC/B,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,aAAa,CAAC;IAEtD,mCAAmC;uBAChB,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,aAAa,CAAC;IAE/E,sCAAsC;wBAClB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;IAE1F,uDAAuD;iCAC1B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAEvG,mEAAmE;kCACrC,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,aAAa,CAAC;IAEzG,6CAA6C;4BACrB,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAE7E,qDAAqD;0BAC/B,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAEjF,2CAA2C;2BACpB,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;;AAhDpF,qBAAa,iBAAkB,SAAQ,sBAkDpC;CAAG;AAEN,eAAO,MAAM,qBAAqB,qDA8KjC,CAAA"}
1
+ {"version":3,"file":"message-repo.d.ts","sourceRoot":"","sources":["../../src/repo/message-repo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAoB,MAAM,cAAc,CAAA;AAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;;IAMlD,4CAA4C;qBAC3B,CAAC,MAAM,EAAE;QACxB,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;QAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QACrB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KACzB,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;IAE3C;;;OAGG;4BACqB,CAAC,MAAM,EAAE;QAC/B,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,aAAa,CAAC;IAEtD,mCAAmC;uBAChB,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,aAAa,CAAC;IAE/E,sCAAsC;wBAClB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;IAE1F,uDAAuD;iCAC1B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAEvG,mEAAmE;kCACrC,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,aAAa,CAAC;IAEzG,6CAA6C;4BACrB,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAE7E,qDAAqD;0BAC/B,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAEjF,2CAA2C;2BACpB,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;;AAhDpF,qBAAa,iBAAkB,SAAQ,sBAkDpC;CAAG;AAEN,eAAO,MAAM,qBAAqB,qDA8KjC,CAAA"}