@jamesaphoenix/tx-core 0.4.2 → 0.4.3

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 (330) hide show
  1. package/README.md +480 -0
  2. package/dist/db.d.ts +28 -14
  3. package/dist/db.d.ts.map +1 -1
  4. package/dist/db.js +102 -14
  5. package/dist/db.js.map +1 -1
  6. package/dist/errors.d.ts +178 -34
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +119 -26
  9. package/dist/errors.js.map +1 -1
  10. package/dist/id.d.ts +10 -0
  11. package/dist/id.d.ts.map +1 -1
  12. package/dist/id.js +17 -1
  13. package/dist/id.js.map +1 -1
  14. package/dist/index.d.ts +15 -7
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +62 -8
  17. package/dist/index.js.map +1 -1
  18. package/dist/layer.d.ts +23 -14
  19. package/dist/layer.d.ts.map +1 -1
  20. package/dist/layer.js +75 -76
  21. package/dist/layer.js.map +1 -1
  22. package/dist/mappers/anchor.d.ts +15 -1
  23. package/dist/mappers/anchor.d.ts.map +1 -1
  24. package/dist/mappers/anchor.js +95 -28
  25. package/dist/mappers/anchor.js.map +1 -1
  26. package/dist/mappers/attempt.d.ts +3 -1
  27. package/dist/mappers/attempt.d.ts.map +1 -1
  28. package/dist/mappers/attempt.js +23 -9
  29. package/dist/mappers/attempt.js.map +1 -1
  30. package/dist/mappers/candidate.d.ts +3 -1
  31. package/dist/mappers/candidate.d.ts.map +1 -1
  32. package/dist/mappers/candidate.js +46 -16
  33. package/dist/mappers/candidate.js.map +1 -1
  34. package/dist/mappers/claim.d.ts +1 -1
  35. package/dist/mappers/claim.d.ts.map +1 -1
  36. package/dist/mappers/claim.js +11 -4
  37. package/dist/mappers/claim.js.map +1 -1
  38. package/dist/mappers/deduplication.d.ts +13 -1
  39. package/dist/mappers/deduplication.d.ts.map +1 -1
  40. package/dist/mappers/deduplication.js +22 -3
  41. package/dist/mappers/deduplication.js.map +1 -1
  42. package/dist/mappers/doc.d.ts +24 -0
  43. package/dist/mappers/doc.d.ts.map +1 -0
  44. package/dist/mappers/doc.js +161 -0
  45. package/dist/mappers/doc.js.map +1 -0
  46. package/dist/mappers/edge.d.ts +10 -1
  47. package/dist/mappers/edge.d.ts.map +1 -1
  48. package/dist/mappers/edge.js +74 -12
  49. package/dist/mappers/edge.js.map +1 -1
  50. package/dist/mappers/file-learning.d.ts.map +1 -1
  51. package/dist/mappers/file-learning.js +2 -1
  52. package/dist/mappers/file-learning.js.map +1 -1
  53. package/dist/mappers/index.d.ts +6 -7
  54. package/dist/mappers/index.d.ts.map +1 -1
  55. package/dist/mappers/index.js +10 -12
  56. package/dist/mappers/index.js.map +1 -1
  57. package/dist/mappers/learning.d.ts +9 -1
  58. package/dist/mappers/learning.d.ts.map +1 -1
  59. package/dist/mappers/learning.js +94 -14
  60. package/dist/mappers/learning.js.map +1 -1
  61. package/dist/mappers/orchestrator-state.d.ts +1 -1
  62. package/dist/mappers/orchestrator-state.d.ts.map +1 -1
  63. package/dist/mappers/orchestrator-state.js +31 -5
  64. package/dist/mappers/orchestrator-state.js.map +1 -1
  65. package/dist/mappers/parse-date.d.ts +11 -0
  66. package/dist/mappers/parse-date.d.ts.map +1 -0
  67. package/dist/mappers/parse-date.js +18 -0
  68. package/dist/mappers/parse-date.js.map +1 -0
  69. package/dist/mappers/run.d.ts +14 -4
  70. package/dist/mappers/run.d.ts.map +1 -1
  71. package/dist/mappers/run.js +49 -18
  72. package/dist/mappers/run.js.map +1 -1
  73. package/dist/mappers/task.d.ts +5 -1
  74. package/dist/mappers/task.d.ts.map +1 -1
  75. package/dist/mappers/task.js +66 -16
  76. package/dist/mappers/task.js.map +1 -1
  77. package/dist/mappers/tracked-project.d.ts +3 -1
  78. package/dist/mappers/tracked-project.d.ts.map +1 -1
  79. package/dist/mappers/tracked-project.js +23 -9
  80. package/dist/mappers/tracked-project.js.map +1 -1
  81. package/dist/mappers/worker.d.ts +1 -1
  82. package/dist/mappers/worker.d.ts.map +1 -1
  83. package/dist/mappers/worker.js +44 -6
  84. package/dist/mappers/worker.js.map +1 -1
  85. package/dist/repo/anchor-repo.d.ts +2 -2
  86. package/dist/repo/anchor-repo.d.ts.map +1 -1
  87. package/dist/repo/anchor-repo.js +46 -5
  88. package/dist/repo/anchor-repo.js.map +1 -1
  89. package/dist/repo/attempt-repo.d.ts +2 -2
  90. package/dist/repo/attempt-repo.d.ts.map +1 -1
  91. package/dist/repo/attempt-repo.js +16 -6
  92. package/dist/repo/attempt-repo.js.map +1 -1
  93. package/dist/repo/candidate-repo.d.ts.map +1 -1
  94. package/dist/repo/candidate-repo.js +22 -1
  95. package/dist/repo/candidate-repo.js.map +1 -1
  96. package/dist/repo/claim-repo.d.ts +46 -2
  97. package/dist/repo/claim-repo.d.ts.map +1 -1
  98. package/dist/repo/claim-repo.js +113 -6
  99. package/dist/repo/claim-repo.js.map +1 -1
  100. package/dist/repo/compaction-repo.d.ts +41 -0
  101. package/dist/repo/compaction-repo.d.ts.map +1 -0
  102. package/dist/repo/compaction-repo.js +84 -0
  103. package/dist/repo/compaction-repo.js.map +1 -0
  104. package/dist/repo/deduplication-repo.d.ts +9 -1
  105. package/dist/repo/deduplication-repo.d.ts.map +1 -1
  106. package/dist/repo/deduplication-repo.js +46 -9
  107. package/dist/repo/deduplication-repo.js.map +1 -1
  108. package/dist/repo/dep-repo.d.ts +27 -3
  109. package/dist/repo/dep-repo.d.ts.map +1 -1
  110. package/dist/repo/dep-repo.js +166 -39
  111. package/dist/repo/dep-repo.js.map +1 -1
  112. package/dist/repo/doc-repo.d.ts +59 -0
  113. package/dist/repo/doc-repo.d.ts.map +1 -0
  114. package/dist/repo/doc-repo.js +276 -0
  115. package/dist/repo/doc-repo.js.map +1 -0
  116. package/dist/repo/edge-repo.d.ts +1 -1
  117. package/dist/repo/edge-repo.d.ts.map +1 -1
  118. package/dist/repo/edge-repo.js +65 -34
  119. package/dist/repo/edge-repo.js.map +1 -1
  120. package/dist/repo/file-learning-repo.d.ts +3 -3
  121. package/dist/repo/file-learning-repo.d.ts.map +1 -1
  122. package/dist/repo/file-learning-repo.js +19 -8
  123. package/dist/repo/file-learning-repo.js.map +1 -1
  124. package/dist/repo/index.d.ts +4 -6
  125. package/dist/repo/index.d.ts.map +1 -1
  126. package/dist/repo/index.js +3 -5
  127. package/dist/repo/index.js.map +1 -1
  128. package/dist/repo/learning-repo.d.ts +10 -3
  129. package/dist/repo/learning-repo.d.ts.map +1 -1
  130. package/dist/repo/learning-repo.js +68 -11
  131. package/dist/repo/learning-repo.js.map +1 -1
  132. package/dist/repo/orchestrator-state-repo.d.ts.map +1 -1
  133. package/dist/repo/orchestrator-state-repo.js +8 -1
  134. package/dist/repo/orchestrator-state-repo.js.map +1 -1
  135. package/dist/repo/run-repo.d.ts +3 -3
  136. package/dist/repo/run-repo.d.ts.map +1 -1
  137. package/dist/repo/run-repo.js +40 -19
  138. package/dist/repo/run-repo.js.map +1 -1
  139. package/dist/repo/task-repo.d.ts +14 -3
  140. package/dist/repo/task-repo.d.ts.map +1 -1
  141. package/dist/repo/task-repo.js +194 -20
  142. package/dist/repo/task-repo.js.map +1 -1
  143. package/dist/repo/tracked-project-repo.d.ts.map +1 -1
  144. package/dist/repo/tracked-project-repo.js +15 -1
  145. package/dist/repo/tracked-project-repo.js.map +1 -1
  146. package/dist/repo/worker-repo.d.ts +3 -2
  147. package/dist/repo/worker-repo.d.ts.map +1 -1
  148. package/dist/repo/worker-repo.js +54 -8
  149. package/dist/repo/worker-repo.js.map +1 -1
  150. package/dist/schemas/sync.js +2 -2
  151. package/dist/schemas/sync.js.map +1 -1
  152. package/dist/schemas/worker.d.ts +1 -0
  153. package/dist/schemas/worker.d.ts.map +1 -1
  154. package/dist/schemas/worker.js +1 -0
  155. package/dist/schemas/worker.js.map +1 -1
  156. package/dist/services/agent-service.d.ts +57 -0
  157. package/dist/services/agent-service.d.ts.map +1 -0
  158. package/dist/services/agent-service.js +81 -0
  159. package/dist/services/agent-service.js.map +1 -0
  160. package/dist/services/anchor-service.js +1 -1
  161. package/dist/services/anchor-service.js.map +1 -1
  162. package/dist/services/anchor-verification.d.ts +8 -0
  163. package/dist/services/anchor-verification.d.ts.map +1 -1
  164. package/dist/services/anchor-verification.js +237 -37
  165. package/dist/services/anchor-verification.js.map +1 -1
  166. package/dist/services/ast-grep-service.d.ts.map +1 -1
  167. package/dist/services/ast-grep-service.js +93 -22
  168. package/dist/services/ast-grep-service.js.map +1 -1
  169. package/dist/services/attempt-service.d.ts.map +1 -1
  170. package/dist/services/attempt-service.js +1 -4
  171. package/dist/services/attempt-service.js.map +1 -1
  172. package/dist/services/auto-sync-service.d.ts +1 -1
  173. package/dist/services/auto-sync-service.d.ts.map +1 -1
  174. package/dist/services/auto-sync-service.js +18 -10
  175. package/dist/services/auto-sync-service.js.map +1 -1
  176. package/dist/services/claim-service.d.ts +8 -2
  177. package/dist/services/claim-service.d.ts.map +1 -1
  178. package/dist/services/claim-service.js +37 -23
  179. package/dist/services/claim-service.js.map +1 -1
  180. package/dist/services/compaction-service.d.ts +105 -0
  181. package/dist/services/compaction-service.d.ts.map +1 -0
  182. package/dist/services/compaction-service.js +369 -0
  183. package/dist/services/compaction-service.js.map +1 -0
  184. package/dist/services/cycle-scan-service.d.ts +32 -0
  185. package/dist/services/cycle-scan-service.d.ts.map +1 -0
  186. package/dist/services/cycle-scan-service.js +542 -0
  187. package/dist/services/cycle-scan-service.js.map +1 -0
  188. package/dist/services/daemon-service.d.ts +40 -2
  189. package/dist/services/daemon-service.d.ts.map +1 -1
  190. package/dist/services/daemon-service.js +199 -52
  191. package/dist/services/daemon-service.js.map +1 -1
  192. package/dist/services/deduplication-service.d.ts +8 -4
  193. package/dist/services/deduplication-service.d.ts.map +1 -1
  194. package/dist/services/deduplication-service.js +79 -25
  195. package/dist/services/deduplication-service.js.map +1 -1
  196. package/dist/services/dep-service.d.ts +2 -2
  197. package/dist/services/dep-service.d.ts.map +1 -1
  198. package/dist/services/dep-service.js +9 -5
  199. package/dist/services/dep-service.js.map +1 -1
  200. package/dist/services/diversifier-service.d.ts +2 -1
  201. package/dist/services/diversifier-service.d.ts.map +1 -1
  202. package/dist/services/diversifier-service.js +37 -43
  203. package/dist/services/diversifier-service.js.map +1 -1
  204. package/dist/services/doc-service.d.ts +49 -0
  205. package/dist/services/doc-service.d.ts.map +1 -0
  206. package/dist/services/doc-service.js +605 -0
  207. package/dist/services/doc-service.js.map +1 -0
  208. package/dist/services/edge-service.js +2 -2
  209. package/dist/services/edge-service.js.map +1 -1
  210. package/dist/services/embedding-service.d.ts +66 -2
  211. package/dist/services/embedding-service.d.ts.map +1 -1
  212. package/dist/services/embedding-service.js +138 -24
  213. package/dist/services/embedding-service.js.map +1 -1
  214. package/dist/services/file-learning-service.d.ts.map +1 -1
  215. package/dist/services/file-learning-service.js +8 -7
  216. package/dist/services/file-learning-service.js.map +1 -1
  217. package/dist/services/file-watcher-service.d.ts.map +1 -1
  218. package/dist/services/file-watcher-service.js +58 -11
  219. package/dist/services/file-watcher-service.js.map +1 -1
  220. package/dist/services/graph-expansion.d.ts +3 -0
  221. package/dist/services/graph-expansion.d.ts.map +1 -1
  222. package/dist/services/graph-expansion.js +28 -7
  223. package/dist/services/graph-expansion.js.map +1 -1
  224. package/dist/services/hierarchy-service.d.ts +1 -1
  225. package/dist/services/hierarchy-service.d.ts.map +1 -1
  226. package/dist/services/hierarchy-service.js +50 -32
  227. package/dist/services/hierarchy-service.js.map +1 -1
  228. package/dist/services/index.d.ts +13 -15
  229. package/dist/services/index.d.ts.map +1 -1
  230. package/dist/services/index.js +13 -15
  231. package/dist/services/index.js.map +1 -1
  232. package/dist/services/learning-service.d.ts +4 -4
  233. package/dist/services/learning-service.d.ts.map +1 -1
  234. package/dist/services/learning-service.js +75 -42
  235. package/dist/services/learning-service.js.map +1 -1
  236. package/dist/services/llm-service.d.ts +62 -0
  237. package/dist/services/llm-service.d.ts.map +1 -0
  238. package/dist/services/llm-service.js +172 -0
  239. package/dist/services/llm-service.js.map +1 -0
  240. package/dist/services/migration-service.d.ts +1 -1
  241. package/dist/services/migration-service.d.ts.map +1 -1
  242. package/dist/services/migration-service.js +18 -7
  243. package/dist/services/migration-service.js.map +1 -1
  244. package/dist/services/orchestrator-service.d.ts +4 -3
  245. package/dist/services/orchestrator-service.d.ts.map +1 -1
  246. package/dist/services/orchestrator-service.js +67 -29
  247. package/dist/services/orchestrator-service.js.map +1 -1
  248. package/dist/services/promotion-service.d.ts +1 -1
  249. package/dist/services/promotion-service.js +1 -1
  250. package/dist/services/promotion-service.js.map +1 -1
  251. package/dist/services/query-expansion-service.d.ts +30 -9
  252. package/dist/services/query-expansion-service.d.ts.map +1 -1
  253. package/dist/services/query-expansion-service.js +54 -63
  254. package/dist/services/query-expansion-service.js.map +1 -1
  255. package/dist/services/ready-service.d.ts +21 -1
  256. package/dist/services/ready-service.d.ts.map +1 -1
  257. package/dist/services/ready-service.js +44 -21
  258. package/dist/services/ready-service.js.map +1 -1
  259. package/dist/services/retriever-service.d.ts +10 -10
  260. package/dist/services/retriever-service.d.ts.map +1 -1
  261. package/dist/services/retriever-service.js +53 -161
  262. package/dist/services/retriever-service.js.map +1 -1
  263. package/dist/services/swarm-verification.d.ts +2 -2
  264. package/dist/services/swarm-verification.d.ts.map +1 -1
  265. package/dist/services/swarm-verification.js +12 -6
  266. package/dist/services/swarm-verification.js.map +1 -1
  267. package/dist/services/sync-service.d.ts +17 -4
  268. package/dist/services/sync-service.d.ts.map +1 -1
  269. package/dist/services/sync-service.js +378 -114
  270. package/dist/services/sync-service.js.map +1 -1
  271. package/dist/services/task-service.d.ts +6 -4
  272. package/dist/services/task-service.d.ts.map +1 -1
  273. package/dist/services/task-service.js +162 -33
  274. package/dist/services/task-service.js.map +1 -1
  275. package/dist/services/tracing-service.d.ts +55 -0
  276. package/dist/services/tracing-service.d.ts.map +1 -0
  277. package/dist/services/tracing-service.js +99 -0
  278. package/dist/services/tracing-service.js.map +1 -0
  279. package/dist/services/transcript-adapter.d.ts +99 -0
  280. package/dist/services/transcript-adapter.d.ts.map +1 -0
  281. package/dist/services/transcript-adapter.js +283 -0
  282. package/dist/services/transcript-adapter.js.map +1 -0
  283. package/dist/services/validation-service.d.ts +85 -0
  284. package/dist/services/validation-service.d.ts.map +1 -0
  285. package/dist/services/validation-service.js +289 -0
  286. package/dist/services/validation-service.js.map +1 -0
  287. package/dist/services/worker-process.d.ts +23 -4
  288. package/dist/services/worker-process.d.ts.map +1 -1
  289. package/dist/services/worker-process.js +159 -70
  290. package/dist/services/worker-process.js.map +1 -1
  291. package/dist/services/worker-service.d.ts.map +1 -1
  292. package/dist/services/worker-service.js +7 -12
  293. package/dist/services/worker-service.js.map +1 -1
  294. package/dist/sync/claude-task-writer.d.ts +49 -0
  295. package/dist/sync/claude-task-writer.d.ts.map +1 -0
  296. package/dist/sync/claude-task-writer.js +135 -0
  297. package/dist/sync/claude-task-writer.js.map +1 -0
  298. package/dist/utils/doc-hash.d.ts +10 -0
  299. package/dist/utils/doc-hash.d.ts.map +1 -0
  300. package/dist/utils/doc-hash.js +14 -0
  301. package/dist/utils/doc-hash.js.map +1 -0
  302. package/dist/utils/doc-renderer.d.ts +44 -0
  303. package/dist/utils/doc-renderer.d.ts.map +1 -0
  304. package/dist/utils/doc-renderer.js +202 -0
  305. package/dist/utils/doc-renderer.js.map +1 -0
  306. package/dist/utils/math.d.ts +5 -1
  307. package/dist/utils/math.d.ts.map +1 -1
  308. package/dist/utils/math.js +12 -4
  309. package/dist/utils/math.js.map +1 -1
  310. package/dist/utils/sql.d.ts +9 -0
  311. package/dist/utils/sql.d.ts.map +1 -0
  312. package/dist/utils/sql.js +9 -0
  313. package/dist/utils/sql.js.map +1 -0
  314. package/dist/utils/toml-config.d.ts +22 -0
  315. package/dist/utils/toml-config.d.ts.map +1 -0
  316. package/dist/utils/toml-config.js +75 -0
  317. package/dist/utils/toml-config.js.map +1 -0
  318. package/dist/worker/hooks.d.ts +102 -0
  319. package/dist/worker/hooks.d.ts.map +1 -0
  320. package/dist/worker/hooks.js +11 -0
  321. package/dist/worker/hooks.js.map +1 -0
  322. package/dist/worker/index.d.ts +9 -0
  323. package/dist/worker/index.d.ts.map +1 -0
  324. package/dist/worker/index.js +8 -0
  325. package/dist/worker/index.js.map +1 -0
  326. package/dist/worker/run-worker.d.ts +33 -0
  327. package/dist/worker/run-worker.d.ts.map +1 -0
  328. package/dist/worker/run-worker.js +265 -0
  329. package/dist/worker/run-worker.js.map +1 -0
  330. package/package.json +14 -12
@@ -0,0 +1,59 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { SqliteClient } from "../db.js";
3
+ import { DatabaseError } from "../errors.js";
4
+ import type { Doc, DocKind, DocStatus, DocLink, DocLinkType, TaskDocLink, TaskDocLinkType, Invariant, InvariantCheck, UpsertInvariantInput } from "@jamesaphoenix/tx-types";
5
+ /** Input for inserting a new doc row. */
6
+ export type InsertDocInput = {
7
+ readonly hash: string;
8
+ readonly kind: DocKind;
9
+ readonly name: string;
10
+ readonly title: string;
11
+ readonly version: number;
12
+ readonly filePath: string;
13
+ readonly parentDocId: number | null;
14
+ readonly metadata?: string;
15
+ };
16
+ /** Input for updating an existing doc row. */
17
+ export type UpdateDocInput = {
18
+ readonly hash?: string;
19
+ readonly title?: string;
20
+ readonly status?: DocStatus;
21
+ readonly lockedAt?: string;
22
+ readonly metadata?: string;
23
+ };
24
+ declare const DocRepository_base: Context.TagClass<DocRepository, "DocRepository", {
25
+ readonly insert: (input: InsertDocInput) => Effect.Effect<Doc, DatabaseError>;
26
+ readonly findById: (id: number) => Effect.Effect<Doc | null, DatabaseError>;
27
+ readonly findByName: (name: string, version?: number) => Effect.Effect<Doc | null, DatabaseError>;
28
+ readonly findAll: (filter?: {
29
+ kind?: DocKind;
30
+ status?: DocStatus;
31
+ }) => Effect.Effect<readonly Doc[], DatabaseError>;
32
+ readonly update: (id: number, input: UpdateDocInput) => Effect.Effect<void, DatabaseError>;
33
+ readonly lock: (id: number, lockedAt: string) => Effect.Effect<void, DatabaseError>;
34
+ readonly remove: (id: number) => Effect.Effect<void, DatabaseError>;
35
+ readonly createLink: (fromDocId: number, toDocId: number, linkType: DocLinkType) => Effect.Effect<DocLink, DatabaseError>;
36
+ readonly getLinksFrom: (docId: number) => Effect.Effect<readonly DocLink[], DatabaseError>;
37
+ readonly getLinksTo: (docId: number) => Effect.Effect<readonly DocLink[], DatabaseError>;
38
+ readonly getAllLinks: () => Effect.Effect<readonly DocLink[], DatabaseError>;
39
+ readonly createTaskLink: (taskId: string, docId: number, linkType: TaskDocLinkType) => Effect.Effect<TaskDocLink, DatabaseError>;
40
+ readonly getTaskLinksForDoc: (docId: number) => Effect.Effect<readonly TaskDocLink[], DatabaseError>;
41
+ readonly getDocForTask: (taskId: string) => Effect.Effect<Doc | null, DatabaseError>;
42
+ readonly getUnlinkedTaskIds: () => Effect.Effect<readonly string[], DatabaseError>;
43
+ readonly upsertInvariant: (input: UpsertInvariantInput) => Effect.Effect<Invariant, DatabaseError>;
44
+ readonly findInvariantById: (id: string) => Effect.Effect<Invariant | null, DatabaseError>;
45
+ readonly findInvariants: (filter?: {
46
+ docId?: number;
47
+ subsystem?: string;
48
+ enforcement?: string;
49
+ }) => Effect.Effect<readonly Invariant[], DatabaseError>;
50
+ readonly deprecateInvariantsNotIn: (docId: number, activeIds: readonly string[]) => Effect.Effect<void, DatabaseError>;
51
+ readonly insertInvariantCheck: (invariantId: string, passed: boolean, details: string | null, durationMs: number | null) => Effect.Effect<InvariantCheck, DatabaseError>;
52
+ readonly getInvariantChecks: (invariantId: string, limit?: number) => Effect.Effect<readonly InvariantCheck[], DatabaseError>;
53
+ readonly countInvariantsByDoc: (docId: number) => Effect.Effect<number, DatabaseError>;
54
+ }>;
55
+ export declare class DocRepository extends DocRepository_base {
56
+ }
57
+ export declare const DocRepositoryLive: Layer.Layer<DocRepository, never, SqliteClient>;
58
+ export {};
59
+ //# sourceMappingURL=doc-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-repo.d.ts","sourceRoot":"","sources":["../../src/repo/doc-repo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,276 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { SqliteClient } from "../db.js";
3
+ import { DatabaseError, EntityFetchError } from "../errors.js";
4
+ import { rowToDoc, rowToDocLink, rowToTaskDocLink, rowToInvariant, rowToInvariantCheck, } from "../mappers/doc.js";
5
+ export class DocRepository extends Context.Tag("DocRepository")() {
6
+ }
7
+ export const DocRepositoryLive = Layer.effect(DocRepository, Effect.gen(function* () {
8
+ const db = yield* SqliteClient;
9
+ return {
10
+ insert: (input) => Effect.try({
11
+ try: () => {
12
+ const now = new Date().toISOString();
13
+ const result = db.prepare(`INSERT INTO docs (hash, kind, name, title, version, status, file_path, parent_doc_id, created_at, metadata)
14
+ VALUES (?, ?, ?, ?, ?, 'changing', ?, ?, ?, ?)`).run(input.hash, input.kind, input.name, input.title, input.version, input.filePath, input.parentDocId, now, input.metadata ?? "{}");
15
+ const row = db.prepare("SELECT * FROM docs WHERE id = ?").get(result.lastInsertRowid);
16
+ if (!row) {
17
+ throw new EntityFetchError({ entity: "doc", id: result.lastInsertRowid, operation: "insert" });
18
+ }
19
+ return rowToDoc(row);
20
+ },
21
+ catch: (cause) => new DatabaseError({ cause })
22
+ }),
23
+ findById: (id) => Effect.try({
24
+ try: () => {
25
+ const row = db.prepare("SELECT * FROM docs WHERE id = ?").get(id);
26
+ return row ? rowToDoc(row) : null;
27
+ },
28
+ catch: (cause) => new DatabaseError({ cause })
29
+ }),
30
+ findByName: (name, version) => Effect.try({
31
+ try: () => {
32
+ const row = version !== undefined
33
+ ? db.prepare("SELECT * FROM docs WHERE name = ? AND version = ?").get(name, version)
34
+ : db.prepare("SELECT * FROM docs WHERE name = ? ORDER BY version DESC LIMIT 1").get(name);
35
+ return row ? rowToDoc(row) : null;
36
+ },
37
+ catch: (cause) => new DatabaseError({ cause })
38
+ }),
39
+ findAll: (filter) => Effect.try({
40
+ try: () => {
41
+ let sql = "SELECT * FROM docs";
42
+ const params = [];
43
+ const conditions = [];
44
+ if (filter?.kind) {
45
+ conditions.push("kind = ?");
46
+ params.push(filter.kind);
47
+ }
48
+ if (filter?.status) {
49
+ conditions.push("status = ?");
50
+ params.push(filter.status);
51
+ }
52
+ if (conditions.length > 0) {
53
+ sql += " WHERE " + conditions.join(" AND ");
54
+ }
55
+ sql += " ORDER BY kind, name, version";
56
+ const rows = db.prepare(sql).all(...params);
57
+ return rows.map(rowToDoc);
58
+ },
59
+ catch: (cause) => new DatabaseError({ cause })
60
+ }),
61
+ update: (id, input) => Effect.try({
62
+ try: () => {
63
+ const sets = [];
64
+ const params = [];
65
+ if (input.hash !== undefined) {
66
+ sets.push("hash = ?");
67
+ params.push(input.hash);
68
+ }
69
+ if (input.title !== undefined) {
70
+ sets.push("title = ?");
71
+ params.push(input.title);
72
+ }
73
+ if (input.status !== undefined) {
74
+ sets.push("status = ?");
75
+ params.push(input.status);
76
+ }
77
+ if (input.lockedAt !== undefined) {
78
+ sets.push("locked_at = ?");
79
+ params.push(input.lockedAt);
80
+ }
81
+ if (input.metadata !== undefined) {
82
+ sets.push("metadata = ?");
83
+ params.push(input.metadata);
84
+ }
85
+ if (sets.length === 0)
86
+ return;
87
+ params.push(id);
88
+ db.prepare(`UPDATE docs SET ${sets.join(", ")} WHERE id = ?`).run(...params);
89
+ },
90
+ catch: (cause) => new DatabaseError({ cause })
91
+ }),
92
+ lock: (id, lockedAt) => Effect.try({
93
+ try: () => {
94
+ db.prepare("UPDATE docs SET status = 'locked', locked_at = ? WHERE id = ?").run(lockedAt, id);
95
+ },
96
+ catch: (cause) => new DatabaseError({ cause })
97
+ }),
98
+ remove: (id) => Effect.try({
99
+ try: () => {
100
+ // CASCADE on doc_links, task_doc_links, invariants handled by FK constraints
101
+ db.prepare("DELETE FROM docs WHERE id = ?").run(id);
102
+ },
103
+ catch: (cause) => new DatabaseError({ cause })
104
+ }),
105
+ // Doc links
106
+ createLink: (fromDocId, toDocId, linkType) => Effect.try({
107
+ try: () => {
108
+ const now = new Date().toISOString();
109
+ const result = db.prepare("INSERT INTO doc_links (from_doc_id, to_doc_id, link_type, created_at) VALUES (?, ?, ?, ?)").run(fromDocId, toDocId, linkType, now);
110
+ const row = db.prepare("SELECT * FROM doc_links WHERE id = ?").get(result.lastInsertRowid);
111
+ if (!row) {
112
+ throw new EntityFetchError({ entity: "doc_link", id: result.lastInsertRowid, operation: "insert" });
113
+ }
114
+ return rowToDocLink(row);
115
+ },
116
+ catch: (cause) => new DatabaseError({ cause })
117
+ }),
118
+ getLinksFrom: (docId) => Effect.try({
119
+ try: () => {
120
+ const rows = db.prepare("SELECT * FROM doc_links WHERE from_doc_id = ?").all(docId);
121
+ return rows.map(rowToDocLink);
122
+ },
123
+ catch: (cause) => new DatabaseError({ cause })
124
+ }),
125
+ getLinksTo: (docId) => Effect.try({
126
+ try: () => {
127
+ const rows = db.prepare("SELECT * FROM doc_links WHERE to_doc_id = ?").all(docId);
128
+ return rows.map(rowToDocLink);
129
+ },
130
+ catch: (cause) => new DatabaseError({ cause })
131
+ }),
132
+ getAllLinks: () => Effect.try({
133
+ try: () => {
134
+ const rows = db.prepare("SELECT * FROM doc_links ORDER BY created_at").all();
135
+ return rows.map(rowToDocLink);
136
+ },
137
+ catch: (cause) => new DatabaseError({ cause })
138
+ }),
139
+ // Task-doc links
140
+ createTaskLink: (taskId, docId, linkType) => Effect.try({
141
+ try: () => {
142
+ const now = new Date().toISOString();
143
+ const result = db.prepare("INSERT INTO task_doc_links (task_id, doc_id, link_type, created_at) VALUES (?, ?, ?, ?)").run(taskId, docId, linkType, now);
144
+ const row = db.prepare("SELECT * FROM task_doc_links WHERE id = ?").get(result.lastInsertRowid);
145
+ if (!row) {
146
+ throw new EntityFetchError({ entity: "task_doc_link", id: result.lastInsertRowid, operation: "insert" });
147
+ }
148
+ return rowToTaskDocLink(row);
149
+ },
150
+ catch: (cause) => new DatabaseError({ cause })
151
+ }),
152
+ getTaskLinksForDoc: (docId) => Effect.try({
153
+ try: () => {
154
+ const rows = db.prepare("SELECT * FROM task_doc_links WHERE doc_id = ?").all(docId);
155
+ return rows.map(rowToTaskDocLink);
156
+ },
157
+ catch: (cause) => new DatabaseError({ cause })
158
+ }),
159
+ getDocForTask: (taskId) => Effect.try({
160
+ try: () => {
161
+ const row = db.prepare(`SELECT d.* FROM docs d
162
+ JOIN task_doc_links tdl ON tdl.doc_id = d.id
163
+ WHERE tdl.task_id = ?
164
+ ORDER BY d.version DESC LIMIT 1`).get(taskId);
165
+ return row ? rowToDoc(row) : null;
166
+ },
167
+ catch: (cause) => new DatabaseError({ cause })
168
+ }),
169
+ getUnlinkedTaskIds: () => Effect.try({
170
+ try: () => {
171
+ const rows = db.prepare(`SELECT t.id FROM tasks t
172
+ LEFT JOIN task_doc_links tdl ON tdl.task_id = t.id
173
+ WHERE tdl.id IS NULL
174
+ ORDER BY t.id`).all();
175
+ return rows.map(r => r.id);
176
+ },
177
+ catch: (cause) => new DatabaseError({ cause })
178
+ }),
179
+ // Invariants
180
+ upsertInvariant: (input) => Effect.try({
181
+ try: () => {
182
+ const now = new Date().toISOString();
183
+ db.prepare(`INSERT INTO invariants (id, rule, enforcement, doc_id, subsystem, test_ref, lint_rule, prompt_ref, status, created_at, metadata)
184
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'active', ?, '{}')
185
+ ON CONFLICT(id) DO UPDATE SET
186
+ rule = excluded.rule,
187
+ enforcement = excluded.enforcement,
188
+ doc_id = excluded.doc_id,
189
+ subsystem = excluded.subsystem,
190
+ test_ref = excluded.test_ref,
191
+ lint_rule = excluded.lint_rule,
192
+ prompt_ref = excluded.prompt_ref,
193
+ status = 'active'`).run(input.id, input.rule, input.enforcement, input.docId, input.subsystem ?? null, input.testRef ?? null, input.lintRule ?? null, input.promptRef ?? null, now);
194
+ const row = db.prepare("SELECT * FROM invariants WHERE id = ?").get(input.id);
195
+ if (!row) {
196
+ throw new EntityFetchError({ entity: "invariant", id: input.id, operation: "insert" });
197
+ }
198
+ return rowToInvariant(row);
199
+ },
200
+ catch: (cause) => new DatabaseError({ cause })
201
+ }),
202
+ findInvariantById: (id) => Effect.try({
203
+ try: () => {
204
+ const row = db.prepare("SELECT * FROM invariants WHERE id = ?").get(id);
205
+ return row ? rowToInvariant(row) : null;
206
+ },
207
+ catch: (cause) => new DatabaseError({ cause })
208
+ }),
209
+ findInvariants: (filter) => Effect.try({
210
+ try: () => {
211
+ let sql = "SELECT * FROM invariants";
212
+ const params = [];
213
+ const conditions = [];
214
+ if (filter?.docId !== undefined) {
215
+ conditions.push("doc_id = ?");
216
+ params.push(filter.docId);
217
+ }
218
+ if (filter?.subsystem) {
219
+ conditions.push("subsystem = ?");
220
+ params.push(filter.subsystem);
221
+ }
222
+ if (filter?.enforcement) {
223
+ conditions.push("enforcement = ?");
224
+ params.push(filter.enforcement);
225
+ }
226
+ if (conditions.length > 0) {
227
+ sql += " WHERE " + conditions.join(" AND ");
228
+ }
229
+ sql += " ORDER BY id";
230
+ const rows = db.prepare(sql).all(...params);
231
+ return rows.map(rowToInvariant);
232
+ },
233
+ catch: (cause) => new DatabaseError({ cause })
234
+ }),
235
+ deprecateInvariantsNotIn: (docId, activeIds) => Effect.try({
236
+ try: () => {
237
+ if (activeIds.length === 0) {
238
+ // Deprecate all invariants for this doc
239
+ db.prepare("UPDATE invariants SET status = 'deprecated' WHERE doc_id = ? AND status = 'active'").run(docId);
240
+ return;
241
+ }
242
+ const placeholders = activeIds.map(() => "?").join(", ");
243
+ db.prepare(`UPDATE invariants SET status = 'deprecated'
244
+ WHERE doc_id = ? AND status = 'active' AND id NOT IN (${placeholders})`).run(docId, ...activeIds);
245
+ },
246
+ catch: (cause) => new DatabaseError({ cause })
247
+ }),
248
+ insertInvariantCheck: (invariantId, passed, details, durationMs) => Effect.try({
249
+ try: () => {
250
+ const now = new Date().toISOString();
251
+ const result = db.prepare("INSERT INTO invariant_checks (invariant_id, passed, details, checked_at, duration_ms) VALUES (?, ?, ?, ?, ?)").run(invariantId, passed ? 1 : 0, details, now, durationMs);
252
+ const row = db.prepare("SELECT * FROM invariant_checks WHERE id = ?").get(result.lastInsertRowid);
253
+ if (!row) {
254
+ throw new EntityFetchError({ entity: "invariant_check", id: result.lastInsertRowid, operation: "insert" });
255
+ }
256
+ return rowToInvariantCheck(row);
257
+ },
258
+ catch: (cause) => new DatabaseError({ cause })
259
+ }),
260
+ getInvariantChecks: (invariantId, limit = 20) => Effect.try({
261
+ try: () => {
262
+ const rows = db.prepare("SELECT * FROM invariant_checks WHERE invariant_id = ? ORDER BY checked_at DESC LIMIT ?").all(invariantId, limit);
263
+ return rows.map(rowToInvariantCheck);
264
+ },
265
+ catch: (cause) => new DatabaseError({ cause })
266
+ }),
267
+ countInvariantsByDoc: (docId) => Effect.try({
268
+ try: () => {
269
+ const result = db.prepare("SELECT COUNT(*) as cnt FROM invariants WHERE doc_id = ? AND status = 'active'").get(docId);
270
+ return result.cnt;
271
+ },
272
+ catch: (cause) => new DatabaseError({ cause })
273
+ }),
274
+ };
275
+ }));
276
+ //# sourceMappingURL=doc-repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-repo.js","sourceRoot":"","sources":["../../src/repo/doc-repo.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ declare const EdgeRepository_base: Context.TagClass<EdgeRepository, "EdgeReposit
17
17
  readonly findPath: (fromType: NodeType, fromId: string, toType: NodeType, toId: string, maxDepth?: number) => Effect.Effect<readonly Edge[] | null, DatabaseError>;
18
18
  readonly update: (id: number, input: UpdateEdgeInput) => Effect.Effect<Edge | null, DatabaseError>;
19
19
  readonly invalidate: (id: number) => Effect.Effect<boolean, EdgeNotFoundError | DatabaseError>;
20
- readonly findAll: () => Effect.Effect<readonly Edge[], DatabaseError>;
20
+ readonly findAll: (limit?: number) => Effect.Effect<readonly Edge[], DatabaseError>;
21
21
  }>;
22
22
  export declare class EdgeRepository extends EdgeRepository_base {
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"edge-repo.d.ts","sourceRoot":"","sources":["../../src/repo/edge-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,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAK,EACV,IAAI,EAEJ,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,yBAAyB,CAAA;;qBAKX,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;uBAC5D,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,aAAa,CAAC;2BACrD,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;2BACzF,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;oCAChF,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC;6BACjI,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;0BACxE,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC;4BAC/D,CACtB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAA;QAC5C,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;KAChC,KACE,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,aAAa,CAAC;uBACvC,CACjB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC;qBACxC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,aAAa,CAAC;yBAC7E,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC;sBAC5E,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;;AA3BzE,qBAAa,cAAe,SAAQ,mBA6BjC;CAAG;AAEN,eAAO,MAAM,kBAAkB,kDAqT9B,CAAA"}
1
+ {"version":3,"file":"edge-repo.d.ts","sourceRoot":"","sources":["../../src/repo/edge-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,iBAAiB,EAAoB,MAAM,cAAc,CAAA;AAGjF,OAAO,KAAK,EACV,IAAI,EAEJ,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,yBAAyB,CAAA;;qBAKX,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;uBAC5D,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,aAAa,CAAC;2BACrD,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;2BACzF,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;oCAChF,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC;6BACjI,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;0BACxE,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC;4BAC/D,CACtB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAA;QAC5C,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;KAChC,KACE,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,aAAa,CAAC;uBACvC,CACjB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC;qBACxC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,aAAa,CAAC;yBAC7E,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC;sBAC5E,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;;AA3BvF,qBAAa,cAAe,SAAQ,mBA6BjC;CAAG;AAEN,eAAO,MAAM,kBAAkB,kDA2U9B,CAAA"}
@@ -1,7 +1,8 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
2
  import { SqliteClient } from "../db.js";
3
- import { DatabaseError, EdgeNotFoundError } from "../errors.js";
3
+ import { DatabaseError, EdgeNotFoundError, EntityFetchError } from "../errors.js";
4
4
  import { rowToEdge } from "../mappers/edge.js";
5
+ import { DEFAULT_QUERY_LIMIT } from "../utils/sql.js";
5
6
  export class EdgeRepository extends Context.Tag("EdgeRepository")() {
6
7
  }
7
8
  export const EdgeRepositoryLive = Layer.effect(EdgeRepository, Effect.gen(function* () {
@@ -13,6 +14,13 @@ export const EdgeRepositoryLive = Layer.effect(EdgeRepository, Effect.gen(functi
13
14
  (edge_type, source_type, source_id, target_type, target_id, weight, metadata)
14
15
  VALUES (?, ?, ?, ?, ?, ?, ?)`).run(input.edgeType, input.sourceType, input.sourceId, input.targetType, input.targetId, input.weight ?? 1.0, JSON.stringify(input.metadata ?? {}));
15
16
  const row = db.prepare("SELECT * FROM learning_edges WHERE id = ?").get(result.lastInsertRowid);
17
+ if (!row) {
18
+ throw new EntityFetchError({
19
+ entity: "edge",
20
+ id: result.lastInsertRowid,
21
+ operation: "insert"
22
+ });
23
+ }
16
24
  return rowToEdge(row);
17
25
  },
18
26
  catch: (cause) => new DatabaseError({ cause })
@@ -141,37 +149,53 @@ export const EdgeRepositoryLive = Layer.effect(EdgeRepository, Effect.gen(functi
141
149
  }),
142
150
  findPath: (fromType, fromId, toType, toId, maxDepth = 5) => Effect.try({
143
151
  try: () => {
144
- // BFS for shortest path
145
- const visited = new Set([`${fromType}:${fromId}`]);
146
- let frontier = [{ type: fromType, id: fromId, path: [] }];
147
- for (let depth = 0; depth < maxDepth; depth++) {
148
- const nextFrontier = [];
149
- for (const { type, id, path } of frontier) {
150
- // Get outgoing edges
151
- const rows = db.prepare(`SELECT * FROM learning_edges
152
- WHERE source_type = ? AND source_id = ? AND invalidated_at IS NULL`).all(type, id);
153
- for (const row of rows) {
154
- const edge = rowToEdge(row);
155
- // Found target
156
- if (row.target_type === toType && row.target_id === toId) {
157
- return [...path, edge];
158
- }
159
- const key = `${row.target_type}:${row.target_id}`;
160
- if (!visited.has(key)) {
161
- visited.add(key);
162
- nextFrontier.push({
163
- type: row.target_type,
164
- id: row.target_id,
165
- path: [...path, edge]
166
- });
167
- }
168
- }
169
- }
170
- frontier = nextFrontier;
171
- if (frontier.length === 0)
172
- break;
173
- }
174
- return null; // No path found
152
+ // Recursive CTE performs BFS in a single query (eliminates N+1 pattern)
153
+ // Uses UNION ALL with delimiter-based visited tracking to prevent cycles
154
+ // Similar pattern to hasPath CTE in dep-repo.ts
155
+ const result = db.prepare(`
156
+ WITH RECURSIVE bfs(node_type, node_id, depth, edge_path, visited) AS (
157
+ -- Base case: starting node at depth 0
158
+ SELECT ?, ?, 0, '',
159
+ '|' || ? || ':' || ? || '|'
160
+
161
+ UNION ALL
162
+
163
+ -- Recursive case: follow outgoing edges from current frontier
164
+ SELECT
165
+ e.target_type,
166
+ e.target_id,
167
+ b.depth + 1,
168
+ CASE WHEN b.edge_path = ''
169
+ THEN CAST(e.id AS TEXT)
170
+ ELSE b.edge_path || ',' || CAST(e.id AS TEXT)
171
+ END,
172
+ b.visited || e.target_type || ':' || e.target_id || '|'
173
+ FROM learning_edges e
174
+ JOIN bfs b ON e.source_type = b.node_type
175
+ AND e.source_id = b.node_id
176
+ WHERE e.invalidated_at IS NULL
177
+ AND b.depth < ?
178
+ AND instr(b.visited, '|' || e.target_type || ':' || e.target_id || '|') = 0
179
+ )
180
+ SELECT edge_path FROM bfs
181
+ WHERE node_type = ? AND node_id = ?
182
+ AND edge_path != ''
183
+ ORDER BY depth ASC
184
+ LIMIT 1
185
+ `).get(fromType, fromId, // CTE base: starting node
186
+ fromType, fromId, // CTE base: initial visited set
187
+ maxDepth, // depth limit
188
+ toType, toId // final filter: target node
189
+ );
190
+ if (!result)
191
+ return null;
192
+ // Fetch full edge objects in a single query
193
+ const edgeIds = result.edge_path.split(',').map(Number);
194
+ const placeholders = edgeIds.map(() => '?').join(', ');
195
+ const edgeRows = db.prepare(`SELECT * FROM learning_edges WHERE id IN (${placeholders})`).all(...edgeIds);
196
+ // Maintain path order from CTE traversal
197
+ const edgeMap = new Map(edgeRows.map(row => [row.id, rowToEdge(row)]));
198
+ return edgeIds.map(id => edgeMap.get(id)).filter((e) => e != null);
175
199
  },
176
200
  catch: (cause) => new DatabaseError({ cause })
177
201
  }),
@@ -197,6 +221,13 @@ export const EdgeRepositoryLive = Layer.effect(EdgeRepository, Effect.gen(functi
197
221
  return null;
198
222
  }
199
223
  const row = db.prepare("SELECT * FROM learning_edges WHERE id = ?").get(id);
224
+ if (!row) {
225
+ throw new EntityFetchError({
226
+ entity: "edge",
227
+ id,
228
+ operation: "update"
229
+ });
230
+ }
200
231
  return rowToEdge(row);
201
232
  },
202
233
  catch: (cause) => new DatabaseError({ cause })
@@ -215,9 +246,9 @@ export const EdgeRepositoryLive = Layer.effect(EdgeRepository, Effect.gen(functi
215
246
  throw new DatabaseError({ cause });
216
247
  }
217
248
  }),
218
- findAll: () => Effect.try({
249
+ findAll: (limit) => Effect.try({
219
250
  try: () => {
220
- const rows = db.prepare("SELECT * FROM learning_edges WHERE invalidated_at IS NULL ORDER BY created_at ASC").all();
251
+ const rows = db.prepare("SELECT * FROM learning_edges WHERE invalidated_at IS NULL ORDER BY created_at ASC LIMIT ?").all(limit ?? DEFAULT_QUERY_LIMIT);
221
252
  return rows.map(rowToEdge);
222
253
  },
223
254
  catch: (cause) => new DatabaseError({ cause })
@@ -1 +1 @@
1
- {"version":3,"file":"edge-repo.js","sourceRoot":"","sources":["../../src/repo/edge-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edge-repo.js","sourceRoot":"","sources":["../../src/repo/edge-repo.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
2
  import { SqliteClient } from "../db.js";
3
- import { DatabaseError } from "../errors.js";
3
+ import { DatabaseError, FileLearningNotFoundError } from "../errors.js";
4
4
  import type { FileLearning, CreateFileLearningInput } from "@jamesaphoenix/tx-types";
5
5
  declare const FileLearningRepository_base: Context.TagClass<FileLearningRepository, "FileLearningRepository", {
6
6
  readonly insert: (input: CreateFileLearningInput) => Effect.Effect<FileLearning, DatabaseError>;
7
7
  readonly findById: (id: number) => Effect.Effect<FileLearning | null, DatabaseError>;
8
- readonly findAll: () => Effect.Effect<readonly FileLearning[], DatabaseError>;
8
+ readonly findAll: (limit?: number) => Effect.Effect<readonly FileLearning[], DatabaseError>;
9
9
  readonly findByPath: (path: string) => Effect.Effect<readonly FileLearning[], DatabaseError>;
10
- readonly remove: (id: number) => Effect.Effect<void, DatabaseError>;
10
+ readonly remove: (id: number) => Effect.Effect<void, DatabaseError | FileLearningNotFoundError>;
11
11
  readonly count: () => Effect.Effect<number, DatabaseError>;
12
12
  }>;
13
13
  export declare class FileLearningRepository extends FileLearningRepository_base {
@@ -1 +1 @@
1
- {"version":3,"file":"file-learning-repo.d.ts","sourceRoot":"","sources":["../../src/repo/file-learning-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,MAAM,cAAc,CAAA;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAmB,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;;qBAKhF,CAAC,KAAK,EAAE,uBAAuB,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC;uBAC5E,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,EAAE,aAAa,CAAC;sBAClE,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,aAAa,CAAC;yBACxD,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,aAAa,CAAC;qBAC3E,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;oBACnD,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;;AAR9D,qBAAa,sBAAuB,SAAQ,2BAUzC;CAAG;AAEN,eAAO,MAAM,0BAA0B,0DA+EtC,CAAA"}
1
+ {"version":3,"file":"file-learning-repo.d.ts","sourceRoot":"","sources":["../../src/repo/file-learning-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,EAAoB,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAGzF,OAAO,KAAK,EAAE,YAAY,EAAmB,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;;qBAKhF,CAAC,KAAK,EAAE,uBAAuB,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC;uBAC5E,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,EAAE,aAAa,CAAC;sBAClE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,aAAa,CAAC;yBACtE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,aAAa,CAAC;qBAC3E,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,yBAAyB,CAAC;oBAC/E,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;;AAR9D,qBAAa,sBAAuB,SAAQ,2BAUzC;CAAG;AAEN,eAAO,MAAM,0BAA0B,0DAyFtC,CAAA"}