@jamesaphoenix/tx-core 0.4.2 → 0.4.4

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 (336) 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 +108 -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/attempt.d.ts +3 -1
  23. package/dist/mappers/attempt.d.ts.map +1 -1
  24. package/dist/mappers/attempt.js +23 -9
  25. package/dist/mappers/attempt.js.map +1 -1
  26. package/dist/mappers/claim.d.ts +1 -1
  27. package/dist/mappers/claim.d.ts.map +1 -1
  28. package/dist/mappers/claim.js +11 -4
  29. package/dist/mappers/claim.js.map +1 -1
  30. package/dist/mappers/deduplication.d.ts +13 -1
  31. package/dist/mappers/deduplication.d.ts.map +1 -1
  32. package/dist/mappers/deduplication.js +22 -3
  33. package/dist/mappers/deduplication.js.map +1 -1
  34. package/dist/mappers/doc.d.ts +24 -0
  35. package/dist/mappers/doc.d.ts.map +1 -0
  36. package/dist/mappers/doc.js +161 -0
  37. package/dist/mappers/doc.js.map +1 -0
  38. package/dist/mappers/file-learning.d.ts.map +1 -1
  39. package/dist/mappers/file-learning.js +2 -1
  40. package/dist/mappers/file-learning.js.map +1 -1
  41. package/dist/mappers/index.d.ts +6 -7
  42. package/dist/mappers/index.d.ts.map +1 -1
  43. package/dist/mappers/index.js +10 -12
  44. package/dist/mappers/index.js.map +1 -1
  45. package/dist/mappers/learning.d.ts +9 -1
  46. package/dist/mappers/learning.d.ts.map +1 -1
  47. package/dist/mappers/learning.js +94 -14
  48. package/dist/mappers/learning.js.map +1 -1
  49. package/dist/mappers/orchestrator-state.d.ts +1 -1
  50. package/dist/mappers/orchestrator-state.d.ts.map +1 -1
  51. package/dist/mappers/orchestrator-state.js +31 -5
  52. package/dist/mappers/orchestrator-state.js.map +1 -1
  53. package/dist/mappers/parse-date.d.ts +11 -0
  54. package/dist/mappers/parse-date.d.ts.map +1 -0
  55. package/dist/mappers/parse-date.js +18 -0
  56. package/dist/mappers/parse-date.js.map +1 -0
  57. package/dist/mappers/run.d.ts +14 -4
  58. package/dist/mappers/run.d.ts.map +1 -1
  59. package/dist/mappers/run.js +49 -18
  60. package/dist/mappers/run.js.map +1 -1
  61. package/dist/mappers/task.d.ts +5 -1
  62. package/dist/mappers/task.d.ts.map +1 -1
  63. package/dist/mappers/task.js +66 -16
  64. package/dist/mappers/task.js.map +1 -1
  65. package/dist/mappers/tracked-project.d.ts +3 -1
  66. package/dist/mappers/tracked-project.d.ts.map +1 -1
  67. package/dist/mappers/tracked-project.js +23 -9
  68. package/dist/mappers/tracked-project.js.map +1 -1
  69. package/dist/mappers/worker.d.ts +1 -1
  70. package/dist/mappers/worker.d.ts.map +1 -1
  71. package/dist/mappers/worker.js +44 -6
  72. package/dist/mappers/worker.js.map +1 -1
  73. package/dist/repo/attempt-repo.d.ts +2 -2
  74. package/dist/repo/attempt-repo.d.ts.map +1 -1
  75. package/dist/repo/attempt-repo.js +16 -6
  76. package/dist/repo/attempt-repo.js.map +1 -1
  77. package/dist/repo/claim-repo.d.ts +46 -2
  78. package/dist/repo/claim-repo.d.ts.map +1 -1
  79. package/dist/repo/claim-repo.js +113 -6
  80. package/dist/repo/claim-repo.js.map +1 -1
  81. package/dist/repo/deduplication-repo.d.ts +9 -1
  82. package/dist/repo/deduplication-repo.d.ts.map +1 -1
  83. package/dist/repo/deduplication-repo.js +46 -9
  84. package/dist/repo/deduplication-repo.js.map +1 -1
  85. package/dist/repo/dep-repo.d.ts +27 -3
  86. package/dist/repo/dep-repo.d.ts.map +1 -1
  87. package/dist/repo/dep-repo.js +166 -39
  88. package/dist/repo/dep-repo.js.map +1 -1
  89. package/dist/repo/doc-repo.d.ts +59 -0
  90. package/dist/repo/doc-repo.d.ts.map +1 -0
  91. package/dist/repo/doc-repo.js +276 -0
  92. package/dist/repo/doc-repo.js.map +1 -0
  93. package/dist/repo/file-learning-repo.d.ts +3 -3
  94. package/dist/repo/file-learning-repo.d.ts.map +1 -1
  95. package/dist/repo/file-learning-repo.js +19 -8
  96. package/dist/repo/file-learning-repo.js.map +1 -1
  97. package/dist/repo/index.d.ts +4 -6
  98. package/dist/repo/index.d.ts.map +1 -1
  99. package/dist/repo/index.js +3 -5
  100. package/dist/repo/index.js.map +1 -1
  101. package/dist/repo/learning-repo.d.ts +10 -3
  102. package/dist/repo/learning-repo.d.ts.map +1 -1
  103. package/dist/repo/learning-repo.js +68 -11
  104. package/dist/repo/learning-repo.js.map +1 -1
  105. package/dist/repo/orchestrator-state-repo.d.ts.map +1 -1
  106. package/dist/repo/orchestrator-state-repo.js +8 -1
  107. package/dist/repo/orchestrator-state-repo.js.map +1 -1
  108. package/dist/repo/run-repo.d.ts +3 -3
  109. package/dist/repo/run-repo.d.ts.map +1 -1
  110. package/dist/repo/run-repo.js +40 -19
  111. package/dist/repo/run-repo.js.map +1 -1
  112. package/dist/repo/task-repo.d.ts +14 -3
  113. package/dist/repo/task-repo.d.ts.map +1 -1
  114. package/dist/repo/task-repo.js +194 -20
  115. package/dist/repo/task-repo.js.map +1 -1
  116. package/dist/repo/tracked-project-repo.d.ts.map +1 -1
  117. package/dist/repo/tracked-project-repo.js +15 -1
  118. package/dist/repo/tracked-project-repo.js.map +1 -1
  119. package/dist/repo/worker-repo.d.ts +3 -2
  120. package/dist/repo/worker-repo.d.ts.map +1 -1
  121. package/dist/repo/worker-repo.js +54 -8
  122. package/dist/repo/worker-repo.js.map +1 -1
  123. package/dist/schemas/sync.js +2 -2
  124. package/dist/schemas/sync.js.map +1 -1
  125. package/dist/schemas/worker.d.ts +1 -0
  126. package/dist/schemas/worker.d.ts.map +1 -1
  127. package/dist/schemas/worker.js +1 -0
  128. package/dist/schemas/worker.js.map +1 -1
  129. package/dist/services/agent-service.d.ts +57 -0
  130. package/dist/services/agent-service.d.ts.map +1 -0
  131. package/dist/services/agent-service.js +81 -0
  132. package/dist/services/agent-service.js.map +1 -0
  133. package/dist/services/attempt-service.d.ts.map +1 -1
  134. package/dist/services/attempt-service.js +1 -4
  135. package/dist/services/attempt-service.js.map +1 -1
  136. package/dist/services/auto-sync-service.d.ts.map +1 -1
  137. package/dist/services/auto-sync-service.js +18 -10
  138. package/dist/services/auto-sync-service.js.map +1 -1
  139. package/dist/services/claim-service.d.ts +8 -2
  140. package/dist/services/claim-service.d.ts.map +1 -1
  141. package/dist/services/claim-service.js +37 -23
  142. package/dist/services/claim-service.js.map +1 -1
  143. package/dist/services/cycle-scan-service.d.ts +32 -0
  144. package/dist/services/cycle-scan-service.d.ts.map +1 -0
  145. package/dist/services/cycle-scan-service.js +546 -0
  146. package/dist/services/cycle-scan-service.js.map +1 -0
  147. package/dist/services/daemon-service.d.ts +40 -2
  148. package/dist/services/daemon-service.d.ts.map +1 -1
  149. package/dist/services/daemon-service.js +199 -52
  150. package/dist/services/daemon-service.js.map +1 -1
  151. package/dist/services/deduplication-service.d.ts +8 -4
  152. package/dist/services/deduplication-service.d.ts.map +1 -1
  153. package/dist/services/deduplication-service.js +79 -25
  154. package/dist/services/deduplication-service.js.map +1 -1
  155. package/dist/services/dep-service.d.ts +2 -2
  156. package/dist/services/dep-service.d.ts.map +1 -1
  157. package/dist/services/dep-service.js +9 -5
  158. package/dist/services/dep-service.js.map +1 -1
  159. package/dist/services/diversifier-service.d.ts +2 -1
  160. package/dist/services/diversifier-service.d.ts.map +1 -1
  161. package/dist/services/diversifier-service.js +37 -43
  162. package/dist/services/diversifier-service.js.map +1 -1
  163. package/dist/services/doc-service.d.ts +49 -0
  164. package/dist/services/doc-service.d.ts.map +1 -0
  165. package/dist/services/doc-service.js +605 -0
  166. package/dist/services/doc-service.js.map +1 -0
  167. package/dist/services/embedding-service.d.ts +66 -2
  168. package/dist/services/embedding-service.d.ts.map +1 -1
  169. package/dist/services/embedding-service.js +138 -24
  170. package/dist/services/embedding-service.js.map +1 -1
  171. package/dist/services/file-learning-service.d.ts.map +1 -1
  172. package/dist/services/file-learning-service.js +8 -7
  173. package/dist/services/file-learning-service.js.map +1 -1
  174. package/dist/services/file-watcher-service.d.ts.map +1 -1
  175. package/dist/services/file-watcher-service.js +58 -11
  176. package/dist/services/file-watcher-service.js.map +1 -1
  177. package/dist/services/hierarchy-service.d.ts +1 -1
  178. package/dist/services/hierarchy-service.d.ts.map +1 -1
  179. package/dist/services/hierarchy-service.js +50 -32
  180. package/dist/services/hierarchy-service.js.map +1 -1
  181. package/dist/services/index.d.ts +13 -15
  182. package/dist/services/index.d.ts.map +1 -1
  183. package/dist/services/index.js +13 -15
  184. package/dist/services/index.js.map +1 -1
  185. package/dist/services/learning-service.d.ts +3 -3
  186. package/dist/services/learning-service.d.ts.map +1 -1
  187. package/dist/services/learning-service.js +75 -42
  188. package/dist/services/learning-service.js.map +1 -1
  189. package/dist/services/llm-service.d.ts +62 -0
  190. package/dist/services/llm-service.d.ts.map +1 -0
  191. package/dist/services/llm-service.js +172 -0
  192. package/dist/services/llm-service.js.map +1 -0
  193. package/dist/services/migration-service.d.ts +1 -1
  194. package/dist/services/migration-service.d.ts.map +1 -1
  195. package/dist/services/migration-service.js +18 -7
  196. package/dist/services/migration-service.js.map +1 -1
  197. package/dist/services/orchestrator-service.d.ts +4 -3
  198. package/dist/services/orchestrator-service.d.ts.map +1 -1
  199. package/dist/services/orchestrator-service.js +66 -27
  200. package/dist/services/orchestrator-service.js.map +1 -1
  201. package/dist/services/query-expansion-service.d.ts +30 -9
  202. package/dist/services/query-expansion-service.d.ts.map +1 -1
  203. package/dist/services/query-expansion-service.js +54 -63
  204. package/dist/services/query-expansion-service.js.map +1 -1
  205. package/dist/services/ready-service.d.ts +21 -1
  206. package/dist/services/ready-service.d.ts.map +1 -1
  207. package/dist/services/ready-service.js +44 -21
  208. package/dist/services/ready-service.js.map +1 -1
  209. package/dist/services/retriever-service.d.ts +10 -10
  210. package/dist/services/retriever-service.d.ts.map +1 -1
  211. package/dist/services/retriever-service.js +53 -161
  212. package/dist/services/retriever-service.js.map +1 -1
  213. package/dist/services/sync-service.d.ts +17 -4
  214. package/dist/services/sync-service.d.ts.map +1 -1
  215. package/dist/services/sync-service.js +381 -116
  216. package/dist/services/sync-service.js.map +1 -1
  217. package/dist/services/task-service.d.ts +6 -4
  218. package/dist/services/task-service.d.ts.map +1 -1
  219. package/dist/services/task-service.js +165 -35
  220. package/dist/services/task-service.js.map +1 -1
  221. package/dist/services/tracing-service.d.ts +55 -0
  222. package/dist/services/tracing-service.d.ts.map +1 -0
  223. package/dist/services/tracing-service.js +99 -0
  224. package/dist/services/tracing-service.js.map +1 -0
  225. package/dist/services/transcript-adapter.d.ts +99 -0
  226. package/dist/services/transcript-adapter.d.ts.map +1 -0
  227. package/dist/services/transcript-adapter.js +283 -0
  228. package/dist/services/transcript-adapter.js.map +1 -0
  229. package/dist/services/validation-service.d.ts +85 -0
  230. package/dist/services/validation-service.d.ts.map +1 -0
  231. package/dist/services/validation-service.js +289 -0
  232. package/dist/services/validation-service.js.map +1 -0
  233. package/dist/services/worker-process.d.ts +23 -4
  234. package/dist/services/worker-process.d.ts.map +1 -1
  235. package/dist/services/worker-process.js +168 -72
  236. package/dist/services/worker-process.js.map +1 -1
  237. package/dist/services/worker-service.d.ts.map +1 -1
  238. package/dist/services/worker-service.js +7 -12
  239. package/dist/services/worker-service.js.map +1 -1
  240. package/dist/sync/claude-task-writer.d.ts +49 -0
  241. package/dist/sync/claude-task-writer.d.ts.map +1 -0
  242. package/dist/sync/claude-task-writer.js +135 -0
  243. package/dist/sync/claude-task-writer.js.map +1 -0
  244. package/dist/utils/doc-hash.d.ts +10 -0
  245. package/dist/utils/doc-hash.d.ts.map +1 -0
  246. package/dist/utils/doc-hash.js +14 -0
  247. package/dist/utils/doc-hash.js.map +1 -0
  248. package/dist/utils/doc-renderer.d.ts +44 -0
  249. package/dist/utils/doc-renderer.d.ts.map +1 -0
  250. package/dist/utils/doc-renderer.js +202 -0
  251. package/dist/utils/doc-renderer.js.map +1 -0
  252. package/dist/utils/math.d.ts +5 -1
  253. package/dist/utils/math.d.ts.map +1 -1
  254. package/dist/utils/math.js +12 -4
  255. package/dist/utils/math.js.map +1 -1
  256. package/dist/utils/sql.d.ts +9 -0
  257. package/dist/utils/sql.d.ts.map +1 -0
  258. package/dist/utils/sql.js +9 -0
  259. package/dist/utils/sql.js.map +1 -0
  260. package/dist/utils/toml-config.d.ts +22 -0
  261. package/dist/utils/toml-config.d.ts.map +1 -0
  262. package/dist/utils/toml-config.js +75 -0
  263. package/dist/utils/toml-config.js.map +1 -0
  264. package/dist/worker/hooks.d.ts +102 -0
  265. package/dist/worker/hooks.d.ts.map +1 -0
  266. package/dist/worker/hooks.js +11 -0
  267. package/dist/worker/hooks.js.map +1 -0
  268. package/dist/worker/index.d.ts +9 -0
  269. package/dist/worker/index.d.ts.map +1 -0
  270. package/dist/worker/index.js +8 -0
  271. package/dist/worker/index.js.map +1 -0
  272. package/dist/worker/run-worker.d.ts +33 -0
  273. package/dist/worker/run-worker.d.ts.map +1 -0
  274. package/dist/worker/run-worker.js +265 -0
  275. package/dist/worker/run-worker.js.map +1 -0
  276. package/package.json +14 -12
  277. package/dist/mappers/anchor.d.ts +0 -14
  278. package/dist/mappers/anchor.d.ts.map +0 -1
  279. package/dist/mappers/anchor.js +0 -38
  280. package/dist/mappers/anchor.js.map +0 -1
  281. package/dist/mappers/candidate.d.ts +0 -23
  282. package/dist/mappers/candidate.d.ts.map +0 -1
  283. package/dist/mappers/candidate.js +0 -53
  284. package/dist/mappers/candidate.js.map +0 -1
  285. package/dist/mappers/edge.d.ts +0 -10
  286. package/dist/mappers/edge.d.ts.map +0 -1
  287. package/dist/mappers/edge.js +0 -19
  288. package/dist/mappers/edge.js.map +0 -1
  289. package/dist/repo/anchor-repo.d.ts +0 -52
  290. package/dist/repo/anchor-repo.d.ts.map +0 -1
  291. package/dist/repo/anchor-repo.js +0 -204
  292. package/dist/repo/anchor-repo.js.map +0 -1
  293. package/dist/repo/candidate-repo.d.ts +0 -16
  294. package/dist/repo/candidate-repo.d.ts.map +0 -1
  295. package/dist/repo/candidate-repo.js +0 -143
  296. package/dist/repo/candidate-repo.js.map +0 -1
  297. package/dist/repo/edge-repo.d.ts +0 -26
  298. package/dist/repo/edge-repo.d.ts.map +0 -1
  299. package/dist/repo/edge-repo.js +0 -227
  300. package/dist/repo/edge-repo.js.map +0 -1
  301. package/dist/services/anchor-service.d.ts +0 -147
  302. package/dist/services/anchor-service.d.ts.map +0 -1
  303. package/dist/services/anchor-service.js +0 -540
  304. package/dist/services/anchor-service.js.map +0 -1
  305. package/dist/services/anchor-verification.d.ts +0 -94
  306. package/dist/services/anchor-verification.d.ts.map +0 -1
  307. package/dist/services/anchor-verification.js +0 -617
  308. package/dist/services/anchor-verification.js.map +0 -1
  309. package/dist/services/ast-grep-service.d.ts +0 -58
  310. package/dist/services/ast-grep-service.d.ts.map +0 -1
  311. package/dist/services/ast-grep-service.js +0 -356
  312. package/dist/services/ast-grep-service.js.map +0 -1
  313. package/dist/services/candidate-extractor-service.d.ts +0 -56
  314. package/dist/services/candidate-extractor-service.d.ts.map +0 -1
  315. package/dist/services/candidate-extractor-service.js +0 -365
  316. package/dist/services/candidate-extractor-service.js.map +0 -1
  317. package/dist/services/edge-service.d.ts +0 -78
  318. package/dist/services/edge-service.d.ts.map +0 -1
  319. package/dist/services/edge-service.js +0 -158
  320. package/dist/services/edge-service.js.map +0 -1
  321. package/dist/services/feedback-tracker.d.ts +0 -64
  322. package/dist/services/feedback-tracker.d.ts.map +0 -1
  323. package/dist/services/feedback-tracker.js +0 -110
  324. package/dist/services/feedback-tracker.js.map +0 -1
  325. package/dist/services/graph-expansion.d.ts +0 -155
  326. package/dist/services/graph-expansion.d.ts.map +0 -1
  327. package/dist/services/graph-expansion.js +0 -466
  328. package/dist/services/graph-expansion.js.map +0 -1
  329. package/dist/services/promotion-service.d.ts +0 -67
  330. package/dist/services/promotion-service.d.ts.map +0 -1
  331. package/dist/services/promotion-service.js +0 -151
  332. package/dist/services/promotion-service.js.map +0 -1
  333. package/dist/services/swarm-verification.d.ts +0 -104
  334. package/dist/services/swarm-verification.d.ts.map +0 -1
  335. package/dist/services/swarm-verification.js +0 -400
  336. package/dist/services/swarm-verification.js.map +0 -1
@@ -2,10 +2,29 @@
2
2
  * Deduplication mappers - convert database rows to domain objects
3
3
  */
4
4
  import { createHash } from "crypto";
5
+ import { parseDate } from "./parse-date.js";
6
+ /**
7
+ * Normalize content for deduplication comparison.
8
+ * Handles common semantic equivalences:
9
+ * - Trailing/leading whitespace
10
+ * - Line ending differences (CRLF → LF)
11
+ * - Unicode normalization (NFC canonical form)
12
+ */
13
+ export const normalizeContent = (content) => content
14
+ .trim()
15
+ .replace(/\r\n/g, "\n")
16
+ .normalize("NFC");
5
17
  /**
6
18
  * Compute SHA256 hash of content.
19
+ * By default, hashes raw content for backward compatibility with existing data.
20
+ * Pass normalize=true to normalize (trim, CRLF→LF, NFC) before hashing,
21
+ * which catches semantic duplicates but produces different hashes for
22
+ * previously stored content.
7
23
  */
8
- export const hashContent = (content) => createHash("sha256").update(content).digest("hex");
24
+ export const hashContent = (content, normalize = false) => {
25
+ const input = normalize ? normalizeContent(content) : content;
26
+ return createHash("sha256").update(input).digest("hex");
27
+ };
9
28
  /**
10
29
  * Convert a database row to a ProcessedHash domain object.
11
30
  */
@@ -14,7 +33,7 @@ export const rowToProcessedHash = (row) => ({
14
33
  contentHash: row.content_hash,
15
34
  sourceFile: row.source_file,
16
35
  sourceLine: row.source_line,
17
- processedAt: new Date(row.processed_at)
36
+ processedAt: parseDate(row.processed_at, "processed_at", row.id)
18
37
  });
19
38
  /**
20
39
  * Serialize ProcessedHash for JSON output.
@@ -36,7 +55,7 @@ export const rowToFileProgress = (row) => ({
36
55
  lastByteOffset: row.last_byte_offset,
37
56
  fileSize: row.file_size,
38
57
  fileChecksum: row.file_checksum,
39
- lastProcessedAt: new Date(row.last_processed_at)
58
+ lastProcessedAt: parseDate(row.last_processed_at, "last_processed_at", row.id)
40
59
  });
41
60
  /**
42
61
  * Serialize FileProgress for JSON output.
@@ -1 +1 @@
1
- {"version":3,"file":"deduplication.js","sourceRoot":"","sources":["../../src/mappers/deduplication.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAQnC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAU,EAAE,CACrD,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAqB,EAAiB,EAAE,CAAC,CAAC;IAC3E,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,WAAW,EAAE,GAAG,CAAC,YAAY;IAC7B,UAAU,EAAE,GAAG,CAAC,WAAW;IAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;IAC3B,WAAW,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;CACxC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAmB,EAAE,EAAE,CAAC,CAAC;IAC9D,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,WAAW,EAAE,IAAI,CAAC,WAAW;IAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;IAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;IAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;CAC5C,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAoB,EAAgB,EAAE,CAAC,CAAC;IACxE,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,QAAQ,EAAE,GAAG,CAAC,SAAS;IACvB,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;IAC1C,cAAc,EAAE,GAAG,CAAC,gBAAgB;IACpC,QAAQ,EAAE,GAAG,CAAC,SAAS;IACvB,YAAY,EAAE,GAAG,CAAC,aAAa;IAC/B,eAAe,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC;CACjD,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAsB,EAAE,EAAE,CAAC,CAAC;IAChE,EAAE,EAAE,QAAQ,CAAC,EAAE;IACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;IAC3B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;IAC7C,cAAc,EAAE,QAAQ,CAAC,cAAc;IACvC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;IAC3B,YAAY,EAAE,QAAQ,CAAC,YAAY;IACnC,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE;CACxD,CAAC,CAAA"}
1
+ {"version":3,"file":"deduplication.js","sourceRoot":"","sources":["../../src/mappers/deduplication.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAOnC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAU,EAAE,CAC1D,OAAO;KACJ,IAAI,EAAE;KACN,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;KACtB,SAAS,CAAC,KAAK,CAAC,CAAA;AAErB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,SAAS,GAAG,KAAK,EAAU,EAAE;IACxE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAC7D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACzD,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAqB,EAAiB,EAAE,CAAC,CAAC;IAC3E,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,WAAW,EAAE,GAAG,CAAC,YAAY;IAC7B,UAAU,EAAE,GAAG,CAAC,WAAW;IAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;IAC3B,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC;CACjE,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAmB,EAAE,EAAE,CAAC,CAAC;IAC9D,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,WAAW,EAAE,IAAI,CAAC,WAAW;IAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;IAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;IAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;CAC5C,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAoB,EAAgB,EAAE,CAAC,CAAC;IACxE,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,QAAQ,EAAE,GAAG,CAAC,SAAS;IACvB,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;IAC1C,cAAc,EAAE,GAAG,CAAC,gBAAgB;IACpC,QAAQ,EAAE,GAAG,CAAC,SAAS;IACvB,YAAY,EAAE,GAAG,CAAC,aAAa;IAC/B,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,CAAC;CAC/E,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAsB,EAAE,EAAE,CAAC,CAAC;IAChE,EAAE,EAAE,QAAQ,CAAC,EAAE;IACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;IAC3B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;IAC7C,cAAc,EAAE,QAAQ,CAAC,cAAc;IACvC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;IAC3B,YAAY,EAAE,QAAQ,CAAC,YAAY;IACnC,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE;CACxD,CAAC,CAAA"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Doc mappers - convert database rows to domain objects
3
+ */
4
+ import type { Doc, DocKind, DocStatus, DocLink, DocLinkType, TaskDocLink, TaskDocLinkType, Invariant, InvariantEnforcement, InvariantStatus, InvariantCheck, DocRow, DocLinkRow, TaskDocLinkRow, InvariantRow, InvariantCheckRow } from "@jamesaphoenix/tx-types";
5
+ import { DOC_KINDS, DOC_STATUSES, DOC_LINK_TYPES, TASK_DOC_LINK_TYPES, INVARIANT_ENFORCEMENT_TYPES, INVARIANT_STATUSES } from "@jamesaphoenix/tx-types";
6
+ export type { DocRow, DocLinkRow, TaskDocLinkRow, InvariantRow, InvariantCheckRow };
7
+ export { DOC_KINDS, DOC_STATUSES, DOC_LINK_TYPES, TASK_DOC_LINK_TYPES, INVARIANT_ENFORCEMENT_TYPES, INVARIANT_STATUSES };
8
+ export declare const isValidDocKind: (s: string) => s is DocKind;
9
+ export declare const isValidDocStatus: (s: string) => s is DocStatus;
10
+ export declare const isValidDocLinkType: (s: string) => s is DocLinkType;
11
+ export declare const isValidTaskDocLinkType: (s: string) => s is TaskDocLinkType;
12
+ export declare const isValidInvariantEnforcement: (s: string) => s is InvariantEnforcement;
13
+ export declare const isValidInvariantStatus: (s: string) => s is InvariantStatus;
14
+ /**
15
+ * Convert a database row to a Doc domain object.
16
+ * Validates kind and status at runtime.
17
+ * Branded integer ID uses 'as' cast (SQLite guarantees integer type).
18
+ */
19
+ export declare const rowToDoc: (row: DocRow) => Doc;
20
+ export declare const rowToDocLink: (row: DocLinkRow) => DocLink;
21
+ export declare const rowToTaskDocLink: (row: TaskDocLinkRow) => TaskDocLink;
22
+ export declare const rowToInvariant: (row: InvariantRow) => Invariant;
23
+ export declare const rowToInvariantCheck: (row: InvariantCheckRow) => InvariantCheck;
24
+ //# sourceMappingURL=doc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../src/mappers/doc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,GAAG,EACH,OAAO,EACP,SAAS,EACT,OAAO,EACP,WAAW,EACX,WAAW,EACX,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,MAAM,EACN,UAAU,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EACnB,MAAM,yBAAyB,CAAA;AAKhC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAA;AACnF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,CAAA;AAcxH,eAAO,MAAM,cAAc,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,OACpB,CAAA;AAE5B,eAAO,MAAM,gBAAgB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,SACpB,CAAA;AAE9B,eAAO,MAAM,kBAAkB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,WACpB,CAAA;AAEhC,eAAO,MAAM,sBAAsB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,eACpB,CAAA;AAEpC,eAAO,MAAM,2BAA2B,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,oBACpB,CAAA;AAEzC,eAAO,MAAM,sBAAsB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,eACpB,CAAA;AA2BpC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,GAkCtC,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,KAAK,UAAU,KAAG,OAiB9C,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,KAAK,cAAc,KAAG,WAiBtD,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,YAAY,KAAG,SAgClD,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,KAAK,iBAAiB,KAAG,cAS5D,CAAA"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Doc mappers - convert database rows to domain objects
3
+ */
4
+ import { DOC_KINDS, DOC_STATUSES, DOC_LINK_TYPES, TASK_DOC_LINK_TYPES, INVARIANT_ENFORCEMENT_TYPES, INVARIANT_STATUSES, } from "@jamesaphoenix/tx-types";
5
+ import { InvalidStatusError } from "../errors.js";
6
+ import { parseDate } from "./parse-date.js";
7
+ export { DOC_KINDS, DOC_STATUSES, DOC_LINK_TYPES, TASK_DOC_LINK_TYPES, INVARIANT_ENFORCEMENT_TYPES, INVARIANT_STATUSES };
8
+ // Local string arrays for .includes() (avoids 'as readonly string[]' casts)
9
+ const docKindStrings = DOC_KINDS;
10
+ const docStatusStrings = DOC_STATUSES;
11
+ const docLinkTypeStrings = DOC_LINK_TYPES;
12
+ const taskDocLinkTypeStrings = TASK_DOC_LINK_TYPES;
13
+ const invariantEnforcementStrings = INVARIANT_ENFORCEMENT_TYPES;
14
+ const invariantStatusStrings = INVARIANT_STATUSES;
15
+ // =============================================================================
16
+ // TYPE GUARDS
17
+ // =============================================================================
18
+ export const isValidDocKind = (s) => docKindStrings.includes(s);
19
+ export const isValidDocStatus = (s) => docStatusStrings.includes(s);
20
+ export const isValidDocLinkType = (s) => docLinkTypeStrings.includes(s);
21
+ export const isValidTaskDocLinkType = (s) => taskDocLinkTypeStrings.includes(s);
22
+ export const isValidInvariantEnforcement = (s) => invariantEnforcementStrings.includes(s);
23
+ export const isValidInvariantStatus = (s) => invariantStatusStrings.includes(s);
24
+ // =============================================================================
25
+ // METADATA PARSING
26
+ // =============================================================================
27
+ const parseMetadata = (metadataJson) => {
28
+ if (!metadataJson)
29
+ return {};
30
+ try {
31
+ const parsed = JSON.parse(metadataJson);
32
+ if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
33
+ const result = {};
34
+ for (const [key, value] of Object.entries(parsed)) {
35
+ result[key] = value;
36
+ }
37
+ return result;
38
+ }
39
+ return {};
40
+ }
41
+ catch {
42
+ return {};
43
+ }
44
+ };
45
+ // =============================================================================
46
+ // ROW MAPPERS
47
+ // =============================================================================
48
+ /**
49
+ * Convert a database row to a Doc domain object.
50
+ * Validates kind and status at runtime.
51
+ * Branded integer ID uses 'as' cast (SQLite guarantees integer type).
52
+ */
53
+ export const rowToDoc = (row) => {
54
+ if (!isValidDocKind(row.kind)) {
55
+ throw new InvalidStatusError({
56
+ entity: "doc",
57
+ status: row.kind,
58
+ validStatuses: [...DOC_KINDS],
59
+ rowId: row.id,
60
+ });
61
+ }
62
+ if (!isValidDocStatus(row.status)) {
63
+ throw new InvalidStatusError({
64
+ entity: "doc",
65
+ status: row.status,
66
+ validStatuses: [...DOC_STATUSES],
67
+ rowId: row.id,
68
+ });
69
+ }
70
+ // After guards, kind and status are narrowed to valid literal types
71
+ return {
72
+ id: row.id,
73
+ hash: row.hash,
74
+ kind: row.kind,
75
+ name: row.name,
76
+ title: row.title,
77
+ version: row.version,
78
+ status: row.status,
79
+ filePath: row.file_path,
80
+ parentDocId: row.parent_doc_id !== null ? row.parent_doc_id : null,
81
+ createdAt: parseDate(row.created_at, "created_at", row.id),
82
+ lockedAt: row.locked_at ? parseDate(row.locked_at, "locked_at", row.id) : null,
83
+ metadata: parseMetadata(row.metadata),
84
+ };
85
+ };
86
+ export const rowToDocLink = (row) => {
87
+ if (!isValidDocLinkType(row.link_type)) {
88
+ throw new InvalidStatusError({
89
+ entity: "doc_link",
90
+ status: row.link_type,
91
+ validStatuses: [...DOC_LINK_TYPES],
92
+ rowId: row.id,
93
+ });
94
+ }
95
+ return {
96
+ id: row.id,
97
+ fromDocId: row.from_doc_id,
98
+ toDocId: row.to_doc_id,
99
+ linkType: row.link_type,
100
+ createdAt: parseDate(row.created_at, "created_at", row.id),
101
+ };
102
+ };
103
+ export const rowToTaskDocLink = (row) => {
104
+ if (!isValidTaskDocLinkType(row.link_type)) {
105
+ throw new InvalidStatusError({
106
+ entity: "task_doc_link",
107
+ status: row.link_type,
108
+ validStatuses: [...TASK_DOC_LINK_TYPES],
109
+ rowId: row.id,
110
+ });
111
+ }
112
+ return {
113
+ id: row.id,
114
+ taskId: row.task_id,
115
+ docId: row.doc_id,
116
+ linkType: row.link_type,
117
+ createdAt: parseDate(row.created_at, "created_at", row.id),
118
+ };
119
+ };
120
+ export const rowToInvariant = (row) => {
121
+ if (!isValidInvariantEnforcement(row.enforcement)) {
122
+ throw new InvalidStatusError({
123
+ entity: "invariant",
124
+ status: row.enforcement,
125
+ validStatuses: [...INVARIANT_ENFORCEMENT_TYPES],
126
+ rowId: row.id,
127
+ });
128
+ }
129
+ if (!isValidInvariantStatus(row.status)) {
130
+ throw new InvalidStatusError({
131
+ entity: "invariant",
132
+ status: row.status,
133
+ validStatuses: [...INVARIANT_STATUSES],
134
+ rowId: row.id,
135
+ });
136
+ }
137
+ return {
138
+ id: row.id,
139
+ rule: row.rule,
140
+ enforcement: row.enforcement,
141
+ docId: row.doc_id,
142
+ subsystem: row.subsystem,
143
+ testRef: row.test_ref,
144
+ lintRule: row.lint_rule,
145
+ promptRef: row.prompt_ref,
146
+ status: row.status,
147
+ createdAt: parseDate(row.created_at, "created_at", row.id),
148
+ metadata: parseMetadata(row.metadata),
149
+ };
150
+ };
151
+ export const rowToInvariantCheck = (row) => {
152
+ return {
153
+ id: row.id,
154
+ invariantId: row.invariant_id,
155
+ passed: row.passed === 1,
156
+ details: row.details,
157
+ checkedAt: parseDate(row.checked_at, "checked_at", row.id),
158
+ durationMs: row.duration_ms,
159
+ };
160
+ };
161
+ //# sourceMappingURL=doc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc.js","sourceRoot":"","sources":["../../src/mappers/doc.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-learning.d.ts","sourceRoot":"","sources":["../../src/mappers/file-learning.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAChB,MAAM,yBAAyB,CAAA;AAGhC,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE9D;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,eAAe,KAAG,YAMvD,CAAA;AA8CF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,KAAG,OAQ9D,CAAA"}
1
+ {"version":3,"file":"file-learning.d.ts","sourceRoot":"","sources":["../../src/mappers/file-learning.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAChB,MAAM,yBAAyB,CAAA;AAIhC,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE9D;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,eAAe,KAAG,YAMvD,CAAA;AA8CF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,KAAG,OAQ9D,CAAA"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * File learning mappers - convert database rows to domain objects
3
3
  */
4
+ import { parseDate } from "./parse-date.js";
4
5
  /**
5
6
  * Convert a database row to a FileLearning domain object.
6
7
  */
@@ -9,7 +10,7 @@ export const rowToFileLearning = (row) => ({
9
10
  filePattern: row.file_pattern,
10
11
  note: row.note,
11
12
  taskId: row.task_id,
12
- createdAt: new Date(row.created_at)
13
+ createdAt: parseDate(row.created_at, "created_at", row.id)
13
14
  });
14
15
  /**
15
16
  * Simple glob pattern matching.
@@ -1 +1 @@
1
- {"version":3,"file":"file-learning.js","sourceRoot":"","sources":["../../src/mappers/file-learning.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAoB,EAAgB,EAAE,CAAC,CAAC;IACxE,EAAE,EAAE,GAAG,CAAC,EAAoB;IAC5B,WAAW,EAAE,GAAG,CAAC,YAAY;IAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,MAAM,EAAE,GAAG,CAAC,OAAO;IACnB,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;CACpC,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,CAAC,OAAe,EAAU,EAAE;IAC9C,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3B,oDAAoD;gBACpD,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBAC3B,yCAAyC;oBACzC,yEAAyE;oBACzE,KAAK,IAAI,UAAU,CAAA;oBACnB,CAAC,IAAI,CAAC,CAAA;gBACR,CAAC;qBAAM,CAAC;oBACN,oDAAoD;oBACpD,KAAK,IAAI,IAAI,CAAA;oBACb,CAAC,IAAI,CAAC,CAAA;gBACR,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,8BAA8B;gBAC9B,KAAK,IAAI,OAAO,CAAA;gBAChB,CAAC,EAAE,CAAA;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,KAAK,IAAI,MAAM,CAAA;YACf,CAAC,EAAE,CAAA;QACL,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACzM,KAAK,IAAI,IAAI,GAAG,IAAI,CAAA;YACpB,CAAC,EAAE,CAAA;QACL,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,IAAI,CAAA;YACb,CAAC,EAAE,CAAA;QACL,CAAC;IACH,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;AACtC,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,IAAY,EAAW,EAAE;IACvE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;QACxC,OAAO,OAAO,KAAK,IAAI,CAAA;IACzB,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"file-learning.js","sourceRoot":"","sources":["../../src/mappers/file-learning.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAK3C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAoB,EAAgB,EAAE,CAAC,CAAC;IACxE,EAAE,EAAE,GAAG,CAAC,EAAoB;IAC5B,WAAW,EAAE,GAAG,CAAC,YAAY;IAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,MAAM,EAAE,GAAG,CAAC,OAAO;IACnB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;CAC3D,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,CAAC,OAAe,EAAU,EAAE;IAC9C,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3B,oDAAoD;gBACpD,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBAC3B,yCAAyC;oBACzC,yEAAyE;oBACzE,KAAK,IAAI,UAAU,CAAA;oBACnB,CAAC,IAAI,CAAC,CAAA;gBACR,CAAC;qBAAM,CAAC;oBACN,oDAAoD;oBACpD,KAAK,IAAI,IAAI,CAAA;oBACb,CAAC,IAAI,CAAC,CAAA;gBACR,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,8BAA8B;gBAC9B,KAAK,IAAI,OAAO,CAAA;gBAChB,CAAC,EAAE,CAAA;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,KAAK,IAAI,MAAM,CAAA;YACf,CAAC,EAAE,CAAA;QACL,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACzM,KAAK,IAAI,IAAI,GAAG,IAAI,CAAA;YACpB,CAAC,EAAE,CAAA;QACL,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,IAAI,CAAA;YACb,CAAC,EAAE,CAAA;QACL,CAAC;IACH,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;AACtC,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,IAAY,EAAW,EAAE;IACvE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;QACxC,OAAO,OAAO,KAAK,IAAI,CAAA;IACzB,CAAC;AACH,CAAC,CAAA"}
@@ -1,17 +1,16 @@
1
1
  /**
2
2
  * @tx/core/mappers - Row to domain object conversion utilities
3
3
  */
4
+ export { parseDate } from "./parse-date.js";
4
5
  export { rowToTask, rowToDependency, isValidStatus, isValidTransition, TASK_STATUSES, VALID_TRANSITIONS, type TaskRow, type DependencyRow } from "./task.js";
5
- export { rowToLearning, isValidSourceType, float32ArrayToBuffer, LEARNING_SOURCE_TYPES, type LearningRow } from "./learning.js";
6
+ export { rowToLearning, rowToLearningWithoutEmbedding, isValidSourceType, float32ArrayToBuffer, LEARNING_SOURCE_TYPES, type LearningRow } from "./learning.js";
6
7
  export { rowToFileLearning, matchesPattern, type FileLearningRow } from "./file-learning.js";
7
8
  export { rowToAttempt, isValidOutcome, ATTEMPT_OUTCOMES, type AttemptRow } from "./attempt.js";
8
- export { rowToRun, generateRunId, serializeRun, RUN_STATUSES } from "./run.js";
9
- export { rowToAnchor, type AnchorRow } from "./anchor.js";
10
- export { rowToEdge, type EdgeRow } from "./edge.js";
11
- export { hashContent, rowToProcessedHash, serializeProcessedHash, rowToFileProgress, serializeFileProgress } from "./deduplication.js";
12
- export { rowToCandidate, isValidConfidence, isValidStatus as isValidCandidateStatus, isValidCategory, CANDIDATE_CONFIDENCES, CANDIDATE_CATEGORIES, CANDIDATE_STATUSES, type CandidateRow } from "./candidate.js";
13
- export { rowToTrackedProject, isValidTrackedSourceType, SOURCE_TYPES, type TrackedProjectRow } from "./tracked-project.js";
9
+ export { rowToRun, generateRunId, serializeRun, isValidRunStatus, RUN_STATUSES } from "./run.js";
14
10
  export { rowToWorker, isValidWorkerStatus, WORKER_STATUSES, type WorkerRow } from "./worker.js";
15
11
  export { rowToClaim, isValidClaimStatus, CLAIM_STATUSES, type ClaimRow } from "./claim.js";
16
12
  export { rowToOrchestratorState, isValidOrchestratorStatus, ORCHESTRATOR_STATUSES, type OrchestratorStateRow } from "./orchestrator-state.js";
13
+ export { normalizeContent, hashContent, rowToProcessedHash, serializeProcessedHash, rowToFileProgress, serializeFileProgress } from "./deduplication.js";
14
+ export { rowToTrackedProject, isValidTrackedSourceType, SOURCE_TYPES, type TrackedProjectRow } from "./tracked-project.js";
15
+ export { rowToDoc, rowToDocLink, rowToTaskDocLink, rowToInvariant, rowToInvariantCheck, isValidDocKind, isValidDocStatus, isValidDocLinkType, isValidTaskDocLinkType, isValidInvariantEnforcement, isValidInvariantStatus, DOC_KINDS, DOC_STATUSES, DOC_LINK_TYPES, TASK_DOC_LINK_TYPES, INVARIANT_ENFORCEMENT_TYPES, INVARIANT_STATUSES, type DocRow, type DocLinkRow, type TaskDocLinkRow, type InvariantRow, type InvariantCheckRow } from "./doc.js";
17
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mappers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,KAAK,OAAO,EACZ,KAAK,aAAa,EACnB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,WAAW,EACjB,MAAM,eAAe,CAAA;AAGtB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,YAAY,EACb,MAAM,UAAU,CAAA;AAGjB,OAAO,EACL,WAAW,EACX,KAAK,SAAS,EACf,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,SAAS,EACT,KAAK,OAAO,EACb,MAAM,WAAW,CAAA;AAGlB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,IAAI,sBAAsB,EACvC,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,KAAK,SAAS,EACf,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,KAAK,QAAQ,EACd,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mappers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG3C,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,KAAK,OAAO,EACZ,KAAK,aAAa,EACnB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACL,aAAa,EACb,6BAA6B,EAC7B,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,WAAW,EACjB,MAAM,eAAe,CAAA;AAGtB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACb,MAAM,UAAU,CAAA;AAGjB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,KAAK,SAAS,EACf,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,KAAK,QAAQ,EACd,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAA"}
@@ -1,30 +1,28 @@
1
1
  /**
2
2
  * @tx/core/mappers - Row to domain object conversion utilities
3
3
  */
4
+ // Shared utilities
5
+ export { parseDate } from "./parse-date.js";
4
6
  // Task mappers
5
7
  export { rowToTask, rowToDependency, isValidStatus, isValidTransition, TASK_STATUSES, VALID_TRANSITIONS } from "./task.js";
6
8
  // Learning mappers
7
- export { rowToLearning, isValidSourceType, float32ArrayToBuffer, LEARNING_SOURCE_TYPES } from "./learning.js";
9
+ export { rowToLearning, rowToLearningWithoutEmbedding, isValidSourceType, float32ArrayToBuffer, LEARNING_SOURCE_TYPES } from "./learning.js";
8
10
  // File learning mappers
9
11
  export { rowToFileLearning, matchesPattern } from "./file-learning.js";
10
12
  // Attempt mappers
11
13
  export { rowToAttempt, isValidOutcome, ATTEMPT_OUTCOMES } from "./attempt.js";
12
14
  // Run mappers
13
- export { rowToRun, generateRunId, serializeRun, RUN_STATUSES } from "./run.js";
14
- // Anchor mappers
15
- export { rowToAnchor } from "./anchor.js";
16
- // Edge mappers
17
- export { rowToEdge } from "./edge.js";
18
- // Deduplication mappers
19
- export { hashContent, rowToProcessedHash, serializeProcessedHash, rowToFileProgress, serializeFileProgress } from "./deduplication.js";
20
- // Candidate mappers
21
- export { rowToCandidate, isValidConfidence, isValidStatus as isValidCandidateStatus, isValidCategory, CANDIDATE_CONFIDENCES, CANDIDATE_CATEGORIES, CANDIDATE_STATUSES } from "./candidate.js";
22
- // TrackedProject mappers
23
- export { rowToTrackedProject, isValidTrackedSourceType, SOURCE_TYPES } from "./tracked-project.js";
15
+ export { rowToRun, generateRunId, serializeRun, isValidRunStatus, RUN_STATUSES } from "./run.js";
24
16
  // Worker mappers
25
17
  export { rowToWorker, isValidWorkerStatus, WORKER_STATUSES } from "./worker.js";
26
18
  // Claim mappers
27
19
  export { rowToClaim, isValidClaimStatus, CLAIM_STATUSES } from "./claim.js";
28
20
  // OrchestratorState mappers
29
21
  export { rowToOrchestratorState, isValidOrchestratorStatus, ORCHESTRATOR_STATUSES } from "./orchestrator-state.js";
22
+ // Deduplication mappers
23
+ export { normalizeContent, hashContent, rowToProcessedHash, serializeProcessedHash, rowToFileProgress, serializeFileProgress } from "./deduplication.js";
24
+ // TrackedProject mappers
25
+ export { rowToTrackedProject, isValidTrackedSourceType, SOURCE_TYPES } from "./tracked-project.js";
26
+ // Doc mappers
27
+ export { rowToDoc, rowToDocLink, rowToTaskDocLink, rowToInvariant, rowToInvariantCheck, isValidDocKind, isValidDocStatus, isValidDocLinkType, isValidTaskDocLinkType, isValidInvariantEnforcement, isValidInvariantStatus, DOC_KINDS, DOC_STATUSES, DOC_LINK_TYPES, TASK_DOC_LINK_TYPES, INVARIANT_ENFORCEMENT_TYPES, INVARIANT_STATUSES } from "./doc.js";
30
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mappers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAe;AACf,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EAGlB,MAAM,WAAW,CAAA;AAElB,mBAAmB;AACnB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,eAAe,CAAA;AAEtB,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,cAAc,EAEf,MAAM,oBAAoB,CAAA;AAE3B,kBAAkB;AAClB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAEjB,MAAM,cAAc,CAAA;AAErB,cAAc;AACd,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,YAAY,EACb,MAAM,UAAU,CAAA;AAEjB,iBAAiB;AACjB,OAAO,EACL,WAAW,EAEZ,MAAM,aAAa,CAAA;AAEpB,eAAe;AACf,OAAO,EACL,SAAS,EAEV,MAAM,WAAW,CAAA;AAElB,wBAAwB;AACxB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,oBAAoB,CAAA;AAE3B,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,IAAI,sBAAsB,EACvC,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAEnB,MAAM,gBAAgB,CAAA;AAEvB,yBAAyB;AACzB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EAEb,MAAM,sBAAsB,CAAA;AAE7B,iBAAiB;AACjB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,eAAe,EAEhB,MAAM,aAAa,CAAA;AAEpB,gBAAgB;AAChB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EAEf,MAAM,YAAY,CAAA;AAEnB,4BAA4B;AAC5B,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EAEtB,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mappers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,eAAe;AACf,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EAGlB,MAAM,WAAW,CAAA;AAElB,mBAAmB;AACnB,OAAO,EACL,aAAa,EACb,6BAA6B,EAC7B,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,eAAe,CAAA;AAEtB,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,cAAc,EAEf,MAAM,oBAAoB,CAAA;AAE3B,kBAAkB;AAClB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAEjB,MAAM,cAAc,CAAA;AAErB,cAAc;AACd,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACb,MAAM,UAAU,CAAA;AAEjB,iBAAiB;AACjB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,eAAe,EAEhB,MAAM,aAAa,CAAA;AAEpB,gBAAgB;AAChB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EAEf,MAAM,YAAY,CAAA;AAEnB,4BAA4B;AAC5B,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EAEtB,MAAM,yBAAyB,CAAA;AAEhC,wBAAwB;AACxB,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,oBAAoB,CAAA;AAE3B,yBAAyB;AACzB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EAEb,MAAM,sBAAsB,CAAA;AAE7B,cAAc;AACd,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAMnB,MAAM,UAAU,CAAA"}
@@ -2,8 +2,9 @@
2
2
  * Learning mappers - convert database rows to domain objects
3
3
  */
4
4
  import type { Learning, LearningSourceType, LearningRow } from "@jamesaphoenix/tx-types";
5
+ import { LEARNING_SOURCE_TYPES } from "@jamesaphoenix/tx-types";
5
6
  export type { LearningRow } from "@jamesaphoenix/tx-types";
6
- export { LEARNING_SOURCE_TYPES } from "@jamesaphoenix/tx-types";
7
+ export { LEARNING_SOURCE_TYPES };
7
8
  /**
8
9
  * Check if a string is a valid LearningSourceType.
9
10
  */
@@ -14,6 +15,13 @@ export declare const isValidSourceType: (s: string) => s is LearningSourceType;
14
15
  export declare const float32ArrayToBuffer: (arr: Float32Array) => Buffer;
15
16
  /**
16
17
  * Convert a database row to a Learning domain object.
18
+ * Validates source_type at runtime.
17
19
  */
18
20
  export declare const rowToLearning: (row: LearningRow) => Learning;
21
+ /**
22
+ * Convert a database row to a Learning domain object WITHOUT deserializing the embedding.
23
+ * Use this for code paths that discard the embedding (MCP serialization, API responses, BM25 search).
24
+ * Avoids allocating Float32Array buffers (~6KB per learning) that would be immediately GC'd.
25
+ */
26
+ export declare const rowToLearningWithoutEmbedding: (row: Omit<LearningRow, "embedding">) => Learning;
19
27
  //# sourceMappingURL=learning.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"learning.d.ts","sourceRoot":"","sources":["../../src/mappers/learning.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,QAAQ,EAER,kBAAkB,EAClB,WAAW,EACZ,MAAM,yBAAyB,CAAA;AAGhC,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,kBAGlD,CAAA;AAaD;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,YAAY,KAAG,MAExD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,WAAW,KAAG,QAY/C,CAAA"}
1
+ {"version":3,"file":"learning.d.ts","sourceRoot":"","sources":["../../src/mappers/learning.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,WAAW,EACZ,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AA6B/D,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAEhC;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,kBAGlD,CAAA;AA4BD;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,YAAY,KAAG,MAExD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,WAAW,KAAG,QAsBhD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,KAAK,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,KAAG,QAsBnF,CAAA"}
@@ -1,7 +1,34 @@
1
1
  /**
2
2
  * Learning mappers - convert database rows to domain objects
3
3
  */
4
- export { LEARNING_SOURCE_TYPES } from "@jamesaphoenix/tx-types";
4
+ import { Schema } from "effect";
5
+ import { LEARNING_SOURCE_TYPES } from "@jamesaphoenix/tx-types";
6
+ import { InvalidStatusError } from "../errors.js";
7
+ import { parseDate } from "./parse-date.js";
8
+ /**
9
+ * Schema for keywords - an array of strings.
10
+ * Used to validate JSON.parse output before casting to string[].
11
+ */
12
+ const KeywordsSchema = Schema.Array(Schema.String);
13
+ /**
14
+ * Safely parse and validate keywords JSON string.
15
+ * Returns empty array if parsing fails or validation fails.
16
+ */
17
+ const parseKeywords = (keywordsJson) => {
18
+ if (!keywordsJson)
19
+ return [];
20
+ try {
21
+ const parsed = JSON.parse(keywordsJson);
22
+ const result = Schema.decodeUnknownSync(KeywordsSchema)(parsed);
23
+ // Spread to convert readonly array to mutable array
24
+ return [...result];
25
+ }
26
+ catch {
27
+ // Return empty array on parse error or validation failure
28
+ return [];
29
+ }
30
+ };
31
+ export { LEARNING_SOURCE_TYPES };
5
32
  /**
6
33
  * Check if a string is a valid LearningSourceType.
7
34
  */
@@ -11,8 +38,22 @@ export const isValidSourceType = (s) => {
11
38
  };
12
39
  /**
13
40
  * Convert a SQLite BLOB (Buffer) to Float32Array.
41
+ *
42
+ * OPTIMIZATION: Uses a view on the existing buffer when byte offset is aligned
43
+ * to avoid allocating a copy. This significantly reduces memory usage when
44
+ * loading many learnings with embeddings (e.g., in RetrieverService.findWithEmbeddings).
45
+ *
46
+ * Float32Array requires 4-byte alignment. When the buffer's byteOffset is aligned,
47
+ * we create a view directly on the underlying ArrayBuffer. Otherwise, we fall back
48
+ * to creating a copy.
14
49
  */
15
50
  const bufferToFloat32Array = (buffer) => {
51
+ // Check if byte offset is 4-byte aligned (required for Float32Array)
52
+ if (buffer.byteOffset % 4 === 0) {
53
+ // Create a view directly on the buffer's ArrayBuffer - no copy!
54
+ return new Float32Array(buffer.buffer, buffer.byteOffset, buffer.byteLength / 4);
55
+ }
56
+ // Fallback: byte offset not aligned, must copy to a new ArrayBuffer
16
57
  const arrayBuffer = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
17
58
  return new Float32Array(arrayBuffer);
18
59
  };
@@ -24,18 +65,57 @@ export const float32ArrayToBuffer = (arr) => {
24
65
  };
25
66
  /**
26
67
  * Convert a database row to a Learning domain object.
68
+ * Validates source_type at runtime.
27
69
  */
28
- export const rowToLearning = (row) => ({
29
- id: row.id,
30
- content: row.content,
31
- sourceType: row.source_type,
32
- sourceRef: row.source_ref,
33
- createdAt: new Date(row.created_at),
34
- keywords: row.keywords ? JSON.parse(row.keywords) : [],
35
- category: row.category,
36
- usageCount: row.usage_count,
37
- lastUsedAt: row.last_used_at ? new Date(row.last_used_at) : null,
38
- outcomeScore: row.outcome_score,
39
- embedding: row.embedding ? bufferToFloat32Array(row.embedding) : null
40
- });
70
+ export const rowToLearning = (row) => {
71
+ if (!isValidSourceType(row.source_type)) {
72
+ throw new InvalidStatusError({
73
+ entity: "learning",
74
+ status: row.source_type,
75
+ validStatuses: LEARNING_SOURCE_TYPES,
76
+ rowId: row.id
77
+ });
78
+ }
79
+ return {
80
+ id: row.id,
81
+ content: row.content,
82
+ sourceType: row.source_type,
83
+ sourceRef: row.source_ref,
84
+ createdAt: parseDate(row.created_at, "created_at", row.id),
85
+ keywords: parseKeywords(row.keywords),
86
+ category: row.category,
87
+ usageCount: row.usage_count,
88
+ lastUsedAt: row.last_used_at ? parseDate(row.last_used_at, "last_used_at", row.id) : null,
89
+ outcomeScore: row.outcome_score,
90
+ embedding: row.embedding ? bufferToFloat32Array(row.embedding) : null
91
+ };
92
+ };
93
+ /**
94
+ * Convert a database row to a Learning domain object WITHOUT deserializing the embedding.
95
+ * Use this for code paths that discard the embedding (MCP serialization, API responses, BM25 search).
96
+ * Avoids allocating Float32Array buffers (~6KB per learning) that would be immediately GC'd.
97
+ */
98
+ export const rowToLearningWithoutEmbedding = (row) => {
99
+ if (!isValidSourceType(row.source_type)) {
100
+ throw new InvalidStatusError({
101
+ entity: "learning",
102
+ status: row.source_type,
103
+ validStatuses: LEARNING_SOURCE_TYPES,
104
+ rowId: row.id
105
+ });
106
+ }
107
+ return {
108
+ id: row.id,
109
+ content: row.content,
110
+ sourceType: row.source_type,
111
+ sourceRef: row.source_ref,
112
+ createdAt: parseDate(row.created_at, "created_at", row.id),
113
+ keywords: parseKeywords(row.keywords),
114
+ category: row.category,
115
+ usageCount: row.usage_count,
116
+ lastUsedAt: row.last_used_at ? parseDate(row.last_used_at, "last_used_at", row.id) : null,
117
+ outcomeScore: row.outcome_score,
118
+ embedding: null
119
+ };
120
+ };
41
121
  //# sourceMappingURL=learning.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"learning.js","sourceRoot":"","sources":["../../src/mappers/learning.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAA2B,EAAE;IACtE,MAAM,OAAO,GAAsB,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IAC/E,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAgB,EAAE;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CACrC,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CACtC,CAAA;IACD,OAAO,IAAI,YAAY,CAAC,WAAW,CAAC,CAAA;AACtC,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAiB,EAAU,EAAE;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;AAChE,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAgB,EAAY,EAAE,CAAC,CAAC;IAC5D,EAAE,EAAE,GAAG,CAAC,EAAgB;IACxB,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,UAAU,EAAE,GAAG,CAAC,WAAiC;IACjD,SAAS,EAAE,GAAG,CAAC,UAAU;IACzB,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;IACnC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;IACtD,QAAQ,EAAE,GAAG,CAAC,QAAQ;IACtB,UAAU,EAAE,GAAG,CAAC,WAAW;IAC3B,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;IAChE,YAAY,EAAE,GAAG,CAAC,aAAa;IAC/B,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;CACtE,CAAC,CAAA"}
1
+ {"version":3,"file":"learning.js","sourceRoot":"","sources":["../../src/mappers/learning.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export declare const ORCHESTRATOR_STATUSES: readonly ["stopped", "starting", "ru
27
27
  export declare const isValidOrchestratorStatus: (s: string) => s is OrchestratorStatus;
28
28
  /**
29
29
  * Convert a database row to an OrchestratorState domain object.
30
- * Throws if status is invalid.
30
+ * Throws InvalidStatusError if status is invalid.
31
31
  */
32
32
  export declare const rowToOrchestratorState: (row: OrchestratorStateRow) => OrchestratorState;
33
33
  //# sourceMappingURL=orchestrator-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-state.d.ts","sourceRoot":"","sources":["../../src/mappers/orchestrator-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEjF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,gBAAgB,EAAE,MAAM,CAAA;IACxB,0BAA0B,EAAE,MAAM,CAAA;IAClC,0BAA0B,EAAE,MAAM,CAAA;IAClC,sBAAsB,EAAE,MAAM,CAAA;IAC9B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,yDAA0D,CAAA;AAE5F;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,kBAE1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,oBAAoB,KAAG,iBAelE,CAAA"}
1
+ {"version":3,"file":"orchestrator-state.d.ts","sourceRoot":"","sources":["../../src/mappers/orchestrator-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEjF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,gBAAgB,EAAE,MAAM,CAAA;IACxB,0BAA0B,EAAE,MAAM,CAAA;IAClC,0BAA0B,EAAE,MAAM,CAAA;IAClC,sBAAsB,EAAE,MAAM,CAAA;IAC9B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,yDAA0D,CAAA;AAE5F;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,kBAE1D,CAAA;AAqBD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,oBAAoB,KAAG,iBAoBlE,CAAA"}