@jafreck/lore 0.3.2 → 0.3.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 (93) hide show
  1. package/README.md +16 -18
  2. package/dist/cli.js +6 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.d.ts +2 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +3 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/indexer/embedder.d.ts +20 -31
  9. package/dist/indexer/embedder.d.ts.map +1 -1
  10. package/dist/indexer/embedder.js +34 -150
  11. package/dist/indexer/embedder.js.map +1 -1
  12. package/dist/indexer/extractors/cpp.d.ts.map +1 -1
  13. package/dist/indexer/extractors/cpp.js +67 -2
  14. package/dist/indexer/extractors/cpp.js.map +1 -1
  15. package/dist/indexer/extractors/csharp.d.ts.map +1 -1
  16. package/dist/indexer/extractors/csharp.js +3 -0
  17. package/dist/indexer/extractors/csharp.js.map +1 -1
  18. package/dist/indexer/extractors/elixir.js +4 -1
  19. package/dist/indexer/extractors/elixir.js.map +1 -1
  20. package/dist/indexer/extractors/go.d.ts.map +1 -1
  21. package/dist/indexer/extractors/go.js +1 -0
  22. package/dist/indexer/extractors/go.js.map +1 -1
  23. package/dist/indexer/extractors/java.d.ts.map +1 -1
  24. package/dist/indexer/extractors/java.js +2 -0
  25. package/dist/indexer/extractors/java.js.map +1 -1
  26. package/dist/indexer/extractors/julia.d.ts.map +1 -1
  27. package/dist/indexer/extractors/julia.js +26 -3
  28. package/dist/indexer/extractors/julia.js.map +1 -1
  29. package/dist/indexer/extractors/kotlin.d.ts.map +1 -1
  30. package/dist/indexer/extractors/kotlin.js +2 -0
  31. package/dist/indexer/extractors/kotlin.js.map +1 -1
  32. package/dist/indexer/extractors/objc.d.ts.map +1 -1
  33. package/dist/indexer/extractors/objc.js +7 -1
  34. package/dist/indexer/extractors/objc.js.map +1 -1
  35. package/dist/indexer/extractors/ocaml.js +10 -2
  36. package/dist/indexer/extractors/ocaml.js.map +1 -1
  37. package/dist/indexer/extractors/php.d.ts.map +1 -1
  38. package/dist/indexer/extractors/php.js +4 -0
  39. package/dist/indexer/extractors/php.js.map +1 -1
  40. package/dist/indexer/extractors/ruby.d.ts.map +1 -1
  41. package/dist/indexer/extractors/ruby.js +6 -3
  42. package/dist/indexer/extractors/ruby.js.map +1 -1
  43. package/dist/indexer/extractors/rust.d.ts.map +1 -1
  44. package/dist/indexer/extractors/rust.js +3 -0
  45. package/dist/indexer/extractors/rust.js.map +1 -1
  46. package/dist/indexer/extractors/swift.d.ts.map +1 -1
  47. package/dist/indexer/extractors/swift.js +3 -0
  48. package/dist/indexer/extractors/swift.js.map +1 -1
  49. package/dist/indexer/extractors/typescript.d.ts.map +1 -1
  50. package/dist/indexer/extractors/typescript.js +4 -0
  51. package/dist/indexer/extractors/typescript.js.map +1 -1
  52. package/dist/indexer/extractors/zig.d.ts.map +1 -1
  53. package/dist/indexer/extractors/zig.js +22 -11
  54. package/dist/indexer/extractors/zig.js.map +1 -1
  55. package/dist/indexer/lsp/client.d.ts.map +1 -1
  56. package/dist/indexer/lsp/client.js +2 -0
  57. package/dist/indexer/lsp/client.js.map +1 -1
  58. package/dist/indexer/lsp/registry.d.ts.map +1 -1
  59. package/dist/indexer/lsp/registry.js +0 -1
  60. package/dist/indexer/lsp/registry.js.map +1 -1
  61. package/dist/indexer/parser.d.ts.map +1 -1
  62. package/dist/indexer/parser.js +30 -7
  63. package/dist/indexer/parser.js.map +1 -1
  64. package/dist/indexer/stages/source-index.d.ts.map +1 -1
  65. package/dist/indexer/stages/source-index.js +3 -2
  66. package/dist/indexer/stages/source-index.js.map +1 -1
  67. package/dist/indexer/walker.d.ts.map +1 -1
  68. package/dist/indexer/walker.js +0 -1
  69. package/dist/indexer/walker.js.map +1 -1
  70. package/dist/lore-server/server.d.ts.map +1 -1
  71. package/dist/lore-server/server.js +3 -3
  72. package/dist/lore-server/server.js.map +1 -1
  73. package/dist/lore-server/tools/graph.d.ts +6 -1
  74. package/dist/lore-server/tools/graph.d.ts.map +1 -1
  75. package/dist/lore-server/tools/graph.js +180 -209
  76. package/dist/lore-server/tools/graph.js.map +1 -1
  77. package/dist/process-tracker.d.ts +33 -0
  78. package/dist/process-tracker.d.ts.map +1 -0
  79. package/dist/process-tracker.js +52 -0
  80. package/dist/process-tracker.js.map +1 -0
  81. package/dist/runtime.d.ts +7 -2
  82. package/dist/runtime.d.ts.map +1 -1
  83. package/dist/runtime.js +25 -15
  84. package/dist/runtime.js.map +1 -1
  85. package/package.json +9 -5
  86. package/dist/indexer/ensure-python-deps.d.ts +0 -22
  87. package/dist/indexer/ensure-python-deps.d.ts.map +0 -1
  88. package/dist/indexer/ensure-python-deps.js +0 -47
  89. package/dist/indexer/ensure-python-deps.js.map +0 -1
  90. package/dist/indexer/extractors/dart.d.ts +0 -12
  91. package/dist/indexer/extractors/dart.d.ts.map +0 -1
  92. package/dist/indexer/extractors/dart.js +0 -213
  93. package/dist/indexer/extractors/dart.js.map +0 -1
package/dist/runtime.js CHANGED
@@ -10,6 +10,7 @@
10
10
  * handled in one place.
11
11
  */
12
12
  import { getLogger } from './logger.js';
13
+ import { killAllTracked } from './process-tracker.js';
13
14
  // ─── LoreRuntime ──────────────────────────────────────────────────────────────
14
15
  /**
15
16
  * Owns the lifecycle of all long-lived Lore resources.
@@ -57,8 +58,8 @@ export class LoreRuntime {
57
58
  // ── Embedder ─────────────────────────────────────────────────────────────
58
59
  if (this.config.embeddingModel) {
59
60
  try {
60
- const { SentenceTransformersProvider } = await import('./indexer/embedder.js');
61
- const provider = new SentenceTransformersProvider(this.config.embeddingModel);
61
+ const { TransformersJsProvider } = await import('./indexer/embedder.js');
62
+ const provider = new TransformersJsProvider(this.config.embeddingModel);
62
63
  await provider.init();
63
64
  this._embedder = provider;
64
65
  this.log.startup('embedding model loaded', {
@@ -128,26 +129,35 @@ export class LoreRuntime {
128
129
  }
129
130
  }
130
131
  /**
131
- * Register process-level signal handlers (`SIGINT`, `SIGTERM`) that call
132
- * `shutdown()` and exit. Convenience for CLI entry points.
132
+ * Register process-level signal handlers (`SIGINT`, `SIGTERM`) that
133
+ * gracefully tear down all managed resources before exiting.
134
+ *
135
+ * A second signal while shutdown is in progress forces an immediate exit.
136
+ * As a safety net, `killAllTracked()` runs synchronously on the `exit`
137
+ * event to SIGTERM any child processes that slipped past the async path
138
+ * (e.g. LSP servers spawned by an in-flight pipeline stage).
133
139
  */
134
140
  installSignalHandlers() {
141
+ let shuttingDown = false;
135
142
  const handler = () => {
136
- // Stop refresher synchronously to match CLI expectations.
137
- if (this._refresher) {
138
- this._refresher.stop();
139
- this._refresher = null;
140
- }
141
- // Dispose embedder best-effort in background, then exit.
142
- if (this._embedder) {
143
- this._embedder.dispose().catch(() => { });
144
- this._embedder = null;
143
+ if (shuttingDown) {
144
+ // Second signal — force-kill children and bail.
145
+ killAllTracked();
146
+ process.exit(1);
145
147
  }
146
- this._started = false;
147
- process.exit(0);
148
+ shuttingDown = true;
149
+ this.shutdown()
150
+ .catch(() => { })
151
+ .finally(() => {
152
+ killAllTracked();
153
+ process.exit(0);
154
+ });
148
155
  };
149
156
  process.on('SIGINT', handler);
150
157
  process.on('SIGTERM', handler);
158
+ // Last-resort: kill any children that are still alive when the
159
+ // process is about to exit (covers unexpected exits / unhandled errors).
160
+ process.once('exit', () => killAllTracked());
151
161
  }
152
162
  }
153
163
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAsCtD,iFAAiF;AAEjF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IACb,MAAM,CAAgB;IACtB,GAAG,CAAa;IAEjB,SAAS,GAA6B,IAAI,CAAC;IAC3C,UAAU,GAAqB,IAAI,CAAC;IACpC,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,MAAqB,EAAE,MAAmB;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;IACnC,CAAC;IAED,8EAA8E;IAE9E,8EAA8E;IAC9E,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC;IACrC,CAAC;IAED,kFAAkF;IAClF,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;IACtC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,8EAA8E;IAE9E;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,4EAA4E;QAC5E,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;gBACzE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBACxE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE;oBACzC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;oBAC1C,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,SAAS,EACT,4DAA4D,EAC5D,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAC/C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YACxC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBAC5E,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;gBAChD,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS;gBACjC,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS;aACtC,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE;gBACrC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS;aACnC,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CACzJ,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAC9C,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBAC1E,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;gBAChD,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS;gBACjC,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS;aACtC,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBACpC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS;aACnC,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CACxJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,qBAAqB;QACnB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,YAAY,EAAE,CAAC;gBACjB,gDAAgD;gBAChD,cAAc,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,YAAY,GAAG,IAAI,CAAC;YAEpB,IAAI,CAAC,QAAQ,EAAE;iBACZ,KAAK,CAAC,GAAG,EAAE,GAAqB,CAAC,CAAC;iBAClC,OAAO,CAAC,GAAG,EAAE;gBACZ,cAAc,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE/B,+DAA+D;QAC/D,yEAAyE;QACzE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/C,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jafreck/lore",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "Language-aware codebase indexer — tree-sitter parsing, symbol extraction, call-graph construction, and optional embeddings for semantic search",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -35,6 +35,7 @@
35
35
  "prepare": "npm run build",
36
36
  "prepublishOnly": "npm run clean && npm run build",
37
37
  "test": "vitest run",
38
+ "test:lsp-smoke": "vitest run tests/indexer/lsp/smoke.test.ts",
38
39
  "coverage": "vitest run --coverage"
39
40
  },
40
41
  "repository": {
@@ -56,9 +57,14 @@
56
57
  "access": "public"
57
58
  },
58
59
  "dependencies": {
60
+ "@elm-tooling/tree-sitter-elm": "^5.9.0",
61
+ "@huggingface/transformers": "^3.8.1",
59
62
  "@modelcontextprotocol/sdk": "^1.27.1",
63
+ "@tree-sitter-grammars/tree-sitter-lua": "^0.4.1",
64
+ "@tree-sitter-grammars/tree-sitter-zig": "^1.1.2",
60
65
  "better-sqlite3": "^12.6.2",
61
66
  "fast-glob": "^3.3.3",
67
+ "node-gyp-build": "^4.8.4",
62
68
  "simple-git": "^3.32.3",
63
69
  "sqlite-vec": "^0.1.6",
64
70
  "tree-sitter": "0.25.0",
@@ -66,16 +72,13 @@
66
72
  "tree-sitter-c": "^0.24.1",
67
73
  "tree-sitter-c-sharp": "^0.23.1",
68
74
  "tree-sitter-cpp": "^0.23.4",
69
- "tree-sitter-dart": "^1.0.0",
70
75
  "tree-sitter-elixir": "^0.3.5",
71
- "tree-sitter-elm": "^4.5.0",
72
76
  "tree-sitter-go": ">=0.23.4",
73
77
  "tree-sitter-haskell": "^0.23.1",
74
78
  "tree-sitter-java": "^0.23.5",
75
79
  "tree-sitter-javascript": "^0.25.0",
76
80
  "tree-sitter-julia": "^0.23.1",
77
81
  "tree-sitter-kotlin": "^0.3.8",
78
- "tree-sitter-lua": "^2.1.3",
79
82
  "tree-sitter-objc": "^3.0.2",
80
83
  "tree-sitter-ocaml": "^0.24.2",
81
84
  "tree-sitter-php": "^0.24.2",
@@ -85,14 +88,15 @@
85
88
  "tree-sitter-scala": "^0.24.0",
86
89
  "tree-sitter-swift": "^0.7.1",
87
90
  "tree-sitter-typescript": "^0.23.2",
88
- "tree-sitter-zig": "^0.2.0",
89
91
  "zod": "^4.3"
90
92
  },
91
93
  "devDependencies": {
92
94
  "@types/better-sqlite3": "^7.6.13",
93
95
  "@types/node": "^22",
94
96
  "@vitest/coverage-v8": "^4.0",
97
+ "pyright": "^1.1.406",
95
98
  "typescript": "^5.9",
99
+ "typescript-language-server": "^5.0.1",
96
100
  "vitest": "^4.0"
97
101
  },
98
102
  "engines": {
@@ -1,22 +0,0 @@
1
- /**
2
- * @module indexer/ensure-python-deps
3
- *
4
- * Validates that the Python environment has the packages required for
5
- * embedding generation (`sentence-transformers`, `torch`). If missing,
6
- * attempts an automatic `pip install` before the first embedding run.
7
- *
8
- * This is only used when `loreIndex.embeddings.enabled` is `true` in the
9
- * migration config.
10
- */
11
- /**
12
- * Checks whether each of `REQUIRED_PACKAGES` is importable by the given Python
13
- * binary. For any missing package, runs `pip install sentence-transformers`
14
- * (which pulls in `torch` as a transitive dependency).
15
- *
16
- * Throws if the Python binary is not found or if `pip install` fails.
17
- *
18
- * @param pythonBin Path to the Python 3 interpreter (default: `'python3'`).
19
- * @param timeout Maximum milliseconds to wait for the install (default: 5 min).
20
- */
21
- export declare function ensurePythonDeps(pythonBin?: string, timeout?: number): Promise<void>;
22
- //# sourceMappingURL=ensure-python-deps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensure-python-deps.d.ts","sourceRoot":"","sources":["../../src/indexer/ensure-python-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,SAAY,EACrB,OAAO,SAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAyBf"}
@@ -1,47 +0,0 @@
1
- /**
2
- * @module indexer/ensure-python-deps
3
- *
4
- * Validates that the Python environment has the packages required for
5
- * embedding generation (`sentence-transformers`, `torch`). If missing,
6
- * attempts an automatic `pip install` before the first embedding run.
7
- *
8
- * This is only used when `loreIndex.embeddings.enabled` is `true` in the
9
- * migration config.
10
- */
11
- import { execFile } from 'node:child_process';
12
- import { promisify } from 'node:util';
13
- const execFileAsync = promisify(execFile);
14
- /** Python packages required by the sentence-transformers embedding provider. */
15
- const REQUIRED_PACKAGES = ['sentence_transformers', 'torch'];
16
- /**
17
- * Checks whether each of `REQUIRED_PACKAGES` is importable by the given Python
18
- * binary. For any missing package, runs `pip install sentence-transformers`
19
- * (which pulls in `torch` as a transitive dependency).
20
- *
21
- * Throws if the Python binary is not found or if `pip install` fails.
22
- *
23
- * @param pythonBin Path to the Python 3 interpreter (default: `'python3'`).
24
- * @param timeout Maximum milliseconds to wait for the install (default: 5 min).
25
- */
26
- export async function ensurePythonDeps(pythonBin = 'python3', timeout = 5 * 60_000) {
27
- // Probe which packages are already available.
28
- const missing = [];
29
- for (const pkg of REQUIRED_PACKAGES) {
30
- try {
31
- await execFileAsync(pythonBin, ['-c', `import ${pkg}`], { timeout: 10_000 });
32
- }
33
- catch {
34
- missing.push(pkg);
35
- }
36
- }
37
- if (missing.length === 0)
38
- return;
39
- // `sentence-transformers` transitively installs torch, so a single pip
40
- // install call is sufficient.
41
- await execFileAsync(pythonBin, ['-m', 'pip', 'install', '--quiet', 'sentence-transformers'], { timeout });
42
- // Verify the install succeeded.
43
- for (const pkg of REQUIRED_PACKAGES) {
44
- await execFileAsync(pythonBin, ['-c', `import ${pkg}`], { timeout: 10_000 });
45
- }
46
- }
47
- //# sourceMappingURL=ensure-python-deps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensure-python-deps.js","sourceRoot":"","sources":["../../src/indexer/ensure-python-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,gFAAgF;AAChF,MAAM,iBAAiB,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;AAE7D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAAS,GAAG,SAAS,EACrB,OAAO,GAAG,CAAC,GAAG,MAAM;IAEpB,8CAA8C;IAC9C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,uEAAuE;IACvE,8BAA8B;IAC9B,MAAM,aAAa,CACjB,SAAS,EACT,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,EAC5D,EAAE,OAAO,EAAE,CACZ,CAAC;IAEF,gCAAgC;IAChC,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACpC,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * @module indexer/extractors/dart
3
- *
4
- * Dart language extractor. Extracts function declarations, class/mixin/enum/
5
- * extension declarations, method declarations, and import directives.
6
- */
7
- import type Parser from 'tree-sitter';
8
- import { type ExtractionResult, type SymbolExtractor } from './types.js';
9
- export declare class DartExtractor implements SymbolExtractor {
10
- extract(tree: Parser.Tree, _source: string, _filePath: string): ExtractionResult;
11
- }
12
- //# sourceMappingURL=dart.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dart.d.ts","sourceRoot":"","sources":["../../../src/indexer/extractors/dart.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,KAAK,gBAAgB,EAOrB,KAAK,eAAe,EAMrB,MAAM,YAAY,CAAC;AAWpB,qBAAa,aAAc,YAAW,eAAe;IACnD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB;CA8DjF"}
@@ -1,213 +0,0 @@
1
- /**
2
- * @module indexer/extractors/dart
3
- *
4
- * Dart language extractor. Extracts function declarations, class/mixin/enum/
5
- * extension declarations, method declarations, and import directives.
6
- */
7
- import { createTypeRefEmitter, emptyResult, findEnclosingSymbolName, nodeSignature, walk, } from './types.js';
8
- const DART_SYMBOL_NODE_TYPES = [
9
- 'function_declaration',
10
- 'function_signature',
11
- 'method_signature',
12
- 'class_definition',
13
- ];
14
- // ─── DartExtractor ────────────────────────────────────────────────────────────
15
- export class DartExtractor {
16
- extract(tree, _source, _filePath) {
17
- const result = emptyResult();
18
- for (const node of walk(tree.rootNode)) {
19
- switch (node.type) {
20
- case 'function_signature':
21
- case 'function_declaration':
22
- result.symbols.push(extractFunction(node));
23
- extractDartFunctionTypeRefs(node, result.typeRefs);
24
- break;
25
- case 'method_signature':
26
- result.symbols.push(extractFunction(node));
27
- extractDartFunctionTypeRefs(node, result.typeRefs);
28
- break;
29
- case 'class_definition':
30
- result.symbols.push(extractNamedNode(node, 'class'));
31
- extractDartInheritance(node, result.relationships, result.typeRefs);
32
- extractDartClassFieldTypeRefs(node, result.typeRefs);
33
- break;
34
- case 'mixin_declaration':
35
- result.symbols.push(extractNamedNode(node, 'mixin'));
36
- break;
37
- case 'enum_declaration':
38
- result.symbols.push(extractNamedNode(node, 'enum'));
39
- break;
40
- case 'extension_declaration':
41
- result.symbols.push(extractNamedNode(node, 'extension'));
42
- break;
43
- case 'import_or_export':
44
- result.imports.push(extractImport(node));
45
- break;
46
- // Dart uses several node types for calls depending on the grammar version
47
- case 'function_expression_invocation':
48
- case 'method_invocation': {
49
- const ref = extractCallRef(node);
50
- if (ref)
51
- result.callRefs.push(ref);
52
- break;
53
- }
54
- case 'initialized_variable_definition': {
55
- extractDartVarTypeRef(node, result.typeRefs);
56
- break;
57
- }
58
- case 'as_expression': {
59
- extractDartCastTypeRef(node, result.typeRefs);
60
- break;
61
- }
62
- }
63
- }
64
- // Fallback: scan all nodes for unvisited call-like patterns
65
- for (const node of walk(tree.rootNode)) {
66
- if (node.type === 'identifier'
67
- && node.parent?.type === 'selector'
68
- && node.parent.parent?.type === 'assignable_expression') {
69
- // method call via cascade or chain
70
- }
71
- }
72
- return result;
73
- }
74
- }
75
- // ─── Helpers ──────────────────────────────────────────────────────────────────
76
- function extractFunction(node) {
77
- const nameNode = node.childForFieldName('name') ??
78
- node.namedChildren.find(c => c.type === 'identifier');
79
- return {
80
- name: nameNode?.text ?? '',
81
- kind: 'function',
82
- startLine: node.startPosition.row,
83
- endLine: node.endPosition.row,
84
- signature: nodeSignature(node),
85
- };
86
- }
87
- function extractNamedNode(node, kind) {
88
- const nameNode = node.childForFieldName('name') ??
89
- node.namedChildren.find(c => c.type === 'identifier');
90
- return {
91
- name: nameNode?.text ?? '',
92
- kind,
93
- startLine: node.startPosition.row,
94
- endLine: node.endPosition.row,
95
- signature: nodeSignature(node),
96
- };
97
- }
98
- function extractCallRef(node) {
99
- const fnNode = node.childForFieldName('function') ?? node.childForFieldName('name');
100
- if (!fnNode)
101
- return null;
102
- return {
103
- callerSymbol: findEnclosingSymbolName(node, DART_SYMBOL_NODE_TYPES),
104
- calleeRaw: fnNode.text,
105
- line: node.startPosition.row,
106
- character: node.startPosition.column,
107
- };
108
- }
109
- function extractImport(node) {
110
- // `import 'package:foo/bar.dart';` or `export 'package:foo/bar.dart';`
111
- const text = node.text
112
- .replace(/^(import|export)\s+/, '')
113
- .replace(/\s*;?\s*$/, '')
114
- .trim();
115
- // Strip quotes
116
- const source = text.replace(/^['"]|['"]$/g, '').split(/\s/)[0] ?? '';
117
- // Check for `show` / `hide` clauses
118
- const importedNames = [];
119
- const showMatch = text.match(/show\s+([\w,\s]+)/);
120
- if (showMatch) {
121
- importedNames.push(...showMatch[1].split(',').map(s => s.trim()).filter(Boolean));
122
- }
123
- return { source, importedNames };
124
- }
125
- // ─── Inheritance / type-ref extraction ─────────────────────────────────────────
126
- function extractDartInheritance(classNode, relationships, typeRefs) {
127
- const name = classNode.childForFieldName('name')?.text ??
128
- classNode.namedChildren.find(c => c.type === 'identifier')?.text ?? '';
129
- if (!name)
130
- return;
131
- for (const child of classNode.namedChildren) {
132
- if (child.type === 'superclass') {
133
- const typeNode = child.namedChildren[0];
134
- if (typeNode) {
135
- relationships.push({ kind: 'extends', fromSymbol: name, toSymbol: typeNode.text, line: typeNode.startPosition.row, character: typeNode.startPosition.column });
136
- typeRefs.push({ enclosingSymbol: name, typeRaw: typeNode.text, refKind: 'bound', line: typeNode.startPosition.row, character: typeNode.startPosition.column });
137
- }
138
- }
139
- if (child.type === 'interfaces' || child.type === 'mixins') {
140
- for (const iface of child.namedChildren) {
141
- if (iface.type === 'type_identifier' || iface.type === 'identifier') {
142
- relationships.push({ kind: 'implements', fromSymbol: name, toSymbol: iface.text, line: iface.startPosition.row, character: iface.startPosition.column });
143
- typeRefs.push({ enclosingSymbol: name, typeRaw: iface.text, refKind: 'bound', line: iface.startPosition.row, character: iface.startPosition.column });
144
- }
145
- }
146
- }
147
- }
148
- }
149
- function extractDartTypeName(typeNode) {
150
- if (typeNode.type === 'type_identifier' || typeNode.type === 'identifier')
151
- return typeNode.text;
152
- if (typeNode.type === 'type_name')
153
- return typeNode.text;
154
- return null;
155
- }
156
- const emitDartTypeRef = createTypeRefEmitter({
157
- extractTypeName: extractDartTypeName,
158
- genericNodeType: 'type_name',
159
- argListNodeType: 'type_arguments',
160
- });
161
- function extractDartFunctionTypeRefs(funcNode, refs) {
162
- const funcName = funcNode.childForFieldName('name')?.text ??
163
- funcNode.namedChildren.find(c => c.type === 'identifier')?.text ?? '';
164
- // Return type
165
- const returnType = funcNode.childForFieldName('type') ?? funcNode.namedChildren.find(c => c.type === 'type_identifier' || c.type === 'type_name');
166
- if (returnType) {
167
- emitDartTypeRef(refs, funcName, returnType, 'return');
168
- }
169
- // Parameters
170
- const params = funcNode.namedChildren.find(c => c.type === 'formal_parameter_list');
171
- if (params) {
172
- for (const param of params.namedChildren) {
173
- const typeNode = param.namedChildren.find(c => c.type === 'type_identifier');
174
- if (typeNode) {
175
- emitDartTypeRef(refs, funcName, typeNode, 'parameter');
176
- }
177
- }
178
- }
179
- }
180
- function extractDartClassFieldTypeRefs(classNode, refs) {
181
- const className = classNode.childForFieldName('name')?.text ??
182
- classNode.namedChildren.find(c => c.type === 'identifier')?.text ?? '';
183
- const body = classNode.childForFieldName('body') ?? classNode.namedChildren.find(c => c.type === 'class_body');
184
- if (!body)
185
- return;
186
- // Only walk direct children of the class body — avoid recursing into nested classes
187
- for (const child of body.namedChildren) {
188
- if (child.type === 'class_definition')
189
- continue; // skip nested classes
190
- if (child.type === 'initialized_variable_definition' || child.type === 'declaration') {
191
- const typeNode = child.namedChildren.find(c => c.type === 'type_identifier');
192
- if (typeNode) {
193
- emitDartTypeRef(refs, className, typeNode, 'field');
194
- }
195
- }
196
- }
197
- }
198
- function extractDartVarTypeRef(node, refs) {
199
- const typeNode = node.namedChildren.find(c => c.type === 'type_identifier');
200
- if (!typeNode)
201
- return;
202
- const enclosing = findEnclosingSymbolName(node, DART_SYMBOL_NODE_TYPES);
203
- emitDartTypeRef(refs, enclosing, typeNode, 'variable');
204
- }
205
- function extractDartCastTypeRef(node, refs) {
206
- // expr as Type
207
- const typeNode = node.namedChildren.find(c => c.type === 'type_identifier');
208
- if (!typeNode)
209
- return;
210
- const enclosing = findEnclosingSymbolName(node, DART_SYMBOL_NODE_TYPES);
211
- emitDartTypeRef(refs, enclosing, typeNode, 'cast');
212
- }
213
- //# sourceMappingURL=dart.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dart.js","sourceRoot":"","sources":["../../../src/indexer/extractors/dart.ts"],"names":[],"mappings":"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"}