ruvector 0.2.27 → 0.2.29

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 (43) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +2270 -2270
  3. package/bin/cli.js +9570 -9479
  4. package/bin/mcp-server.js +3854 -3854
  5. package/dist/core/intelligence-engine.d.ts +13 -0
  6. package/dist/core/intelligence-engine.d.ts.map +1 -1
  7. package/dist/core/intelligence-engine.js +38 -0
  8. package/dist/core/onnx/bundled-parallel.mjs +164 -164
  9. package/dist/core/onnx/embed-worker.mjs +67 -67
  10. package/dist/core/onnx/loader.js +434 -434
  11. package/dist/core/onnx/package.json +3 -3
  12. package/dist/core/onnx/pkg/LICENSE +21 -21
  13. package/dist/core/onnx/pkg/loader.js +348 -348
  14. package/dist/core/onnx/pkg/package.json +3 -3
  15. package/dist/core/onnx/pkg/ruvector_onnx_embeddings_wasm.d.ts +112 -112
  16. package/dist/core/onnx/pkg/ruvector_onnx_embeddings_wasm.js +5 -5
  17. package/dist/core/onnx/pkg/ruvector_onnx_embeddings_wasm_bg.js +638 -638
  18. package/dist/core/onnx/pkg/ruvector_onnx_embeddings_wasm_bg.wasm.d.ts +29 -29
  19. package/dist/core/onnx-embedder.d.ts.map +1 -1
  20. package/dist/core/onnx-embedder.js +24 -30
  21. package/dist/core/parallel-workers.js +439 -439
  22. package/dist/workers/benchmark.js +15 -15
  23. package/package.json +122 -122
  24. package/src/decompiler/api-prober.js +302 -302
  25. package/src/decompiler/index.js +463 -463
  26. package/src/decompiler/metrics.js +86 -86
  27. package/src/decompiler/model-decompiler.js +423 -423
  28. package/src/decompiler/module-splitter.js +498 -498
  29. package/src/decompiler/module-tree.js +142 -142
  30. package/src/decompiler/name-predictor.js +400 -400
  31. package/src/decompiler/npm-fetch.js +176 -176
  32. package/src/decompiler/reconstructor.js +499 -499
  33. package/src/decompiler/reference-tracker.js +285 -285
  34. package/src/decompiler/statement-parser.js +285 -285
  35. package/src/decompiler/style-improver.js +438 -438
  36. package/src/decompiler/subcategories.js +339 -339
  37. package/src/decompiler/validator.js +379 -379
  38. package/src/decompiler/witness.js +140 -140
  39. package/wasm/package.json +26 -26
  40. package/wasm/ruvector_decompiler_wasm.d.ts +27 -27
  41. package/wasm/ruvector_decompiler_wasm.js +220 -220
  42. package/wasm/ruvector_decompiler_wasm_bg.wasm.d.ts +16 -16
  43. package/dist/core/onnx/pkg/ruvector.db +0 -0
@@ -1,29 +1,29 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- export const memory: WebAssembly.Memory;
4
- export const __wbg_wasmembedder_free: (a: number, b: number) => void;
5
- export const __wbg_wasmembedderconfig_free: (a: number, b: number) => void;
6
- export const cosineSimilarity: (a: number, b: number, c: number, d: number) => number;
7
- export const normalizeL2: (a: number, b: number) => [number, number];
8
- export const wasmembedder_dimension: (a: number) => number;
9
- export const wasmembedder_embedBatch: (a: number, b: number, c: number) => [number, number, number, number];
10
- export const wasmembedder_embedOne: (a: number, b: number, c: number) => [number, number, number, number];
11
- export const wasmembedder_maxLength: (a: number) => number;
12
- export const wasmembedder_new: (a: number, b: number, c: number, d: number) => [number, number, number];
13
- export const wasmembedder_similarity: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
14
- export const wasmembedder_withConfig: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
15
- export const wasmembedderconfig_new: () => number;
16
- export const wasmembedderconfig_setMaxLength: (a: number, b: number) => number;
17
- export const wasmembedderconfig_setNormalize: (a: number, b: number) => number;
18
- export const wasmembedderconfig_setPooling: (a: number, b: number) => number;
19
- export const init: () => void;
20
- export const simd_available: () => number;
21
- export const version: () => [number, number];
22
- export const __wbindgen_malloc: (a: number, b: number) => number;
23
- export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
24
- export const __wbindgen_exn_store: (a: number) => void;
25
- export const __externref_table_alloc: () => number;
26
- export const __wbindgen_externrefs: WebAssembly.Table;
27
- export const __wbindgen_free: (a: number, b: number, c: number) => void;
28
- export const __externref_table_dealloc: (a: number) => void;
29
- export const __wbindgen_start: () => void;
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export const memory: WebAssembly.Memory;
4
+ export const __wbg_wasmembedder_free: (a: number, b: number) => void;
5
+ export const __wbg_wasmembedderconfig_free: (a: number, b: number) => void;
6
+ export const cosineSimilarity: (a: number, b: number, c: number, d: number) => number;
7
+ export const normalizeL2: (a: number, b: number) => [number, number];
8
+ export const wasmembedder_dimension: (a: number) => number;
9
+ export const wasmembedder_embedBatch: (a: number, b: number, c: number) => [number, number, number, number];
10
+ export const wasmembedder_embedOne: (a: number, b: number, c: number) => [number, number, number, number];
11
+ export const wasmembedder_maxLength: (a: number) => number;
12
+ export const wasmembedder_new: (a: number, b: number, c: number, d: number) => [number, number, number];
13
+ export const wasmembedder_similarity: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
14
+ export const wasmembedder_withConfig: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
15
+ export const wasmembedderconfig_new: () => number;
16
+ export const wasmembedderconfig_setMaxLength: (a: number, b: number) => number;
17
+ export const wasmembedderconfig_setNormalize: (a: number, b: number) => number;
18
+ export const wasmembedderconfig_setPooling: (a: number, b: number) => number;
19
+ export const init: () => void;
20
+ export const simd_available: () => number;
21
+ export const version: () => [number, number];
22
+ export const __wbindgen_malloc: (a: number, b: number) => number;
23
+ export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
24
+ export const __wbindgen_exn_store: (a: number) => void;
25
+ export const __externref_table_alloc: () => number;
26
+ export const __wbindgen_externrefs: WebAssembly.Table;
27
+ export const __wbindgen_free: (a: number, b: number, c: number) => void;
28
+ export const __externref_table_dealloc: (a: number) => void;
29
+ export const __wbindgen_start: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"onnx-embedder.d.ts","sourceRoot":"","sources":["../../src/core/onnx-embedder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,kBAAkB,EAAE,WAAW,GAAG,SAAS,CAAC;CACjD;AAuBD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAsBD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAOzC;AA0FD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuGxF;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAiBlE;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAwC5E;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAaxF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiBjE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAUA;AAED;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAO9C;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBhF;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAG7E;AAED,mEAAmE;AACnE,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,iEAAiE;AACjE,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK9D;AAGD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,GAAE,kBAAuB;IAIrC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKtC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAKhD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/D,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;CACF;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"onnx-embedder.d.ts","sourceRoot":"","sources":["../../src/core/onnx-embedder.ts"],"names":[],"mappings":"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"}
@@ -127,13 +127,17 @@ function isOnnxAvailable() {
127
127
  }
128
128
  }
129
129
  /**
130
- * Check if parallel workers are available (npm package installed)
130
+ * Check whether the bundled parallel worker pool can be loaded — i.e. the
131
+ * `onnx/bundled-parallel.mjs` file ships in the package. This reflects the
132
+ * *bundled* pool (the only parallel implementation), NOT the unpublished
133
+ * external `ruvector-onnx-embeddings-wasm/parallel` package, which was rejected
134
+ * in ADR-194. See https://github.com/ruvnet/RuVector/issues/531.
131
135
  */
132
- async function detectParallelAvailable() {
136
+ function detectParallelAvailable() {
133
137
  try {
134
- await dynamicImport('ruvector-onnx-embeddings-wasm/parallel');
135
- parallelAvailable = true;
136
- return true;
138
+ const poolPath = path.join(__dirname, 'onnx', 'bundled-parallel.mjs');
139
+ parallelAvailable = fs.existsSync(poolPath);
140
+ return parallelAvailable;
137
141
  }
138
142
  catch {
139
143
  parallelAvailable = false;
@@ -154,37 +158,27 @@ function detectSimd() {
154
158
  return false;
155
159
  }
156
160
  /**
157
- * Try to load ParallelEmbedder from npm package (optional)
161
+ * Initialize the bundled, zero-dependency worker pool for batch throughput.
162
+ *
163
+ * Opt-in only (`enableParallel === true`) so the default/'auto' path does not
164
+ * silently spawn worker threads for existing callers. Output vectors are
165
+ * bit-identical to the single-thread path (issue #523).
166
+ *
167
+ * The previously-referenced external package
168
+ * `ruvector-onnx-embeddings-wasm/parallel` was never published and was rejected
169
+ * in ADR-194; the bundled pool (`onnx/bundled-parallel.mjs`) is the only
170
+ * parallel implementation. See https://github.com/ruvnet/RuVector/issues/531.
158
171
  */
159
172
  async function tryInitParallel(config) {
160
- // Skip if explicitly disabled
161
- if (config.enableParallel === false)
162
- return false;
163
- // 1) Optional external package (back-compat). Absent by default.
164
- try {
165
- const parallelModule = await dynamicImport('ruvector-onnx-embeddings-wasm/parallel');
166
- const { ParallelEmbedder } = parallelModule;
167
- parallelEmbedder = new ParallelEmbedder({
168
- numWorkers: config.numWorkers,
169
- });
170
- await parallelEmbedder.init(config.modelId || DEFAULT_MODEL);
171
- parallelThreshold = config.parallelThreshold || 4;
172
- parallelEnabled = true;
173
- parallelAvailable = true;
174
- console.error(`Parallel embedder ready (external): ${parallelEmbedder.numWorkers} workers, SIMD: ${simdAvailable}`);
175
- return true;
176
- }
177
- catch {
178
- // External package not installed — fall through to the bundled pool.
179
- }
180
- // 2) Bundled, zero-dependency worker pool over the already-loaded model bytes.
181
- // Opt-in only (enableParallel === true) so the default/'auto' path does not
182
- // silently spawn worker threads for existing callers. Vectors are identical
183
- // to the single-thread path (issue #523).
173
+ // Skip unless parallelism is explicitly requested (covers false and 'auto').
184
174
  if (config.enableParallel !== true) {
185
175
  parallelAvailable = false;
186
176
  return false;
187
177
  }
178
+ if (!detectParallelAvailable()) {
179
+ console.error('Parallel embedder not available: bundled worker pool (onnx/bundled-parallel.mjs) missing');
180
+ return false;
181
+ }
188
182
  try {
189
183
  if (!loadedModelBytes || !loadedTokenizerJson) {
190
184
  throw new Error('model bytes unavailable for bundled pool');