@colbymchenry/codegraph 0.7.2 → 0.7.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 (182) hide show
  1. package/README.md +57 -0
  2. package/dist/bin/codegraph.js +39 -4
  3. package/dist/bin/codegraph.js.map +1 -1
  4. package/dist/bin/node-version-check.d.ts +17 -0
  5. package/dist/bin/node-version-check.d.ts.map +1 -0
  6. package/dist/bin/node-version-check.js +39 -0
  7. package/dist/bin/node-version-check.js.map +1 -0
  8. package/dist/context/index.d.ts.map +1 -1
  9. package/dist/context/index.js +46 -18
  10. package/dist/context/index.js.map +1 -1
  11. package/dist/db/index.d.ts +9 -2
  12. package/dist/db/index.d.ts.map +1 -1
  13. package/dist/db/index.js +17 -7
  14. package/dist/db/index.js.map +1 -1
  15. package/dist/db/migrations.d.ts +1 -1
  16. package/dist/db/migrations.d.ts.map +1 -1
  17. package/dist/db/migrations.js +11 -1
  18. package/dist/db/migrations.js.map +1 -1
  19. package/dist/db/queries.d.ts +16 -0
  20. package/dist/db/queries.d.ts.map +1 -1
  21. package/dist/db/queries.js +144 -7
  22. package/dist/db/queries.js.map +1 -1
  23. package/dist/db/schema.sql +6 -3
  24. package/dist/db/sqlite-adapter.d.ts +23 -4
  25. package/dist/db/sqlite-adapter.d.ts.map +1 -1
  26. package/dist/db/sqlite-adapter.js +51 -11
  27. package/dist/db/sqlite-adapter.js.map +1 -1
  28. package/dist/extraction/grammars.d.ts +1 -1
  29. package/dist/extraction/grammars.d.ts.map +1 -1
  30. package/dist/extraction/grammars.js +12 -4
  31. package/dist/extraction/grammars.js.map +1 -1
  32. package/dist/extraction/index.d.ts +20 -0
  33. package/dist/extraction/index.d.ts.map +1 -1
  34. package/dist/extraction/index.js +111 -7
  35. package/dist/extraction/index.js.map +1 -1
  36. package/dist/extraction/languages/index.d.ts.map +1 -1
  37. package/dist/extraction/languages/index.js +2 -0
  38. package/dist/extraction/languages/index.js.map +1 -1
  39. package/dist/extraction/languages/scala.d.ts +3 -0
  40. package/dist/extraction/languages/scala.d.ts.map +1 -0
  41. package/dist/extraction/languages/scala.js +139 -0
  42. package/dist/extraction/languages/scala.js.map +1 -0
  43. package/dist/extraction/parse-worker.js +39 -2
  44. package/dist/extraction/parse-worker.js.map +1 -1
  45. package/dist/extraction/svelte-extractor.d.ts +9 -0
  46. package/dist/extraction/svelte-extractor.d.ts.map +1 -1
  47. package/dist/extraction/svelte-extractor.js +42 -0
  48. package/dist/extraction/svelte-extractor.js.map +1 -1
  49. package/dist/extraction/tree-sitter.d.ts +32 -16
  50. package/dist/extraction/tree-sitter.d.ts.map +1 -1
  51. package/dist/extraction/tree-sitter.js +266 -67
  52. package/dist/extraction/tree-sitter.js.map +1 -1
  53. package/dist/extraction/vue-extractor.d.ts +36 -0
  54. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  55. package/dist/extraction/vue-extractor.js +163 -0
  56. package/dist/extraction/vue-extractor.js.map +1 -0
  57. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  58. package/dist/graph/traversal.d.ts.map +1 -1
  59. package/dist/graph/traversal.js +7 -1
  60. package/dist/graph/traversal.js.map +1 -1
  61. package/dist/index.d.ts +7 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +9 -0
  64. package/dist/index.js.map +1 -1
  65. package/dist/mcp/index.d.ts.map +1 -1
  66. package/dist/mcp/index.js +6 -1
  67. package/dist/mcp/index.js.map +1 -1
  68. package/dist/mcp/server-instructions.d.ts +19 -0
  69. package/dist/mcp/server-instructions.d.ts.map +1 -0
  70. package/dist/mcp/server-instructions.js +59 -0
  71. package/dist/mcp/server-instructions.js.map +1 -0
  72. package/dist/mcp/tools.d.ts.map +1 -1
  73. package/dist/mcp/tools.js +46 -8
  74. package/dist/mcp/tools.js.map +1 -1
  75. package/dist/resolution/frameworks/csharp.d.ts.map +1 -1
  76. package/dist/resolution/frameworks/csharp.js +72 -78
  77. package/dist/resolution/frameworks/csharp.js.map +1 -1
  78. package/dist/resolution/frameworks/express.d.ts.map +1 -1
  79. package/dist/resolution/frameworks/express.js +47 -26
  80. package/dist/resolution/frameworks/express.js.map +1 -1
  81. package/dist/resolution/frameworks/go.d.ts.map +1 -1
  82. package/dist/resolution/frameworks/go.js +41 -72
  83. package/dist/resolution/frameworks/go.js.map +1 -1
  84. package/dist/resolution/frameworks/index.d.ts +7 -0
  85. package/dist/resolution/frameworks/index.d.ts.map +1 -1
  86. package/dist/resolution/frameworks/index.js +13 -1
  87. package/dist/resolution/frameworks/index.js.map +1 -1
  88. package/dist/resolution/frameworks/java.d.ts.map +1 -1
  89. package/dist/resolution/frameworks/java.js +36 -40
  90. package/dist/resolution/frameworks/java.js.map +1 -1
  91. package/dist/resolution/frameworks/laravel.d.ts.map +1 -1
  92. package/dist/resolution/frameworks/laravel.js +94 -44
  93. package/dist/resolution/frameworks/laravel.js.map +1 -1
  94. package/dist/resolution/frameworks/python.d.ts.map +1 -1
  95. package/dist/resolution/frameworks/python.js +163 -151
  96. package/dist/resolution/frameworks/python.js.map +1 -1
  97. package/dist/resolution/frameworks/react.d.ts.map +1 -1
  98. package/dist/resolution/frameworks/react.js +3 -2
  99. package/dist/resolution/frameworks/react.js.map +1 -1
  100. package/dist/resolution/frameworks/ruby.d.ts.map +1 -1
  101. package/dist/resolution/frameworks/ruby.js +39 -91
  102. package/dist/resolution/frameworks/ruby.js.map +1 -1
  103. package/dist/resolution/frameworks/rust.d.ts.map +1 -1
  104. package/dist/resolution/frameworks/rust.js +50 -43
  105. package/dist/resolution/frameworks/rust.js.map +1 -1
  106. package/dist/resolution/frameworks/svelte.d.ts.map +1 -1
  107. package/dist/resolution/frameworks/svelte.js +3 -2
  108. package/dist/resolution/frameworks/svelte.js.map +1 -1
  109. package/dist/resolution/frameworks/swift.d.ts.map +1 -1
  110. package/dist/resolution/frameworks/swift.js +54 -46
  111. package/dist/resolution/frameworks/swift.js.map +1 -1
  112. package/dist/resolution/frameworks/vue.d.ts +9 -0
  113. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  114. package/dist/resolution/frameworks/vue.js +306 -0
  115. package/dist/resolution/frameworks/vue.js.map +1 -0
  116. package/dist/resolution/import-resolver.d.ts +17 -1
  117. package/dist/resolution/import-resolver.d.ts.map +1 -1
  118. package/dist/resolution/import-resolver.js +256 -46
  119. package/dist/resolution/import-resolver.js.map +1 -1
  120. package/dist/resolution/index.d.ts +8 -0
  121. package/dist/resolution/index.d.ts.map +1 -1
  122. package/dist/resolution/index.js +60 -1
  123. package/dist/resolution/index.js.map +1 -1
  124. package/dist/resolution/name-matcher.d.ts.map +1 -1
  125. package/dist/resolution/name-matcher.js +21 -0
  126. package/dist/resolution/name-matcher.js.map +1 -1
  127. package/dist/resolution/path-aliases.d.ts +68 -0
  128. package/dist/resolution/path-aliases.d.ts.map +1 -0
  129. package/dist/resolution/path-aliases.js +238 -0
  130. package/dist/resolution/path-aliases.js.map +1 -0
  131. package/dist/resolution/strip-comments.d.ts +27 -0
  132. package/dist/resolution/strip-comments.d.ts.map +1 -0
  133. package/dist/resolution/strip-comments.js +441 -0
  134. package/dist/resolution/strip-comments.js.map +1 -0
  135. package/dist/resolution/types.d.ts +54 -3
  136. package/dist/resolution/types.d.ts.map +1 -1
  137. package/dist/search/query-parser.d.ts +57 -0
  138. package/dist/search/query-parser.d.ts.map +1 -0
  139. package/dist/search/query-parser.js +177 -0
  140. package/dist/search/query-parser.js.map +1 -0
  141. package/dist/types.d.ts +11 -4
  142. package/dist/types.d.ts.map +1 -1
  143. package/dist/types.js +68 -1
  144. package/dist/types.js.map +1 -1
  145. package/package.json +5 -2
  146. package/dist/installer/banner.d.ts +0 -40
  147. package/dist/installer/banner.d.ts.map +0 -1
  148. package/dist/installer/banner.js +0 -165
  149. package/dist/installer/banner.js.map +0 -1
  150. package/dist/installer/prompts.d.ts +0 -18
  151. package/dist/installer/prompts.d.ts.map +0 -1
  152. package/dist/installer/prompts.js +0 -113
  153. package/dist/installer/prompts.js.map +0 -1
  154. package/dist/sentry.d.ts +0 -24
  155. package/dist/sentry.d.ts.map +0 -1
  156. package/dist/sentry.js +0 -166
  157. package/dist/sentry.js.map +0 -1
  158. package/dist/sync/git-hooks.d.ts +0 -66
  159. package/dist/sync/git-hooks.d.ts.map +0 -1
  160. package/dist/sync/git-hooks.js +0 -281
  161. package/dist/sync/git-hooks.js.map +0 -1
  162. package/dist/vectors/embedder.d.ts +0 -140
  163. package/dist/vectors/embedder.d.ts.map +0 -1
  164. package/dist/vectors/embedder.js +0 -338
  165. package/dist/vectors/embedder.js.map +0 -1
  166. package/dist/vectors/index.d.ts +0 -9
  167. package/dist/vectors/index.d.ts.map +0 -1
  168. package/dist/vectors/index.js +0 -20
  169. package/dist/vectors/index.js.map +0 -1
  170. package/dist/vectors/manager.d.ts +0 -119
  171. package/dist/vectors/manager.d.ts.map +0 -1
  172. package/dist/vectors/manager.js +0 -274
  173. package/dist/vectors/manager.js.map +0 -1
  174. package/dist/vectors/search.d.ts +0 -134
  175. package/dist/vectors/search.d.ts.map +0 -1
  176. package/dist/vectors/search.js +0 -411
  177. package/dist/vectors/search.js.map +0 -1
  178. package/dist/visualizer/public/index.html +0 -1994
  179. package/dist/visualizer/server.d.ts +0 -46
  180. package/dist/visualizer/server.d.ts.map +0 -1
  181. package/dist/visualizer/server.js +0 -491
  182. package/dist/visualizer/server.js.map +0 -1
@@ -1,140 +0,0 @@
1
- /**
2
- * Text Embedder
3
- *
4
- * Generates vector embeddings using the nomic-embed-text model via Transformers.js.
5
- * Uses ONNX runtime under the hood for fast local inference.
6
- */
7
- /**
8
- * Default model for embeddings
9
- * nomic-embed-text-v1.5 produces 384-dimensional embeddings
10
- */
11
- export declare const DEFAULT_MODEL = "nomic-ai/nomic-embed-text-v1.5";
12
- export declare const EMBEDDING_DIMENSION = 768;
13
- /**
14
- * Options for the embedder
15
- */
16
- export interface EmbedderOptions {
17
- /** Model ID to use (default: nomic-ai/nomic-embed-text-v1.5) */
18
- modelId?: string;
19
- /** Directory to cache the model (default: ~/.codegraph/models) */
20
- cacheDir?: string;
21
- /** Whether to show progress during model download */
22
- showProgress?: boolean;
23
- }
24
- /**
25
- * Text embedding result
26
- */
27
- export interface EmbeddingResult {
28
- /** The embedding vector */
29
- embedding: Float32Array;
30
- /** Dimension of the embedding */
31
- dimension: number;
32
- /** Model used to generate the embedding */
33
- model: string;
34
- }
35
- /**
36
- * Batch embedding result
37
- */
38
- export interface BatchEmbeddingResult {
39
- /** Array of embeddings in same order as input */
40
- embeddings: Float32Array[];
41
- /** Dimension of each embedding */
42
- dimension: number;
43
- /** Model used to generate embeddings */
44
- model: string;
45
- /** Processing time in milliseconds */
46
- durationMs: number;
47
- }
48
- /**
49
- * Text Embedder using Transformers.js
50
- *
51
- * Uses the nomic-embed-text-v1.5 model to generate embeddings for code
52
- * and natural language queries.
53
- */
54
- export declare class TextEmbedder {
55
- private modelId;
56
- private cacheDir;
57
- private pipeline;
58
- private initialized;
59
- private showProgress;
60
- constructor(options?: EmbedderOptions);
61
- /**
62
- * Initialize the embedder by loading the model
63
- *
64
- * This will download the model on first use if not already cached.
65
- */
66
- initialize(): Promise<void>;
67
- /**
68
- * Check if the embedder is initialized
69
- */
70
- isInitialized(): boolean;
71
- /**
72
- * Get the model ID being used
73
- */
74
- getModelId(): string;
75
- /**
76
- * Get the embedding dimension
77
- */
78
- getDimension(): number;
79
- /**
80
- * Generate embedding for a single text
81
- *
82
- * @param text - Text to embed
83
- * @returns Embedding result
84
- */
85
- embed(text: string): Promise<EmbeddingResult>;
86
- /**
87
- * Generate embedding for a query (uses different prefix)
88
- *
89
- * @param query - Query text to embed
90
- * @returns Embedding result
91
- */
92
- embedQuery(query: string): Promise<EmbeddingResult>;
93
- /**
94
- * Generate embeddings for multiple texts in a batch
95
- *
96
- * @param texts - Array of texts to embed
97
- * @param type - Type of text (document or search_query)
98
- * @returns Batch embedding result
99
- */
100
- embedBatch(texts: string[], type?: 'document' | 'search_query'): Promise<BatchEmbeddingResult>;
101
- /**
102
- * Convert various array formats to Float32Array
103
- */
104
- private toFloat32Array;
105
- /**
106
- * Prepare text for the nomic-embed-text model
107
- *
108
- * The model expects specific prefixes for different tasks:
109
- * - "search_document: " for documents to be searched
110
- * - "search_query: " for search queries
111
- */
112
- private prepareText;
113
- /**
114
- * Create text representation of a code node for embedding
115
- *
116
- * Combines name, signature, docstring, and code snippet into
117
- * a searchable text representation.
118
- */
119
- static createNodeText(node: {
120
- name: string;
121
- kind: string;
122
- qualifiedName?: string;
123
- signature?: string;
124
- docstring?: string;
125
- filePath: string;
126
- }): string;
127
- /**
128
- * Compute cosine similarity between two embeddings
129
- */
130
- static cosineSimilarity(a: Float32Array, b: Float32Array): number;
131
- /**
132
- * Release resources
133
- */
134
- dispose(): void;
135
- }
136
- /**
137
- * Create a text embedder instance
138
- */
139
- export declare function createEmbedder(options?: EmbedderOptions): TextEmbedder;
140
- //# sourceMappingURL=embedder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embedder.d.ts","sourceRoot":"","sources":["../../src/vectors/embedder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH;;;GAGG;AACH,eAAO,MAAM,aAAa,mCAAmC,CAAC;AAC9D,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,SAAS,EAAE,YAAY,CAAC;IAExB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAElB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,UAAU,EAAE,YAAY,EAAE,CAAC;IAE3B,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAElB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IAEd,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAU;gBAElB,OAAO,GAAE,eAAoB;IAMzC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CjC;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;OAKG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyBnD;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyBzD;;;;;;OAMG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,GAAE,UAAU,GAAG,cAA2B,GAC7C,OAAO,CAAC,oBAAoB,CAAC;IA8ChC;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAanB;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,MAAM;IA2BV;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM;IA2BjE;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,YAAY,CAEtE"}
@@ -1,338 +0,0 @@
1
- "use strict";
2
- /**
3
- * Text Embedder
4
- *
5
- * Generates vector embeddings using the nomic-embed-text model via Transformers.js.
6
- * Uses ONNX runtime under the hood for fast local inference.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
- Object.defineProperty(o, "default", { enumerable: true, value: v });
21
- }) : function(o, v) {
22
- o["default"] = v;
23
- });
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.TextEmbedder = exports.EMBEDDING_DIMENSION = exports.DEFAULT_MODEL = void 0;
43
- exports.createEmbedder = createEmbedder;
44
- const path = __importStar(require("path"));
45
- const fs = __importStar(require("fs"));
46
- const os_1 = require("os");
47
- // Global model cache directory - uses codegraph's models directory for shared embedding models
48
- const GLOBAL_MODELS_DIR = path.join((0, os_1.homedir)(), '.codegraph', 'models');
49
- // Dynamic import for @xenova/transformers (ESM-only package)
50
- // We use dynamic import to support CommonJS builds
51
- let transformersModule = null;
52
- async function getTransformers() {
53
- if (!transformersModule) {
54
- transformersModule = await Promise.resolve().then(() => __importStar(require('@xenova/transformers')));
55
- }
56
- return transformersModule;
57
- }
58
- /**
59
- * Default model for embeddings
60
- * nomic-embed-text-v1.5 produces 384-dimensional embeddings
61
- */
62
- exports.DEFAULT_MODEL = 'nomic-ai/nomic-embed-text-v1.5';
63
- exports.EMBEDDING_DIMENSION = 768; // nomic-embed-text-v1.5 uses 768 dimensions
64
- /**
65
- * Text Embedder using Transformers.js
66
- *
67
- * Uses the nomic-embed-text-v1.5 model to generate embeddings for code
68
- * and natural language queries.
69
- */
70
- class TextEmbedder {
71
- modelId;
72
- cacheDir;
73
- pipeline = null;
74
- initialized = false;
75
- showProgress;
76
- constructor(options = {}) {
77
- this.modelId = options.modelId || exports.DEFAULT_MODEL;
78
- this.cacheDir = options.cacheDir || GLOBAL_MODELS_DIR;
79
- this.showProgress = options.showProgress ?? false;
80
- }
81
- /**
82
- * Initialize the embedder by loading the model
83
- *
84
- * This will download the model on first use if not already cached.
85
- */
86
- async initialize() {
87
- if (this.initialized) {
88
- return;
89
- }
90
- // Load transformers.js dynamically (ESM-only package)
91
- const { pipeline, env } = await getTransformers();
92
- // Configure transformers.js to use local cache
93
- env.cacheDir = this.cacheDir;
94
- // Ensure cache directory exists
95
- if (!fs.existsSync(this.cacheDir)) {
96
- fs.mkdirSync(this.cacheDir, { recursive: true });
97
- }
98
- // Disable remote model checking if model is already cached
99
- // This speeds up initialization significantly
100
- const modelCacheExists = fs.existsSync(path.join(this.cacheDir, this.modelId.replace('/', '--')));
101
- if (modelCacheExists) {
102
- env.allowRemoteModels = false;
103
- }
104
- // Load the pipeline with quantized model to reduce WASM memory pressure.
105
- // Quantized (int8/uint8) is ~4x smaller than FP32 with minimal quality loss.
106
- this.pipeline = await pipeline('feature-extraction', this.modelId, {
107
- quantized: true,
108
- progress_callback: this.showProgress
109
- ? (progress) => {
110
- if (progress.status === 'progress' && progress.file && progress.progress) {
111
- const pct = Math.round(progress.progress);
112
- process.stdout.write(`\rDownloading ${progress.file}: ${pct}%\x1b[K`);
113
- }
114
- else if (progress.status === 'done') {
115
- process.stdout.write('\n');
116
- }
117
- }
118
- : undefined,
119
- });
120
- this.initialized = true;
121
- }
122
- /**
123
- * Check if the embedder is initialized
124
- */
125
- isInitialized() {
126
- return this.initialized;
127
- }
128
- /**
129
- * Get the model ID being used
130
- */
131
- getModelId() {
132
- return this.modelId;
133
- }
134
- /**
135
- * Get the embedding dimension
136
- */
137
- getDimension() {
138
- return exports.EMBEDDING_DIMENSION;
139
- }
140
- /**
141
- * Generate embedding for a single text
142
- *
143
- * @param text - Text to embed
144
- * @returns Embedding result
145
- */
146
- async embed(text) {
147
- if (!this.initialized || !this.pipeline) {
148
- throw new Error('Embedder not initialized. Call initialize() first.');
149
- }
150
- // Prepare text for nomic-embed-text (it expects specific prefixes)
151
- const preparedText = this.prepareText(text, 'document');
152
- // Generate embedding
153
- const output = await this.pipeline(preparedText, {
154
- pooling: 'mean',
155
- normalize: true,
156
- });
157
- // Extract the embedding array - handle various data formats
158
- const data = output.data;
159
- const embedding = this.toFloat32Array(data);
160
- return {
161
- embedding,
162
- dimension: embedding.length,
163
- model: this.modelId,
164
- };
165
- }
166
- /**
167
- * Generate embedding for a query (uses different prefix)
168
- *
169
- * @param query - Query text to embed
170
- * @returns Embedding result
171
- */
172
- async embedQuery(query) {
173
- if (!this.initialized || !this.pipeline) {
174
- throw new Error('Embedder not initialized. Call initialize() first.');
175
- }
176
- // Prepare text for nomic-embed-text query
177
- const preparedText = this.prepareText(query, 'search_query');
178
- // Generate embedding
179
- const output = await this.pipeline(preparedText, {
180
- pooling: 'mean',
181
- normalize: true,
182
- });
183
- // Extract the embedding array - handle various data formats
184
- const data = output.data;
185
- const embedding = this.toFloat32Array(data);
186
- return {
187
- embedding,
188
- dimension: embedding.length,
189
- model: this.modelId,
190
- };
191
- }
192
- /**
193
- * Generate embeddings for multiple texts in a batch
194
- *
195
- * @param texts - Array of texts to embed
196
- * @param type - Type of text (document or search_query)
197
- * @returns Batch embedding result
198
- */
199
- async embedBatch(texts, type = 'document') {
200
- if (!this.initialized || !this.pipeline) {
201
- throw new Error('Embedder not initialized. Call initialize() first.');
202
- }
203
- if (texts.length === 0) {
204
- return {
205
- embeddings: [],
206
- dimension: exports.EMBEDDING_DIMENSION,
207
- model: this.modelId,
208
- durationMs: 0,
209
- };
210
- }
211
- const startTime = Date.now();
212
- // Prepare all texts
213
- const preparedTexts = texts.map((t) => this.prepareText(t, type));
214
- // Generate embeddings
215
- const outputs = await this.pipeline(preparedTexts, {
216
- pooling: 'mean',
217
- normalize: true,
218
- });
219
- // Extract embeddings
220
- const embeddings = [];
221
- const dims = outputs.dims;
222
- const dimension = dims[1] ?? exports.EMBEDDING_DIMENSION;
223
- const data = outputs.data;
224
- const flatData = this.toFloat32Array(data);
225
- for (let i = 0; i < texts.length; i++) {
226
- const start = i * dimension;
227
- const end = start + dimension;
228
- embeddings.push(flatData.slice(start, end));
229
- }
230
- return {
231
- embeddings,
232
- dimension,
233
- model: this.modelId,
234
- durationMs: Date.now() - startTime,
235
- };
236
- }
237
- /**
238
- * Convert various array formats to Float32Array
239
- */
240
- toFloat32Array(data) {
241
- if (data instanceof Float32Array) {
242
- return data;
243
- }
244
- if (Array.isArray(data)) {
245
- return new Float32Array(data);
246
- }
247
- if (data && typeof data === 'object' && 'length' in data) {
248
- // Handle TypedArray-like objects
249
- const arr = data;
250
- return Float32Array.from(Array.from(arr));
251
- }
252
- throw new Error('Unsupported data format for embedding');
253
- }
254
- /**
255
- * Prepare text for the nomic-embed-text model
256
- *
257
- * The model expects specific prefixes for different tasks:
258
- * - "search_document: " for documents to be searched
259
- * - "search_query: " for search queries
260
- */
261
- prepareText(text, type) {
262
- // Truncate very long texts (model has a max token limit)
263
- const maxLength = 8192; // nomic-embed-text-v1.5 supports 8192 tokens
264
- const truncatedText = text.length > maxLength ? text.slice(0, maxLength) : text;
265
- // Add appropriate prefix
266
- if (type === 'search_query') {
267
- return `search_query: ${truncatedText}`;
268
- }
269
- else {
270
- return `search_document: ${truncatedText}`;
271
- }
272
- }
273
- /**
274
- * Create text representation of a code node for embedding
275
- *
276
- * Combines name, signature, docstring, and code snippet into
277
- * a searchable text representation.
278
- */
279
- static createNodeText(node) {
280
- const parts = [];
281
- // Add kind and name
282
- parts.push(`${node.kind}: ${node.name}`);
283
- // Add qualified name if different from name
284
- if (node.qualifiedName && node.qualifiedName !== node.name) {
285
- parts.push(`path: ${node.qualifiedName}`);
286
- }
287
- // Add file path
288
- parts.push(`file: ${node.filePath}`);
289
- // Add signature if present
290
- if (node.signature) {
291
- parts.push(`signature: ${node.signature}`);
292
- }
293
- // Add docstring if present
294
- if (node.docstring) {
295
- parts.push(`documentation: ${node.docstring}`);
296
- }
297
- return parts.join('\n');
298
- }
299
- /**
300
- * Compute cosine similarity between two embeddings
301
- */
302
- static cosineSimilarity(a, b) {
303
- if (a.length !== b.length) {
304
- throw new Error('Embeddings must have the same dimension');
305
- }
306
- let dotProduct = 0;
307
- let normA = 0;
308
- let normB = 0;
309
- for (let i = 0; i < a.length; i++) {
310
- const aVal = a[i];
311
- const bVal = b[i];
312
- dotProduct += aVal * bVal;
313
- normA += aVal * aVal;
314
- normB += bVal * bVal;
315
- }
316
- normA = Math.sqrt(normA);
317
- normB = Math.sqrt(normB);
318
- if (normA === 0 || normB === 0) {
319
- return 0;
320
- }
321
- return dotProduct / (normA * normB);
322
- }
323
- /**
324
- * Release resources
325
- */
326
- dispose() {
327
- this.pipeline = null;
328
- this.initialized = false;
329
- }
330
- }
331
- exports.TextEmbedder = TextEmbedder;
332
- /**
333
- * Create a text embedder instance
334
- */
335
- function createEmbedder(options) {
336
- return new TextEmbedder(options);
337
- }
338
- //# sourceMappingURL=embedder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embedder.js","sourceRoot":"","sources":["../../src/vectors/embedder.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Vectors Module
3
- *
4
- * Provides text embedding and vector similarity search for semantic code search.
5
- */
6
- export { TextEmbedder, createEmbedder, DEFAULT_MODEL, EMBEDDING_DIMENSION, EmbedderOptions, EmbeddingResult, BatchEmbeddingResult, } from './embedder';
7
- export { VectorSearchManager, createVectorSearch, VectorSearchOptions, } from './search';
8
- export { VectorManager, createVectorManager, VectorManagerOptions, EmbeddingProgress, } from './manager';
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vectors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,WAAW,CAAC"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- /**
3
- * Vectors Module
4
- *
5
- * Provides text embedding and vector similarity search for semantic code search.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.createVectorManager = exports.VectorManager = exports.createVectorSearch = exports.VectorSearchManager = exports.EMBEDDING_DIMENSION = exports.DEFAULT_MODEL = exports.createEmbedder = exports.TextEmbedder = void 0;
9
- var embedder_1 = require("./embedder");
10
- Object.defineProperty(exports, "TextEmbedder", { enumerable: true, get: function () { return embedder_1.TextEmbedder; } });
11
- Object.defineProperty(exports, "createEmbedder", { enumerable: true, get: function () { return embedder_1.createEmbedder; } });
12
- Object.defineProperty(exports, "DEFAULT_MODEL", { enumerable: true, get: function () { return embedder_1.DEFAULT_MODEL; } });
13
- Object.defineProperty(exports, "EMBEDDING_DIMENSION", { enumerable: true, get: function () { return embedder_1.EMBEDDING_DIMENSION; } });
14
- var search_1 = require("./search");
15
- Object.defineProperty(exports, "VectorSearchManager", { enumerable: true, get: function () { return search_1.VectorSearchManager; } });
16
- Object.defineProperty(exports, "createVectorSearch", { enumerable: true, get: function () { return search_1.createVectorSearch; } });
17
- var manager_1 = require("./manager");
18
- Object.defineProperty(exports, "VectorManager", { enumerable: true, get: function () { return manager_1.VectorManager; } });
19
- Object.defineProperty(exports, "createVectorManager", { enumerable: true, get: function () { return manager_1.createVectorManager; } });
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vectors/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,uCAQoB;AAPlB,wGAAA,YAAY,OAAA;AACZ,0GAAA,cAAc,OAAA;AACd,yGAAA,aAAa,OAAA;AACb,+GAAA,mBAAmB,OAAA;AAMrB,mCAIkB;AAHhB,6GAAA,mBAAmB,OAAA;AACnB,4GAAA,kBAAkB,OAAA;AAIpB,qCAKmB;AAJjB,wGAAA,aAAa,OAAA;AACb,8GAAA,mBAAmB,OAAA"}
@@ -1,119 +0,0 @@
1
- /**
2
- * Vector Manager
3
- *
4
- * High-level manager that coordinates embedding generation and vector search.
5
- */
6
- import { SqliteDatabase } from '../db/sqlite-adapter';
7
- import { Node, SearchResult, SearchOptions } from '../types';
8
- import { EmbedderOptions } from './embedder';
9
- import { QueryBuilder } from '../db/queries';
10
- /**
11
- * Progress callback for embedding generation
12
- */
13
- export interface EmbeddingProgress {
14
- /** Current node index */
15
- current: number;
16
- /** Total nodes to embed */
17
- total: number;
18
- /** Current node being embedded */
19
- nodeName?: string;
20
- }
21
- /**
22
- * Options for the vector manager
23
- */
24
- export interface VectorManagerOptions {
25
- /** Embedder options */
26
- embedder?: EmbedderOptions;
27
- /** Node kinds to embed (default: functions, methods, classes, interfaces) */
28
- nodeKinds?: Node['kind'][];
29
- /** Batch size for embedding generation */
30
- batchSize?: number;
31
- }
32
- /**
33
- * Vector Manager
34
- *
35
- * Provides high-level interface for semantic search:
36
- * - Generates embeddings for code nodes
37
- * - Stores embeddings in the database
38
- * - Performs semantic similarity search
39
- */
40
- export declare class VectorManager {
41
- private embedder;
42
- private searchManager;
43
- private queries;
44
- private nodeKinds;
45
- private batchSize;
46
- private initialized;
47
- constructor(db: SqliteDatabase, queries: QueryBuilder, options?: VectorManagerOptions);
48
- /**
49
- * Initialize the vector manager
50
- *
51
- * Loads the embedding model and initializes vector search.
52
- */
53
- initialize(): Promise<void>;
54
- /**
55
- * Check if the vector manager is initialized
56
- */
57
- isInitialized(): boolean;
58
- /**
59
- * Generate embeddings for all eligible nodes
60
- *
61
- * @param onProgress - Optional progress callback
62
- * @returns Number of nodes embedded
63
- */
64
- embedAllNodes(onProgress?: (progress: EmbeddingProgress) => void): Promise<number>;
65
- /**
66
- * Generate embedding for a single node
67
- *
68
- * @param node - Node to embed
69
- */
70
- embedNode(node: Node): Promise<void>;
71
- /**
72
- * Semantic search for nodes matching a query
73
- *
74
- * @param query - Natural language query
75
- * @param options - Search options
76
- * @returns Array of search results with similarity scores
77
- */
78
- search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
79
- /**
80
- * Find nodes similar to a given node
81
- *
82
- * @param nodeId - ID of the node to find similar nodes for
83
- * @param options - Search options
84
- * @returns Array of similar nodes with similarity scores
85
- */
86
- findSimilar(nodeId: string, options?: SearchOptions): Promise<SearchResult[]>;
87
- /**
88
- * Delete embedding for a node
89
- *
90
- * @param nodeId - ID of the node
91
- */
92
- deleteNodeEmbedding(nodeId: string): void;
93
- /**
94
- * Get statistics about vector storage
95
- */
96
- getStats(): {
97
- totalVectors: number;
98
- vssEnabled: boolean;
99
- modelId: string;
100
- dimension: number;
101
- };
102
- /**
103
- * Clear all vectors
104
- */
105
- clear(): void;
106
- /**
107
- * Rebuild the VSS index
108
- */
109
- rebuildIndex(): void;
110
- /**
111
- * Release resources
112
- */
113
- dispose(): void;
114
- }
115
- /**
116
- * Create a vector manager
117
- */
118
- export declare function createVectorManager(db: SqliteDatabase, queries: QueryBuilder, options?: VectorManagerOptions): VectorManager;
119
- //# sourceMappingURL=manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/vectors/manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAgC,eAAe,EAAuB,MAAM,YAAY,CAAC;AAEhG,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAEhB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IAEd,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IAE3B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAeD;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE,oBAAyB;IASpC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;OAKG;IACG,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IA2DxF;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA0CjF;;;;;;OAMG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA8DvF;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB;IASD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAEf"}