@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,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,10 +1,19 @@
1
1
  /**
2
2
  * Edge mappers - convert database rows to domain objects
3
3
  */
4
- import type { Edge, EdgeRow } from "@jamesaphoenix/tx-types";
4
+ import type { Edge, EdgeType, NodeType, EdgeRow } from "@jamesaphoenix/tx-types";
5
5
  export type { EdgeRow } from "@jamesaphoenix/tx-types";
6
+ /**
7
+ * Check if a string is a valid EdgeType.
8
+ */
9
+ export declare const isValidEdgeType: (s: string) => s is EdgeType;
10
+ /**
11
+ * Check if a string is a valid NodeType.
12
+ */
13
+ export declare const isValidNodeType: (s: string) => s is NodeType;
6
14
  /**
7
15
  * Convert a database row to an Edge domain object.
16
+ * Validates edge_type, source_type, and target_type at runtime.
8
17
  */
9
18
  export declare const rowToEdge: (row: EdgeRow) => Edge;
10
19
  //# sourceMappingURL=edge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/mappers/edge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,IAAI,EAIJ,OAAO,EACR,MAAM,yBAAyB,CAAA;AAGhC,YAAY,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,KAAG,IAWvC,CAAA"}
1
+ {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/mappers/edge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACR,MAAM,yBAAyB,CAAA;AAMhC,YAAY,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAsBtD;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,QAEhD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,QAEhD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,KAAG,IAqCxC,CAAA"}
@@ -1,19 +1,81 @@
1
1
  /**
2
2
  * Edge mappers - convert database rows to domain objects
3
3
  */
4
+ import { Schema } from "effect";
5
+ import { EDGE_TYPES, NODE_TYPES } from "@jamesaphoenix/tx-types";
6
+ import { InvalidStatusError } from "../errors.js";
7
+ import { parseDate } from "./parse-date.js";
8
+ /**
9
+ * Schema for metadata - a record of string keys to unknown values.
10
+ */
11
+ const MetadataSchema = Schema.Record({ key: Schema.String, value: Schema.Unknown });
12
+ /**
13
+ * Safely parse and validate metadata JSON string.
14
+ * Returns empty object if parsing fails or validation fails.
15
+ */
16
+ const parseMetadata = (metadataJson) => {
17
+ if (!metadataJson)
18
+ return {};
19
+ try {
20
+ const parsed = JSON.parse(metadataJson);
21
+ return Schema.decodeUnknownSync(MetadataSchema)(parsed);
22
+ }
23
+ catch {
24
+ return {};
25
+ }
26
+ };
27
+ /**
28
+ * Check if a string is a valid EdgeType.
29
+ */
30
+ export const isValidEdgeType = (s) => {
31
+ return EDGE_TYPES.includes(s);
32
+ };
33
+ /**
34
+ * Check if a string is a valid NodeType.
35
+ */
36
+ export const isValidNodeType = (s) => {
37
+ return NODE_TYPES.includes(s);
38
+ };
4
39
  /**
5
40
  * Convert a database row to an Edge domain object.
41
+ * Validates edge_type, source_type, and target_type at runtime.
6
42
  */
7
- export const rowToEdge = (row) => ({
8
- id: row.id,
9
- edgeType: row.edge_type,
10
- sourceType: row.source_type,
11
- sourceId: row.source_id,
12
- targetType: row.target_type,
13
- targetId: row.target_id,
14
- weight: row.weight,
15
- metadata: row.metadata ? JSON.parse(row.metadata) : {},
16
- createdAt: new Date(row.created_at),
17
- invalidatedAt: row.invalidated_at ? new Date(row.invalidated_at) : null
18
- });
43
+ export const rowToEdge = (row) => {
44
+ if (!isValidEdgeType(row.edge_type)) {
45
+ throw new InvalidStatusError({
46
+ entity: "edge",
47
+ status: row.edge_type,
48
+ validStatuses: EDGE_TYPES,
49
+ rowId: row.id
50
+ });
51
+ }
52
+ if (!isValidNodeType(row.source_type)) {
53
+ throw new InvalidStatusError({
54
+ entity: "edge.source_type",
55
+ status: row.source_type,
56
+ validStatuses: NODE_TYPES,
57
+ rowId: row.id
58
+ });
59
+ }
60
+ if (!isValidNodeType(row.target_type)) {
61
+ throw new InvalidStatusError({
62
+ entity: "edge.target_type",
63
+ status: row.target_type,
64
+ validStatuses: NODE_TYPES,
65
+ rowId: row.id
66
+ });
67
+ }
68
+ return {
69
+ id: row.id,
70
+ edgeType: row.edge_type,
71
+ sourceType: row.source_type,
72
+ sourceId: row.source_id,
73
+ targetType: row.target_type,
74
+ targetId: row.target_id,
75
+ weight: row.weight,
76
+ metadata: parseMetadata(row.metadata),
77
+ createdAt: parseDate(row.created_at, "created_at", row.id),
78
+ invalidatedAt: row.invalidated_at ? parseDate(row.invalidated_at, "invalidated_at", row.id) : null
79
+ };
80
+ };
19
81
  //# sourceMappingURL=edge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"edge.js","sourceRoot":"","sources":["../../src/mappers/edge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAY,EAAQ,EAAE,CAAC,CAAC;IAChD,EAAE,EAAE,GAAG,CAAC,EAAY;IACpB,QAAQ,EAAE,GAAG,CAAC,SAAqB;IACnC,UAAU,EAAE,GAAG,CAAC,WAAuB;IACvC,QAAQ,EAAE,GAAG,CAAC,SAAS;IACvB,UAAU,EAAE,GAAG,CAAC,WAAuB;IACvC,QAAQ,EAAE,GAAG,CAAC,SAAS;IACvB,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;IACtD,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;IACnC,aAAa,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;CACxE,CAAC,CAAA"}
1
+ {"version":3,"file":"edge.js","sourceRoot":"","sources":["../../src/mappers/edge.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"}