@jafreck/lore 0.1.0

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 (239) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +405 -0
  3. package/dist/cli.d.ts +19 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +345 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/index.d.ts +22 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +16 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/indexer/call-graph.d.ts +39 -0
  12. package/dist/indexer/call-graph.d.ts.map +1 -0
  13. package/dist/indexer/call-graph.js +193 -0
  14. package/dist/indexer/call-graph.js.map +1 -0
  15. package/dist/indexer/complexity.d.ts +9 -0
  16. package/dist/indexer/complexity.d.ts.map +1 -0
  17. package/dist/indexer/complexity.js +66 -0
  18. package/dist/indexer/complexity.js.map +1 -0
  19. package/dist/indexer/config-parser.d.ts +16 -0
  20. package/dist/indexer/config-parser.d.ts.map +1 -0
  21. package/dist/indexer/config-parser.js +261 -0
  22. package/dist/indexer/config-parser.js.map +1 -0
  23. package/dist/indexer/coverage.d.ts +13 -0
  24. package/dist/indexer/coverage.d.ts.map +1 -0
  25. package/dist/indexer/coverage.js +84 -0
  26. package/dist/indexer/coverage.js.map +1 -0
  27. package/dist/indexer/db.d.ts +38 -0
  28. package/dist/indexer/db.d.ts.map +1 -0
  29. package/dist/indexer/db.js +275 -0
  30. package/dist/indexer/db.js.map +1 -0
  31. package/dist/indexer/embedder.d.ts +70 -0
  32. package/dist/indexer/embedder.d.ts.map +1 -0
  33. package/dist/indexer/embedder.js +186 -0
  34. package/dist/indexer/embedder.js.map +1 -0
  35. package/dist/indexer/ensure-python-deps.d.ts +22 -0
  36. package/dist/indexer/ensure-python-deps.d.ts.map +1 -0
  37. package/dist/indexer/ensure-python-deps.js +47 -0
  38. package/dist/indexer/ensure-python-deps.js.map +1 -0
  39. package/dist/indexer/extractors/bash.d.ts +12 -0
  40. package/dist/indexer/extractors/bash.d.ts.map +1 -0
  41. package/dist/indexer/extractors/bash.js +57 -0
  42. package/dist/indexer/extractors/bash.js.map +1 -0
  43. package/dist/indexer/extractors/c.d.ts +12 -0
  44. package/dist/indexer/extractors/c.d.ts.map +1 -0
  45. package/dist/indexer/extractors/c.js +106 -0
  46. package/dist/indexer/extractors/c.js.map +1 -0
  47. package/dist/indexer/extractors/cpp.d.ts +12 -0
  48. package/dist/indexer/extractors/cpp.d.ts.map +1 -0
  49. package/dist/indexer/extractors/cpp.js +84 -0
  50. package/dist/indexer/extractors/cpp.js.map +1 -0
  51. package/dist/indexer/extractors/csharp.d.ts +12 -0
  52. package/dist/indexer/extractors/csharp.d.ts.map +1 -0
  53. package/dist/indexer/extractors/csharp.js +79 -0
  54. package/dist/indexer/extractors/csharp.js.map +1 -0
  55. package/dist/indexer/extractors/dart.d.ts +12 -0
  56. package/dist/indexer/extractors/dart.d.ts.map +1 -0
  57. package/dist/indexer/extractors/dart.js +80 -0
  58. package/dist/indexer/extractors/dart.js.map +1 -0
  59. package/dist/indexer/extractors/elixir.d.ts +12 -0
  60. package/dist/indexer/extractors/elixir.d.ts.map +1 -0
  61. package/dist/indexer/extractors/elixir.js +87 -0
  62. package/dist/indexer/extractors/elixir.js.map +1 -0
  63. package/dist/indexer/extractors/elm.d.ts +12 -0
  64. package/dist/indexer/extractors/elm.d.ts.map +1 -0
  65. package/dist/indexer/extractors/elm.js +87 -0
  66. package/dist/indexer/extractors/elm.js.map +1 -0
  67. package/dist/indexer/extractors/go.d.ts +12 -0
  68. package/dist/indexer/extractors/go.d.ts.map +1 -0
  69. package/dist/indexer/extractors/go.js +158 -0
  70. package/dist/indexer/extractors/go.js.map +1 -0
  71. package/dist/indexer/extractors/haskell.d.ts +12 -0
  72. package/dist/indexer/extractors/haskell.d.ts.map +1 -0
  73. package/dist/indexer/extractors/haskell.js +104 -0
  74. package/dist/indexer/extractors/haskell.js.map +1 -0
  75. package/dist/indexer/extractors/java.d.ts +12 -0
  76. package/dist/indexer/extractors/java.d.ts.map +1 -0
  77. package/dist/indexer/extractors/java.js +68 -0
  78. package/dist/indexer/extractors/java.js.map +1 -0
  79. package/dist/indexer/extractors/javascript.d.ts +13 -0
  80. package/dist/indexer/extractors/javascript.d.ts.map +1 -0
  81. package/dist/indexer/extractors/javascript.js +180 -0
  82. package/dist/indexer/extractors/javascript.js.map +1 -0
  83. package/dist/indexer/extractors/julia.d.ts +12 -0
  84. package/dist/indexer/extractors/julia.d.ts.map +1 -0
  85. package/dist/indexer/extractors/julia.js +94 -0
  86. package/dist/indexer/extractors/julia.js.map +1 -0
  87. package/dist/indexer/extractors/kotlin.d.ts +12 -0
  88. package/dist/indexer/extractors/kotlin.d.ts.map +1 -0
  89. package/dist/indexer/extractors/kotlin.js +71 -0
  90. package/dist/indexer/extractors/kotlin.js.map +1 -0
  91. package/dist/indexer/extractors/lua.d.ts +12 -0
  92. package/dist/indexer/extractors/lua.d.ts.map +1 -0
  93. package/dist/indexer/extractors/lua.js +68 -0
  94. package/dist/indexer/extractors/lua.js.map +1 -0
  95. package/dist/indexer/extractors/objc.d.ts +12 -0
  96. package/dist/indexer/extractors/objc.d.ts.map +1 -0
  97. package/dist/indexer/extractors/objc.js +129 -0
  98. package/dist/indexer/extractors/objc.js.map +1 -0
  99. package/dist/indexer/extractors/ocaml.d.ts +12 -0
  100. package/dist/indexer/extractors/ocaml.d.ts.map +1 -0
  101. package/dist/indexer/extractors/ocaml.js +92 -0
  102. package/dist/indexer/extractors/ocaml.js.map +1 -0
  103. package/dist/indexer/extractors/php.d.ts +12 -0
  104. package/dist/indexer/extractors/php.d.ts.map +1 -0
  105. package/dist/indexer/extractors/php.js +99 -0
  106. package/dist/indexer/extractors/php.js.map +1 -0
  107. package/dist/indexer/extractors/python.d.ts +12 -0
  108. package/dist/indexer/extractors/python.d.ts.map +1 -0
  109. package/dist/indexer/extractors/python.js +129 -0
  110. package/dist/indexer/extractors/python.js.map +1 -0
  111. package/dist/indexer/extractors/ruby.d.ts +12 -0
  112. package/dist/indexer/extractors/ruby.d.ts.map +1 -0
  113. package/dist/indexer/extractors/ruby.js +100 -0
  114. package/dist/indexer/extractors/ruby.js.map +1 -0
  115. package/dist/indexer/extractors/rust.d.ts +12 -0
  116. package/dist/indexer/extractors/rust.d.ts.map +1 -0
  117. package/dist/indexer/extractors/rust.js +82 -0
  118. package/dist/indexer/extractors/rust.js.map +1 -0
  119. package/dist/indexer/extractors/scala.d.ts +12 -0
  120. package/dist/indexer/extractors/scala.d.ts.map +1 -0
  121. package/dist/indexer/extractors/scala.js +91 -0
  122. package/dist/indexer/extractors/scala.js.map +1 -0
  123. package/dist/indexer/extractors/swift.d.ts +12 -0
  124. package/dist/indexer/extractors/swift.d.ts.map +1 -0
  125. package/dist/indexer/extractors/swift.js +90 -0
  126. package/dist/indexer/extractors/swift.js.map +1 -0
  127. package/dist/indexer/extractors/types.d.ts +118 -0
  128. package/dist/indexer/extractors/types.d.ts.map +1 -0
  129. package/dist/indexer/extractors/types.js +43 -0
  130. package/dist/indexer/extractors/types.js.map +1 -0
  131. package/dist/indexer/extractors/typescript.d.ts +14 -0
  132. package/dist/indexer/extractors/typescript.d.ts.map +1 -0
  133. package/dist/indexer/extractors/typescript.js +172 -0
  134. package/dist/indexer/extractors/typescript.js.map +1 -0
  135. package/dist/indexer/extractors/zig.d.ts +12 -0
  136. package/dist/indexer/extractors/zig.d.ts.map +1 -0
  137. package/dist/indexer/extractors/zig.js +95 -0
  138. package/dist/indexer/extractors/zig.js.map +1 -0
  139. package/dist/indexer/git-history.d.ts +23 -0
  140. package/dist/indexer/git-history.d.ts.map +1 -0
  141. package/dist/indexer/git-history.js +144 -0
  142. package/dist/indexer/git-history.js.map +1 -0
  143. package/dist/indexer/git-hooks.d.ts +19 -0
  144. package/dist/indexer/git-hooks.d.ts.map +1 -0
  145. package/dist/indexer/git-hooks.js +74 -0
  146. package/dist/indexer/git-hooks.js.map +1 -0
  147. package/dist/indexer/index.d.ts +83 -0
  148. package/dist/indexer/index.d.ts.map +1 -0
  149. package/dist/indexer/index.js +431 -0
  150. package/dist/indexer/index.js.map +1 -0
  151. package/dist/indexer/parser.d.ts +30 -0
  152. package/dist/indexer/parser.d.ts.map +1 -0
  153. package/dist/indexer/parser.js +114 -0
  154. package/dist/indexer/parser.js.map +1 -0
  155. package/dist/indexer/poller.d.ts +50 -0
  156. package/dist/indexer/poller.d.ts.map +1 -0
  157. package/dist/indexer/poller.js +140 -0
  158. package/dist/indexer/poller.js.map +1 -0
  159. package/dist/indexer/resolver.d.ts +52 -0
  160. package/dist/indexer/resolver.d.ts.map +1 -0
  161. package/dist/indexer/resolver.js +271 -0
  162. package/dist/indexer/resolver.js.map +1 -0
  163. package/dist/indexer/test-mapper.d.ts +6 -0
  164. package/dist/indexer/test-mapper.d.ts.map +1 -0
  165. package/dist/indexer/test-mapper.js +48 -0
  166. package/dist/indexer/test-mapper.js.map +1 -0
  167. package/dist/indexer/walker.d.ts +51 -0
  168. package/dist/indexer/walker.d.ts.map +1 -0
  169. package/dist/indexer/walker.js +100 -0
  170. package/dist/indexer/walker.js.map +1 -0
  171. package/dist/indexer/watcher.d.ts +51 -0
  172. package/dist/indexer/watcher.d.ts.map +1 -0
  173. package/dist/indexer/watcher.js +107 -0
  174. package/dist/indexer/watcher.js.map +1 -0
  175. package/dist/kb-server/db.d.ts +241 -0
  176. package/dist/kb-server/db.d.ts.map +1 -0
  177. package/dist/kb-server/db.js +659 -0
  178. package/dist/kb-server/db.js.map +1 -0
  179. package/dist/kb-server/server.d.ts +35 -0
  180. package/dist/kb-server/server.d.ts.map +1 -0
  181. package/dist/kb-server/server.js +240 -0
  182. package/dist/kb-server/server.js.map +1 -0
  183. package/dist/kb-server/tools/annotations.d.ts +40 -0
  184. package/dist/kb-server/tools/annotations.d.ts.map +1 -0
  185. package/dist/kb-server/tools/annotations.js +35 -0
  186. package/dist/kb-server/tools/annotations.js.map +1 -0
  187. package/dist/kb-server/tools/architecture.d.ts +60 -0
  188. package/dist/kb-server/tools/architecture.d.ts.map +1 -0
  189. package/dist/kb-server/tools/architecture.js +174 -0
  190. package/dist/kb-server/tools/architecture.js.map +1 -0
  191. package/dist/kb-server/tools/blame.d.ts +67 -0
  192. package/dist/kb-server/tools/blame.d.ts.map +1 -0
  193. package/dist/kb-server/tools/blame.js +162 -0
  194. package/dist/kb-server/tools/blame.js.map +1 -0
  195. package/dist/kb-server/tools/coverage.d.ts +67 -0
  196. package/dist/kb-server/tools/coverage.d.ts.map +1 -0
  197. package/dist/kb-server/tools/coverage.js +74 -0
  198. package/dist/kb-server/tools/coverage.js.map +1 -0
  199. package/dist/kb-server/tools/graph.d.ts +56 -0
  200. package/dist/kb-server/tools/graph.d.ts.map +1 -0
  201. package/dist/kb-server/tools/graph.js +188 -0
  202. package/dist/kb-server/tools/graph.js.map +1 -0
  203. package/dist/kb-server/tools/history.d.ts +47 -0
  204. package/dist/kb-server/tools/history.d.ts.map +1 -0
  205. package/dist/kb-server/tools/history.js +91 -0
  206. package/dist/kb-server/tools/history.js.map +1 -0
  207. package/dist/kb-server/tools/lookup.d.ts +36 -0
  208. package/dist/kb-server/tools/lookup.d.ts.map +1 -0
  209. package/dist/kb-server/tools/lookup.js +45 -0
  210. package/dist/kb-server/tools/lookup.js.map +1 -0
  211. package/dist/kb-server/tools/metrics.d.ts +73 -0
  212. package/dist/kb-server/tools/metrics.d.ts.map +1 -0
  213. package/dist/kb-server/tools/metrics.js +79 -0
  214. package/dist/kb-server/tools/metrics.js.map +1 -0
  215. package/dist/kb-server/tools/notes.d.ts +165 -0
  216. package/dist/kb-server/tools/notes.d.ts.map +1 -0
  217. package/dist/kb-server/tools/notes.js +175 -0
  218. package/dist/kb-server/tools/notes.js.map +1 -0
  219. package/dist/kb-server/tools/routes.d.ts +38 -0
  220. package/dist/kb-server/tools/routes.d.ts.map +1 -0
  221. package/dist/kb-server/tools/routes.js +38 -0
  222. package/dist/kb-server/tools/routes.js.map +1 -0
  223. package/dist/kb-server/tools/search.d.ts +60 -0
  224. package/dist/kb-server/tools/search.d.ts.map +1 -0
  225. package/dist/kb-server/tools/search.js +170 -0
  226. package/dist/kb-server/tools/search.js.map +1 -0
  227. package/dist/kb-server/tools/snippet.d.ts +44 -0
  228. package/dist/kb-server/tools/snippet.d.ts.map +1 -0
  229. package/dist/kb-server/tools/snippet.js +49 -0
  230. package/dist/kb-server/tools/snippet.js.map +1 -0
  231. package/dist/kb-server/tools/test-map.d.ts +38 -0
  232. package/dist/kb-server/tools/test-map.d.ts.map +1 -0
  233. package/dist/kb-server/tools/test-map.js +32 -0
  234. package/dist/kb-server/tools/test-map.js.map +1 -0
  235. package/dist/kb-server/tools/writeback.d.ts +49 -0
  236. package/dist/kb-server/tools/writeback.d.ts.map +1 -0
  237. package/dist/kb-server/tools/writeback.js +68 -0
  238. package/dist/kb-server/tools/writeback.js.map +1 -0
  239. package/package.json +92 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-graph.js","sourceRoot":"","sources":["../../src/indexer/call-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type RawSymbol } from './extractors/types.js';
2
+ export interface SymbolMetrics {
3
+ line_count: number;
4
+ param_count: number;
5
+ cyclomatic: number;
6
+ max_nesting: number;
7
+ }
8
+ export declare function computeSymbolMetrics(symbol: RawSymbol, language: string): SymbolMetrics;
9
+ //# sourceMappingURL=complexity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complexity.d.ts","sourceRoot":"","sources":["../../src/indexer/complexity.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvF,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAOD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CA6BvF"}
@@ -0,0 +1,66 @@
1
+ import { walk } from './extractors/types.js';
2
+ import { TYPESCRIPT_COMPLEXITY_NODE_TYPES } from './extractors/typescript.js';
3
+ const COMPLEXITY_NODE_TYPES_BY_LANGUAGE = {
4
+ typescript: TYPESCRIPT_COMPLEXITY_NODE_TYPES,
5
+ javascript: TYPESCRIPT_COMPLEXITY_NODE_TYPES,
6
+ };
7
+ export function computeSymbolMetrics(symbol, language) {
8
+ const line_count = Math.max(1, symbol.endLine - symbol.startLine + 1);
9
+ const astNode = symbol.astNode;
10
+ if (!astNode) {
11
+ return {
12
+ line_count,
13
+ param_count: 0,
14
+ cyclomatic: 1,
15
+ max_nesting: 0,
16
+ };
17
+ }
18
+ const nodeTypes = COMPLEXITY_NODE_TYPES_BY_LANGUAGE[language];
19
+ if (!nodeTypes) {
20
+ return {
21
+ line_count,
22
+ param_count: 0,
23
+ cyclomatic: 1,
24
+ max_nesting: 0,
25
+ };
26
+ }
27
+ const decisionCount = countByType(astNode, new Set(nodeTypes.decisionTypes));
28
+ return {
29
+ line_count,
30
+ param_count: countParameters(astNode, nodeTypes),
31
+ cyclomatic: decisionCount + 1,
32
+ max_nesting: computeMaxNesting(astNode, new Set(nodeTypes.nestingTypes)),
33
+ };
34
+ }
35
+ function countParameters(node, nodeTypes) {
36
+ const explicitParams = node.childForFieldName('parameters');
37
+ if (explicitParams) {
38
+ return countByType(explicitParams, new Set(nodeTypes.parameterTypes));
39
+ }
40
+ for (const candidate of walk(node)) {
41
+ if (nodeTypes.parameterListTypes.includes(candidate.type)) {
42
+ return countByType(candidate, new Set(nodeTypes.parameterTypes));
43
+ }
44
+ }
45
+ return 0;
46
+ }
47
+ function countByType(node, targetTypes) {
48
+ let count = 0;
49
+ for (const current of walk(node)) {
50
+ if (targetTypes.has(current.type))
51
+ count += 1;
52
+ }
53
+ return count;
54
+ }
55
+ function computeMaxNesting(node, nestingTypes) {
56
+ const visit = (current, depth) => {
57
+ const nextDepth = nestingTypes.has(current.type) ? depth + 1 : depth;
58
+ let maxDepth = nextDepth;
59
+ for (const child of current.namedChildren) {
60
+ maxDepth = Math.max(maxDepth, visit(child, nextDepth));
61
+ }
62
+ return maxDepth;
63
+ };
64
+ return Math.max(0, visit(node, 0));
65
+ }
66
+ //# sourceMappingURL=complexity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complexity.js","sourceRoot":"","sources":["../../src/indexer/complexity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAA4C,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAS9E,MAAM,iCAAiC,GAAwC;IAC7E,UAAU,EAAE,gCAAgC;IAC5C,UAAU,EAAE,gCAAgC;CAC7C,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,QAAgB;IACtE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,UAAU;YACV,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;YACL,UAAU;YACV,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IAC7E,OAAO;QACL,UAAU;QACV,WAAW,EAAE,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC;QAChD,UAAU,EAAE,aAAa,GAAG,CAAC;QAC7B,WAAW,EAAE,iBAAiB,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAuB,EAAE,SAA8B;IAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC5D,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,WAAW,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,OAAO,WAAW,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,IAAuB,EAAE,WAAwB;IACpE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAuB,EAAE,YAAyB;IAC3E,MAAM,KAAK,GAAG,CAAC,OAA0B,EAAE,KAAa,EAAU,EAAE;QAClE,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrE,IAAI,QAAQ,GAAG,SAAS,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1C,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @module indexer/config-parser
3
+ *
4
+ * Parses configuration artifacts into a normalized shape for persistence.
5
+ */
6
+ export type ConfigValueType = 'string' | 'number' | 'boolean' | 'null' | 'array' | 'object';
7
+ export interface ConfigEntry {
8
+ key: string;
9
+ value: string | null;
10
+ defaultValue: string | null;
11
+ inferredType: ConfigValueType;
12
+ required: boolean;
13
+ description?: string;
14
+ }
15
+ export declare function parseConfigFile(filePath: string, content: string): ConfigEntry[];
16
+ //# sourceMappingURL=config-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-parser.d.ts","sourceRoot":"","sources":["../../src/indexer/config-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5F,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,eAAe,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAYD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAkBhF"}
@@ -0,0 +1,261 @@
1
+ /**
2
+ * @module indexer/config-parser
3
+ *
4
+ * Parses configuration artifacts into a normalized shape for persistence.
5
+ */
6
+ import { basename, extname } from 'node:path';
7
+ export function parseConfigFile(filePath, content) {
8
+ const lowerBase = basename(filePath).toLowerCase();
9
+ const lowerExt = extname(filePath).toLowerCase();
10
+ if (lowerBase === '.env' || lowerBase.startsWith('.env.')) {
11
+ return parseEnvConfig(content);
12
+ }
13
+ if (lowerExt === '.json') {
14
+ return flattenStructured(parseJsonConfig(content));
15
+ }
16
+ if (lowerExt === '.yaml' || lowerExt === '.yml') {
17
+ return flattenStructured(parseYamlConfig(content));
18
+ }
19
+ if (lowerExt === '.toml') {
20
+ return flattenStructured(parseTomlConfig(content));
21
+ }
22
+ throw new Error(`Unsupported config format: ${filePath}`);
23
+ }
24
+ function parseEnvConfig(content) {
25
+ const entries = [];
26
+ let pendingDescription;
27
+ for (const rawLine of content.split(/\r?\n/u)) {
28
+ const line = rawLine.trim();
29
+ if (!line) {
30
+ pendingDescription = undefined;
31
+ continue;
32
+ }
33
+ if (line.startsWith('#')) {
34
+ const comment = line.slice(1).trim();
35
+ pendingDescription = pendingDescription ? `${pendingDescription} ${comment}` : comment;
36
+ continue;
37
+ }
38
+ const envLine = line.startsWith('export ') ? line.slice(7).trim() : line;
39
+ const match = envLine.match(/^([A-Za-z_][A-Za-z0-9_.-]*)\s*=\s*(.*)$/u);
40
+ if (!match) {
41
+ throw new Error(`Invalid .env entry: ${rawLine}`);
42
+ }
43
+ const key = match[1];
44
+ const rawValue = (match[2] ?? '').trim();
45
+ const value = normalizeQuotedValue(rawValue);
46
+ const inferredType = inferType(value);
47
+ const entry = {
48
+ key,
49
+ value,
50
+ defaultValue: value,
51
+ inferredType,
52
+ required: value === null,
53
+ };
54
+ if (pendingDescription) {
55
+ entry.description = pendingDescription;
56
+ }
57
+ entries.push(entry);
58
+ pendingDescription = undefined;
59
+ }
60
+ return entries;
61
+ }
62
+ function parseJsonConfig(content) {
63
+ try {
64
+ const parsed = JSON.parse(content);
65
+ if (!isPlainObject(parsed)) {
66
+ throw new Error('JSON config must be an object');
67
+ }
68
+ return parsed;
69
+ }
70
+ catch (error) {
71
+ const message = error instanceof Error ? error.message : 'Unknown parse error';
72
+ throw new Error(`Invalid JSON config: ${message}`);
73
+ }
74
+ }
75
+ function parseYamlConfig(content) {
76
+ const root = {};
77
+ const stack = [{ indent: -1, object: root }];
78
+ for (const [index, rawLine] of content.split(/\r?\n/u).entries()) {
79
+ const trimmed = rawLine.trim();
80
+ if (!trimmed || trimmed.startsWith('#'))
81
+ continue;
82
+ if (rawLine.includes('\t'))
83
+ throw new Error(`Invalid YAML config at line ${index + 1}: tabs are not supported`);
84
+ const indent = rawLine.length - rawLine.trimStart().length;
85
+ while (stack.length > 1 && indent <= stack.at(-1).indent) {
86
+ stack.pop();
87
+ }
88
+ const separator = trimmed.indexOf(':');
89
+ if (separator < 1)
90
+ throw new Error(`Invalid YAML config at line ${index + 1}`);
91
+ const key = trimmed.slice(0, separator).trim();
92
+ const valuePart = trimmed.slice(separator + 1).trim();
93
+ const parent = stack.at(-1).object;
94
+ if (!valuePart) {
95
+ const child = {};
96
+ parent[key] = child;
97
+ stack.push({ indent, object: child });
98
+ continue;
99
+ }
100
+ parent[key] = parseScalar(valuePart);
101
+ }
102
+ return root;
103
+ }
104
+ function parseTomlConfig(content) {
105
+ const root = {};
106
+ let current = root;
107
+ for (const [index, rawLine] of content.split(/\r?\n/u).entries()) {
108
+ const line = rawLine.trim();
109
+ if (!line || line.startsWith('#'))
110
+ continue;
111
+ const sectionMatch = line.match(/^\[(.+)\]$/u);
112
+ if (sectionMatch) {
113
+ current = ensureObjectPath(root, sectionMatch[1].split('.').map((segment) => segment.trim()));
114
+ continue;
115
+ }
116
+ const assignment = line.match(/^([A-Za-z0-9_.-]+)\s*=\s*(.+)$/u);
117
+ if (!assignment)
118
+ throw new Error(`Invalid TOML config at line ${index + 1}`);
119
+ setTomlValue(current, assignment[1].split('.').map((segment) => segment.trim()), parseScalar(assignment[2].trim()));
120
+ }
121
+ return root;
122
+ }
123
+ function setTomlValue(target, path, value) {
124
+ let current = target;
125
+ for (const key of path.slice(0, -1)) {
126
+ const existing = current[key];
127
+ if (!isPlainObject(existing)) {
128
+ const next = {};
129
+ current[key] = next;
130
+ current = next;
131
+ continue;
132
+ }
133
+ current = existing;
134
+ }
135
+ const lastKey = path[path.length - 1];
136
+ if (!lastKey)
137
+ throw new Error('Invalid TOML key path');
138
+ current[lastKey] = value;
139
+ }
140
+ function ensureObjectPath(root, path) {
141
+ let current = root;
142
+ for (const key of path) {
143
+ const existing = current[key];
144
+ if (!isPlainObject(existing)) {
145
+ const next = {};
146
+ current[key] = next;
147
+ current = next;
148
+ continue;
149
+ }
150
+ current = existing;
151
+ }
152
+ return current;
153
+ }
154
+ function flattenStructured(obj, prefix = '') {
155
+ const entries = [];
156
+ for (const [key, value] of Object.entries(obj)) {
157
+ const fullKey = prefix ? `${prefix}.${key}` : key;
158
+ if (isMetadataObject(value)) {
159
+ entries.push(metadataToEntry(fullKey, value));
160
+ continue;
161
+ }
162
+ if (isPlainObject(value)) {
163
+ entries.push(...flattenStructured(value, fullKey));
164
+ continue;
165
+ }
166
+ const normalized = normalizeValue(value);
167
+ entries.push({
168
+ key: fullKey,
169
+ value: normalized,
170
+ defaultValue: normalized,
171
+ inferredType: inferType(value),
172
+ required: value === null,
173
+ });
174
+ }
175
+ return entries;
176
+ }
177
+ function metadataToEntry(key, metadata) {
178
+ const hasValue = Object.prototype.hasOwnProperty.call(metadata, 'value');
179
+ const hasDefault = Object.prototype.hasOwnProperty.call(metadata, 'default');
180
+ const normalizedValue = hasValue ? normalizeValue(metadata.value ?? null) : normalizeValue(metadata.default ?? null);
181
+ const normalizedDefault = hasDefault ? normalizeValue(metadata.default ?? null) : null;
182
+ const inferredType = toKnownType(metadata.type) ?? inferType(hasValue ? metadata.value : metadata.default);
183
+ const required = typeof metadata.required === 'boolean' ? metadata.required : !hasValue && !hasDefault;
184
+ const entry = {
185
+ key,
186
+ value: normalizedValue,
187
+ defaultValue: normalizedDefault,
188
+ inferredType,
189
+ required,
190
+ };
191
+ if (typeof metadata.description === 'string') {
192
+ entry.description = metadata.description;
193
+ }
194
+ return entry;
195
+ }
196
+ function toKnownType(value) {
197
+ if (value === 'string' || value === 'number' || value === 'boolean' || value === 'null' || value === 'array' || value === 'object') {
198
+ return value;
199
+ }
200
+ return null;
201
+ }
202
+ function parseScalar(raw) {
203
+ const normalized = normalizeQuotedValue(raw);
204
+ if (normalized === null)
205
+ return null;
206
+ if (normalized === 'true')
207
+ return true;
208
+ if (normalized === 'false')
209
+ return false;
210
+ if (normalized === 'null')
211
+ return null;
212
+ if (/^-?\d+(\.\d+)?$/u.test(normalized))
213
+ return Number(normalized);
214
+ if (normalized.startsWith('[') && normalized.endsWith(']')) {
215
+ const body = normalized.slice(1, -1).trim();
216
+ if (!body)
217
+ return [];
218
+ return body.split(',').map((part) => parseScalar(part.trim()));
219
+ }
220
+ return normalized;
221
+ }
222
+ function normalizeQuotedValue(raw) {
223
+ if (!raw)
224
+ return null;
225
+ const trimmed = raw.trim();
226
+ if ((trimmed.startsWith('"') && trimmed.endsWith('"')) || (trimmed.startsWith('\'') && trimmed.endsWith('\''))) {
227
+ return trimmed.slice(1, -1);
228
+ }
229
+ return trimmed;
230
+ }
231
+ function normalizeValue(value) {
232
+ if (value === null || value === undefined)
233
+ return null;
234
+ if (typeof value === 'string')
235
+ return value;
236
+ if (typeof value === 'number' || typeof value === 'boolean')
237
+ return String(value);
238
+ return JSON.stringify(value);
239
+ }
240
+ function inferType(value) {
241
+ if (value === null || value === undefined)
242
+ return 'null';
243
+ if (Array.isArray(value))
244
+ return 'array';
245
+ if (typeof value === 'string')
246
+ return 'string';
247
+ if (typeof value === 'number')
248
+ return 'number';
249
+ if (typeof value === 'boolean')
250
+ return 'boolean';
251
+ return 'object';
252
+ }
253
+ function isPlainObject(value) {
254
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
255
+ }
256
+ function isMetadataObject(value) {
257
+ if (!isPlainObject(value))
258
+ return false;
259
+ return ['value', 'default', 'type', 'required', 'description'].some((field) => Object.prototype.hasOwnProperty.call(value, field));
260
+ }
261
+ //# sourceMappingURL=config-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-parser.js","sourceRoot":"","sources":["../../src/indexer/config-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Database } from './db.js';
2
+ export type CoverageFormat = 'lcov' | 'cobertura';
3
+ interface IngestCoverageReportOptions {
4
+ db: Database.Database;
5
+ rootDir: string;
6
+ reportPath: string;
7
+ format: CoverageFormat;
8
+ commitSha: string;
9
+ sourceMtime?: number;
10
+ }
11
+ export declare function ingestCoverageReport(options: IngestCoverageReportOptions): number;
12
+ export {};
13
+ //# sourceMappingURL=coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/indexer/coverage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,CAAC;AAElD,UAAU,2BAA2B;IACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,CA2CjF"}
@@ -0,0 +1,84 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ export function ingestCoverageReport(options) {
4
+ const source = fs.readFileSync(options.reportPath, 'utf8');
5
+ const lineHitsByFile = options.format === 'lcov'
6
+ ? parseLcov(source, options.rootDir)
7
+ : parseCobertura(source, options.rootDir);
8
+ const insertRun = options.db.prepare(`INSERT INTO coverage_runs (commit_sha, source_path, format, source_mtime)
9
+ VALUES (?, ?, ?, ?)`);
10
+ const insertFile = options.db.prepare(`INSERT INTO coverage_files (run_id, file_path, lines_found, lines_hit)
11
+ VALUES (?, ?, ?, ?)`);
12
+ const insertLine = options.db.prepare(`INSERT INTO coverage_lines (run_id, file_path, line_number, hit_count)
13
+ VALUES (?, ?, ?, ?)`);
14
+ const tx = options.db.transaction(() => {
15
+ const runInfo = insertRun.run(options.commitSha, options.reportPath, options.format, options.sourceMtime ?? null);
16
+ const runId = Number(runInfo.lastInsertRowid);
17
+ for (const [filePath, lineHits] of lineHitsByFile.entries()) {
18
+ const lineEntries = [...lineHits.entries()];
19
+ const linesFound = lineEntries.length;
20
+ const linesHit = lineEntries.filter(([, hitCount]) => hitCount > 0).length;
21
+ insertFile.run(runId, filePath, linesFound, linesHit);
22
+ for (const [lineNumber, hitCount] of lineEntries) {
23
+ insertLine.run(runId, filePath, lineNumber, hitCount);
24
+ }
25
+ }
26
+ return runId;
27
+ });
28
+ return tx();
29
+ }
30
+ function parseLcov(source, rootDir) {
31
+ const result = new Map();
32
+ let currentFilePath;
33
+ for (const rawLine of source.split(/\r?\n/)) {
34
+ if (rawLine.startsWith('SF:')) {
35
+ currentFilePath = normalizeCoveragePath(rawLine.slice(3).trim(), rootDir);
36
+ if (!result.has(currentFilePath)) {
37
+ result.set(currentFilePath, new Map());
38
+ }
39
+ continue;
40
+ }
41
+ if (!rawLine.startsWith('DA:') || !currentFilePath)
42
+ continue;
43
+ const [lineNumberRaw, hitCountRaw] = rawLine.slice(3).split(',');
44
+ const lineNumber = Number(lineNumberRaw);
45
+ const hitCount = Number(hitCountRaw);
46
+ if (!Number.isInteger(lineNumber) || lineNumber <= 0 || !Number.isFinite(hitCount))
47
+ continue;
48
+ const fileHits = result.get(currentFilePath);
49
+ if (!fileHits)
50
+ continue;
51
+ fileHits.set(lineNumber, (fileHits.get(lineNumber) ?? 0) + Math.max(0, Math.floor(hitCount)));
52
+ }
53
+ return result;
54
+ }
55
+ function parseCobertura(source, rootDir) {
56
+ const result = new Map();
57
+ const classPattern = /<class\b[^>]*\bfilename="([^"]+)"[^>]*>([\s\S]*?)<\/class>/g;
58
+ let classMatch;
59
+ while ((classMatch = classPattern.exec(source)) !== null) {
60
+ const rawPath = classMatch[1];
61
+ const classBody = classMatch[2];
62
+ if (!rawPath || !classBody)
63
+ continue;
64
+ const filePath = normalizeCoveragePath(rawPath, rootDir);
65
+ const fileHits = result.get(filePath) ?? new Map();
66
+ result.set(filePath, fileHits);
67
+ const linePattern = /<line\b[^>]*\bnumber="(\d+)"[^>]*\bhits="(\d+)"[^>]*\/?>/g;
68
+ let lineMatch;
69
+ while ((lineMatch = linePattern.exec(classBody)) !== null) {
70
+ const lineNumber = Number(lineMatch[1]);
71
+ const hitCount = Number(lineMatch[2]);
72
+ if (!Number.isInteger(lineNumber) || lineNumber <= 0 || !Number.isFinite(hitCount))
73
+ continue;
74
+ fileHits.set(lineNumber, (fileHits.get(lineNumber) ?? 0) + Math.max(0, Math.floor(hitCount)));
75
+ }
76
+ }
77
+ return result;
78
+ }
79
+ function normalizeCoveragePath(rawPath, rootDir) {
80
+ if (path.isAbsolute(rawPath))
81
+ return path.normalize(rawPath);
82
+ return path.resolve(rootDir, rawPath);
83
+ }
84
+ //# sourceMappingURL=coverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/indexer/coverage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAclC,MAAM,UAAU,oBAAoB,CAAC,OAAoC;IACvE,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,cAAc,GAClB,OAAO,CAAC,MAAM,KAAK,MAAM;QACvB,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC;QACpC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,CAClC;yBACqB,CACtB,CAAC;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,CACnC;yBACqB,CACtB,CAAC;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,CACnC;yBACqB,CACtB,CAAC;IAEF,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QACrC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAC3B,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,IAAI,IAAI,CACY,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAE9C,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;YACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAC3E,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YACtD,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC;gBACjD,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,EAAE,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,OAAe;IAChD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IACtD,IAAI,eAAmC,CAAC;IAExC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,GAAG,EAAkB,CAAC,CAAC;YACzD,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe;YAAE,SAAS;QAC7D,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,SAAS;QAC7F,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,OAAe;IACrD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IACtD,MAAM,YAAY,GAAG,6DAA6D,CAAC;IAEnF,IAAI,UAAkC,CAAC;IACvC,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;YAAE,SAAS;QAErC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE/B,MAAM,WAAW,GAAG,2DAA2D,CAAC;QAChF,IAAI,SAAiC,CAAC;QACtC,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAC7F,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe,EAAE,OAAe;IAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @module indexer/db
3
+ *
4
+ * Opens (or creates) a SQLite knowledge-base database and ensures all
5
+ * required tables exist. Vector embedding tables (vec0 virtual tables)
6
+ * are created separately via `createVec0Tables()` once the embedding
7
+ * dimensions are known.
8
+ */
9
+ import Database from 'better-sqlite3';
10
+ export type { Database };
11
+ /**
12
+ * Opens (or creates) the SQLite database at `path` and initialises the schema.
13
+ *
14
+ * The returned `Database` instance is opened with WAL mode enabled for
15
+ * better concurrent read performance.
16
+ */
17
+ export declare function openDb(path: string): Database.Database;
18
+ export declare const KB_META_INDEX_CHECKPOINT = "index_checkpoint";
19
+ export declare const KB_META_LAST_HEAD_SHA = "last_known_head_sha";
20
+ export declare const KB_META_COVERAGE_LAST_SOURCE_PATH = "coverage_last_source_path";
21
+ export declare const KB_META_COVERAGE_LAST_SOURCE_MTIME = "coverage_last_source_mtime";
22
+ /** Write (or overwrite) a key-value pair in `kb_meta`. */
23
+ export declare function setKbMeta(db: Database.Database, key: string, value: string): void;
24
+ /** Read a value from `kb_meta`; returns `undefined` if the key is absent. */
25
+ export declare function getKbMeta(db: Database.Database, key: string): string | undefined;
26
+ /**
27
+ * Loads the sqlite-vec extension and creates the `symbol_embeddings` and
28
+ * `symbol_semantic_embeddings` vec0 virtual tables with the given dimension.
29
+ * Also stores `embedding_dims` in `kb_meta` for validation on reopen.
30
+ *
31
+ * This function is idempotent: it is safe to call multiple times with the
32
+ * same `dims` value.
33
+ *
34
+ * @param db An open better-sqlite3 database instance.
35
+ * @param dims Embedding dimensionality (e.g. 1024 for Qwen3-Embedding-0.6B).
36
+ */
37
+ export declare function createVec0Tables(db: Database.Database, dims: number): void;
38
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/indexer/db.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAMtC,YAAY,EAAE,QAAQ,EAAE,CAAC;AAoNzB;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAWtD;AAID,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAC3D,eAAO,MAAM,iCAAiC,8BAA8B,CAAC;AAC7E,eAAO,MAAM,kCAAkC,+BAA+B,CAAC;AAE/E,0DAA0D;AAC1D,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEjF;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKhF;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAgB1E"}