@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
@@ -0,0 +1,296 @@
1
+ import type { AnchorServiceDeps } from "./anchor-service-deps.js";
2
+ export declare const createAnchorServiceOps: (deps: AnchorServiceDeps) => {
3
+ verifyAnchor: (anchorId: number) => import("effect/Effect").Effect<{
4
+ anchorId: number;
5
+ previousStatus: "valid" | "drifted" | "invalid";
6
+ newStatus: "valid";
7
+ verified: boolean;
8
+ reason: string | undefined;
9
+ }, import("../../errors.js").DatabaseError | import("../../errors.js").AnchorNotFoundError, never>;
10
+ getWithVerification: (id: number, _options?: {}) => import("effect/Effect").Effect<{
11
+ anchor: {
12
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
13
+ readonly status: "valid" | "drifted" | "invalid";
14
+ readonly createdAt: Date;
15
+ readonly learningId: number;
16
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
17
+ readonly anchorValue: string;
18
+ readonly filePath: string;
19
+ readonly symbolFqname: string | null;
20
+ readonly lineStart: number | null;
21
+ readonly lineEnd: number | null;
22
+ readonly contentHash: string | null;
23
+ readonly contentPreview: string | null;
24
+ readonly pinned: boolean;
25
+ readonly verifiedAt: Date | null;
26
+ };
27
+ isFresh: boolean;
28
+ wasVerified: boolean;
29
+ verificationResult?: undefined;
30
+ } | {
31
+ anchor: {
32
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
33
+ readonly status: "valid" | "drifted" | "invalid";
34
+ readonly createdAt: Date;
35
+ readonly learningId: number;
36
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
37
+ readonly anchorValue: string;
38
+ readonly filePath: string;
39
+ readonly symbolFqname: string | null;
40
+ readonly lineStart: number | null;
41
+ readonly lineEnd: number | null;
42
+ readonly contentHash: string | null;
43
+ readonly contentPreview: string | null;
44
+ readonly pinned: boolean;
45
+ readonly verifiedAt: Date | null;
46
+ };
47
+ isFresh: boolean;
48
+ wasVerified: boolean;
49
+ verificationResult: {
50
+ previousStatus: "valid" | "drifted" | "invalid";
51
+ newStatus: "valid" | "drifted" | "invalid";
52
+ action: "drifted" | "unchanged" | "self_healed" | "invalidated";
53
+ reason: string | undefined;
54
+ };
55
+ }, import("../../errors.js").DatabaseError | import("../../errors.js").AnchorNotFoundError, never>;
56
+ verifyAnchorsForFile: (filePath: string) => import("effect/Effect").Effect<{
57
+ total: number;
58
+ verified: number;
59
+ drifted: number;
60
+ invalid: number;
61
+ }, import("../../errors.js").DatabaseError, never>;
62
+ verifyAll: () => import("effect/Effect").Effect<{
63
+ total: number;
64
+ verified: number;
65
+ drifted: number;
66
+ invalid: number;
67
+ }, import("../../errors.js").DatabaseError, never>;
68
+ updateAnchorStatus: (anchorId: number, status: import("@jamesaphoenix/tx-types").AnchorStatus, reason?: string, detectedBy?: import("@jamesaphoenix/tx-types").InvalidationSource) => import("effect/Effect").Effect<{
69
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
70
+ readonly status: "valid" | "drifted" | "invalid";
71
+ readonly createdAt: Date;
72
+ readonly learningId: number;
73
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
74
+ readonly anchorValue: string;
75
+ readonly filePath: string;
76
+ readonly symbolFqname: string | null;
77
+ readonly lineStart: number | null;
78
+ readonly lineEnd: number | null;
79
+ readonly contentHash: string | null;
80
+ readonly contentPreview: string | null;
81
+ readonly pinned: boolean;
82
+ readonly verifiedAt: Date | null;
83
+ }, import("../../errors.js").ValidationError | import("../../errors.js").DatabaseError | import("../../errors.js").AnchorNotFoundError, never>;
84
+ remove: (id: number, reason?: string) => import("effect/Effect").Effect<{
85
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
86
+ readonly status: "valid" | "drifted" | "invalid";
87
+ readonly createdAt: Date;
88
+ readonly learningId: number;
89
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
90
+ readonly anchorValue: string;
91
+ readonly filePath: string;
92
+ readonly symbolFqname: string | null;
93
+ readonly lineStart: number | null;
94
+ readonly lineEnd: number | null;
95
+ readonly contentHash: string | null;
96
+ readonly contentPreview: string | null;
97
+ readonly pinned: boolean;
98
+ readonly verifiedAt: Date | null;
99
+ }, import("../../errors.js").DatabaseError | import("../../errors.js").AnchorNotFoundError, never>;
100
+ hardDelete: (id: number) => import("effect/Effect").Effect<undefined, import("../../errors.js").DatabaseError | import("../../errors.js").AnchorNotFoundError, never>;
101
+ pin: (anchorId: number) => import("effect/Effect").Effect<{
102
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
103
+ readonly status: "valid" | "drifted" | "invalid";
104
+ readonly createdAt: Date;
105
+ readonly learningId: number;
106
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
107
+ readonly anchorValue: string;
108
+ readonly filePath: string;
109
+ readonly symbolFqname: string | null;
110
+ readonly lineStart: number | null;
111
+ readonly lineEnd: number | null;
112
+ readonly contentHash: string | null;
113
+ readonly contentPreview: string | null;
114
+ readonly pinned: boolean;
115
+ readonly verifiedAt: Date | null;
116
+ }, import("../../errors.js").DatabaseError | import("../../errors.js").AnchorNotFoundError, never>;
117
+ unpin: (anchorId: number) => import("effect/Effect").Effect<{
118
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
119
+ readonly status: "valid" | "drifted" | "invalid";
120
+ readonly createdAt: Date;
121
+ readonly learningId: number;
122
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
123
+ readonly anchorValue: string;
124
+ readonly filePath: string;
125
+ readonly symbolFqname: string | null;
126
+ readonly lineStart: number | null;
127
+ readonly lineEnd: number | null;
128
+ readonly contentHash: string | null;
129
+ readonly contentPreview: string | null;
130
+ readonly pinned: boolean;
131
+ readonly verifiedAt: Date | null;
132
+ }, import("../../errors.js").DatabaseError | import("../../errors.js").AnchorNotFoundError, never>;
133
+ invalidate: (anchorId: number, reason: string, detectedBy?: import("@jamesaphoenix/tx-types").InvalidationSource) => import("effect/Effect").Effect<{
134
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
135
+ readonly status: "valid" | "drifted" | "invalid";
136
+ readonly createdAt: Date;
137
+ readonly learningId: number;
138
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
139
+ readonly anchorValue: string;
140
+ readonly filePath: string;
141
+ readonly symbolFqname: string | null;
142
+ readonly lineStart: number | null;
143
+ readonly lineEnd: number | null;
144
+ readonly contentHash: string | null;
145
+ readonly contentPreview: string | null;
146
+ readonly pinned: boolean;
147
+ readonly verifiedAt: Date | null;
148
+ }, import("../../errors.js").DatabaseError | import("../../errors.js").AnchorNotFoundError, never>;
149
+ restore: (anchorId: number) => import("effect/Effect").Effect<{
150
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
151
+ readonly status: "valid" | "drifted" | "invalid";
152
+ readonly createdAt: Date;
153
+ readonly learningId: number;
154
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
155
+ readonly anchorValue: string;
156
+ readonly filePath: string;
157
+ readonly symbolFqname: string | null;
158
+ readonly lineStart: number | null;
159
+ readonly lineEnd: number | null;
160
+ readonly contentHash: string | null;
161
+ readonly contentPreview: string | null;
162
+ readonly pinned: boolean;
163
+ readonly verifiedAt: Date | null;
164
+ }, import("../../errors.js").DatabaseError | import("../../errors.js").AnchorNotFoundError, never>;
165
+ logStatusChange: (anchorId: number, oldStatus: import("@jamesaphoenix/tx-types").AnchorStatus, newStatus: import("@jamesaphoenix/tx-types").AnchorStatus, reason: string, detectedBy?: import("@jamesaphoenix/tx-types").InvalidationSource, oldHash?: string | null, newHash?: string | null, similarity?: number | null) => import("effect/Effect").Effect<{
166
+ readonly id: number;
167
+ readonly reason: string;
168
+ readonly anchorId: number;
169
+ readonly oldStatus: "valid" | "drifted" | "invalid";
170
+ readonly newStatus: "valid" | "drifted" | "invalid";
171
+ readonly detectedBy: "agent" | "manual" | "periodic" | "lazy" | "git_hook";
172
+ readonly oldContentHash: string | null;
173
+ readonly newContentHash: string | null;
174
+ readonly similarityScore: number | null;
175
+ readonly invalidatedAt: Date;
176
+ }, import("../../errors.js").DatabaseError | import("../../errors.js").AnchorNotFoundError, never>;
177
+ createAnchor: (input: Parameters<typeof import("./anchor-service-validation.js").validateAnchorInput>[0]) => import("effect/Effect").Effect<{
178
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
179
+ readonly status: "valid" | "drifted" | "invalid";
180
+ readonly createdAt: Date;
181
+ readonly learningId: number;
182
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
183
+ readonly anchorValue: string;
184
+ readonly filePath: string;
185
+ readonly symbolFqname: string | null;
186
+ readonly lineStart: number | null;
187
+ readonly lineEnd: number | null;
188
+ readonly contentHash: string | null;
189
+ readonly contentPreview: string | null;
190
+ readonly pinned: boolean;
191
+ readonly verifiedAt: Date | null;
192
+ }, import("../../errors.js").LearningNotFoundError | import("../../errors.js").ValidationError | import("../../errors.js").DatabaseError, never>;
193
+ findAnchorsForFile: (filePath: string) => import("effect/Effect").Effect<readonly {
194
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
195
+ readonly status: "valid" | "drifted" | "invalid";
196
+ readonly createdAt: Date;
197
+ readonly learningId: number;
198
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
199
+ readonly anchorValue: string;
200
+ readonly filePath: string;
201
+ readonly symbolFqname: string | null;
202
+ readonly lineStart: number | null;
203
+ readonly lineEnd: number | null;
204
+ readonly contentHash: string | null;
205
+ readonly contentPreview: string | null;
206
+ readonly pinned: boolean;
207
+ readonly verifiedAt: Date | null;
208
+ }[], import("../../errors.js").DatabaseError, never>;
209
+ findAnchorsForLearning: (learningId: number) => import("effect/Effect").Effect<readonly {
210
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
211
+ readonly status: "valid" | "drifted" | "invalid";
212
+ readonly createdAt: Date;
213
+ readonly learningId: number;
214
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
215
+ readonly anchorValue: string;
216
+ readonly filePath: string;
217
+ readonly symbolFqname: string | null;
218
+ readonly lineStart: number | null;
219
+ readonly lineEnd: number | null;
220
+ readonly contentHash: string | null;
221
+ readonly contentPreview: string | null;
222
+ readonly pinned: boolean;
223
+ readonly verifiedAt: Date | null;
224
+ }[], import("../../errors.js").DatabaseError, never>;
225
+ get: (id: number) => import("effect/Effect").Effect<{
226
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
227
+ readonly status: "valid" | "drifted" | "invalid";
228
+ readonly createdAt: Date;
229
+ readonly learningId: number;
230
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
231
+ readonly anchorValue: string;
232
+ readonly filePath: string;
233
+ readonly symbolFqname: string | null;
234
+ readonly lineStart: number | null;
235
+ readonly lineEnd: number | null;
236
+ readonly contentHash: string | null;
237
+ readonly contentPreview: string | null;
238
+ readonly pinned: boolean;
239
+ readonly verifiedAt: Date | null;
240
+ }, import("../../errors.js").DatabaseError | import("../../errors.js").AnchorNotFoundError, never>;
241
+ findDrifted: () => import("effect/Effect").Effect<readonly {
242
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
243
+ readonly status: "valid" | "drifted" | "invalid";
244
+ readonly createdAt: Date;
245
+ readonly learningId: number;
246
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
247
+ readonly anchorValue: string;
248
+ readonly filePath: string;
249
+ readonly symbolFqname: string | null;
250
+ readonly lineStart: number | null;
251
+ readonly lineEnd: number | null;
252
+ readonly contentHash: string | null;
253
+ readonly contentPreview: string | null;
254
+ readonly pinned: boolean;
255
+ readonly verifiedAt: Date | null;
256
+ }[], import("../../errors.js").DatabaseError, never>;
257
+ findInvalid: () => import("effect/Effect").Effect<readonly {
258
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
259
+ readonly status: "valid" | "drifted" | "invalid";
260
+ readonly createdAt: Date;
261
+ readonly learningId: number;
262
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
263
+ readonly anchorValue: string;
264
+ readonly filePath: string;
265
+ readonly symbolFqname: string | null;
266
+ readonly lineStart: number | null;
267
+ readonly lineEnd: number | null;
268
+ readonly contentHash: string | null;
269
+ readonly contentPreview: string | null;
270
+ readonly pinned: boolean;
271
+ readonly verifiedAt: Date | null;
272
+ }[], import("../../errors.js").DatabaseError, never>;
273
+ prune: (olderThanDays: number) => import("effect/Effect").Effect<{
274
+ deleted: number;
275
+ }, import("../../errors.js").DatabaseError, never>;
276
+ getStatus: () => import("effect/Effect").Effect<{
277
+ total: number;
278
+ valid: number;
279
+ drifted: number;
280
+ invalid: number;
281
+ pinned: number;
282
+ recentInvalidations: {
283
+ readonly id: number;
284
+ readonly reason: string;
285
+ readonly anchorId: number;
286
+ readonly oldStatus: "valid" | "drifted" | "invalid";
287
+ readonly newStatus: "valid" | "drifted" | "invalid";
288
+ readonly detectedBy: "agent" | "manual" | "periodic" | "lazy" | "git_hook";
289
+ readonly oldContentHash: string | null;
290
+ readonly newContentHash: string | null;
291
+ readonly similarityScore: number | null;
292
+ readonly invalidatedAt: Date;
293
+ }[];
294
+ }, import("../../errors.js").DatabaseError, never>;
295
+ };
296
+ //# sourceMappingURL=anchor-service-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-service-ops.d.ts","sourceRoot":"","sources":["../../../src/services/anchor/anchor-service-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAKjE,eAAO,MAAM,sBAAsB,GAAI,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI5D,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { createAnchorCoreOps } from "./anchor-service-core-ops.js";
2
+ import { createAnchorStateOps } from "./anchor-service-state-ops.js";
3
+ import { createAnchorVerificationOps } from "./anchor-service-verification-ops.js";
4
+ export const createAnchorServiceOps = (deps) => ({
5
+ ...createAnchorCoreOps(deps),
6
+ ...createAnchorStateOps(deps),
7
+ ...createAnchorVerificationOps(deps)
8
+ });
9
+ //# sourceMappingURL=anchor-service-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-service-ops.js","sourceRoot":"","sources":["../../../src/services/anchor/anchor-service-ops.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAA;AAElF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAuB,EAAE,EAAE,CAAC,CAAC;IAClE,GAAG,mBAAmB,CAAC,IAAI,CAAC;IAC5B,GAAG,oBAAoB,CAAC,IAAI,CAAC;IAC7B,GAAG,2BAA2B,CAAC,IAAI,CAAC;CACrC,CAAC,CAAA"}
@@ -0,0 +1,116 @@
1
+ import { Effect } from "effect";
2
+ import { AnchorNotFoundError } from "../../errors.js";
3
+ import type { AnchorStatus, InvalidationSource } from "@jamesaphoenix/tx-types";
4
+ import type { AnchorServiceDeps } from "./anchor-service-deps.js";
5
+ export declare const createAnchorStateOps: ({ anchorRepo }: AnchorServiceDeps) => {
6
+ updateAnchorStatus: (anchorId: number, status: AnchorStatus, reason?: string, detectedBy?: InvalidationSource) => Effect.Effect<{
7
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
8
+ readonly status: "valid" | "drifted" | "invalid";
9
+ readonly createdAt: Date;
10
+ readonly learningId: number;
11
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
12
+ readonly anchorValue: string;
13
+ readonly filePath: string;
14
+ readonly symbolFqname: string | null;
15
+ readonly lineStart: number | null;
16
+ readonly lineEnd: number | null;
17
+ readonly contentHash: string | null;
18
+ readonly contentPreview: string | null;
19
+ readonly pinned: boolean;
20
+ readonly verifiedAt: Date | null;
21
+ }, import("../../errors.js").ValidationError | import("../../errors.js").DatabaseError | AnchorNotFoundError, never>;
22
+ remove: (id: number, reason?: string) => Effect.Effect<{
23
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
24
+ readonly status: "valid" | "drifted" | "invalid";
25
+ readonly createdAt: Date;
26
+ readonly learningId: number;
27
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
28
+ readonly anchorValue: string;
29
+ readonly filePath: string;
30
+ readonly symbolFqname: string | null;
31
+ readonly lineStart: number | null;
32
+ readonly lineEnd: number | null;
33
+ readonly contentHash: string | null;
34
+ readonly contentPreview: string | null;
35
+ readonly pinned: boolean;
36
+ readonly verifiedAt: Date | null;
37
+ }, import("../../errors.js").DatabaseError | AnchorNotFoundError, never>;
38
+ hardDelete: (id: number) => Effect.Effect<undefined, import("../../errors.js").DatabaseError | AnchorNotFoundError, never>;
39
+ pin: (anchorId: number) => Effect.Effect<{
40
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
41
+ readonly status: "valid" | "drifted" | "invalid";
42
+ readonly createdAt: Date;
43
+ readonly learningId: number;
44
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
45
+ readonly anchorValue: string;
46
+ readonly filePath: string;
47
+ readonly symbolFqname: string | null;
48
+ readonly lineStart: number | null;
49
+ readonly lineEnd: number | null;
50
+ readonly contentHash: string | null;
51
+ readonly contentPreview: string | null;
52
+ readonly pinned: boolean;
53
+ readonly verifiedAt: Date | null;
54
+ }, import("../../errors.js").DatabaseError | AnchorNotFoundError, never>;
55
+ unpin: (anchorId: number) => Effect.Effect<{
56
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
57
+ readonly status: "valid" | "drifted" | "invalid";
58
+ readonly createdAt: Date;
59
+ readonly learningId: number;
60
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
61
+ readonly anchorValue: string;
62
+ readonly filePath: string;
63
+ readonly symbolFqname: string | null;
64
+ readonly lineStart: number | null;
65
+ readonly lineEnd: number | null;
66
+ readonly contentHash: string | null;
67
+ readonly contentPreview: string | null;
68
+ readonly pinned: boolean;
69
+ readonly verifiedAt: Date | null;
70
+ }, import("../../errors.js").DatabaseError | AnchorNotFoundError, never>;
71
+ invalidate: (anchorId: number, reason: string, detectedBy?: InvalidationSource) => Effect.Effect<{
72
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
73
+ readonly status: "valid" | "drifted" | "invalid";
74
+ readonly createdAt: Date;
75
+ readonly learningId: number;
76
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
77
+ readonly anchorValue: string;
78
+ readonly filePath: string;
79
+ readonly symbolFqname: string | null;
80
+ readonly lineStart: number | null;
81
+ readonly lineEnd: number | null;
82
+ readonly contentHash: string | null;
83
+ readonly contentPreview: string | null;
84
+ readonly pinned: boolean;
85
+ readonly verifiedAt: Date | null;
86
+ }, import("../../errors.js").DatabaseError | AnchorNotFoundError, never>;
87
+ restore: (anchorId: number) => Effect.Effect<{
88
+ readonly id: number & import("effect/Brand").Brand<"AnchorId">;
89
+ readonly status: "valid" | "drifted" | "invalid";
90
+ readonly createdAt: Date;
91
+ readonly learningId: number;
92
+ readonly anchorType: "symbol" | "glob" | "hash" | "line_range";
93
+ readonly anchorValue: string;
94
+ readonly filePath: string;
95
+ readonly symbolFqname: string | null;
96
+ readonly lineStart: number | null;
97
+ readonly lineEnd: number | null;
98
+ readonly contentHash: string | null;
99
+ readonly contentPreview: string | null;
100
+ readonly pinned: boolean;
101
+ readonly verifiedAt: Date | null;
102
+ }, import("../../errors.js").DatabaseError | AnchorNotFoundError, never>;
103
+ logStatusChange: (anchorId: number, oldStatus: AnchorStatus, newStatus: AnchorStatus, reason: string, detectedBy?: InvalidationSource, oldHash?: string | null, newHash?: string | null, similarity?: number | null) => Effect.Effect<{
104
+ readonly id: number;
105
+ readonly reason: string;
106
+ readonly anchorId: number;
107
+ readonly oldStatus: "valid" | "drifted" | "invalid";
108
+ readonly newStatus: "valid" | "drifted" | "invalid";
109
+ readonly detectedBy: "agent" | "manual" | "periodic" | "lazy" | "git_hook";
110
+ readonly oldContentHash: string | null;
111
+ readonly newContentHash: string | null;
112
+ readonly similarityScore: number | null;
113
+ readonly invalidatedAt: Date;
114
+ }, import("../../errors.js").DatabaseError | AnchorNotFoundError, never>;
115
+ };
116
+ //# sourceMappingURL=anchor-service-state-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-service-state-ops.d.ts","sourceRoot":"","sources":["../../../src/services/anchor/anchor-service-state-ops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,eAAO,MAAM,oBAAoB,GAAI,gBAAgB,iBAAiB;mCACrC,MAAM,UAAU,YAAY,WAAW,MAAM,eAAc,kBAAkB;;;;;;;;;;;;;;;;iBA+B/F,MAAM;;;;;;;;;;;;;;;;qBA2BF,MAAM;oBASP,MAAM;;;;;;;;;;;;;;;;sBAgBJ,MAAM;;;;;;;;;;;;;;;;2BAgBD,MAAM,UAAU,MAAM,eAAc,kBAAkB;;;;;;;;;;;;;;;;wBA2BzD,MAAM;;;;;;;;;;;;;;;;gCAwCd,MAAM,aACL,YAAY,aACZ,YAAY,UACf,MAAM,eACF,kBAAkB,YACpB,MAAM,GAAG,IAAI,YACb,MAAM,GAAG,IAAI,eACV,MAAM,GAAG,IAAI;;;;;;;;;;;;CAmB5B,CAAA"}
@@ -0,0 +1,150 @@
1
+ import { Effect } from "effect";
2
+ import { AnchorNotFoundError } from "../../errors.js";
3
+ import { validateStatus } from "./anchor-service-validation.js";
4
+ export const createAnchorStateOps = ({ anchorRepo }) => ({
5
+ updateAnchorStatus: (anchorId, status, reason, detectedBy = "manual") => Effect.gen(function* () {
6
+ yield* validateStatus(status);
7
+ const anchor = yield* anchorRepo.findById(anchorId);
8
+ if (!anchor) {
9
+ return yield* Effect.fail(new AnchorNotFoundError({ id: anchorId }));
10
+ }
11
+ const oldStatus = anchor.status;
12
+ yield* anchorRepo.updateStatus(anchorId, status);
13
+ if (oldStatus !== status) {
14
+ yield* anchorRepo.logInvalidation({
15
+ anchorId,
16
+ oldStatus,
17
+ newStatus: status,
18
+ reason: reason ?? `Status changed from ${oldStatus} to ${status}`,
19
+ detectedBy,
20
+ oldContentHash: anchor.contentHash
21
+ });
22
+ }
23
+ const updated = yield* anchorRepo.findById(anchorId);
24
+ if (!updated) {
25
+ return yield* Effect.fail(new AnchorNotFoundError({ id: anchorId }));
26
+ }
27
+ return updated;
28
+ }),
29
+ remove: (id, reason = "Soft deleted") => Effect.gen(function* () {
30
+ const anchor = yield* anchorRepo.findById(id);
31
+ if (!anchor) {
32
+ return yield* Effect.fail(new AnchorNotFoundError({ id }));
33
+ }
34
+ const oldStatus = anchor.status;
35
+ yield* anchorRepo.updateStatus(id, "invalid");
36
+ yield* anchorRepo.logInvalidation({
37
+ anchorId: id,
38
+ oldStatus,
39
+ newStatus: "invalid",
40
+ reason,
41
+ detectedBy: "manual",
42
+ oldContentHash: anchor.contentHash
43
+ });
44
+ const updated = yield* anchorRepo.findById(id);
45
+ if (!updated) {
46
+ return yield* Effect.fail(new AnchorNotFoundError({ id }));
47
+ }
48
+ return updated;
49
+ }),
50
+ hardDelete: (id) => Effect.gen(function* () {
51
+ const anchor = yield* anchorRepo.findById(id);
52
+ if (!anchor) {
53
+ return yield* Effect.fail(new AnchorNotFoundError({ id }));
54
+ }
55
+ yield* anchorRepo.delete(id);
56
+ }),
57
+ pin: (anchorId) => Effect.gen(function* () {
58
+ const anchor = yield* anchorRepo.findById(anchorId);
59
+ if (!anchor) {
60
+ return yield* Effect.fail(new AnchorNotFoundError({ id: anchorId }));
61
+ }
62
+ yield* anchorRepo.setPinned(anchorId, true);
63
+ const updated = yield* anchorRepo.findById(anchorId);
64
+ if (!updated) {
65
+ return yield* Effect.fail(new AnchorNotFoundError({ id: anchorId }));
66
+ }
67
+ return updated;
68
+ }),
69
+ unpin: (anchorId) => Effect.gen(function* () {
70
+ const anchor = yield* anchorRepo.findById(anchorId);
71
+ if (!anchor) {
72
+ return yield* Effect.fail(new AnchorNotFoundError({ id: anchorId }));
73
+ }
74
+ yield* anchorRepo.setPinned(anchorId, false);
75
+ const updated = yield* anchorRepo.findById(anchorId);
76
+ if (!updated) {
77
+ return yield* Effect.fail(new AnchorNotFoundError({ id: anchorId }));
78
+ }
79
+ return updated;
80
+ }),
81
+ invalidate: (anchorId, reason, detectedBy = "manual") => Effect.gen(function* () {
82
+ const anchor = yield* anchorRepo.findById(anchorId);
83
+ if (!anchor) {
84
+ return yield* Effect.fail(new AnchorNotFoundError({ id: anchorId }));
85
+ }
86
+ const oldStatus = anchor.status;
87
+ yield* anchorRepo.updateStatus(anchorId, "invalid");
88
+ yield* anchorRepo.logInvalidation({
89
+ anchorId,
90
+ oldStatus,
91
+ newStatus: "invalid",
92
+ reason,
93
+ detectedBy,
94
+ oldContentHash: anchor.contentHash
95
+ });
96
+ const updated = yield* anchorRepo.findById(anchorId);
97
+ if (!updated) {
98
+ return yield* Effect.fail(new AnchorNotFoundError({ id: anchorId }));
99
+ }
100
+ return updated;
101
+ }),
102
+ restore: (anchorId) => Effect.gen(function* () {
103
+ const anchor = yield* anchorRepo.findById(anchorId);
104
+ if (!anchor) {
105
+ return yield* Effect.fail(new AnchorNotFoundError({ id: anchorId }));
106
+ }
107
+ const currentStatus = anchor.status;
108
+ const logs = yield* anchorRepo.getInvalidationLogs(anchorId);
109
+ const invalidationEntry = logs.find(log => log.newStatus === "invalid");
110
+ const restoreToStatus = invalidationEntry?.oldStatus ?? "valid";
111
+ yield* anchorRepo.updateStatus(anchorId, restoreToStatus);
112
+ yield* anchorRepo.updateVerifiedAt(anchorId);
113
+ if (invalidationEntry?.oldContentHash) {
114
+ yield* anchorRepo.update(anchorId, { contentHash: invalidationEntry.oldContentHash });
115
+ }
116
+ yield* anchorRepo.logInvalidation({
117
+ anchorId,
118
+ oldStatus: currentStatus,
119
+ newStatus: restoreToStatus,
120
+ reason: invalidationEntry
121
+ ? `Restored to ${restoreToStatus} (from invalidation log)`
122
+ : "Manual restoration",
123
+ detectedBy: "manual",
124
+ oldContentHash: anchor.contentHash,
125
+ newContentHash: invalidationEntry?.oldContentHash ?? null
126
+ });
127
+ const updated = yield* anchorRepo.findById(anchorId);
128
+ if (!updated) {
129
+ return yield* Effect.fail(new AnchorNotFoundError({ id: anchorId }));
130
+ }
131
+ return updated;
132
+ }),
133
+ logStatusChange: (anchorId, oldStatus, newStatus, reason, detectedBy = "manual", oldHash, newHash, similarity) => Effect.gen(function* () {
134
+ const anchor = yield* anchorRepo.findById(anchorId);
135
+ if (!anchor) {
136
+ return yield* Effect.fail(new AnchorNotFoundError({ id: anchorId }));
137
+ }
138
+ return yield* anchorRepo.logInvalidation({
139
+ anchorId,
140
+ oldStatus,
141
+ newStatus,
142
+ reason,
143
+ detectedBy,
144
+ oldContentHash: oldHash ?? null,
145
+ newContentHash: newHash ?? null,
146
+ similarityScore: similarity ?? null
147
+ });
148
+ })
149
+ });
150
+ //# sourceMappingURL=anchor-service-state-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-service-state-ops.js","sourceRoot":"","sources":["../../../src/services/anchor/anchor-service-state-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Effect } from "effect";
2
+ import { ValidationError } from "../../errors.js";
3
+ import type { AnchorStatus, CreateAnchorInput } from "@jamesaphoenix/tx-types";
4
+ import type { TypedAnchorInput } from "../anchor-service.js";
5
+ export declare const validateAnchorInput: (input: TypedAnchorInput) => Effect.Effect<CreateAnchorInput, ValidationError>;
6
+ export declare const validateStatus: (status: AnchorStatus) => Effect.Effect<AnchorStatus, ValidationError>;
7
+ //# sourceMappingURL=anchor-service-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-service-validation.d.ts","sourceRoot":"","sources":["../../../src/services/anchor/anchor-service-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAc,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAI5D,eAAO,MAAM,mBAAmB,GAAI,OAAO,gBAAgB,KAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,eAAe,CA4G1G,CAAA;AAIJ,eAAO,MAAM,cAAc,GAAI,QAAQ,YAAY,KAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAQ7F,CAAA"}