@jamesaphoenix/tx-core 0.4.2 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/README.md +480 -0
  2. package/dist/db.d.ts +28 -14
  3. package/dist/db.d.ts.map +1 -1
  4. package/dist/db.js +108 -14
  5. package/dist/db.js.map +1 -1
  6. package/dist/errors.d.ts +178 -34
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +119 -26
  9. package/dist/errors.js.map +1 -1
  10. package/dist/id.d.ts +10 -0
  11. package/dist/id.d.ts.map +1 -1
  12. package/dist/id.js +17 -1
  13. package/dist/id.js.map +1 -1
  14. package/dist/index.d.ts +15 -7
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +62 -8
  17. package/dist/index.js.map +1 -1
  18. package/dist/layer.d.ts +23 -14
  19. package/dist/layer.d.ts.map +1 -1
  20. package/dist/layer.js +75 -76
  21. package/dist/layer.js.map +1 -1
  22. package/dist/mappers/attempt.d.ts +3 -1
  23. package/dist/mappers/attempt.d.ts.map +1 -1
  24. package/dist/mappers/attempt.js +23 -9
  25. package/dist/mappers/attempt.js.map +1 -1
  26. package/dist/mappers/claim.d.ts +1 -1
  27. package/dist/mappers/claim.d.ts.map +1 -1
  28. package/dist/mappers/claim.js +11 -4
  29. package/dist/mappers/claim.js.map +1 -1
  30. package/dist/mappers/deduplication.d.ts +13 -1
  31. package/dist/mappers/deduplication.d.ts.map +1 -1
  32. package/dist/mappers/deduplication.js +22 -3
  33. package/dist/mappers/deduplication.js.map +1 -1
  34. package/dist/mappers/doc.d.ts +24 -0
  35. package/dist/mappers/doc.d.ts.map +1 -0
  36. package/dist/mappers/doc.js +161 -0
  37. package/dist/mappers/doc.js.map +1 -0
  38. package/dist/mappers/file-learning.d.ts.map +1 -1
  39. package/dist/mappers/file-learning.js +2 -1
  40. package/dist/mappers/file-learning.js.map +1 -1
  41. package/dist/mappers/index.d.ts +6 -7
  42. package/dist/mappers/index.d.ts.map +1 -1
  43. package/dist/mappers/index.js +10 -12
  44. package/dist/mappers/index.js.map +1 -1
  45. package/dist/mappers/learning.d.ts +9 -1
  46. package/dist/mappers/learning.d.ts.map +1 -1
  47. package/dist/mappers/learning.js +94 -14
  48. package/dist/mappers/learning.js.map +1 -1
  49. package/dist/mappers/orchestrator-state.d.ts +1 -1
  50. package/dist/mappers/orchestrator-state.d.ts.map +1 -1
  51. package/dist/mappers/orchestrator-state.js +31 -5
  52. package/dist/mappers/orchestrator-state.js.map +1 -1
  53. package/dist/mappers/parse-date.d.ts +11 -0
  54. package/dist/mappers/parse-date.d.ts.map +1 -0
  55. package/dist/mappers/parse-date.js +18 -0
  56. package/dist/mappers/parse-date.js.map +1 -0
  57. package/dist/mappers/run.d.ts +14 -4
  58. package/dist/mappers/run.d.ts.map +1 -1
  59. package/dist/mappers/run.js +49 -18
  60. package/dist/mappers/run.js.map +1 -1
  61. package/dist/mappers/task.d.ts +5 -1
  62. package/dist/mappers/task.d.ts.map +1 -1
  63. package/dist/mappers/task.js +66 -16
  64. package/dist/mappers/task.js.map +1 -1
  65. package/dist/mappers/tracked-project.d.ts +3 -1
  66. package/dist/mappers/tracked-project.d.ts.map +1 -1
  67. package/dist/mappers/tracked-project.js +23 -9
  68. package/dist/mappers/tracked-project.js.map +1 -1
  69. package/dist/mappers/worker.d.ts +1 -1
  70. package/dist/mappers/worker.d.ts.map +1 -1
  71. package/dist/mappers/worker.js +44 -6
  72. package/dist/mappers/worker.js.map +1 -1
  73. package/dist/repo/attempt-repo.d.ts +2 -2
  74. package/dist/repo/attempt-repo.d.ts.map +1 -1
  75. package/dist/repo/attempt-repo.js +16 -6
  76. package/dist/repo/attempt-repo.js.map +1 -1
  77. package/dist/repo/claim-repo.d.ts +46 -2
  78. package/dist/repo/claim-repo.d.ts.map +1 -1
  79. package/dist/repo/claim-repo.js +113 -6
  80. package/dist/repo/claim-repo.js.map +1 -1
  81. package/dist/repo/deduplication-repo.d.ts +9 -1
  82. package/dist/repo/deduplication-repo.d.ts.map +1 -1
  83. package/dist/repo/deduplication-repo.js +46 -9
  84. package/dist/repo/deduplication-repo.js.map +1 -1
  85. package/dist/repo/dep-repo.d.ts +27 -3
  86. package/dist/repo/dep-repo.d.ts.map +1 -1
  87. package/dist/repo/dep-repo.js +166 -39
  88. package/dist/repo/dep-repo.js.map +1 -1
  89. package/dist/repo/doc-repo.d.ts +59 -0
  90. package/dist/repo/doc-repo.d.ts.map +1 -0
  91. package/dist/repo/doc-repo.js +276 -0
  92. package/dist/repo/doc-repo.js.map +1 -0
  93. package/dist/repo/file-learning-repo.d.ts +3 -3
  94. package/dist/repo/file-learning-repo.d.ts.map +1 -1
  95. package/dist/repo/file-learning-repo.js +19 -8
  96. package/dist/repo/file-learning-repo.js.map +1 -1
  97. package/dist/repo/index.d.ts +4 -6
  98. package/dist/repo/index.d.ts.map +1 -1
  99. package/dist/repo/index.js +3 -5
  100. package/dist/repo/index.js.map +1 -1
  101. package/dist/repo/learning-repo.d.ts +10 -3
  102. package/dist/repo/learning-repo.d.ts.map +1 -1
  103. package/dist/repo/learning-repo.js +68 -11
  104. package/dist/repo/learning-repo.js.map +1 -1
  105. package/dist/repo/orchestrator-state-repo.d.ts.map +1 -1
  106. package/dist/repo/orchestrator-state-repo.js +8 -1
  107. package/dist/repo/orchestrator-state-repo.js.map +1 -1
  108. package/dist/repo/run-repo.d.ts +3 -3
  109. package/dist/repo/run-repo.d.ts.map +1 -1
  110. package/dist/repo/run-repo.js +40 -19
  111. package/dist/repo/run-repo.js.map +1 -1
  112. package/dist/repo/task-repo.d.ts +14 -3
  113. package/dist/repo/task-repo.d.ts.map +1 -1
  114. package/dist/repo/task-repo.js +194 -20
  115. package/dist/repo/task-repo.js.map +1 -1
  116. package/dist/repo/tracked-project-repo.d.ts.map +1 -1
  117. package/dist/repo/tracked-project-repo.js +15 -1
  118. package/dist/repo/tracked-project-repo.js.map +1 -1
  119. package/dist/repo/worker-repo.d.ts +3 -2
  120. package/dist/repo/worker-repo.d.ts.map +1 -1
  121. package/dist/repo/worker-repo.js +54 -8
  122. package/dist/repo/worker-repo.js.map +1 -1
  123. package/dist/schemas/sync.js +2 -2
  124. package/dist/schemas/sync.js.map +1 -1
  125. package/dist/schemas/worker.d.ts +1 -0
  126. package/dist/schemas/worker.d.ts.map +1 -1
  127. package/dist/schemas/worker.js +1 -0
  128. package/dist/schemas/worker.js.map +1 -1
  129. package/dist/services/agent-service.d.ts +57 -0
  130. package/dist/services/agent-service.d.ts.map +1 -0
  131. package/dist/services/agent-service.js +81 -0
  132. package/dist/services/agent-service.js.map +1 -0
  133. package/dist/services/attempt-service.d.ts.map +1 -1
  134. package/dist/services/attempt-service.js +1 -4
  135. package/dist/services/attempt-service.js.map +1 -1
  136. package/dist/services/auto-sync-service.d.ts.map +1 -1
  137. package/dist/services/auto-sync-service.js +18 -10
  138. package/dist/services/auto-sync-service.js.map +1 -1
  139. package/dist/services/claim-service.d.ts +8 -2
  140. package/dist/services/claim-service.d.ts.map +1 -1
  141. package/dist/services/claim-service.js +37 -23
  142. package/dist/services/claim-service.js.map +1 -1
  143. package/dist/services/cycle-scan-service.d.ts +32 -0
  144. package/dist/services/cycle-scan-service.d.ts.map +1 -0
  145. package/dist/services/cycle-scan-service.js +546 -0
  146. package/dist/services/cycle-scan-service.js.map +1 -0
  147. package/dist/services/daemon-service.d.ts +40 -2
  148. package/dist/services/daemon-service.d.ts.map +1 -1
  149. package/dist/services/daemon-service.js +199 -52
  150. package/dist/services/daemon-service.js.map +1 -1
  151. package/dist/services/deduplication-service.d.ts +8 -4
  152. package/dist/services/deduplication-service.d.ts.map +1 -1
  153. package/dist/services/deduplication-service.js +79 -25
  154. package/dist/services/deduplication-service.js.map +1 -1
  155. package/dist/services/dep-service.d.ts +2 -2
  156. package/dist/services/dep-service.d.ts.map +1 -1
  157. package/dist/services/dep-service.js +9 -5
  158. package/dist/services/dep-service.js.map +1 -1
  159. package/dist/services/diversifier-service.d.ts +2 -1
  160. package/dist/services/diversifier-service.d.ts.map +1 -1
  161. package/dist/services/diversifier-service.js +37 -43
  162. package/dist/services/diversifier-service.js.map +1 -1
  163. package/dist/services/doc-service.d.ts +49 -0
  164. package/dist/services/doc-service.d.ts.map +1 -0
  165. package/dist/services/doc-service.js +605 -0
  166. package/dist/services/doc-service.js.map +1 -0
  167. package/dist/services/embedding-service.d.ts +66 -2
  168. package/dist/services/embedding-service.d.ts.map +1 -1
  169. package/dist/services/embedding-service.js +138 -24
  170. package/dist/services/embedding-service.js.map +1 -1
  171. package/dist/services/file-learning-service.d.ts.map +1 -1
  172. package/dist/services/file-learning-service.js +8 -7
  173. package/dist/services/file-learning-service.js.map +1 -1
  174. package/dist/services/file-watcher-service.d.ts.map +1 -1
  175. package/dist/services/file-watcher-service.js +58 -11
  176. package/dist/services/file-watcher-service.js.map +1 -1
  177. package/dist/services/hierarchy-service.d.ts +1 -1
  178. package/dist/services/hierarchy-service.d.ts.map +1 -1
  179. package/dist/services/hierarchy-service.js +50 -32
  180. package/dist/services/hierarchy-service.js.map +1 -1
  181. package/dist/services/index.d.ts +13 -15
  182. package/dist/services/index.d.ts.map +1 -1
  183. package/dist/services/index.js +13 -15
  184. package/dist/services/index.js.map +1 -1
  185. package/dist/services/learning-service.d.ts +3 -3
  186. package/dist/services/learning-service.d.ts.map +1 -1
  187. package/dist/services/learning-service.js +75 -42
  188. package/dist/services/learning-service.js.map +1 -1
  189. package/dist/services/llm-service.d.ts +62 -0
  190. package/dist/services/llm-service.d.ts.map +1 -0
  191. package/dist/services/llm-service.js +172 -0
  192. package/dist/services/llm-service.js.map +1 -0
  193. package/dist/services/migration-service.d.ts +1 -1
  194. package/dist/services/migration-service.d.ts.map +1 -1
  195. package/dist/services/migration-service.js +18 -7
  196. package/dist/services/migration-service.js.map +1 -1
  197. package/dist/services/orchestrator-service.d.ts +4 -3
  198. package/dist/services/orchestrator-service.d.ts.map +1 -1
  199. package/dist/services/orchestrator-service.js +66 -27
  200. package/dist/services/orchestrator-service.js.map +1 -1
  201. package/dist/services/query-expansion-service.d.ts +30 -9
  202. package/dist/services/query-expansion-service.d.ts.map +1 -1
  203. package/dist/services/query-expansion-service.js +54 -63
  204. package/dist/services/query-expansion-service.js.map +1 -1
  205. package/dist/services/ready-service.d.ts +21 -1
  206. package/dist/services/ready-service.d.ts.map +1 -1
  207. package/dist/services/ready-service.js +44 -21
  208. package/dist/services/ready-service.js.map +1 -1
  209. package/dist/services/retriever-service.d.ts +10 -10
  210. package/dist/services/retriever-service.d.ts.map +1 -1
  211. package/dist/services/retriever-service.js +53 -161
  212. package/dist/services/retriever-service.js.map +1 -1
  213. package/dist/services/sync-service.d.ts +17 -4
  214. package/dist/services/sync-service.d.ts.map +1 -1
  215. package/dist/services/sync-service.js +381 -116
  216. package/dist/services/sync-service.js.map +1 -1
  217. package/dist/services/task-service.d.ts +6 -4
  218. package/dist/services/task-service.d.ts.map +1 -1
  219. package/dist/services/task-service.js +165 -35
  220. package/dist/services/task-service.js.map +1 -1
  221. package/dist/services/tracing-service.d.ts +55 -0
  222. package/dist/services/tracing-service.d.ts.map +1 -0
  223. package/dist/services/tracing-service.js +99 -0
  224. package/dist/services/tracing-service.js.map +1 -0
  225. package/dist/services/transcript-adapter.d.ts +99 -0
  226. package/dist/services/transcript-adapter.d.ts.map +1 -0
  227. package/dist/services/transcript-adapter.js +283 -0
  228. package/dist/services/transcript-adapter.js.map +1 -0
  229. package/dist/services/validation-service.d.ts +85 -0
  230. package/dist/services/validation-service.d.ts.map +1 -0
  231. package/dist/services/validation-service.js +289 -0
  232. package/dist/services/validation-service.js.map +1 -0
  233. package/dist/services/worker-process.d.ts +23 -4
  234. package/dist/services/worker-process.d.ts.map +1 -1
  235. package/dist/services/worker-process.js +168 -72
  236. package/dist/services/worker-process.js.map +1 -1
  237. package/dist/services/worker-service.d.ts.map +1 -1
  238. package/dist/services/worker-service.js +7 -12
  239. package/dist/services/worker-service.js.map +1 -1
  240. package/dist/sync/claude-task-writer.d.ts +49 -0
  241. package/dist/sync/claude-task-writer.d.ts.map +1 -0
  242. package/dist/sync/claude-task-writer.js +135 -0
  243. package/dist/sync/claude-task-writer.js.map +1 -0
  244. package/dist/utils/doc-hash.d.ts +10 -0
  245. package/dist/utils/doc-hash.d.ts.map +1 -0
  246. package/dist/utils/doc-hash.js +14 -0
  247. package/dist/utils/doc-hash.js.map +1 -0
  248. package/dist/utils/doc-renderer.d.ts +44 -0
  249. package/dist/utils/doc-renderer.d.ts.map +1 -0
  250. package/dist/utils/doc-renderer.js +202 -0
  251. package/dist/utils/doc-renderer.js.map +1 -0
  252. package/dist/utils/math.d.ts +5 -1
  253. package/dist/utils/math.d.ts.map +1 -1
  254. package/dist/utils/math.js +12 -4
  255. package/dist/utils/math.js.map +1 -1
  256. package/dist/utils/sql.d.ts +9 -0
  257. package/dist/utils/sql.d.ts.map +1 -0
  258. package/dist/utils/sql.js +9 -0
  259. package/dist/utils/sql.js.map +1 -0
  260. package/dist/utils/toml-config.d.ts +22 -0
  261. package/dist/utils/toml-config.d.ts.map +1 -0
  262. package/dist/utils/toml-config.js +75 -0
  263. package/dist/utils/toml-config.js.map +1 -0
  264. package/dist/worker/hooks.d.ts +102 -0
  265. package/dist/worker/hooks.d.ts.map +1 -0
  266. package/dist/worker/hooks.js +11 -0
  267. package/dist/worker/hooks.js.map +1 -0
  268. package/dist/worker/index.d.ts +9 -0
  269. package/dist/worker/index.d.ts.map +1 -0
  270. package/dist/worker/index.js +8 -0
  271. package/dist/worker/index.js.map +1 -0
  272. package/dist/worker/run-worker.d.ts +33 -0
  273. package/dist/worker/run-worker.d.ts.map +1 -0
  274. package/dist/worker/run-worker.js +265 -0
  275. package/dist/worker/run-worker.js.map +1 -0
  276. package/package.json +14 -12
  277. package/dist/mappers/anchor.d.ts +0 -14
  278. package/dist/mappers/anchor.d.ts.map +0 -1
  279. package/dist/mappers/anchor.js +0 -38
  280. package/dist/mappers/anchor.js.map +0 -1
  281. package/dist/mappers/candidate.d.ts +0 -23
  282. package/dist/mappers/candidate.d.ts.map +0 -1
  283. package/dist/mappers/candidate.js +0 -53
  284. package/dist/mappers/candidate.js.map +0 -1
  285. package/dist/mappers/edge.d.ts +0 -10
  286. package/dist/mappers/edge.d.ts.map +0 -1
  287. package/dist/mappers/edge.js +0 -19
  288. package/dist/mappers/edge.js.map +0 -1
  289. package/dist/repo/anchor-repo.d.ts +0 -52
  290. package/dist/repo/anchor-repo.d.ts.map +0 -1
  291. package/dist/repo/anchor-repo.js +0 -204
  292. package/dist/repo/anchor-repo.js.map +0 -1
  293. package/dist/repo/candidate-repo.d.ts +0 -16
  294. package/dist/repo/candidate-repo.d.ts.map +0 -1
  295. package/dist/repo/candidate-repo.js +0 -143
  296. package/dist/repo/candidate-repo.js.map +0 -1
  297. package/dist/repo/edge-repo.d.ts +0 -26
  298. package/dist/repo/edge-repo.d.ts.map +0 -1
  299. package/dist/repo/edge-repo.js +0 -227
  300. package/dist/repo/edge-repo.js.map +0 -1
  301. package/dist/services/anchor-service.d.ts +0 -147
  302. package/dist/services/anchor-service.d.ts.map +0 -1
  303. package/dist/services/anchor-service.js +0 -540
  304. package/dist/services/anchor-service.js.map +0 -1
  305. package/dist/services/anchor-verification.d.ts +0 -94
  306. package/dist/services/anchor-verification.d.ts.map +0 -1
  307. package/dist/services/anchor-verification.js +0 -617
  308. package/dist/services/anchor-verification.js.map +0 -1
  309. package/dist/services/ast-grep-service.d.ts +0 -58
  310. package/dist/services/ast-grep-service.d.ts.map +0 -1
  311. package/dist/services/ast-grep-service.js +0 -356
  312. package/dist/services/ast-grep-service.js.map +0 -1
  313. package/dist/services/candidate-extractor-service.d.ts +0 -56
  314. package/dist/services/candidate-extractor-service.d.ts.map +0 -1
  315. package/dist/services/candidate-extractor-service.js +0 -365
  316. package/dist/services/candidate-extractor-service.js.map +0 -1
  317. package/dist/services/edge-service.d.ts +0 -78
  318. package/dist/services/edge-service.d.ts.map +0 -1
  319. package/dist/services/edge-service.js +0 -158
  320. package/dist/services/edge-service.js.map +0 -1
  321. package/dist/services/feedback-tracker.d.ts +0 -64
  322. package/dist/services/feedback-tracker.d.ts.map +0 -1
  323. package/dist/services/feedback-tracker.js +0 -110
  324. package/dist/services/feedback-tracker.js.map +0 -1
  325. package/dist/services/graph-expansion.d.ts +0 -155
  326. package/dist/services/graph-expansion.d.ts.map +0 -1
  327. package/dist/services/graph-expansion.js +0 -466
  328. package/dist/services/graph-expansion.js.map +0 -1
  329. package/dist/services/promotion-service.d.ts +0 -67
  330. package/dist/services/promotion-service.d.ts.map +0 -1
  331. package/dist/services/promotion-service.js +0 -151
  332. package/dist/services/promotion-service.js.map +0 -1
  333. package/dist/services/swarm-verification.d.ts +0 -104
  334. package/dist/services/swarm-verification.d.ts.map +0 -1
  335. package/dist/services/swarm-verification.js +0 -400
  336. package/dist/services/swarm-verification.js.map +0 -1
@@ -1,58 +0,0 @@
1
- import { Context, Effect, Layer } from "effect";
2
- import { AstGrepError } from "../errors.js";
3
- import type { SymbolInfo, ImportInfo, Match, SymbolPattern } from "@jamesaphoenix/tx-types";
4
- /**
5
- * File extension to ast-grep language mapping.
6
- * Covers TypeScript, JavaScript, Python, Go, Rust, Java, C#, Ruby, PHP, Kotlin, Swift, C/C++.
7
- */
8
- export declare const EXT_TO_LANGUAGE: Readonly<Record<string, string>>;
9
- /**
10
- * Default symbol patterns for each supported language.
11
- * These patterns are used by ast-grep to extract symbols from source files.
12
- * Following DD-014 specification.
13
- */
14
- export declare const DEFAULT_SYMBOL_PATTERNS: Readonly<Record<string, readonly SymbolPattern[]>>;
15
- declare const AstGrepService_base: Context.TagClass<AstGrepService, "AstGrepService", {
16
- /**
17
- * Find all symbols (functions, classes, interfaces, etc.) in a file.
18
- * Returns empty array for unsupported file types.
19
- */
20
- readonly findSymbols: (filePath: string) => Effect.Effect<readonly SymbolInfo[], AstGrepError>;
21
- /**
22
- * Extract import statements from a file.
23
- * Returns empty array for unsupported file types.
24
- */
25
- readonly getImports: (filePath: string) => Effect.Effect<readonly ImportInfo[], AstGrepError>;
26
- /**
27
- * Match a custom ast-grep pattern against a file or directory.
28
- */
29
- readonly matchPattern: (pattern: string, path: string) => Effect.Effect<readonly Match[], AstGrepError>;
30
- }>;
31
- /**
32
- * AstGrepService provides code intelligence via ast-grep CLI.
33
- *
34
- * This service extracts symbols, imports, and matches patterns from source files
35
- * using structural code analysis. It gracefully degrades when ast-grep is not
36
- * installed by providing a Noop fallback.
37
- *
38
- * Design: Following DD-014 specification for symbol extraction.
39
- */
40
- export declare class AstGrepService extends AstGrepService_base {
41
- }
42
- /**
43
- * Live implementation that spawns ast-grep CLI.
44
- * Requires ast-grep to be installed and available in PATH.
45
- */
46
- export declare const AstGrepServiceLive: Layer.Layer<AstGrepService, never, never>;
47
- /**
48
- * Noop implementation that returns empty arrays.
49
- * Used when ast-grep is not installed or not available.
50
- */
51
- export declare const AstGrepServiceNoop: Layer.Layer<AstGrepService, never, never>;
52
- /**
53
- * Auto-detecting layer that uses Live if ast-grep is available, Noop otherwise.
54
- * This allows graceful degradation when ast-grep is not installed.
55
- */
56
- export declare const AstGrepServiceAuto: Layer.Layer<AstGrepService, never, never>;
57
- export {};
58
- //# sourceMappingURL=ast-grep-service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast-grep-service.d.ts","sourceRoot":"","sources":["../../src/services/ast-grep-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAc,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvG;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqC5D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC,CAsHtF,CAAA;;IAcG;;;OAGG;0BACmB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,UAAU,EAAE,EAAE,YAAY,CAAC;IAC9F;;;OAGG;yBACkB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,UAAU,EAAE,EAAE,YAAY,CAAC;IAC7F;;OAEG;2BACoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE,YAAY,CAAC;;AAzB3G;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,mBAkBjC;CAAG;AA6EN;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2CAkJ7B,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2CAI7B,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2CAoB9B,CAAA"}
@@ -1,356 +0,0 @@
1
- import { Context, Effect, Layer } from "effect";
2
- import { spawn } from "child_process";
3
- import { AstGrepError } from "../errors.js";
4
- /**
5
- * File extension to ast-grep language mapping.
6
- * Covers TypeScript, JavaScript, Python, Go, Rust, Java, C#, Ruby, PHP, Kotlin, Swift, C/C++.
7
- */
8
- export const EXT_TO_LANGUAGE = {
9
- // TypeScript
10
- ".ts": "typescript",
11
- ".tsx": "typescript",
12
- ".mts": "typescript",
13
- // JavaScript
14
- ".js": "javascript",
15
- ".jsx": "javascript",
16
- ".mjs": "javascript",
17
- // Python
18
- ".py": "python",
19
- ".pyw": "python",
20
- // Go
21
- ".go": "go",
22
- // Rust
23
- ".rs": "rust",
24
- // Java
25
- ".java": "java",
26
- // C#
27
- ".cs": "csharp",
28
- // Ruby
29
- ".rb": "ruby",
30
- // PHP
31
- ".php": "php",
32
- // Kotlin
33
- ".kt": "kotlin",
34
- ".kts": "kotlin",
35
- // Swift
36
- ".swift": "swift",
37
- // C
38
- ".c": "c",
39
- ".h": "c",
40
- // C++
41
- ".cpp": "cpp",
42
- ".cc": "cpp",
43
- ".cxx": "cpp",
44
- ".hpp": "cpp",
45
- };
46
- /**
47
- * Default symbol patterns for each supported language.
48
- * These patterns are used by ast-grep to extract symbols from source files.
49
- * Following DD-014 specification.
50
- */
51
- export const DEFAULT_SYMBOL_PATTERNS = {
52
- // TypeScript / JavaScript
53
- typescript: [
54
- { pattern: "export function $NAME($_) { $$$_ }", kind: "function", exported: true },
55
- { pattern: "export const $NAME = ($_) => $$$_", kind: "function", exported: true },
56
- { pattern: "export class $NAME { $$$_ }", kind: "class", exported: true },
57
- { pattern: "export interface $NAME { $$$_ }", kind: "interface", exported: true },
58
- { pattern: "export type $NAME = $_", kind: "type", exported: true },
59
- { pattern: "export const $NAME = $_", kind: "const", exported: true },
60
- { pattern: "function $NAME($_) { $$$_ }", kind: "function" },
61
- { pattern: "class $NAME { $$$_ }", kind: "class" },
62
- ],
63
- javascript: [
64
- { pattern: "export function $NAME($_) { $$$_ }", kind: "function", exported: true },
65
- { pattern: "export const $NAME = ($_) => $$$_", kind: "function", exported: true },
66
- { pattern: "export class $NAME { $$$_ }", kind: "class", exported: true },
67
- { pattern: "module.exports.$NAME = $_", kind: "function", exported: true },
68
- { pattern: "function $NAME($_) { $$$_ }", kind: "function" },
69
- { pattern: "class $NAME { $$$_ }", kind: "class" },
70
- ],
71
- // Python
72
- python: [
73
- { pattern: "def $NAME($_): $$$_", kind: "function" },
74
- { pattern: "async def $NAME($_): $$$_", kind: "function" },
75
- { pattern: "class $NAME: $$$_", kind: "class" },
76
- { pattern: "class $NAME($_): $$$_", kind: "class" },
77
- ],
78
- // Go
79
- go: [
80
- { pattern: "func $NAME($_) $_ { $$$_ }", kind: "function" },
81
- { pattern: "func ($_ $_) $NAME($_) $_ { $$$_ }", kind: "method" },
82
- { pattern: "type $NAME struct { $$$_ }", kind: "struct" },
83
- { pattern: "type $NAME interface { $$$_ }", kind: "interface" },
84
- ],
85
- // Rust
86
- rust: [
87
- { pattern: "pub fn $NAME($_) $$$_ { $$$_ }", kind: "function", exported: true },
88
- { pattern: "fn $NAME($_) $$$_ { $$$_ }", kind: "function" },
89
- { pattern: "pub struct $NAME { $$$_ }", kind: "struct", exported: true },
90
- { pattern: "struct $NAME { $$$_ }", kind: "struct" },
91
- { pattern: "pub enum $NAME { $$$_ }", kind: "enum", exported: true },
92
- { pattern: "pub trait $NAME { $$$_ }", kind: "trait", exported: true },
93
- { pattern: "impl $NAME { $$$_ }", kind: "class" },
94
- ],
95
- // Java
96
- java: [
97
- { pattern: "public class $NAME { $$$_ }", kind: "class", exported: true },
98
- { pattern: "public interface $NAME { $$$_ }", kind: "interface", exported: true },
99
- { pattern: "public enum $NAME { $$$_ }", kind: "enum", exported: true },
100
- { pattern: "public $_ $NAME($_) { $$$_ }", kind: "method", exported: true },
101
- { pattern: "private $_ $NAME($_) { $$$_ }", kind: "method" },
102
- ],
103
- // C#
104
- csharp: [
105
- { pattern: "public class $NAME { $$$_ }", kind: "class", exported: true },
106
- { pattern: "public interface $NAME { $$$_ }", kind: "interface", exported: true },
107
- { pattern: "public enum $NAME { $$$_ }", kind: "enum", exported: true },
108
- { pattern: "public $_ $NAME($_) { $$$_ }", kind: "method", exported: true },
109
- { pattern: "private $_ $NAME($_) { $$$_ }", kind: "method" },
110
- { pattern: "public struct $NAME { $$$_ }", kind: "struct", exported: true },
111
- ],
112
- // Ruby
113
- ruby: [
114
- { pattern: "def $NAME $$$_ end", kind: "method" },
115
- { pattern: "def self.$NAME $$$_ end", kind: "function" },
116
- { pattern: "class $NAME $$$_ end", kind: "class" },
117
- { pattern: "module $NAME $$$_ end", kind: "module" },
118
- ],
119
- // PHP
120
- php: [
121
- { pattern: "function $NAME($_) { $$$_ }", kind: "function" },
122
- { pattern: "public function $NAME($_) { $$$_ }", kind: "method", exported: true },
123
- { pattern: "class $NAME { $$$_ }", kind: "class" },
124
- { pattern: "interface $NAME { $$$_ }", kind: "interface" },
125
- { pattern: "trait $NAME { $$$_ }", kind: "trait" },
126
- ],
127
- // Kotlin
128
- kotlin: [
129
- { pattern: "fun $NAME($_): $_ { $$$_ }", kind: "function" },
130
- { pattern: "class $NAME { $$$_ }", kind: "class" },
131
- { pattern: "data class $NAME($_)", kind: "class" },
132
- { pattern: "interface $NAME { $$$_ }", kind: "interface" },
133
- { pattern: "object $NAME { $$$_ }", kind: "class" },
134
- ],
135
- // Swift
136
- swift: [
137
- { pattern: "func $NAME($_) $$$_ { $$$_ }", kind: "function" },
138
- { pattern: "class $NAME { $$$_ }", kind: "class" },
139
- { pattern: "struct $NAME { $$$_ }", kind: "struct" },
140
- { pattern: "protocol $NAME { $$$_ }", kind: "interface" },
141
- { pattern: "enum $NAME { $$$_ }", kind: "enum" },
142
- ],
143
- // C
144
- c: [
145
- { pattern: "$_ $NAME($_) { $$$_ }", kind: "function" },
146
- { pattern: "struct $NAME { $$$_ }", kind: "struct" },
147
- { pattern: "typedef struct { $$$_ } $NAME", kind: "struct" },
148
- { pattern: "enum $NAME { $$$_ }", kind: "enum" },
149
- ],
150
- // C++
151
- cpp: [
152
- { pattern: "$_ $NAME($_) { $$$_ }", kind: "function" },
153
- { pattern: "class $NAME { $$$_ }", kind: "class" },
154
- { pattern: "struct $NAME { $$$_ }", kind: "struct" },
155
- { pattern: "namespace $NAME { $$$_ }", kind: "module" },
156
- { pattern: "template<$_> class $NAME { $$$_ }", kind: "class" },
157
- ],
158
- };
159
- /**
160
- * AstGrepService provides code intelligence via ast-grep CLI.
161
- *
162
- * This service extracts symbols, imports, and matches patterns from source files
163
- * using structural code analysis. It gracefully degrades when ast-grep is not
164
- * installed by providing a Noop fallback.
165
- *
166
- * Design: Following DD-014 specification for symbol extraction.
167
- */
168
- export class AstGrepService extends Context.Tag("AstGrepService")() {
169
- }
170
- /**
171
- * Get the language identifier for a file path based on extension.
172
- */
173
- const getLanguage = (filePath) => {
174
- const lastDot = filePath.lastIndexOf(".");
175
- if (lastDot === -1)
176
- return null;
177
- const ext = filePath.slice(lastDot);
178
- return EXT_TO_LANGUAGE[ext] ?? null;
179
- };
180
- /**
181
- * Get symbol patterns for a language.
182
- */
183
- const getPatterns = (language) => {
184
- return DEFAULT_SYMBOL_PATTERNS[language] ?? [];
185
- };
186
- /**
187
- * Run ast-grep CLI with given arguments.
188
- * Returns the stdout as a string.
189
- */
190
- const runAstGrep = (args) => Effect.async((resume) => {
191
- const proc = spawn("ast-grep", [...args], { stdio: ["ignore", "pipe", "pipe"] });
192
- let stdout = "";
193
- let stderr = "";
194
- proc.stdout.on("data", (data) => {
195
- stdout += data.toString();
196
- });
197
- proc.stderr.on("data", (data) => {
198
- stderr += data.toString();
199
- });
200
- proc.on("close", (code) => {
201
- if (code !== 0 && code !== null) {
202
- resume(Effect.fail(new AstGrepError({
203
- reason: `ast-grep exited with code ${code}`,
204
- cause: stderr,
205
- })));
206
- }
207
- else {
208
- resume(Effect.succeed(stdout));
209
- }
210
- });
211
- proc.on("error", (err) => {
212
- resume(Effect.fail(new AstGrepError({
213
- reason: "Failed to spawn ast-grep",
214
- cause: err,
215
- })));
216
- });
217
- });
218
- /**
219
- * Live implementation that spawns ast-grep CLI.
220
- * Requires ast-grep to be installed and available in PATH.
221
- */
222
- export const AstGrepServiceLive = Layer.succeed(AstGrepService, {
223
- findSymbols: (filePath) => Effect.gen(function* () {
224
- const language = getLanguage(filePath);
225
- if (!language) {
226
- return [];
227
- }
228
- const patterns = getPatterns(language);
229
- const symbols = [];
230
- for (const { pattern, kind, exported } of patterns) {
231
- const output = yield* runAstGrep(["--pattern", pattern, "--json", filePath]).pipe(Effect.catchAll(() => Effect.succeed("[]")));
232
- let matches;
233
- try {
234
- matches = JSON.parse(output);
235
- }
236
- catch {
237
- matches = [];
238
- }
239
- for (const m of matches) {
240
- const name = m.metaVariables?.NAME?.text;
241
- if (name) {
242
- symbols.push({
243
- name,
244
- kind: kind,
245
- line: (m.range?.start?.line ?? 0) + 1, // Convert 0-indexed to 1-indexed
246
- exported: exported ?? false,
247
- });
248
- }
249
- }
250
- }
251
- return symbols;
252
- }),
253
- getImports: (filePath) => Effect.gen(function* () {
254
- const language = getLanguage(filePath);
255
- if (!language) {
256
- return [];
257
- }
258
- // TypeScript/JavaScript import patterns
259
- const importPatterns = language === "typescript" || language === "javascript"
260
- ? [
261
- 'import { $$$SPECS } from "$SOURCE"',
262
- 'import * as $ALIAS from "$SOURCE"',
263
- 'import $DEFAULT from "$SOURCE"',
264
- ]
265
- : [];
266
- const imports = [];
267
- for (const pattern of importPatterns) {
268
- const output = yield* runAstGrep(["--pattern", pattern, "--json", filePath]).pipe(Effect.catchAll(() => Effect.succeed("[]")));
269
- let matches;
270
- try {
271
- matches = JSON.parse(output);
272
- }
273
- catch {
274
- matches = [];
275
- }
276
- for (const m of matches) {
277
- const source = m.metaVariables?.SOURCE?.text ?? "";
278
- if (!source)
279
- continue;
280
- // Extract specifiers from different patterns
281
- const specsText = m.metaVariables?.SPECS?.text ?? "";
282
- const aliasText = m.metaVariables?.ALIAS?.text ?? "";
283
- const defaultText = m.metaVariables?.DEFAULT?.text ?? "";
284
- let specifiers;
285
- if (specsText) {
286
- specifiers = specsText
287
- .split(",")
288
- .map((s) => s.trim())
289
- .filter(Boolean);
290
- }
291
- else if (aliasText) {
292
- specifiers = [`* as ${aliasText}`];
293
- }
294
- else if (defaultText) {
295
- specifiers = [defaultText];
296
- }
297
- else {
298
- specifiers = [];
299
- }
300
- imports.push({
301
- source,
302
- specifiers,
303
- kind: "static",
304
- });
305
- }
306
- }
307
- return imports;
308
- }),
309
- matchPattern: (pattern, path) => Effect.gen(function* () {
310
- const output = yield* runAstGrep(["--pattern", pattern, "--json", path]);
311
- let matches;
312
- try {
313
- matches = JSON.parse(output);
314
- }
315
- catch {
316
- return [];
317
- }
318
- return matches.map((m) => ({
319
- file: m.file ?? path,
320
- line: (m.range?.start?.line ?? 0) + 1, // Convert 0-indexed to 1-indexed
321
- column: (m.range?.start?.column ?? 0) + 1,
322
- text: m.text ?? "",
323
- captures: Object.fromEntries(Object.entries(m.metaVariables ?? {}).map(([k, v]) => [k, v?.text ?? ""])),
324
- }));
325
- }),
326
- });
327
- /**
328
- * Noop implementation that returns empty arrays.
329
- * Used when ast-grep is not installed or not available.
330
- */
331
- export const AstGrepServiceNoop = Layer.succeed(AstGrepService, {
332
- findSymbols: () => Effect.succeed([]),
333
- getImports: () => Effect.succeed([]),
334
- matchPattern: () => Effect.succeed([]),
335
- });
336
- /**
337
- * Auto-detecting layer that uses Live if ast-grep is available, Noop otherwise.
338
- * This allows graceful degradation when ast-grep is not installed.
339
- */
340
- export const AstGrepServiceAuto = Layer.unwrapEffect(Effect.gen(function* () {
341
- // Check if ast-grep is available by trying to run it
342
- const available = yield* Effect.async((resume) => {
343
- const proc = spawn("ast-grep", ["--version"], { stdio: ["ignore", "pipe", "pipe"] });
344
- proc.on("close", (code) => {
345
- resume(Effect.succeed(code === 0));
346
- });
347
- proc.on("error", () => {
348
- resume(Effect.succeed(false));
349
- });
350
- });
351
- if (available) {
352
- return AstGrepServiceLive;
353
- }
354
- return AstGrepServiceNoop;
355
- }));
356
- //# sourceMappingURL=ast-grep-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast-grep-service.js","sourceRoot":"","sources":["../../src/services/ast-grep-service.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- import { Context, Effect, Layer } from "effect";
2
- import { ExtractionUnavailableError } from "../errors.js";
3
- import type { TranscriptChunk, ExtractionResult } from "@jamesaphoenix/tx-types";
4
- declare const CandidateExtractorService_base: Context.TagClass<CandidateExtractorService, "CandidateExtractorService", {
5
- /**
6
- * Extract learning candidates from a transcript chunk.
7
- * Returns structured candidates with confidence and category.
8
- */
9
- readonly extract: (chunk: TranscriptChunk) => Effect.Effect<ExtractionResult, ExtractionUnavailableError>;
10
- /** Check if extraction functionality is available */
11
- readonly isAvailable: () => Effect.Effect<boolean>;
12
- }>;
13
- /**
14
- * CandidateExtractorService extracts learning candidates from Claude Code transcripts.
15
- *
16
- * This service uses LLM to analyze transcript content and identify:
17
- * - Technical decisions with rationale
18
- * - Gotchas and pitfalls to avoid
19
- * - Patterns that worked well
20
- * - Future improvements
21
- *
22
- * Design: Following DD-006 patterns for LLM integration with pluggable backends.
23
- * Supports Anthropic, OpenAI, and noop backends with graceful degradation.
24
- *
25
- * @see PRD-015 for the JSONL daemon and knowledge promotion pipeline
26
- */
27
- export declare class CandidateExtractorService extends CandidateExtractorService_base {
28
- }
29
- /**
30
- * Noop implementation - returns empty results without LLM processing.
31
- * Used when no LLM API key is configured or for testing.
32
- */
33
- export declare const CandidateExtractorServiceNoop: Layer.Layer<CandidateExtractorService, never, never>;
34
- /**
35
- * Anthropic (Claude) implementation.
36
- * Uses Claude to extract learning candidates from transcripts.
37
- */
38
- export declare const CandidateExtractorServiceAnthropic: Layer.Layer<CandidateExtractorService, ExtractionUnavailableError, never>;
39
- /**
40
- * OpenAI (GPT) implementation.
41
- * Uses GPT to extract learning candidates from transcripts.
42
- */
43
- export declare const CandidateExtractorServiceOpenAI: Layer.Layer<CandidateExtractorService, ExtractionUnavailableError, never>;
44
- /**
45
- * Auto-detecting layer that selects the appropriate backend based on environment.
46
- *
47
- * Priority:
48
- * 1. ANTHROPIC_API_KEY set → Use Anthropic (Claude)
49
- * 2. OPENAI_API_KEY set → Use OpenAI (GPT)
50
- * 3. Neither set → Use Noop (graceful degradation)
51
- *
52
- * This allows graceful degradation when no LLM API keys are configured.
53
- */
54
- export declare const CandidateExtractorServiceAuto: Layer.Layer<CandidateExtractorService, ExtractionUnavailableError, never>;
55
- export {};
56
- //# sourceMappingURL=candidate-extractor-service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"candidate-extractor-service.d.ts","sourceRoot":"","sources":["../../src/services/candidate-extractor-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAkB,MAAM,QAAQ,CAAA;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EACV,eAAe,EAEf,gBAAgB,EAGjB,MAAM,yBAAyB,CAAA;;IAgL5B;;;OAGG;sBACe,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;IACzG,qDAAqD;0BAC/B,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;AAvBtD;;;;;;;;;;;;;GAaG;AACH,qBAAa,yBAA0B,SAAQ,8BAW5C;CAAG;AAEN;;;GAGG;AACH,eAAO,MAAM,6BAA6B,sDAUzC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kCAAkC,2EA0G9C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,+BAA+B,2EA4G3C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,2EAmBzC,CAAA"}