@jamesaphoenix/tx-core 0.8.1 → 0.9.0

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 +3 -2
  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,6 +6,7 @@ import { Schema } from "effect";
6
6
  import { RUN_STATUSES } from "@jamesaphoenix/tx-types";
7
7
  import { InvalidStatusError } from "../errors.js";
8
8
  import { parseDate } from "./parse-date.js";
9
+ import { coerceDbResult } from "../utils/db-result.js";
9
10
  // Re-export constants from @tx/types for convenience
10
11
  export { RUN_STATUSES };
11
12
  /**
@@ -20,13 +21,13 @@ export const generateRunId = () => {
20
21
  .update(`${Date.now()}-${Math.random()}`)
21
22
  .digest("hex")
22
23
  .substring(0, 8);
23
- return `run-${hash}`;
24
+ return coerceDbResult(`run-${hash}`);
24
25
  };
25
26
  /**
26
27
  * Check if a string is a valid RunStatus.
27
28
  */
28
29
  export const isValidRunStatus = (s) => {
29
- return RUN_STATUSES.includes(s);
30
+ return (coerceDbResult(RUN_STATUSES)).includes(s);
30
31
  };
31
32
  /**
32
33
  * Safely parse and validate metadata JSON string.
@@ -55,7 +56,7 @@ export const rowToRun = (row) => {
55
56
  });
56
57
  }
57
58
  return {
58
- id: row.id,
59
+ id: coerceDbResult(row.id),
59
60
  taskId: row.task_id,
60
61
  agent: row.agent,
61
62
  startedAt: parseDate(row.started_at, "started_at", row.id),
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/mappers/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/mappers/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Spec traceability mappers - convert DB rows to domain objects.
3
+ */
4
+ import { SPEC_DISCOVERY_METHODS, SPEC_SCOPE_TYPES, type SpecDiscoveryMethod, type SpecScopeType, type SpecTest, type SpecTestRun, type SpecSignoff, type SpecTestRow, type SpecTestRunRow, type SpecSignoffRow } from "@jamesaphoenix/tx-types";
5
+ export { SPEC_DISCOVERY_METHODS, SPEC_SCOPE_TYPES };
6
+ export declare const isValidSpecDiscoveryMethod: (s: string) => s is SpecDiscoveryMethod;
7
+ export declare const isValidSpecScopeType: (s: string) => s is SpecScopeType;
8
+ export declare const rowToSpecTest: (row: SpecTestRow) => SpecTest;
9
+ export declare const rowToSpecTestRun: (row: SpecTestRunRow) => SpecTestRun;
10
+ export declare const rowToSpecSignoff: (row: SpecSignoffRow) => SpecSignoff;
11
+ //# sourceMappingURL=spec-trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-trace.d.ts","sourceRoot":"","sources":["../../src/mappers/spec-trace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAA;AAIhC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAA;AAKnD,eAAO,MAAM,0BAA0B,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,mBAC9B,CAAA;AAE9B,eAAO,MAAM,oBAAoB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,aAC5B,CAAA;AAE1B,eAAO,MAAM,aAAa,GAAI,KAAK,WAAW,KAAG,QAqBhD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,KAAK,cAAc,KAAG,WAOrD,CAAA;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,cAAc,KAAG,WAkBtD,CAAA"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Spec traceability mappers - convert DB rows to domain objects.
3
+ */
4
+ import { SPEC_DISCOVERY_METHODS, SPEC_SCOPE_TYPES, } from "@jamesaphoenix/tx-types";
5
+ import { InvalidStatusError } from "../errors.js";
6
+ import { parseDate } from "./parse-date.js";
7
+ export { SPEC_DISCOVERY_METHODS, SPEC_SCOPE_TYPES };
8
+ const discoveryStrings = SPEC_DISCOVERY_METHODS;
9
+ const scopeStrings = SPEC_SCOPE_TYPES;
10
+ export const isValidSpecDiscoveryMethod = (s) => discoveryStrings.includes(s);
11
+ export const isValidSpecScopeType = (s) => scopeStrings.includes(s);
12
+ export const rowToSpecTest = (row) => {
13
+ if (!isValidSpecDiscoveryMethod(row.discovery)) {
14
+ throw new InvalidStatusError({
15
+ entity: "spec_test.discovery",
16
+ status: row.discovery,
17
+ validStatuses: [...SPEC_DISCOVERY_METHODS],
18
+ rowId: row.id,
19
+ });
20
+ }
21
+ return {
22
+ id: row.id,
23
+ invariantId: row.invariant_id,
24
+ testId: row.test_id,
25
+ testFile: row.test_file,
26
+ testName: row.test_name,
27
+ framework: row.framework,
28
+ discovery: row.discovery,
29
+ createdAt: parseDate(row.created_at, "created_at", row.id),
30
+ updatedAt: parseDate(row.updated_at, "updated_at", row.id),
31
+ };
32
+ };
33
+ export const rowToSpecTestRun = (row) => ({
34
+ id: row.id,
35
+ specTestId: row.spec_test_id,
36
+ passed: row.passed === 1,
37
+ durationMs: row.duration_ms,
38
+ details: row.details,
39
+ runAt: parseDate(row.run_at, "run_at", row.id),
40
+ });
41
+ export const rowToSpecSignoff = (row) => {
42
+ if (!isValidSpecScopeType(row.scope_type)) {
43
+ throw new InvalidStatusError({
44
+ entity: "spec_signoff.scope_type",
45
+ status: row.scope_type,
46
+ validStatuses: [...SPEC_SCOPE_TYPES],
47
+ rowId: row.id,
48
+ });
49
+ }
50
+ return {
51
+ id: row.id,
52
+ scopeType: row.scope_type,
53
+ scopeValue: row.scope_value,
54
+ signedOffBy: row.signed_off_by,
55
+ notes: row.notes,
56
+ signedOffAt: parseDate(row.signed_off_at, "signed_off_at", row.id),
57
+ };
58
+ };
59
+ //# sourceMappingURL=spec-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-trace.js","sourceRoot":"","sources":["../../src/mappers/spec-trace.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/mappers/task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,IAAI,EAEJ,UAAU,EACV,OAAO,EACP,cAAc,EACd,aAAa,EACd,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAgB,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAsDrE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,CAAA;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,KAAG,IAyBxC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,aAAa,KAAG,cAInD,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,UAM9C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,UAAU,EAAE,IAAI,UAAU,KAAG,OAYpE,CAAA"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/mappers/task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,IAAI,EAEJ,UAAU,EACV,OAAO,EACP,cAAc,EACd,aAAa,EACd,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAgB,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAuDrE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,CAAA;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,KAAG,IAyBxC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,aAAa,KAAG,cAInD,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,UAM9C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,UAAU,EAAE,IAAI,UAAU,KAAG,OAYpE,CAAA"}
@@ -24,10 +24,10 @@ const parseMetadata = (metadataJson) => {
24
24
  parsed = JSON.parse(metadataJson);
25
25
  }
26
26
  catch (error) {
27
- if (!(error instanceof SyntaxError))
28
- throw error;
29
- console.warn(`[tx] Corrupted metadata JSON (SyntaxError): ${error.message}. Raw value preserved for recovery.`);
30
- return { _corruptedRaw: metadataJson, _corruptionError: `SyntaxError: ${error.message}` };
27
+ const message = error instanceof Error ? error.message : String(error);
28
+ const reasonTag = error instanceof SyntaxError ? "SyntaxError" : "ParseError";
29
+ console.warn(`[tx] Corrupted metadata JSON (${reasonTag}): ${message}. Raw value preserved for recovery.`);
30
+ return { _corruptedRaw: metadataJson, _corruptionError: `${reasonTag}: ${message}` };
31
31
  }
32
32
  try {
33
33
  return Schema.decodeUnknownSync(MetadataSchema)(parsed);
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/mappers/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/mappers/task.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/mappers/worker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEhE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,2DAA4D,CAAA;AAExF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,YAEpD,CAAA;AAiCD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,SAAS,KAAG,MAqB5C,CAAA"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/mappers/worker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGhE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,2DAA4D,CAAA;AAExF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,YAEpD,CAAA;AAiCD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,SAAS,KAAG,MAqB5C,CAAA"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { InvalidStatusError } from "../errors.js";
5
5
  import { parseDate } from "./parse-date.js";
6
+ import { coerceDbResult } from "../utils/db-result.js";
6
7
  /**
7
8
  * Valid worker statuses.
8
9
  */
@@ -11,7 +12,7 @@ export const WORKER_STATUSES = ["starting", "idle", "busy", "stopping", "dead"];
11
12
  * Check if a string is a valid WorkerStatus.
12
13
  */
13
14
  export const isValidWorkerStatus = (s) => {
14
- return WORKER_STATUSES.includes(s);
15
+ return (coerceDbResult(WORKER_STATUSES)).includes(s);
15
16
  };
16
17
  /**
17
18
  * Safely parse a JSON array of strings, returning empty array on failure.
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/mappers/worker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAmB3C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAU,CAAA;AAExF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAS,EAAqB,EAAE;IAClE,OAAQ,eAAqC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,IAA+B,EAAY,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;QAChD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,IAA+B,EAA2B,EAAE;IACrF,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;QAChD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5E,MAAM,MAAM,GAA4B,EAAE,CAAA;YAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YACrB,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAc,EAAU,EAAE;IACpD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,kBAAkB,CAAC;YAC3B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,aAAa,EAAE,eAAe;YAC9B,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAA;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC;QACnE,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,CAAC;QAC9E,aAAa,EAAE,GAAG,CAAC,eAAe;QAClC,YAAY,EAAE,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC;QACrD,QAAQ,EAAE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;KAC1C,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/mappers/worker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations-embedded.d.ts","sourceRoot":"","sources":["../src/migrations-embedded.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAEhE,eAAO,MAAM,mBAAmB,EAAE,SAAS,SAAS,EAiKnD,CAAA"}
1
+ {"version":3,"file":"migrations-embedded.d.ts","sourceRoot":"","sources":["../src/migrations-embedded.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAEhE,eAAO,MAAM,mBAAmB,EAAE,SAAS,SAAS,EAgLnD,CAAA"}
@@ -158,6 +158,21 @@ export const EMBEDDED_MIGRATIONS = [
158
158
  "version": 32,
159
159
  "description": "verify cmd",
160
160
  "sql": "-- Version: 032\n-- Migration: Verification commands — attach machine-checkable done criteria to tasks\n\nALTER TABLE tasks ADD COLUMN verify_cmd TEXT;\nALTER TABLE tasks ADD COLUMN verify_schema TEXT;\n\n-- Record this migration\nINSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (32, datetime('now'));\n"
161
+ },
162
+ {
163
+ "version": 33,
164
+ "description": "sync events",
165
+ "sql": "-- Version: 033\n-- Migration: Event-sourced sync foundation\n\nCREATE TABLE IF NOT EXISTS sync_events (\n event_id TEXT PRIMARY KEY,\n stream_id TEXT NOT NULL,\n seq INTEGER NOT NULL,\n ts TEXT NOT NULL,\n type TEXT NOT NULL,\n entity_id TEXT NOT NULL,\n v INTEGER NOT NULL DEFAULT 2,\n payload TEXT NOT NULL,\n imported_at TEXT NOT NULL DEFAULT (datetime('now')),\n UNIQUE(stream_id, seq)\n);\n\nCREATE TABLE IF NOT EXISTS sync_streams (\n stream_id TEXT PRIMARY KEY,\n name TEXT,\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n last_seq INTEGER NOT NULL DEFAULT 0,\n last_event_at TEXT\n);\n\nCREATE TABLE IF NOT EXISTS sync_watermark (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_sync_events_ts_event ON sync_events(ts, event_id);\nCREATE INDEX IF NOT EXISTS idx_sync_events_entity ON sync_events(entity_id);\n\nINSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (33, datetime('now'));\n"
166
+ },
167
+ {
168
+ "version": 34,
169
+ "description": "spec test traceability",
170
+ "sql": "-- Version: 034\n-- Migration: Spec-to-test traceability primitives\n\n-- Many-to-many mapping between invariants and discovered tests\nCREATE TABLE IF NOT EXISTS spec_tests (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n invariant_id TEXT NOT NULL REFERENCES invariants(id) ON DELETE CASCADE,\n test_id TEXT NOT NULL,\n test_file TEXT NOT NULL,\n test_name TEXT,\n framework TEXT,\n discovery TEXT NOT NULL CHECK (discovery IN ('tag', 'comment', 'manifest', 'manual')),\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n updated_at TEXT NOT NULL DEFAULT (datetime('now')),\n UNIQUE(invariant_id, test_id)\n);\n\nCREATE INDEX IF NOT EXISTS idx_spec_tests_invariant ON spec_tests(invariant_id);\nCREATE INDEX IF NOT EXISTS idx_spec_tests_test ON spec_tests(test_id);\n\n-- Run history for mapped spec tests\nCREATE TABLE IF NOT EXISTS spec_test_runs (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n spec_test_id INTEGER NOT NULL REFERENCES spec_tests(id) ON DELETE CASCADE,\n passed INTEGER NOT NULL CHECK (passed IN (0, 1)),\n duration_ms INTEGER,\n details TEXT,\n run_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_spec_test_runs_spec_test ON spec_test_runs(spec_test_id);\n\n-- Human sign-off for HARDEN -> COMPLETE transitions\nCREATE TABLE IF NOT EXISTS spec_signoffs (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n scope_type TEXT NOT NULL CHECK (scope_type IN ('doc', 'subsystem', 'global')),\n scope_value TEXT,\n signed_off_by TEXT NOT NULL,\n notes TEXT,\n signed_off_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\nCREATE UNIQUE INDEX IF NOT EXISTS idx_spec_signoffs_scope_nonnull\n ON spec_signoffs(scope_type, scope_value)\n WHERE scope_value IS NOT NULL;\n\nCREATE UNIQUE INDEX IF NOT EXISTS idx_spec_signoffs_scope_null\n ON spec_signoffs(scope_type)\n WHERE scope_value IS NULL;\n\nINSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (34, datetime('now'));\n"
171
+ },
172
+ {
173
+ "version": 35,
174
+ "description": "anchor schema repair",
175
+ "sql": "-- Version: 035\n-- Migration: Repair missing anchor/invalidation tables for drifted databases\n--\n-- Some long-lived local databases can report schema_version at head while missing\n-- anchor tables (for example after manual table drops or partial file restores).\n-- This migration is idempotent and safely recreates those tables/indexes when absent.\n\nCREATE TABLE IF NOT EXISTS learning_anchors (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n learning_id INTEGER NOT NULL REFERENCES learnings(id) ON DELETE CASCADE,\n anchor_type TEXT NOT NULL CHECK (anchor_type IN ('glob', 'hash', 'symbol', 'line_range')),\n anchor_value TEXT NOT NULL,\n file_path TEXT NOT NULL,\n symbol_fqname TEXT,\n line_start INTEGER,\n line_end INTEGER,\n content_hash TEXT,\n status TEXT NOT NULL DEFAULT 'valid' CHECK (status IN ('valid', 'invalid', 'drifted')),\n verified_at TEXT,\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n pinned INTEGER NOT NULL DEFAULT 0,\n content_preview TEXT\n);\n\nCREATE INDEX IF NOT EXISTS idx_learning_anchors_learning_id ON learning_anchors(learning_id);\nCREATE INDEX IF NOT EXISTS idx_learning_anchors_file_path ON learning_anchors(file_path);\nCREATE INDEX IF NOT EXISTS idx_learning_anchors_status ON learning_anchors(status);\nCREATE INDEX IF NOT EXISTS idx_learning_anchors_anchor_type ON learning_anchors(anchor_type);\nCREATE INDEX IF NOT EXISTS idx_learning_anchors_symbol ON learning_anchors(symbol_fqname) WHERE symbol_fqname IS NOT NULL;\nCREATE INDEX IF NOT EXISTS idx_learning_anchors_pinned ON learning_anchors(pinned) WHERE pinned = 1;\nCREATE INDEX IF NOT EXISTS idx_learning_anchors_has_preview\n ON learning_anchors(content_hash) WHERE content_preview IS NOT NULL;\n\nCREATE TABLE IF NOT EXISTS learning_edges (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n edge_type TEXT NOT NULL CHECK (edge_type IN (\n 'ANCHORED_TO',\n 'DERIVED_FROM',\n 'IMPORTS',\n 'CO_CHANGES_WITH',\n 'SIMILAR_TO',\n 'LINKS_TO',\n 'USED_IN_RUN',\n 'INVALIDATED_BY'\n )),\n source_type TEXT NOT NULL CHECK (source_type IN ('learning', 'file', 'task', 'run')),\n source_id TEXT NOT NULL,\n target_type TEXT NOT NULL CHECK (target_type IN ('learning', 'file', 'task', 'run')),\n target_id TEXT NOT NULL,\n weight REAL NOT NULL DEFAULT 1.0 CHECK (weight >= 0.0 AND weight <= 1.0),\n metadata TEXT NOT NULL DEFAULT '{}',\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n invalidated_at TEXT\n);\n\nCREATE INDEX IF NOT EXISTS idx_learning_edges_source ON learning_edges(source_type, source_id);\nCREATE INDEX IF NOT EXISTS idx_learning_edges_target ON learning_edges(target_type, target_id);\nCREATE INDEX IF NOT EXISTS idx_learning_edges_type ON learning_edges(edge_type);\nCREATE INDEX IF NOT EXISTS idx_learning_edges_active ON learning_edges(source_type, source_id) WHERE invalidated_at IS NULL;\nCREATE INDEX IF NOT EXISTS idx_learning_edges_source_type ON learning_edges(source_type, source_id, edge_type) WHERE invalidated_at IS NULL;\nCREATE INDEX IF NOT EXISTS idx_learning_edges_target_type ON learning_edges(target_type, target_id, edge_type) WHERE invalidated_at IS NULL;\n\nCREATE TABLE IF NOT EXISTS invalidation_log (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n anchor_id INTEGER NOT NULL,\n old_status TEXT NOT NULL,\n new_status TEXT NOT NULL,\n reason TEXT NOT NULL,\n detected_by TEXT NOT NULL CHECK (detected_by IN ('periodic', 'lazy', 'manual', 'agent', 'git_hook')),\n old_content_hash TEXT,\n new_content_hash TEXT,\n similarity_score REAL,\n invalidated_at TEXT NOT NULL DEFAULT (datetime('now')),\n FOREIGN KEY (anchor_id) REFERENCES learning_anchors(id) ON DELETE CASCADE\n);\n\nCREATE INDEX IF NOT EXISTS idx_invalidation_anchor ON invalidation_log(anchor_id);\nCREATE INDEX IF NOT EXISTS idx_invalidation_time ON invalidation_log(invalidated_at);\nCREATE INDEX IF NOT EXISTS idx_invalidation_status ON invalidation_log(new_status);\nCREATE INDEX IF NOT EXISTS idx_invalidation_detected_by ON invalidation_log(detected_by);\n\nINSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (35, datetime('now'));\n"
161
176
  }
162
177
  ];
163
178
  //# sourceMappingURL=migrations-embedded.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations-embedded.js","sourceRoot":"","sources":["../src/migrations-embedded.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations-embedded.js","sourceRoot":"","sources":["../src/migrations-embedded.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { SqliteClient } from "../db.js";
3
3
  import { DatabaseError } from "../errors.js";
4
4
  import type { Anchor, CreateAnchorInput, UpdateAnchorInput, AnchorStatus, InvalidationLog, InvalidationSource } from "@jamesaphoenix/tx-types";
5
5
  /** Input for logging an invalidation event */
6
- export interface LogInvalidationInput {
6
+ export type LogInvalidationInput = {
7
7
  readonly anchorId: number;
8
8
  readonly oldStatus: AnchorStatus;
9
9
  readonly newStatus: AnchorStatus;
@@ -12,7 +12,7 @@ export interface LogInvalidationInput {
12
12
  readonly oldContentHash?: string | null;
13
13
  readonly newContentHash?: string | null;
14
14
  readonly similarityScore?: number | null;
15
- }
15
+ };
16
16
  declare const AnchorRepository_base: Context.TagClass<AnchorRepository, "AnchorRepository", {
17
17
  readonly create: (input: CreateAnchorInput) => Effect.Effect<Anchor, DatabaseError>;
18
18
  readonly findById: (id: number) => Effect.Effect<Anchor | null, DatabaseError>;
@@ -1 +1 @@
1
- {"version":3,"file":"anchor-repo.d.ts","sourceRoot":"","sources":["../../src/repo/anchor-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anchor-repo.d.ts","sourceRoot":"","sources":["../../src/repo/anchor-repo.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { SqliteClient } from "../db.js";
3
3
  import { DatabaseError, EntityFetchError, UnexpectedRowCountError } from "../errors.js";
4
4
  import { rowToAnchor, rowToInvalidationLog } from "../mappers/anchor.js";
5
5
  import { DEFAULT_QUERY_LIMIT } from "../utils/sql.js";
6
+ import { coerceDbResult } from "../utils/db-result.js";
6
7
  export class AnchorRepository extends Context.Tag("AnchorRepository")() {
7
8
  }
8
9
  export const AnchorRepositoryLive = Layer.effect(AnchorRepository, Effect.gen(function* () {
@@ -21,12 +22,12 @@ export const AnchorRepositoryLive = Layer.effect(AnchorRepository, Effect.gen(fu
21
22
  actual: result.changes
22
23
  });
23
24
  }
24
- const row = db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(result.lastInsertRowid);
25
+ const row = coerceDbResult(db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(result.lastInsertRowid));
25
26
  // Verify the inserted row can be fetched
26
27
  if (!row) {
27
28
  throw new EntityFetchError({
28
29
  entity: "anchor",
29
- id: result.lastInsertRowid,
30
+ id: coerceDbResult(result.lastInsertRowid),
30
31
  operation: "insert"
31
32
  });
32
33
  }
@@ -36,21 +37,21 @@ export const AnchorRepositoryLive = Layer.effect(AnchorRepository, Effect.gen(fu
36
37
  }),
37
38
  findById: (id) => Effect.try({
38
39
  try: () => {
39
- const row = db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(id);
40
+ const row = coerceDbResult(db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(id));
40
41
  return row ? rowToAnchor(row) : null;
41
42
  },
42
43
  catch: (cause) => new DatabaseError({ cause })
43
44
  }),
44
45
  findByLearningId: (learningId) => Effect.try({
45
46
  try: () => {
46
- const rows = db.prepare("SELECT * FROM learning_anchors WHERE learning_id = ? ORDER BY created_at ASC").all(learningId);
47
+ const rows = coerceDbResult(db.prepare("SELECT * FROM learning_anchors WHERE learning_id = ? ORDER BY created_at ASC").all(learningId));
47
48
  return rows.map(rowToAnchor);
48
49
  },
49
50
  catch: (cause) => new DatabaseError({ cause })
50
51
  }),
51
52
  findByFilePath: (filePath) => Effect.try({
52
53
  try: () => {
53
- const rows = db.prepare("SELECT * FROM learning_anchors WHERE file_path = ? ORDER BY created_at ASC").all(filePath);
54
+ const rows = coerceDbResult(db.prepare("SELECT * FROM learning_anchors WHERE file_path = ? ORDER BY created_at ASC").all(filePath));
54
55
  return rows.map(rowToAnchor);
55
56
  },
56
57
  catch: (cause) => new DatabaseError({ cause })
@@ -96,7 +97,7 @@ export const AnchorRepositoryLive = Layer.effect(AnchorRepository, Effect.gen(fu
96
97
  values.push(input.verifiedAt ? input.verifiedAt.toISOString() : null);
97
98
  }
98
99
  if (updates.length === 0) {
99
- const row = db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(id);
100
+ const row = coerceDbResult(db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(id));
100
101
  return row ? rowToAnchor(row) : null;
101
102
  }
102
103
  values.push(id);
@@ -105,7 +106,7 @@ export const AnchorRepositoryLive = Layer.effect(AnchorRepository, Effect.gen(fu
105
106
  return null;
106
107
  }
107
108
  // Verify the updated row can be fetched
108
- const row = db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(id);
109
+ const row = coerceDbResult(db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(id));
109
110
  if (!row) {
110
111
  throw new EntityFetchError({
111
112
  entity: "anchor",
@@ -126,14 +127,14 @@ export const AnchorRepositoryLive = Layer.effect(AnchorRepository, Effect.gen(fu
126
127
  }),
127
128
  findDrifted: () => Effect.try({
128
129
  try: () => {
129
- const rows = db.prepare("SELECT * FROM learning_anchors WHERE status = 'drifted' ORDER BY created_at ASC").all();
130
+ const rows = coerceDbResult(db.prepare("SELECT * FROM learning_anchors WHERE status = 'drifted' ORDER BY created_at ASC").all());
130
131
  return rows.map(rowToAnchor);
131
132
  },
132
133
  catch: (cause) => new DatabaseError({ cause })
133
134
  }),
134
135
  findInvalid: () => Effect.try({
135
136
  try: () => {
136
- const rows = db.prepare("SELECT * FROM learning_anchors WHERE status = 'invalid' ORDER BY created_at ASC").all();
137
+ const rows = coerceDbResult(db.prepare("SELECT * FROM learning_anchors WHERE status = 'invalid' ORDER BY created_at ASC").all());
137
138
  return rows.map(rowToAnchor);
138
139
  },
139
140
  catch: (cause) => new DatabaseError({ cause })
@@ -154,14 +155,14 @@ export const AnchorRepositoryLive = Layer.effect(AnchorRepository, Effect.gen(fu
154
155
  }),
155
156
  findAll: (limit) => Effect.try({
156
157
  try: () => {
157
- const rows = db.prepare("SELECT * FROM learning_anchors ORDER BY created_at DESC LIMIT ?").all(limit ?? DEFAULT_QUERY_LIMIT);
158
+ const rows = coerceDbResult(db.prepare("SELECT * FROM learning_anchors ORDER BY created_at DESC LIMIT ?").all(limit ?? DEFAULT_QUERY_LIMIT));
158
159
  return rows.map(rowToAnchor);
159
160
  },
160
161
  catch: (cause) => new DatabaseError({ cause })
161
162
  }),
162
163
  findAllValid: (limit) => Effect.try({
163
164
  try: () => {
164
- const rows = db.prepare("SELECT * FROM learning_anchors WHERE status = 'valid' ORDER BY created_at DESC LIMIT ?").all(limit ?? DEFAULT_QUERY_LIMIT);
165
+ const rows = coerceDbResult(db.prepare("SELECT * FROM learning_anchors WHERE status = 'valid' ORDER BY created_at DESC LIMIT ?").all(limit ?? DEFAULT_QUERY_LIMIT));
165
166
  return rows.map(rowToAnchor);
166
167
  },
167
168
  catch: (cause) => new DatabaseError({ cause })
@@ -195,12 +196,12 @@ export const AnchorRepositoryLive = Layer.effect(AnchorRepository, Effect.gen(fu
195
196
  actual: result.changes
196
197
  });
197
198
  }
198
- const row = db.prepare("SELECT * FROM invalidation_log WHERE id = ?").get(result.lastInsertRowid);
199
+ const row = coerceDbResult(db.prepare("SELECT * FROM invalidation_log WHERE id = ?").get(result.lastInsertRowid));
199
200
  // Verify the inserted row can be fetched
200
201
  if (!row) {
201
202
  throw new EntityFetchError({
202
203
  entity: "invalidation_log",
203
- id: result.lastInsertRowid,
204
+ id: coerceDbResult(result.lastInsertRowid),
204
205
  operation: "insert"
205
206
  });
206
207
  }
@@ -211,17 +212,17 @@ export const AnchorRepositoryLive = Layer.effect(AnchorRepository, Effect.gen(fu
211
212
  getInvalidationLogs: (anchorId) => Effect.try({
212
213
  try: () => {
213
214
  if (anchorId !== undefined) {
214
- const rows = db.prepare("SELECT * FROM invalidation_log WHERE anchor_id = ? ORDER BY invalidated_at DESC, id DESC").all(anchorId);
215
+ const rows = coerceDbResult(db.prepare("SELECT * FROM invalidation_log WHERE anchor_id = ? ORDER BY invalidated_at DESC, id DESC").all(anchorId));
215
216
  return rows.map(rowToInvalidationLog);
216
217
  }
217
- const rows = db.prepare("SELECT * FROM invalidation_log ORDER BY invalidated_at DESC, id DESC LIMIT 100").all();
218
+ const rows = coerceDbResult(db.prepare("SELECT * FROM invalidation_log ORDER BY invalidated_at DESC, id DESC LIMIT 100").all());
218
219
  return rows.map(rowToInvalidationLog);
219
220
  },
220
221
  catch: (cause) => new DatabaseError({ cause })
221
222
  }),
222
223
  getStatusSummary: () => Effect.try({
223
224
  try: () => {
224
- const result = db.prepare(`
225
+ const result = coerceDbResult(db.prepare(`
225
226
  SELECT
226
227
  COUNT(*) as total,
227
228
  SUM(CASE WHEN status = 'valid' THEN 1 ELSE 0 END) as valid,
@@ -229,7 +230,7 @@ export const AnchorRepositoryLive = Layer.effect(AnchorRepository, Effect.gen(fu
229
230
  SUM(CASE WHEN status = 'invalid' THEN 1 ELSE 0 END) as invalid,
230
231
  SUM(CASE WHEN pinned = 1 THEN 1 ELSE 0 END) as pinned
231
232
  FROM learning_anchors
232
- `).get();
233
+ `).get());
233
234
  return {
234
235
  total: result.total ?? 0,
235
236
  valid: result.valid ?? 0,
@@ -1 +1 @@
1
- {"version":3,"file":"anchor-repo.js","sourceRoot":"","sources":["../../src/repo/anchor-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACvF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAerD,MAAM,OAAO,gBAAiB,SAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EA4BlE;CAAG;AAEN,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAC9C,gBAAgB,EAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAE9B,OAAO;QACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB;;kDAEoC,CACrC,CAAC,GAAG,CACH,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,YAAY,IAAI,IAAI,EAC1B,KAAK,CAAC,SAAS,IAAI,IAAI,EACvB,KAAK,CAAC,OAAO,IAAI,IAAI,EACrB,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,KAAK,CAAC,cAAc,IAAI,IAAI,CAC7B,CAAA;gBACD,sCAAsC;gBACtC,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,IAAI,uBAAuB,CAAC;wBAChC,SAAS,EAAE,eAAe;wBAC1B,QAAQ,EAAE,CAAC;wBACX,MAAM,EAAE,MAAM,CAAC,OAAO;qBACvB,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAA0B,CAAA;gBAC1H,yCAAyC;gBACzC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,IAAI,gBAAgB,CAAC;wBACzB,MAAM,EAAE,QAAQ;wBAChB,EAAE,EAAE,MAAM,CAAC,eAAyB;wBACpC,SAAS,EAAE,QAAQ;qBACpB,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;YACzB,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CACf,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,EAAE,CAA0B,CAAA;gBACtG,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACtC,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,gBAAgB,EAAE,CAAC,UAAU,EAAE,EAAE,CAC/B,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,8EAA8E,CAC/E,CAAC,GAAG,CAAC,UAAU,CAAgB,CAAA;gBAChC,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC9B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC3B,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,4EAA4E,CAC7E,CAAC,GAAG,CAAC,QAAQ,CAAgB,CAAA;gBAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC9B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,MAAM,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CACpB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,OAAO,GAAa,EAAE,CAAA;gBAC5B,MAAM,MAAM,GAAc,EAAE,CAAA;gBAE5B,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;oBAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;gBAChC,CAAC;gBACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACjC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;oBAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC7B,CAAC;gBACD,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;oBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;gBACjC,CAAC;gBACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAClC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;oBAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;gBAC9B,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;oBAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC5B,CAAC;gBACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;oBAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;gBAChC,CAAC;gBACD,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;oBACnC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;gBACnC,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;oBAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBAC3B,CAAC;gBACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACnC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;oBAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBACvE,CAAC;gBAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,EAAE,CAA0B,CAAA;oBACtG,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACtC,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACf,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,+BAA+B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CACjE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;gBAEhB,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,wCAAwC;gBACxC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,EAAE,CAA0B,CAAA;gBACtG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,IAAI,gBAAgB,CAAC;wBACzB,MAAM,EAAE,QAAQ;wBAChB,EAAE;wBACF,SAAS,EAAE,QAAQ;qBACpB,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;YACzB,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CACb,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAC9E,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;YAC3B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,WAAW,EAAE,GAAG,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,iFAAiF,CAClF,CAAC,GAAG,EAAiB,CAAA;gBACtB,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC9B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,WAAW,EAAE,GAAG,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,iFAAiF,CAClF,CAAC,GAAG,EAAiB,CAAA;gBACtB,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC9B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAC3B,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,qDAAqD,CACtD,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;gBACjB,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;YAC3B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,CACvB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,wEAAwE,CACzE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACT,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;YAC3B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,iEAAiE,CAClE,CAAC,GAAG,CAAC,KAAK,IAAI,mBAAmB,CAAgB,CAAA;gBAClD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC9B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CACtB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,wFAAwF,CACzF,CAAC,GAAG,CAAC,KAAK,IAAI,mBAAmB,CAAgB,CAAA;gBAClD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC9B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,qDAAqD,CACtD,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBACzB,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;YAC3B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,gBAAgB,EAAE,CAAC,aAAa,EAAE,EAAE,CAClC,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB;;qEAEuD,CACxD,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;gBACpB,OAAO,MAAM,CAAC,OAAO,CAAA;YACvB,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CACzB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB;;+CAEiC,CAClC,CAAC,GAAG,CACH,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,IAAI,IAAI,EAC5B,KAAK,CAAC,cAAc,IAAI,IAAI,EAC5B,KAAK,CAAC,eAAe,IAAI,IAAI,CAC9B,CAAA;gBACD,sCAAsC;gBACtC,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,IAAI,uBAAuB,CAAC;wBAChC,SAAS,EAAE,yBAAyB;wBACpC,QAAQ,EAAE,CAAC;wBACX,MAAM,EAAE,MAAM,CAAC,OAAO;qBACvB,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAmC,CAAA;gBACnI,yCAAyC;gBACzC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,IAAI,gBAAgB,CAAC;wBACzB,MAAM,EAAE,kBAAkB;wBAC1B,EAAE,EAAE,MAAM,CAAC,eAAyB;wBACpC,SAAS,EAAE,QAAQ;qBACpB,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAA;YAClC,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,mBAAmB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAChC,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,0FAA0F,CAC3F,CAAC,GAAG,CAAC,QAAQ,CAAyB,CAAA;oBACvC,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;gBACvC,CAAC;gBACD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,gFAAgF,CACjF,CAAC,GAAG,EAA0B,CAAA;gBAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;YACvC,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,gBAAgB,EAAE,GAAG,EAAE,CACrB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;aAQzB,CAAC,CAAC,GAAG,EAAwF,CAAA;gBAC9F,OAAO;oBACL,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;oBACxB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;oBACxB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC;oBAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC;oBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;iBAC3B,CAAA;YACH,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;KACL,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
1
+ {"version":3,"file":"anchor-repo.js","sourceRoot":"","sources":["../../src/repo/anchor-repo.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"attempt-repo.d.ts","sourceRoot":"","sources":["../../src/repo/attempt-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAoB,MAAM,cAAc,CAAA;AAEpF,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAc,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;;IAqB7F,kCAAkC;qBACjB,CAAC,KAAK,EAAE,kBAAkB,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;IAErF,4BAA4B;uBACT,CAAC,EAAE,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,aAAa,CAAC;IAElF,wBAAwB;sBACN,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,aAAa,CAAC;IAExE,mCAAmC;2BACZ,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,aAAa,CAAC;IAE3F,kDAAkD;oBAClC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAEzE,8BAA8B;qBACb,CAAC,EAAE,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,oBAAoB,CAAC;IAE7F,qEAAqE;sCACnC,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC;;AAtBvH,qBAAa,iBAAkB,SAAQ,sBAwBpC;CAAG;AAEN,eAAO,MAAM,qBAAqB,qDAoHjC,CAAA"}
1
+ {"version":3,"file":"attempt-repo.d.ts","sourceRoot":"","sources":["../../src/repo/attempt-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAoB,MAAM,cAAc,CAAA;AAEpF,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAc,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;;IAsB7F,kCAAkC;qBACjB,CAAC,KAAK,EAAE,kBAAkB,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;IAErF,4BAA4B;uBACT,CAAC,EAAE,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,aAAa,CAAC;IAElF,wBAAwB;sBACN,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,aAAa,CAAC;IAExE,mCAAmC;2BACZ,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,aAAa,CAAC;IAE3F,kDAAkD;oBAClC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAEzE,8BAA8B;qBACb,CAAC,EAAE,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,oBAAoB,CAAC;IAE7F,qEAAqE;sCACnC,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC;;AAtBvH,qBAAa,iBAAkB,SAAQ,sBAwBpC;CAAG;AAEN,eAAO,MAAM,qBAAqB,qDAoHjC,CAAA"}
@@ -2,6 +2,7 @@ import { Context, Effect, Layer } from "effect";
2
2
  import { SqliteClient } from "../db.js";
3
3
  import { AttemptNotFoundError, DatabaseError, EntityFetchError } from "../errors.js";
4
4
  import { rowToAttempt } from "../mappers/attempt.js";
5
+ import { coerceDbResult } from "../utils/db-result.js";
5
6
  const MAX_SQL_VARIABLES = 900;
6
7
  const chunkBySqlLimit = (values, chunkSize = MAX_SQL_VARIABLES) => {
7
8
  if (values.length === 0) {
@@ -9,7 +10,7 @@ const chunkBySqlLimit = (values, chunkSize = MAX_SQL_VARIABLES) => {
9
10
  }
10
11
  const chunks = [];
11
12
  for (let i = 0; i < values.length; i += chunkSize) {
12
- chunks.push(values.slice(i, i + chunkSize));
13
+ chunks.push(coerceDbResult(values.slice(i, i + chunkSize)));
13
14
  }
14
15
  return chunks;
15
16
  };
@@ -24,11 +25,11 @@ export const AttemptRepositoryLive = Layer.effect(AttemptRepository, Effect.gen(
24
25
  const result = db.prepare(`INSERT INTO attempts (task_id, approach, outcome, reason, created_at)
25
26
  VALUES (?, ?, ?, ?, ?)`).run(input.taskId, input.approach, input.outcome, input.reason ?? null, now);
26
27
  // Fetch the inserted row
27
- const row = db.prepare("SELECT * FROM attempts WHERE id = ?").get(result.lastInsertRowid);
28
+ const row = coerceDbResult(db.prepare("SELECT * FROM attempts WHERE id = ?").get(result.lastInsertRowid));
28
29
  if (!row) {
29
30
  throw new EntityFetchError({
30
31
  entity: "attempt",
31
- id: result.lastInsertRowid,
32
+ id: coerceDbResult(result.lastInsertRowid),
32
33
  operation: "insert"
33
34
  });
34
35
  }
@@ -38,21 +39,21 @@ export const AttemptRepositoryLive = Layer.effect(AttemptRepository, Effect.gen(
38
39
  }),
39
40
  findById: (id) => Effect.try({
40
41
  try: () => {
41
- const row = db.prepare("SELECT * FROM attempts WHERE id = ?").get(id);
42
+ const row = coerceDbResult(db.prepare("SELECT * FROM attempts WHERE id = ?").get(id));
42
43
  return row ? rowToAttempt(row) : null;
43
44
  },
44
45
  catch: (cause) => new DatabaseError({ cause })
45
46
  }),
46
47
  findAll: () => Effect.try({
47
48
  try: () => {
48
- const rows = db.prepare("SELECT * FROM attempts ORDER BY created_at ASC").all();
49
+ const rows = coerceDbResult(db.prepare("SELECT * FROM attempts ORDER BY created_at ASC").all());
49
50
  return rows.map(rowToAttempt);
50
51
  },
51
52
  catch: (cause) => new DatabaseError({ cause })
52
53
  }),
53
54
  findByTaskId: (taskId) => Effect.try({
54
55
  try: () => {
55
- const rows = db.prepare("SELECT * FROM attempts WHERE task_id = ? ORDER BY created_at DESC, id DESC").all(taskId);
56
+ const rows = coerceDbResult(db.prepare("SELECT * FROM attempts WHERE task_id = ? ORDER BY created_at DESC, id DESC").all(taskId));
56
57
  return rows.map(rowToAttempt);
57
58
  },
58
59
  catch: (cause) => new DatabaseError({ cause })
@@ -60,10 +61,10 @@ export const AttemptRepositoryLive = Layer.effect(AttemptRepository, Effect.gen(
60
61
  count: (taskId) => Effect.try({
61
62
  try: () => {
62
63
  if (taskId) {
63
- const result = db.prepare("SELECT COUNT(*) as cnt FROM attempts WHERE task_id = ?").get(taskId);
64
+ const result = coerceDbResult(db.prepare("SELECT COUNT(*) as cnt FROM attempts WHERE task_id = ?").get(taskId));
64
65
  return result.cnt;
65
66
  }
66
- const result = db.prepare("SELECT COUNT(*) as cnt FROM attempts").get();
67
+ const result = coerceDbResult(db.prepare("SELECT COUNT(*) as cnt FROM attempts").get());
67
68
  return result.cnt;
68
69
  },
69
70
  catch: (cause) => new DatabaseError({ cause })
@@ -85,9 +86,9 @@ export const AttemptRepositoryLive = Layer.effect(AttemptRepository, Effect.gen(
85
86
  const result = new Map();
86
87
  for (const chunk of chunkBySqlLimit(taskIds)) {
87
88
  const placeholders = chunk.map(() => "?").join(", ");
88
- const rows = db.prepare(`SELECT task_id, COUNT(*) as cnt FROM attempts
89
+ const rows = coerceDbResult(db.prepare(`SELECT task_id, COUNT(*) as cnt FROM attempts
89
90
  WHERE task_id IN (${placeholders}) AND outcome = 'failed'
90
- GROUP BY task_id`).all(...chunk);
91
+ GROUP BY task_id`).all(...chunk));
91
92
  for (const row of rows) {
92
93
  result.set(row.task_id, row.cnt);
93
94
  }