@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
@@ -1 +1 @@
1
- {"version":3,"file":"edge-service.js","sourceRoot":"","sources":["../../src/services/edge-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edge-service.js","sourceRoot":"","sources":["../../src/services/edge-service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,72 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
2
  import { EmbeddingUnavailableError } from "../errors.js";
3
+ interface LlamaEmbeddingResult {
4
+ readonly vector: readonly number[];
5
+ }
6
+ interface LlamaEmbeddingContext {
7
+ getEmbeddingFor(text: string): Promise<LlamaEmbeddingResult>;
8
+ }
9
+ interface LlamaModel {
10
+ createEmbeddingContext(options?: {
11
+ threads?: number;
12
+ }): Promise<LlamaEmbeddingContext>;
13
+ }
14
+ interface Llama {
15
+ loadModel(options: {
16
+ modelPath: string;
17
+ }): Promise<LlamaModel>;
18
+ }
19
+ interface OpenAIEmbeddingResponse {
20
+ data: Array<{
21
+ embedding: number[];
22
+ index: number;
23
+ }>;
24
+ usage?: {
25
+ prompt_tokens?: number;
26
+ total_tokens?: number;
27
+ };
28
+ }
29
+ interface OpenAIClient {
30
+ embeddings: {
31
+ create(params: {
32
+ model: string;
33
+ input: string | string[];
34
+ }): Promise<OpenAIEmbeddingResponse>;
35
+ };
36
+ }
37
+ /**
38
+ * Validates that an embedding vector has the expected number of dimensions.
39
+ * This prevents silent data corruption when switching embedding providers
40
+ * (e.g., 256-dim local to 1536-dim OpenAI) without re-embedding existing data.
41
+ *
42
+ * @internal Exported for testing purposes
43
+ */
44
+ export declare const validateEmbeddingDimensions: (vector: Float32Array, expectedDimensions: number) => Effect.Effect<Float32Array, EmbeddingUnavailableError>;
45
+ /**
46
+ * Validates that an object conforms to the Llama interface we depend on.
47
+ * This guards against API changes in node-llama-cpp breaking at runtime.
48
+ * @internal Exported for testing purposes
49
+ */
50
+ export declare function isValidLlama(obj: unknown): obj is Llama;
51
+ /**
52
+ * Validates that an object conforms to the LlamaModel interface we depend on.
53
+ * @internal Exported for testing purposes
54
+ */
55
+ export declare function isValidLlamaModel(obj: unknown): obj is LlamaModel;
56
+ /**
57
+ * Validates that an object conforms to the LlamaEmbeddingContext interface we depend on.
58
+ * @internal Exported for testing purposes
59
+ */
60
+ export declare function isValidLlamaEmbeddingContext(obj: unknown): obj is LlamaEmbeddingContext;
61
+ /**
62
+ * Validates that an object conforms to the OpenAIClient interface we depend on.
63
+ * This guards against API changes in the openai package breaking at runtime.
64
+ * @internal Exported for testing purposes
65
+ */
66
+ export declare function isValidOpenAIClient(obj: unknown): obj is OpenAIClient;
3
67
  declare const EmbeddingService_base: Context.TagClass<EmbeddingService, "EmbeddingService", {
4
- /** Embed a single text string */
5
- readonly embed: (text: string) => Effect.Effect<Float32Array, EmbeddingUnavailableError>;
68
+ /** Embed a single text string. Mode "doc" (default) for stored documents, "query" for search queries. */
69
+ readonly embed: (text: string, mode?: "doc" | "query") => Effect.Effect<Float32Array, EmbeddingUnavailableError>;
6
70
  /** Embed multiple texts in batch */
7
71
  readonly embedBatch: (texts: readonly string[]) => Effect.Effect<readonly Float32Array[], EmbeddingUnavailableError>;
8
72
  /** Check if embedding functionality is available */
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-service.d.ts","sourceRoot":"","sources":["../../src/services/embedding-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAuB,MAAM,QAAQ,CAAA;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;;IA6DpD,iCAAiC;oBACjB,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACxF,oCAAoC;yBACf,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,yBAAyB,CAAC;IACpH,oDAAoD;0BAC9B,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IAClD,4DAA4D;yBACvC,MAAM;;AAhB/B;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,qBAYnC;CAAG;AAEN;;;GAGG;AACH,eAAO,MAAM,oBAAoB,6CAQhC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,6CAkGhC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,iEAiGlC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,2EAgDhC,CAAA;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IAEvD;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;IAEpF;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAE3B;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,cAAc,KAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CA8CxF,CAAA"}
1
+ {"version":3,"file":"embedding-service.d.ts","sourceRoot":"","sources":["../../src/services/embedding-service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  import { Context, Effect, Layer, Ref, Config, Option } from "effect";
2
2
  import { EmbeddingUnavailableError } from "../errors.js";
3
+ /**
4
+ * Dimensions for embeddinggemma-300M GGUF model used by EmbeddingServiceLive.
5
+ * @see https://huggingface.co/ggml-org/embeddinggemma-300M-GGUF
6
+ */
7
+ const LLAMA_EMBEDDING_DIMENSIONS = 768;
3
8
  /**
4
9
  * Model dimensions for OpenAI text-embedding-3 models.
5
10
  * @see https://platform.openai.com/docs/models/embeddings
@@ -9,6 +14,72 @@ const OPENAI_MODEL_DIMENSIONS = {
9
14
  "text-embedding-3-large": 3072,
10
15
  "text-embedding-ada-002": 1536 // Legacy model
11
16
  };
17
+ // =============================================================================
18
+ // Dimension Validation
19
+ // =============================================================================
20
+ /**
21
+ * Validates that an embedding vector has the expected number of dimensions.
22
+ * This prevents silent data corruption when switching embedding providers
23
+ * (e.g., 256-dim local to 1536-dim OpenAI) without re-embedding existing data.
24
+ *
25
+ * @internal Exported for testing purposes
26
+ */
27
+ export const validateEmbeddingDimensions = (vector, expectedDimensions) => {
28
+ if (vector.length !== expectedDimensions) {
29
+ return Effect.fail(new EmbeddingUnavailableError({
30
+ reason: `Embedding dimension mismatch: expected ${expectedDimensions}, got ${vector.length}. This may indicate a provider change without re-embedding.`
31
+ }));
32
+ }
33
+ return Effect.succeed(vector);
34
+ };
35
+ // =============================================================================
36
+ // Runtime Interface Validators
37
+ // =============================================================================
38
+ /**
39
+ * Validates that an object conforms to the Llama interface we depend on.
40
+ * This guards against API changes in node-llama-cpp breaking at runtime.
41
+ * @internal Exported for testing purposes
42
+ */
43
+ export function isValidLlama(obj) {
44
+ return (obj !== null &&
45
+ typeof obj === "object" &&
46
+ "loadModel" in obj &&
47
+ typeof obj.loadModel === "function");
48
+ }
49
+ /**
50
+ * Validates that an object conforms to the LlamaModel interface we depend on.
51
+ * @internal Exported for testing purposes
52
+ */
53
+ export function isValidLlamaModel(obj) {
54
+ return (obj !== null &&
55
+ typeof obj === "object" &&
56
+ "createEmbeddingContext" in obj &&
57
+ typeof obj.createEmbeddingContext === "function");
58
+ }
59
+ /**
60
+ * Validates that an object conforms to the LlamaEmbeddingContext interface we depend on.
61
+ * @internal Exported for testing purposes
62
+ */
63
+ export function isValidLlamaEmbeddingContext(obj) {
64
+ return (obj !== null &&
65
+ typeof obj === "object" &&
66
+ "getEmbeddingFor" in obj &&
67
+ typeof obj.getEmbeddingFor === "function");
68
+ }
69
+ /**
70
+ * Validates that an object conforms to the OpenAIClient interface we depend on.
71
+ * This guards against API changes in the openai package breaking at runtime.
72
+ * @internal Exported for testing purposes
73
+ */
74
+ export function isValidOpenAIClient(obj) {
75
+ return (obj !== null &&
76
+ typeof obj === "object" &&
77
+ "embeddings" in obj &&
78
+ typeof obj.embeddings === "object" &&
79
+ obj.embeddings !== null &&
80
+ "create" in obj.embeddings &&
81
+ typeof obj.embeddings.create === "function");
82
+ }
12
83
  /**
13
84
  * EmbeddingService provides vector embeddings for text using local models.
14
85
  *
@@ -55,23 +126,41 @@ export const EmbeddingServiceLive = Layer.scoped(EmbeddingService, Effect.gen(fu
55
126
  },
56
127
  catch: () => new EmbeddingUnavailableError({ reason: "node-llama-cpp not installed" })
57
128
  });
58
- // Get llama instance
59
- const llama = yield* Effect.tryPromise({
129
+ // Get llama instance with runtime validation
130
+ const llamaRaw = yield* Effect.tryPromise({
60
131
  try: () => nodeLlamaCpp.getLlama(),
61
132
  catch: (e) => new EmbeddingUnavailableError({ reason: `Failed to initialize llama: ${String(e)}` })
62
133
  });
134
+ if (!isValidLlama(llamaRaw)) {
135
+ return yield* Effect.fail(new EmbeddingUnavailableError({
136
+ reason: "node-llama-cpp getLlama() returned incompatible interface - missing loadModel method"
137
+ }));
138
+ }
139
+ const llama = llamaRaw;
63
140
  // Load model - uses HuggingFace model spec format
64
- const model = yield* Effect.tryPromise({
141
+ const modelRaw = yield* Effect.tryPromise({
65
142
  try: () => llama.loadModel({
66
143
  modelPath: "hf:ggml-org/embeddinggemma-300M-GGUF/embeddinggemma-300M-Q8_0.gguf"
67
144
  }),
68
145
  catch: (e) => new EmbeddingUnavailableError({ reason: `Failed to load model: ${String(e)}` })
69
146
  });
147
+ if (!isValidLlamaModel(modelRaw)) {
148
+ return yield* Effect.fail(new EmbeddingUnavailableError({
149
+ reason: "node-llama-cpp loadModel() returned incompatible interface - missing createEmbeddingContext method"
150
+ }));
151
+ }
152
+ const model = modelRaw;
70
153
  // Create embedding context
71
- const context = yield* Effect.tryPromise({
154
+ const contextRaw = yield* Effect.tryPromise({
72
155
  try: () => model.createEmbeddingContext({ threads: 4 }),
73
156
  catch: (e) => new EmbeddingUnavailableError({ reason: `Failed to create embedding context: ${String(e)}` })
74
157
  });
158
+ if (!isValidLlamaEmbeddingContext(contextRaw)) {
159
+ return yield* Effect.fail(new EmbeddingUnavailableError({
160
+ reason: "node-llama-cpp createEmbeddingContext() returned incompatible interface - missing getEmbeddingFor method"
161
+ }));
162
+ }
163
+ const context = contextRaw;
75
164
  yield* Ref.set(stateRef, { context, lastActivity: Date.now() });
76
165
  return context;
77
166
  });
@@ -85,13 +174,14 @@ export const EmbeddingServiceLive = Layer.scoped(EmbeddingService, Effect.gen(fu
85
174
  */
86
175
  const formatDoc = (text) => `text: ${text}`;
87
176
  return {
88
- embed: (text) => Effect.gen(function* () {
177
+ embed: (text, mode = "doc") => Effect.gen(function* () {
89
178
  const ctx = yield* ensureContext;
179
+ const formatted = mode === "query" ? formatQuery(text) : formatDoc(text);
90
180
  const result = yield* Effect.tryPromise({
91
- try: () => ctx.getEmbeddingFor(formatQuery(text)),
181
+ try: () => ctx.getEmbeddingFor(formatted),
92
182
  catch: (e) => new EmbeddingUnavailableError({ reason: `Embedding failed: ${String(e)}` })
93
183
  });
94
- return new Float32Array(result.vector);
184
+ return yield* validateEmbeddingDimensions(new Float32Array(result.vector), LLAMA_EMBEDDING_DIMENSIONS);
95
185
  }),
96
186
  embedBatch: (texts) => Effect.gen(function* () {
97
187
  const ctx = yield* ensureContext;
@@ -102,12 +192,13 @@ export const EmbeddingServiceLive = Layer.scoped(EmbeddingService, Effect.gen(fu
102
192
  catch: (e) => new EmbeddingUnavailableError({ reason: `Batch embedding failed: ${String(e)}` })
103
193
  });
104
194
  yield* Ref.update(stateRef, s => ({ ...s, lastActivity: Date.now() }));
105
- results.push(new Float32Array(result.vector));
195
+ const validated = yield* validateEmbeddingDimensions(new Float32Array(result.vector), LLAMA_EMBEDDING_DIMENSIONS);
196
+ results.push(validated);
106
197
  }
107
198
  return results;
108
199
  }),
109
200
  isAvailable: () => Effect.succeed(true),
110
- dimensions: 256
201
+ dimensions: LLAMA_EMBEDDING_DIMENSIONS
111
202
  };
112
203
  }));
113
204
  /**
@@ -146,11 +237,17 @@ export const EmbeddingServiceOpenAI = Layer.effect(EmbeddingService, Effect.gen(
146
237
  reason: "openai package is not installed"
147
238
  })
148
239
  });
149
- client = new OpenAI({ apiKey });
240
+ const clientRaw = new OpenAI({ apiKey });
241
+ if (!isValidOpenAIClient(clientRaw)) {
242
+ return yield* Effect.fail(new EmbeddingUnavailableError({
243
+ reason: "OpenAI SDK returned incompatible interface - missing embeddings.create method"
244
+ }));
245
+ }
246
+ client = clientRaw;
150
247
  return client;
151
248
  });
152
249
  return {
153
- embed: (text) => Effect.gen(function* () {
250
+ embed: (text, _mode = "doc") => Effect.gen(function* () {
154
251
  const openai = yield* ensureClient;
155
252
  const response = yield* Effect.tryPromise({
156
253
  try: () => openai.embeddings.create({
@@ -166,7 +263,7 @@ export const EmbeddingServiceOpenAI = Layer.effect(EmbeddingService, Effect.gen(
166
263
  reason: "OpenAI returned empty embedding"
167
264
  }));
168
265
  }
169
- return new Float32Array(response.data[0].embedding);
266
+ return yield* validateEmbeddingDimensions(new Float32Array(response.data[0].embedding), dimensions);
170
267
  }),
171
268
  embedBatch: (texts) => Effect.gen(function* () {
172
269
  if (texts.length === 0) {
@@ -185,7 +282,12 @@ export const EmbeddingServiceOpenAI = Layer.effect(EmbeddingService, Effect.gen(
185
282
  });
186
283
  // Sort by index to ensure correct order
187
284
  const sorted = [...response.data].sort((a, b) => a.index - b.index);
188
- return sorted.map(item => new Float32Array(item.embedding));
285
+ const results = [];
286
+ for (const item of sorted) {
287
+ const validated = yield* validateEmbeddingDimensions(new Float32Array(item.embedding), dimensions);
288
+ results.push(validated);
289
+ }
290
+ return results;
189
291
  }),
190
292
  isAvailable: () => Effect.succeed(true),
191
293
  dimensions
@@ -280,20 +382,31 @@ export const EmbeddingServiceAuto = Layer.unwrapEffect(Effect.gen(function* () {
280
382
  export const createEmbedderLayer = (config) => {
281
383
  const embedderName = config.name ?? "custom-embedder";
282
384
  return Layer.succeed(EmbeddingService, {
283
- embed: (text) => Effect.tryPromise({
284
- try: () => config.embed(text),
285
- catch: (error) => new EmbeddingUnavailableError({
286
- reason: `${embedderName} embed failed: ${String(error)}`
287
- })
385
+ embed: (text, _mode = "doc") => Effect.gen(function* () {
386
+ const vector = yield* Effect.tryPromise({
387
+ try: () => config.embed(text),
388
+ catch: (error) => new EmbeddingUnavailableError({
389
+ reason: `${embedderName} embed failed: ${String(error)}`
390
+ })
391
+ });
392
+ return yield* validateEmbeddingDimensions(vector, config.dimensions);
288
393
  }),
289
394
  embedBatch: (texts) => {
290
395
  // Use custom batch implementation if provided
291
396
  if (config.embedBatch) {
292
- return Effect.tryPromise({
293
- try: () => config.embedBatch(texts),
294
- catch: (error) => new EmbeddingUnavailableError({
295
- reason: `${embedderName} embedBatch failed: ${String(error)}`
296
- })
397
+ return Effect.gen(function* () {
398
+ const vectors = yield* Effect.tryPromise({
399
+ try: () => config.embedBatch(texts),
400
+ catch: (error) => new EmbeddingUnavailableError({
401
+ reason: `${embedderName} embedBatch failed: ${String(error)}`
402
+ })
403
+ });
404
+ const results = [];
405
+ for (const vector of vectors) {
406
+ const validated = yield* validateEmbeddingDimensions(vector, config.dimensions);
407
+ results.push(validated);
408
+ }
409
+ return results;
297
410
  });
298
411
  }
299
412
  // Fall back to sequential embed calls
@@ -306,7 +419,8 @@ export const createEmbedderLayer = (config) => {
306
419
  reason: `${embedderName} embed failed: ${String(error)}`
307
420
  })
308
421
  });
309
- results.push(embedding);
422
+ const validated = yield* validateEmbeddingDimensions(embedding, config.dimensions);
423
+ results.push(validated);
310
424
  }
311
425
  return results;
312
426
  });
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-service.js","sourceRoot":"","sources":["../../src/services/embedding-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedding-service.js","sourceRoot":"","sources":["../../src/services/embedding-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-learning-service.d.ts","sourceRoot":"","sources":["../../src/services/file-learning-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;;qBAK/D,CAAC,KAAK,EAAE,uBAAuB,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,GAAG,aAAa,CAAC;kBACnG,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,yBAAyB,GAAG,aAAa,CAAC;qBACnF,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,yBAAyB,GAAG,aAAa,CAAC;qBAC9E,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,aAAa,CAAC;qBAC3D,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,aAAa,CAAC;oBACxE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;;AAR9D,qBAAa,mBAAoB,SAAQ,wBAUtC;CAAG;AAEN,eAAO,MAAM,uBAAuB,iEA8CnC,CAAA"}
1
+ {"version":3,"file":"file-learning-service.d.ts","sourceRoot":"","sources":["../../src/services/file-learning-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;;qBAQ/D,CAAC,KAAK,EAAE,uBAAuB,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,GAAG,aAAa,CAAC;kBACnG,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,yBAAyB,GAAG,aAAa,CAAC;qBACnF,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,yBAAyB,GAAG,aAAa,CAAC;qBAC9E,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,aAAa,CAAC;qBAC3D,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,aAAa,CAAC;oBACxE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;;AAR9D,qBAAa,mBAAoB,SAAQ,wBAUtC;CAAG;AAEN,eAAO,MAAM,uBAAuB,iEA+CnC,CAAA"}
@@ -1,23 +1,24 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
2
  import { FileLearningRepository } from "../repo/file-learning-repo.js";
3
3
  import { FileLearningNotFoundError, ValidationError } from "../errors.js";
4
+ /** Strips null bytes (\0) which cause C API truncation, JSON issues, and terminal corruption. */
5
+ const stripNullBytes = (s) => s.replace(/\0/g, "");
4
6
  export class FileLearningService extends Context.Tag("FileLearningService")() {
5
7
  }
6
8
  export const FileLearningServiceLive = Layer.effect(FileLearningService, Effect.gen(function* () {
7
9
  const repo = yield* FileLearningRepository;
8
10
  return {
9
11
  create: (input) => Effect.gen(function* () {
10
- if (!input.filePattern || input.filePattern.trim().length === 0) {
12
+ const filePattern = stripNullBytes(input.filePattern).trim();
13
+ const note = stripNullBytes(input.note).trim();
14
+ if (filePattern.length === 0) {
11
15
  return yield* Effect.fail(new ValidationError({ reason: "File pattern is required" }));
12
16
  }
13
- if (!input.note || input.note.trim().length === 0) {
17
+ if (note.length === 0) {
14
18
  return yield* Effect.fail(new ValidationError({ reason: "Note is required" }));
15
19
  }
16
- return yield* repo.insert({
17
- ...input,
18
- filePattern: input.filePattern.trim(),
19
- note: input.note.trim()
20
- });
20
+ const taskId = input.taskId != null ? stripNullBytes(input.taskId).trim() || null : null;
21
+ return yield* repo.insert({ filePattern, note, taskId });
21
22
  }),
22
23
  get: (id) => Effect.gen(function* () {
23
24
  const learning = yield* repo.findById(id);
@@ -1 +1 @@
1
- {"version":3,"file":"file-learning-service.js","sourceRoot":"","sources":["../../src/services/file-learning-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAiB,MAAM,cAAc,CAAA;AAGxF,MAAM,OAAO,mBAAoB,SAAQ,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAUxE;CAAG;AAEN,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC,MAAM,CACjD,mBAAmB,EACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAA;IAE1C,OAAO;QACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAA;YACxF,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAA;YAChF,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBACxB,GAAG,KAAK;gBACR,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;gBACrC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;aACxB,CAAC,CAAA;QACJ,CAAC,CAAC;QAEJ,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;YAClE,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAC;QAEJ,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;YAClE,CAAC;YACD,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACxB,CAAC,CAAC;QAEJ,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;QAE5B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAEvC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE;KAC1B,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
1
+ {"version":3,"file":"file-learning-service.js","sourceRoot":"","sources":["../../src/services/file-learning-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-watcher-service.d.ts","sourceRoot":"","sources":["../../src/services/file-watcher-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACtD,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,cAAc,CAAA;AAErB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC;;IAmCG;;;;;;;;OAQG;oBACa,CACd,MAAM,EAAE,iBAAiB,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,0BAA0B,GAAG,gBAAgB,CAAC;IAEvE;;;;;;OAMG;mBACY,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,CAAC;IAEnF;;;;OAIG;wBACiB,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IAEhD;;;;;OAKG;8BACuB,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,CAAC;IAEhE;;;;;;OAMG;4BACqB,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnE;;;;OAIG;qBACc,MAAM,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;;AApF3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,kBAAmB,SAAQ,uBAwDrC;CAAG;AAEN;;;GAGG;AACH,eAAO,MAAM,sBAAsB,+CAqBlC,CAAA;AAsED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,0DAmOlC,CAAA"}
1
+ {"version":3,"file":"file-watcher-service.d.ts","sourceRoot":"","sources":["../../src/services/file-watcher-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACtD,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,cAAc,CAAA;AAErB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC;;IAmCG;;;;;;;;OAQG;oBACa,CACd,MAAM,EAAE,iBAAiB,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,0BAA0B,GAAG,gBAAgB,CAAC;IAEvE;;;;;;OAMG;mBACY,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,CAAC;IAEnF;;;;OAIG;wBACiB,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IAEhD;;;;;OAKG;8BACuB,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,CAAC;IAEhE;;;;;;OAMG;4BACqB,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnE;;;;OAIG;qBACc,MAAM,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;;AApF3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,kBAAmB,SAAQ,uBAwDrC;CAAG;AAEN;;;GAGG;AACH,eAAO,MAAM,sBAAsB,+CAqBlC,CAAA;AAwED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,0DA0RlC,CAAA"}
@@ -120,23 +120,34 @@ export const FileWatcherServiceLive = Layer.scoped(FileWatcherService, Effect.ge
120
120
  });
121
121
  // Create the event queue for delivering file events
122
122
  const eventQueue = yield* Queue.unbounded();
123
- // Mutable state using Effect Ref
123
+ // Mutable state plain object (NOT an Effect Ref) because chokidar callbacks
124
+ // are synchronous and cannot use Effect primitives. Access is confined to the
125
+ // Node.js event loop (single-threaded), so concurrent fiber access is not expected.
124
126
  const stateRef = yield* Effect.sync(() => ({
125
127
  current: {
126
128
  running: false,
127
129
  watcher: null,
128
130
  watchedPaths: [],
129
131
  startedAt: null,
130
- eventsProcessed: 0
132
+ eventsProcessed: 0,
133
+ debounceTimers: new Map()
131
134
  }
132
135
  }));
133
136
  const getState = () => stateRef.current;
134
137
  const setState = (updater) => {
135
138
  stateRef.current = updater(stateRef.current);
136
139
  };
140
+ // Flag to prevent creating new debounce timers after stop/finalize.
141
+ // Prevents race condition where chokidar fires events during shutdown.
142
+ let stopped = false;
137
143
  // Cleanup on scope finalization
138
144
  yield* Effect.addFinalizer(() => Effect.gen(function* () {
145
+ stopped = true;
139
146
  const state = getState();
147
+ // Clear all pending debounce timers
148
+ for (const timer of state.debounceTimers.values()) {
149
+ clearTimeout(timer);
150
+ }
140
151
  if (state.watcher) {
141
152
  yield* Effect.tryPromise({
142
153
  try: () => state.watcher.close(),
@@ -151,6 +162,8 @@ export const FileWatcherServiceLive = Layer.scoped(FileWatcherService, Effect.ge
151
162
  path: state.watchedPaths.join(", ")
152
163
  }));
153
164
  }
165
+ // Reset shutdown flag for new watcher instance
166
+ stopped = false;
154
167
  // Extract base directories from glob patterns
155
168
  const expandedPaths = config.patterns.map((p) => expandTilde(p));
156
169
  const baseDirs = [...new Set(config.patterns.map(extractBaseDir))];
@@ -179,15 +192,15 @@ export const FileWatcherServiceLive = Layer.scoped(FileWatcherService, Effect.ge
179
192
  cause: error
180
193
  })
181
194
  });
182
- // Set up event handlers
183
- const handleEvent = (type, path) => {
184
- // Check if the path matches any of our patterns
185
- const matches = originalPatterns.some((pattern) => matchesPattern(path, pattern));
186
- if (!matches)
187
- return;
195
+ // Per-path debounce timers to coalesce rapid events for the same file.
196
+ // When multiple events fire for the same path within debounceMs, only
197
+ // the last event is emitted. This prevents duplicate processing when
198
+ // files are written incrementally (e.g., JSONL appends).
199
+ const debounceTimers = new Map();
200
+ const emitEvent = (type, filePath) => {
188
201
  const event = {
189
202
  type,
190
- path,
203
+ path: filePath,
191
204
  timestamp: new Date()
192
205
  };
193
206
  // Offer event to queue (non-blocking)
@@ -195,6 +208,32 @@ export const FileWatcherServiceLive = Layer.scoped(FileWatcherService, Effect.ge
195
208
  setState((s) => ({ ...s, eventsProcessed: s.eventsProcessed + 1 }));
196
209
  }))));
197
210
  };
211
+ // Set up event handlers with per-path debouncing
212
+ const handleEvent = (type, filePath) => {
213
+ // Don't create new timers if watcher is being shut down
214
+ if (stopped)
215
+ return;
216
+ // Check if the path matches any of our patterns
217
+ const matches = originalPatterns.some((pattern) => matchesPattern(filePath, pattern));
218
+ if (!matches)
219
+ return;
220
+ // Clear existing debounce timer for this path
221
+ const existingTimer = debounceTimers.get(filePath);
222
+ if (existingTimer) {
223
+ clearTimeout(existingTimer);
224
+ }
225
+ // Set a new debounce timer — only the last event within the
226
+ // window will be emitted. unref() prevents the timer from
227
+ // keeping the Node.js event loop alive after watcher.close()
228
+ const timer = setTimeout(() => {
229
+ debounceTimers.delete(filePath);
230
+ emitEvent(type, filePath);
231
+ }, debounceMs);
232
+ if (typeof timer === "object" && "unref" in timer) {
233
+ timer.unref();
234
+ }
235
+ debounceTimers.set(filePath, timer);
236
+ };
198
237
  watcher.on("add", (path) => handleEvent("add", path));
199
238
  watcher.on("change", (path) => handleEvent("change", path));
200
239
  watcher.on("unlink", (path) => handleEvent("delete", path));
@@ -227,7 +266,8 @@ export const FileWatcherServiceLive = Layer.scoped(FileWatcherService, Effect.ge
227
266
  watcher,
228
267
  watchedPaths: expandedPaths,
229
268
  startedAt: new Date(),
230
- eventsProcessed: 0
269
+ eventsProcessed: 0,
270
+ debounceTimers
231
271
  }));
232
272
  });
233
273
  const stop = () => Effect.gen(function* () {
@@ -237,6 +277,12 @@ export const FileWatcherServiceLive = Layer.scoped(FileWatcherService, Effect.ge
237
277
  path: "no active watcher"
238
278
  }));
239
279
  }
280
+ // Prevent new debounce timers from being created during shutdown
281
+ stopped = true;
282
+ // Clear all pending debounce timers to prevent events firing after stop
283
+ for (const timer of state.debounceTimers.values()) {
284
+ clearTimeout(timer);
285
+ }
240
286
  // Close the watcher
241
287
  yield* Effect.tryPromise({
242
288
  try: () => state.watcher.close(),
@@ -251,7 +297,8 @@ export const FileWatcherServiceLive = Layer.scoped(FileWatcherService, Effect.ge
251
297
  watcher: null,
252
298
  watchedPaths: [],
253
299
  startedAt: null,
254
- eventsProcessed: 0
300
+ eventsProcessed: 0,
301
+ debounceTimers: new Map()
255
302
  }));
256
303
  });
257
304
  const isRunning = () => Effect.sync(() => getState().running);