@colbymchenry/codegraph 0.5.1 → 0.5.5

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 (61) hide show
  1. package/dist/bin/codegraph.js +66 -34
  2. package/dist/bin/codegraph.js.map +1 -1
  3. package/dist/db/index.d.ts +3 -2
  4. package/dist/db/index.d.ts.map +1 -1
  5. package/dist/db/index.js +6 -7
  6. package/dist/db/index.js.map +1 -1
  7. package/dist/db/migrations.d.ts +7 -7
  8. package/dist/db/migrations.d.ts.map +1 -1
  9. package/dist/db/migrations.js.map +1 -1
  10. package/dist/db/queries.d.ts +7 -2
  11. package/dist/db/queries.d.ts.map +1 -1
  12. package/dist/db/queries.js +22 -0
  13. package/dist/db/queries.js.map +1 -1
  14. package/dist/db/sqlite-adapter.d.ts +33 -0
  15. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  16. package/dist/db/sqlite-adapter.js +197 -0
  17. package/dist/db/sqlite-adapter.js.map +1 -0
  18. package/dist/extraction/grammars.d.ts +15 -4
  19. package/dist/extraction/grammars.d.ts.map +1 -1
  20. package/dist/extraction/grammars.js +64 -110
  21. package/dist/extraction/grammars.js.map +1 -1
  22. package/dist/extraction/index.d.ts +11 -4
  23. package/dist/extraction/index.d.ts.map +1 -1
  24. package/dist/extraction/index.js +213 -66
  25. package/dist/extraction/index.js.map +1 -1
  26. package/dist/extraction/tree-sitter.d.ts.map +1 -1
  27. package/dist/extraction/tree-sitter.js +10 -3
  28. package/dist/extraction/tree-sitter.js.map +1 -1
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +10 -4
  32. package/dist/index.js.map +1 -1
  33. package/dist/installer/banner.d.ts +1 -1
  34. package/dist/installer/banner.d.ts.map +1 -1
  35. package/dist/installer/banner.js +3 -2
  36. package/dist/installer/banner.js.map +1 -1
  37. package/dist/installer/config-writer.d.ts +1 -0
  38. package/dist/installer/config-writer.d.ts.map +1 -1
  39. package/dist/installer/config-writer.js +14 -4
  40. package/dist/installer/config-writer.js.map +1 -1
  41. package/dist/installer/index.d.ts.map +1 -1
  42. package/dist/installer/index.js +57 -9
  43. package/dist/installer/index.js.map +1 -1
  44. package/dist/mcp/index.d.ts.map +1 -1
  45. package/dist/mcp/index.js +4 -0
  46. package/dist/mcp/index.js.map +1 -1
  47. package/dist/mcp/tools.d.ts +0 -4
  48. package/dist/mcp/tools.d.ts.map +1 -1
  49. package/dist/mcp/tools.js +5 -7
  50. package/dist/mcp/tools.js.map +1 -1
  51. package/dist/resolution/import-resolver.js +1 -1
  52. package/dist/resolution/import-resolver.js.map +1 -1
  53. package/dist/vectors/manager.d.ts +3 -3
  54. package/dist/vectors/manager.d.ts.map +1 -1
  55. package/dist/vectors/manager.js.map +1 -1
  56. package/dist/vectors/search.d.ts +3 -3
  57. package/dist/vectors/search.d.ts.map +1 -1
  58. package/dist/vectors/search.js +1 -0
  59. package/dist/vectors/search.js.map +1 -1
  60. package/package.json +6 -21
  61. package/scripts/postinstall.js +0 -3
@@ -2,14 +2,14 @@
2
2
  /**
3
3
  * Grammar Loading and Caching
4
4
  *
5
- * Uses lazy per-language loading so one missing native grammar does not
6
- * break extraction for all other languages.
5
+ * Uses web-tree-sitter (WASM) for universal cross-platform support.
6
+ * All grammars are pre-loaded asynchronously via initGrammars(), then
7
+ * getParser() returns synchronously from cache.
7
8
  */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
9
  Object.defineProperty(exports, "__esModule", { value: true });
12
10
  exports.EXTENSION_MAP = void 0;
11
+ exports.initGrammars = initGrammars;
12
+ exports.isGrammarsInitialized = isGrammarsInitialized;
13
13
  exports.getParser = getParser;
14
14
  exports.detectLanguage = detectLanguage;
15
15
  exports.isLanguageSupported = isLanguageSupported;
@@ -17,78 +17,28 @@ exports.getSupportedLanguages = getSupportedLanguages;
17
17
  exports.clearParserCache = clearParserCache;
18
18
  exports.getUnavailableGrammarErrors = getUnavailableGrammarErrors;
19
19
  exports.getLanguageDisplayName = getLanguageDisplayName;
20
- const tree_sitter_1 = __importDefault(require("tree-sitter"));
20
+ const web_tree_sitter_1 = require("web-tree-sitter");
21
21
  /**
22
- * Lazy grammar loaders — each language's native binding is only loaded
23
- * on first use, so a failure in one grammar doesn't affect others.
22
+ * WASM filename mapmaps each language to its .wasm grammar file
23
+ * in the tree-sitter-wasms package.
24
24
  */
25
- const grammarLoaders = {
26
- typescript: () => {
27
- // eslint-disable-next-line @typescript-eslint/no-require-imports
28
- return require('tree-sitter-typescript').typescript;
29
- },
30
- tsx: () => {
31
- // eslint-disable-next-line @typescript-eslint/no-require-imports
32
- return require('tree-sitter-typescript').tsx;
33
- },
34
- javascript: () => {
35
- // eslint-disable-next-line @typescript-eslint/no-require-imports
36
- return require('tree-sitter-javascript');
37
- },
38
- jsx: () => {
39
- // eslint-disable-next-line @typescript-eslint/no-require-imports
40
- return require('tree-sitter-javascript');
41
- },
42
- python: () => {
43
- // eslint-disable-next-line @typescript-eslint/no-require-imports
44
- return require('tree-sitter-python');
45
- },
46
- go: () => {
47
- // eslint-disable-next-line @typescript-eslint/no-require-imports
48
- return require('tree-sitter-go');
49
- },
50
- rust: () => {
51
- // eslint-disable-next-line @typescript-eslint/no-require-imports
52
- return require('tree-sitter-rust');
53
- },
54
- java: () => {
55
- // eslint-disable-next-line @typescript-eslint/no-require-imports
56
- return require('tree-sitter-java');
57
- },
58
- c: () => {
59
- // eslint-disable-next-line @typescript-eslint/no-require-imports
60
- return require('tree-sitter-c');
61
- },
62
- cpp: () => {
63
- // eslint-disable-next-line @typescript-eslint/no-require-imports
64
- return require('tree-sitter-cpp');
65
- },
66
- csharp: () => {
67
- // eslint-disable-next-line @typescript-eslint/no-require-imports
68
- return require('tree-sitter-c-sharp');
69
- },
70
- php: () => {
71
- // eslint-disable-next-line @typescript-eslint/no-require-imports
72
- return require('tree-sitter-php').php;
73
- },
74
- ruby: () => {
75
- // eslint-disable-next-line @typescript-eslint/no-require-imports
76
- return require('tree-sitter-ruby');
77
- },
78
- swift: () => {
79
- // eslint-disable-next-line @typescript-eslint/no-require-imports
80
- return require('tree-sitter-swift');
81
- },
82
- kotlin: () => {
83
- // eslint-disable-next-line @typescript-eslint/no-require-imports
84
- return require('tree-sitter-kotlin');
85
- },
86
- dart: () => {
87
- // eslint-disable-next-line @typescript-eslint/no-require-imports
88
- return require('@sengac/tree-sitter-dart');
89
- },
90
- // Note: tree-sitter-liquid has ABI compatibility issues with tree-sitter 0.22+
91
- // Liquid extraction is handled separately via regex in tree-sitter.ts
25
+ const WASM_GRAMMAR_FILES = {
26
+ typescript: 'tree-sitter-typescript.wasm',
27
+ tsx: 'tree-sitter-tsx.wasm',
28
+ javascript: 'tree-sitter-javascript.wasm',
29
+ jsx: 'tree-sitter-javascript.wasm',
30
+ python: 'tree-sitter-python.wasm',
31
+ go: 'tree-sitter-go.wasm',
32
+ rust: 'tree-sitter-rust.wasm',
33
+ java: 'tree-sitter-java.wasm',
34
+ c: 'tree-sitter-c.wasm',
35
+ cpp: 'tree-sitter-cpp.wasm',
36
+ csharp: 'tree-sitter-c_sharp.wasm',
37
+ php: 'tree-sitter-php.wasm',
38
+ ruby: 'tree-sitter-ruby.wasm',
39
+ swift: 'tree-sitter-swift.wasm',
40
+ kotlin: 'tree-sitter-kotlin.wasm',
41
+ dart: 'tree-sitter-dart.wasm',
92
42
  };
93
43
  /**
94
44
  * File extension to Language mapping
@@ -127,50 +77,53 @@ exports.EXTENSION_MAP = {
127
77
  * Caches for loaded grammars and parsers
128
78
  */
129
79
  const parserCache = new Map();
130
- const grammarCache = new Map();
80
+ const languageCache = new Map();
131
81
  const unavailableGrammarErrors = new Map();
82
+ let grammarsInitialized = false;
132
83
  /**
133
- * Load a grammar on demand, caching the result.
134
- * Returns null if the grammar is not available on this platform.
84
+ * Initialize all WASM grammars. Must be called before any parsing.
85
+ * Idempotent safe to call multiple times.
135
86
  */
136
- function loadGrammar(language) {
137
- if (grammarCache.has(language)) {
138
- return grammarCache.get(language) ?? null;
139
- }
140
- const loader = grammarLoaders[language];
141
- if (!loader) {
142
- grammarCache.set(language, null);
143
- return null;
144
- }
145
- try {
146
- const grammar = loader();
147
- if (!grammar) {
148
- throw new Error(`Grammar loader returned empty value for ${language}`);
87
+ async function initGrammars() {
88
+ if (grammarsInitialized)
89
+ return;
90
+ await web_tree_sitter_1.Parser.init();
91
+ // Load all grammars in parallel
92
+ const entries = Object.entries(WASM_GRAMMAR_FILES);
93
+ await Promise.allSettled(entries.map(async ([lang, wasmFile]) => {
94
+ try {
95
+ const wasmPath = require.resolve(`tree-sitter-wasms/out/${wasmFile}`);
96
+ const language = await web_tree_sitter_1.Language.load(wasmPath);
97
+ languageCache.set(lang, language);
149
98
  }
150
- grammarCache.set(language, grammar);
151
- return grammar;
152
- }
153
- catch (error) {
154
- const message = error instanceof Error ? error.message : String(error);
155
- console.warn(`[CodeGraph] Failed to load ${language} grammar — parsing will be unavailable: ${message}`);
156
- unavailableGrammarErrors.set(language, message);
157
- grammarCache.set(language, null);
158
- return null;
159
- }
99
+ catch (error) {
100
+ const message = error instanceof Error ? error.message : String(error);
101
+ console.warn(`[CodeGraph] Failed to load ${lang} grammar — parsing will be unavailable: ${message}`);
102
+ unavailableGrammarErrors.set(lang, message);
103
+ }
104
+ }));
105
+ grammarsInitialized = true;
106
+ }
107
+ /**
108
+ * Check if grammars have been initialized
109
+ */
110
+ function isGrammarsInitialized() {
111
+ return grammarsInitialized;
160
112
  }
161
113
  /**
162
- * Get a parser for the specified language
114
+ * Get a parser for the specified language.
115
+ * Returns synchronously from pre-loaded cache.
163
116
  */
164
117
  function getParser(language) {
165
118
  if (parserCache.has(language)) {
166
119
  return parserCache.get(language);
167
120
  }
168
- const grammar = loadGrammar(language);
169
- if (!grammar) {
121
+ const lang = languageCache.get(language);
122
+ if (!lang) {
170
123
  return null;
171
124
  }
172
- const parser = new tree_sitter_1.default();
173
- parser.setLanguage(grammar);
125
+ const parser = new web_tree_sitter_1.Parser();
126
+ parser.setLanguage(lang);
174
127
  parserCache.set(language, parser);
175
128
  return parser;
176
129
  }
@@ -191,14 +144,14 @@ function isLanguageSupported(language) {
191
144
  return true; // custom regex extractor
192
145
  if (language === 'unknown')
193
146
  return false;
194
- return loadGrammar(language) !== null;
147
+ return languageCache.has(language);
195
148
  }
196
149
  /**
197
150
  * Get all currently supported languages.
198
151
  */
199
152
  function getSupportedLanguages() {
200
- const available = Object.keys(grammarLoaders)
201
- .filter((language) => loadGrammar(language) !== null);
153
+ const available = Object.keys(WASM_GRAMMAR_FILES)
154
+ .filter((language) => languageCache.has(language));
202
155
  return [...available, 'svelte', 'liquid'];
203
156
  }
204
157
  /**
@@ -206,7 +159,8 @@ function getSupportedLanguages() {
206
159
  */
207
160
  function clearParserCache() {
208
161
  parserCache.clear();
209
- grammarCache.clear();
162
+ // Note: languageCache is NOT cleared — WASM languages persist.
163
+ // To fully re-init, set grammarsInitialized = false and call initGrammars() again.
210
164
  unavailableGrammarErrors.clear();
211
165
  }
212
166
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"grammars.js","sourceRoot":"","sources":["../../src/extraction/grammars.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grammars.js","sourceRoot":"","sources":["../../src/extraction/grammars.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ export interface SyncResult {
37
37
  filesRemoved: number;
38
38
  nodesUpdated: number;
39
39
  durationMs: number;
40
+ changedFilePaths?: string[];
40
41
  }
41
42
  /**
42
43
  * Calculate SHA256 hash of file contents
@@ -47,7 +48,11 @@ export declare function hashContent(content: string): string;
47
48
  */
48
49
  export declare function shouldIncludeFile(filePath: string, config: CodeGraphConfig): boolean;
49
50
  /**
50
- * Recursively scan directory for source files
51
+ * Recursively scan directory for source files.
52
+ *
53
+ * In git repos, uses `git ls-files` to get the file list (inherently
54
+ * respects .gitignore at all levels), then filters by config include patterns.
55
+ * Falls back to filesystem walk for non-git projects.
51
56
  */
52
57
  export declare function scanDirectory(rootDir: string, config: CodeGraphConfig, onProgress?: (current: number, file: string) => void): string[];
53
58
  /**
@@ -80,11 +85,13 @@ export declare class ExtractionOrchestrator {
80
85
  */
81
86
  private storeExtractionResult;
82
87
  /**
83
- * Sync with current file state
88
+ * Sync with current file state.
89
+ * Uses git status as a fast path when available, falling back to full scan.
84
90
  */
85
91
  sync(onProgress?: (progress: IndexProgress) => void): Promise<SyncResult>;
86
92
  /**
87
- * Get files that have changed since last index
93
+ * Get files that have changed since last index.
94
+ * Uses git status as a fast path when available, falling back to full scan.
88
95
  */
89
96
  getChangedFiles(): {
90
97
  added: string[];
@@ -93,5 +100,5 @@ export declare class ExtractionOrchestrator {
93
100
  };
94
101
  }
95
102
  export { extractFromSource } from './tree-sitter';
96
- export { detectLanguage, isLanguageSupported, getSupportedLanguages } from './grammars';
103
+ export { detectLanguage, isLanguageSupported, getSupportedLanguages, initGrammars } from './grammars';
97
104
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extraction/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAKzB,OAAO,EAGL,gBAAgB,EAChB,eAAe,EACf,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAc7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAUD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,GACtB,OAAO,CAgBT;AAgCD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GACnD,MAAM,EAAE,CA+GV;AAED;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY;IAM3E;;OAEG;IACG,QAAQ,CACZ,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,EAC9C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,CAAC;IA2IvB;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAmC3D;;OAEG;IACG,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsChE;;;OAGG;IACG,oBAAoB,CACxB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,EAAE,CAAC,KAAK,GACd,OAAO,CAAC,gBAAgB,CAAC;IAqD5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsD7B;;OAEG;IACG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IAkF/E;;OAEG;IACH,eAAe,IAAI;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;CAuC9E;AAGD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extraction/index.ts"],"names":[],"mappings":"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"}