@reftrixmcp/ml 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/embeddings/service.d.ts +19 -0
- package/dist/embeddings/service.d.ts.map +1 -1
- package/dist/embeddings/service.js +43 -0
- package/dist/embeddings/service.js.map +1 -1
- package/dist/embeddings/worker-thread-device.d.ts +59 -0
- package/dist/embeddings/worker-thread-device.d.ts.map +1 -0
- package/dist/embeddings/worker-thread-device.js +63 -0
- package/dist/embeddings/worker-thread-device.js.map +1 -0
- package/dist/embeddings/worker-thread.d.ts.map +1 -1
- package/dist/embeddings/worker-thread.js +15 -3
- package/dist/embeddings/worker-thread.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -4
- package/src/embeddings/service.ts +50 -0
- package/src/embeddings/worker-thread-device.ts +68 -0
- package/src/embeddings/worker-thread.ts +18 -3
- package/src/index.ts +12 -0
|
@@ -99,6 +99,25 @@ export declare class EmbeddingService {
|
|
|
99
99
|
* If the configured device is 'cuda' but initialization fails (e.g. because
|
|
100
100
|
* LD_LIBRARY_PATH was not set at the OS level), automatically falls back to CPU.
|
|
101
101
|
*/
|
|
102
|
+
/**
|
|
103
|
+
* Resolve the safe execution device for the in-process pipeline.
|
|
104
|
+
*
|
|
105
|
+
* PR-1 GPU-COORD H regression fix (FIND-IMPL-PR1-H-NEW-01): the Phase 5 fork
|
|
106
|
+
* child's VRAM probe wires `ONNX_EXECUTION_PROVIDER=cuda` when free VRAM is
|
|
107
|
+
* available, but that does NOT guarantee the CUDA EP shared library
|
|
108
|
+
* (`libonnxruntime_providers_cuda.so`) is installed on the host. Previously
|
|
109
|
+
* the in-process path trusted `this.config.device` (set straight from the env
|
|
110
|
+
* var in the constructor) and passed `device:"cuda"` to transformers, which
|
|
111
|
+
* raw-throws on the native dlopen failure when the EP `.so` is absent.
|
|
112
|
+
*
|
|
113
|
+
* This gate mirrors the DINOv2 in-process path (`dinov2/worker-thread.ts`
|
|
114
|
+
* `initializeSession`): it resolves via `detectExecutionProvider` (which calls
|
|
115
|
+
* `verifyCudaAvailability` for an EP `.so` filesystem check) and also requires
|
|
116
|
+
* `LD_LIBRARY_PATH` at the OS level. If either fails, it returns "cpu" so the
|
|
117
|
+
* pipeline is never asked to create a CUDA session it cannot back. When the
|
|
118
|
+
* configured device is not "cuda", the configured device is returned as-is.
|
|
119
|
+
*/
|
|
120
|
+
private resolveInProcessDevice;
|
|
102
121
|
private initializeInProcess;
|
|
103
122
|
/**
|
|
104
123
|
* Recycle the in-process pipeline if threshold reached.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/embeddings/service.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/embeddings/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ import { fileURLToPath } from "node:url";
|
|
|
19
19
|
import path from "node:path";
|
|
20
20
|
import { OnnxRuntimeUnavailableError } from "../onnx-availability.js";
|
|
21
21
|
import { getMLWorkerThreadOptions } from "../config/worker-resource-limits.js";
|
|
22
|
+
import { detectExecutionProvider, isLdLibraryPathSetAtOsLevel } from "../onnx-provider-detect.js";
|
|
22
23
|
/**
|
|
23
24
|
* Default maximum cache size for LRU cache
|
|
24
25
|
* Prevents unbounded memory growth
|
|
@@ -368,11 +369,53 @@ export class EmbeddingService {
|
|
|
368
369
|
* If the configured device is 'cuda' but initialization fails (e.g. because
|
|
369
370
|
* LD_LIBRARY_PATH was not set at the OS level), automatically falls back to CPU.
|
|
370
371
|
*/
|
|
372
|
+
/**
|
|
373
|
+
* Resolve the safe execution device for the in-process pipeline.
|
|
374
|
+
*
|
|
375
|
+
* PR-1 GPU-COORD H regression fix (FIND-IMPL-PR1-H-NEW-01): the Phase 5 fork
|
|
376
|
+
* child's VRAM probe wires `ONNX_EXECUTION_PROVIDER=cuda` when free VRAM is
|
|
377
|
+
* available, but that does NOT guarantee the CUDA EP shared library
|
|
378
|
+
* (`libonnxruntime_providers_cuda.so`) is installed on the host. Previously
|
|
379
|
+
* the in-process path trusted `this.config.device` (set straight from the env
|
|
380
|
+
* var in the constructor) and passed `device:"cuda"` to transformers, which
|
|
381
|
+
* raw-throws on the native dlopen failure when the EP `.so` is absent.
|
|
382
|
+
*
|
|
383
|
+
* This gate mirrors the DINOv2 in-process path (`dinov2/worker-thread.ts`
|
|
384
|
+
* `initializeSession`): it resolves via `detectExecutionProvider` (which calls
|
|
385
|
+
* `verifyCudaAvailability` for an EP `.so` filesystem check) and also requires
|
|
386
|
+
* `LD_LIBRARY_PATH` at the OS level. If either fails, it returns "cpu" so the
|
|
387
|
+
* pipeline is never asked to create a CUDA session it cannot back. When the
|
|
388
|
+
* configured device is not "cuda", the configured device is returned as-is.
|
|
389
|
+
*/
|
|
390
|
+
resolveInProcessDevice() {
|
|
391
|
+
if (this.config.device !== "cuda") {
|
|
392
|
+
return this.config.device === undefined ? "cpu" : this.config.device;
|
|
393
|
+
}
|
|
394
|
+
// CUDA requested — gate on EP `.so` availability and OS-level LD_LIBRARY_PATH.
|
|
395
|
+
const resolved = detectExecutionProvider("EmbeddingService");
|
|
396
|
+
if (resolved === "cuda" && !isLdLibraryPathSetAtOsLevel()) {
|
|
397
|
+
console.warn("[ML] CUDA requested but LD_LIBRARY_PATH not set at OS level. " +
|
|
398
|
+
"dlopen() cannot find CUDA libraries. Falling back to CPU.");
|
|
399
|
+
return "cpu";
|
|
400
|
+
}
|
|
401
|
+
if (resolved !== "cuda") {
|
|
402
|
+
console.warn("[ML] CUDA requested but CUDA EP not available (libonnxruntime_providers_cuda.so absent). " +
|
|
403
|
+
"Falling back to CPU.");
|
|
404
|
+
}
|
|
405
|
+
return resolved;
|
|
406
|
+
}
|
|
371
407
|
async initializeInProcess() {
|
|
372
408
|
if (this.pipeline)
|
|
373
409
|
return;
|
|
374
410
|
if (this.initPromise)
|
|
375
411
|
return this.initPromise;
|
|
412
|
+
// Resolve the safe device BEFORE init so we never pass an unbacked CUDA
|
|
413
|
+
// device to the pipeline (FIND-IMPL-PR1-H-NEW-01 — gate parity with DINOv2).
|
|
414
|
+
const effectiveDevice = this.resolveInProcessDevice();
|
|
415
|
+
if (effectiveDevice !== this.config.device) {
|
|
416
|
+
this.config = { ...this.config, device: effectiveDevice };
|
|
417
|
+
this.currentProvider = effectiveDevice;
|
|
418
|
+
}
|
|
376
419
|
this.initPromise = (async () => {
|
|
377
420
|
try {
|
|
378
421
|
if (process.env.NODE_ENV === "development") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/embeddings/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/embeddings/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker-thread ONNX device gate helpers
|
|
3
|
+
*
|
|
4
|
+
* Pure, side-effect-free helpers that decide the effective ONNX execution
|
|
5
|
+
* device for the e5-base embedding worker thread. Extracted from
|
|
6
|
+
* `worker-thread.ts` so the gate logic is directly unit-testable — the worker
|
|
7
|
+
* module itself only runs as a Worker Thread (it requires `parentPort` at
|
|
8
|
+
* import time), so its gate could otherwise not be exercised in-place.
|
|
9
|
+
*
|
|
10
|
+
* The contract mirrors the in-process gate
|
|
11
|
+
* (`service.ts` `resolveInProcessDevice`, FIND-IMPL-PR1-H-NEW-01): the effective
|
|
12
|
+
* device must HONOR the already-resolved provider (the result of
|
|
13
|
+
* `detectExecutionProvider()` + the OS-level `LD_LIBRARY_PATH` check) and must
|
|
14
|
+
* NOT fall back to a raw `config.device` value (which is set straight from the
|
|
15
|
+
* `ONNX_EXECUTION_PROVIDER` env var). Letting `config.device="cuda"` override a
|
|
16
|
+
* gate decision of `"cpu"` passes an unbacked CUDA device to transformers, which
|
|
17
|
+
* raw-throws on the native `dlopen()` failure when the EP `.so` is absent
|
|
18
|
+
* (root-cause decision `019ec56b`).
|
|
19
|
+
*
|
|
20
|
+
* @module embeddings/worker-thread-device
|
|
21
|
+
*/
|
|
22
|
+
import type { ExecutionProvider } from "../onnx-provider-detect.js";
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the effective ONNX device for the worker-thread pipeline.
|
|
25
|
+
*
|
|
26
|
+
* `resolvedProvider` is already the result of the init gate
|
|
27
|
+
* (`detectExecutionProvider()` — a CUDA EP `.so` filesystem check — plus the
|
|
28
|
+
* OS-level `LD_LIBRARY_PATH` check in `initializePipeline`). This helper simply
|
|
29
|
+
* honors that decision. It deliberately does NOT consult `config.device`: doing
|
|
30
|
+
* so was the line-97 bug that let a `"cuda"` env override a `"cpu"` gate result.
|
|
31
|
+
*
|
|
32
|
+
* Parity: `service.ts` `resolveInProcessDevice()` likewise returns the gate
|
|
33
|
+
* result (`resolved`), never a raw configured device when CUDA is unbacked.
|
|
34
|
+
*
|
|
35
|
+
* @param resolvedProvider - The provider already resolved by the init gate.
|
|
36
|
+
* @returns The effective device to pass to the transformers pipeline.
|
|
37
|
+
*/
|
|
38
|
+
export declare function resolveWorkerEffectiveDevice(resolvedProvider: ExecutionProvider): ExecutionProvider;
|
|
39
|
+
/**
|
|
40
|
+
* Decide whether a `switch-provider` request to CUDA may proceed.
|
|
41
|
+
*
|
|
42
|
+
* Mirrors the init-time AND gate (`initializePipeline`, line ~88): CUDA may be
|
|
43
|
+
* used only if BOTH the CUDA EP shared library is present
|
|
44
|
+
* (`verifyCudaAvailability`) AND `LD_LIBRARY_PATH` was set at the OS level
|
|
45
|
+
* (`isLdLibraryPathSetAtOsLevel`). Pre-fix, `switch-provider` gated on
|
|
46
|
+
* `verifyCudaAvailability` alone — so a host with the EP `.so` but an unset
|
|
47
|
+
* `LD_LIBRARY_PATH` would let `resolvedProvider="cuda"` through, producing an
|
|
48
|
+
* unbacked CUDA device and a `dlopen()` raw throw (UB-6 init parity).
|
|
49
|
+
*
|
|
50
|
+
* The two checks are passed in as functions so this helper stays pure and
|
|
51
|
+
* deterministically testable (the production caller passes the real
|
|
52
|
+
* `verifyCudaAvailability` / `isLdLibraryPathSetAtOsLevel`).
|
|
53
|
+
*
|
|
54
|
+
* @param verifyCuda - CUDA EP `.so` filesystem availability check.
|
|
55
|
+
* @param isLdSet - OS-level `LD_LIBRARY_PATH` presence check.
|
|
56
|
+
* @returns true only if both checks pass (CUDA switch permitted).
|
|
57
|
+
*/
|
|
58
|
+
export declare function canSwitchToCuda(verifyCuda: () => boolean, isLdSet: () => boolean): boolean;
|
|
59
|
+
//# sourceMappingURL=worker-thread-device.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-thread-device.d.ts","sourceRoot":"","sources":["../../src/embeddings/worker-thread-device.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,gBAAgB,EAAE,iBAAiB,GAClC,iBAAiB,CAEnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,GAAG,OAAO,CAE1F"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
/**
|
|
3
|
+
* Worker-thread ONNX device gate helpers
|
|
4
|
+
*
|
|
5
|
+
* Pure, side-effect-free helpers that decide the effective ONNX execution
|
|
6
|
+
* device for the e5-base embedding worker thread. Extracted from
|
|
7
|
+
* `worker-thread.ts` so the gate logic is directly unit-testable — the worker
|
|
8
|
+
* module itself only runs as a Worker Thread (it requires `parentPort` at
|
|
9
|
+
* import time), so its gate could otherwise not be exercised in-place.
|
|
10
|
+
*
|
|
11
|
+
* The contract mirrors the in-process gate
|
|
12
|
+
* (`service.ts` `resolveInProcessDevice`, FIND-IMPL-PR1-H-NEW-01): the effective
|
|
13
|
+
* device must HONOR the already-resolved provider (the result of
|
|
14
|
+
* `detectExecutionProvider()` + the OS-level `LD_LIBRARY_PATH` check) and must
|
|
15
|
+
* NOT fall back to a raw `config.device` value (which is set straight from the
|
|
16
|
+
* `ONNX_EXECUTION_PROVIDER` env var). Letting `config.device="cuda"` override a
|
|
17
|
+
* gate decision of `"cpu"` passes an unbacked CUDA device to transformers, which
|
|
18
|
+
* raw-throws on the native `dlopen()` failure when the EP `.so` is absent
|
|
19
|
+
* (root-cause decision `019ec56b`).
|
|
20
|
+
*
|
|
21
|
+
* @module embeddings/worker-thread-device
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the effective ONNX device for the worker-thread pipeline.
|
|
25
|
+
*
|
|
26
|
+
* `resolvedProvider` is already the result of the init gate
|
|
27
|
+
* (`detectExecutionProvider()` — a CUDA EP `.so` filesystem check — plus the
|
|
28
|
+
* OS-level `LD_LIBRARY_PATH` check in `initializePipeline`). This helper simply
|
|
29
|
+
* honors that decision. It deliberately does NOT consult `config.device`: doing
|
|
30
|
+
* so was the line-97 bug that let a `"cuda"` env override a `"cpu"` gate result.
|
|
31
|
+
*
|
|
32
|
+
* Parity: `service.ts` `resolveInProcessDevice()` likewise returns the gate
|
|
33
|
+
* result (`resolved`), never a raw configured device when CUDA is unbacked.
|
|
34
|
+
*
|
|
35
|
+
* @param resolvedProvider - The provider already resolved by the init gate.
|
|
36
|
+
* @returns The effective device to pass to the transformers pipeline.
|
|
37
|
+
*/
|
|
38
|
+
export function resolveWorkerEffectiveDevice(resolvedProvider) {
|
|
39
|
+
return resolvedProvider;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Decide whether a `switch-provider` request to CUDA may proceed.
|
|
43
|
+
*
|
|
44
|
+
* Mirrors the init-time AND gate (`initializePipeline`, line ~88): CUDA may be
|
|
45
|
+
* used only if BOTH the CUDA EP shared library is present
|
|
46
|
+
* (`verifyCudaAvailability`) AND `LD_LIBRARY_PATH` was set at the OS level
|
|
47
|
+
* (`isLdLibraryPathSetAtOsLevel`). Pre-fix, `switch-provider` gated on
|
|
48
|
+
* `verifyCudaAvailability` alone — so a host with the EP `.so` but an unset
|
|
49
|
+
* `LD_LIBRARY_PATH` would let `resolvedProvider="cuda"` through, producing an
|
|
50
|
+
* unbacked CUDA device and a `dlopen()` raw throw (UB-6 init parity).
|
|
51
|
+
*
|
|
52
|
+
* The two checks are passed in as functions so this helper stays pure and
|
|
53
|
+
* deterministically testable (the production caller passes the real
|
|
54
|
+
* `verifyCudaAvailability` / `isLdLibraryPathSetAtOsLevel`).
|
|
55
|
+
*
|
|
56
|
+
* @param verifyCuda - CUDA EP `.so` filesystem availability check.
|
|
57
|
+
* @param isLdSet - OS-level `LD_LIBRARY_PATH` presence check.
|
|
58
|
+
* @returns true only if both checks pass (CUDA switch permitted).
|
|
59
|
+
*/
|
|
60
|
+
export function canSwitchToCuda(verifyCuda, isLdSet) {
|
|
61
|
+
return verifyCuda() && isLdSet();
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=worker-thread-device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-thread-device.js","sourceRoot":"","sources":["../../src/embeddings/worker-thread-device.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,4BAA4B,CAC1C,gBAAmC;IAEnC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,eAAe,CAAC,UAAyB,EAAE,OAAsB;IAC/E,OAAO,UAAU,EAAE,IAAI,OAAO,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-thread.d.ts","sourceRoot":"","sources":["../../src/embeddings/worker-thread.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker-thread.d.ts","sourceRoot":"","sources":["../../src/embeddings/worker-thread.ts"],"names":[],"mappings":"AAmDA,QAAA,IAAI,sBAAsB,QAAI,CAAC;AAC/B,QAAA,IAAI,aAAa,QAAI,CAAC;AAkZtB,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
import { parentPort } from "node:worker_threads";
|
|
21
21
|
import { OnnxRuntimeUnavailableError } from "../onnx-availability.js";
|
|
22
22
|
import { detectExecutionProvider, verifyCudaAvailability, isLdLibraryPathSetAtOsLevel, } from "../onnx-provider-detect.js";
|
|
23
|
+
import { resolveWorkerEffectiveDevice, canSwitchToCuda } from "./worker-thread-device.js";
|
|
23
24
|
// =====================================================
|
|
24
25
|
// Worker state
|
|
25
26
|
// =====================================================
|
|
@@ -68,7 +69,13 @@ async function initializePipeline() {
|
|
|
68
69
|
"To use CUDA, set LD_LIBRARY_PATH before starting the Node.js process.");
|
|
69
70
|
resolvedProvider = "cpu";
|
|
70
71
|
}
|
|
71
|
-
|
|
72
|
+
// Honor the gate decision. resolvedProvider is already the result of
|
|
73
|
+
// detectExecutionProvider() (CUDA EP .so check) + the LD_LIBRARY_PATH OS-level
|
|
74
|
+
// check above (line 88-95). config.device (set straight from the env var) must
|
|
75
|
+
// NOT override the gate — otherwise a "cuda" env on a host without the EP .so
|
|
76
|
+
// passes device:"cuda" to transformers, which raw-throws on dlopen. Parity with
|
|
77
|
+
// the in-process resolveInProcessDevice() gate (service.ts:472, FIND-IMPL-PR1-H-NEW-01).
|
|
78
|
+
const effectiveDevice = resolveWorkerEffectiveDevice(resolvedProvider);
|
|
72
79
|
// eslint-disable-next-line no-console
|
|
73
80
|
console.log("[EmbeddingWorker] Initializing ONNX pipeline", {
|
|
74
81
|
model: config.modelId,
|
|
@@ -296,9 +303,14 @@ async function handleMessage(message) {
|
|
|
296
303
|
}
|
|
297
304
|
case "switch-provider": {
|
|
298
305
|
const targetProvider = message.provider;
|
|
299
|
-
// If switching to CUDA, verify availability first
|
|
306
|
+
// If switching to CUDA, verify availability first. Mirror the init-time
|
|
307
|
+
// AND gate (line ~88): CUDA may proceed only if BOTH the EP .so is present
|
|
308
|
+
// AND LD_LIBRARY_PATH was set at the OS level. Gating on
|
|
309
|
+
// verifyCudaAvailability ALONE (the pre-fix gap, UB-6) would let a host
|
|
310
|
+
// with the EP .so but unset LD_LIBRARY_PATH pass device:"cuda" through →
|
|
311
|
+
// dlopen raw throw. canSwitchToCuda ANDs both checks (init parity).
|
|
300
312
|
if (targetProvider === "cuda") {
|
|
301
|
-
const canUseCuda = verifyCudaAvailability("EmbeddingWorker");
|
|
313
|
+
const canUseCuda = canSwitchToCuda(() => verifyCudaAvailability("EmbeddingWorker"), isLdLibraryPathSetAtOsLevel);
|
|
302
314
|
if (!canUseCuda) {
|
|
303
315
|
// Cannot switch to CUDA — respond with current (cpu) provider
|
|
304
316
|
sendResponse({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-thread.js","sourceRoot":"","sources":["../../src/embeddings/worker-thread.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,yCAAyC;AAEzC;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-thread.js","sourceRoot":"","sources":["../../src/embeddings/worker-thread.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export { DINOv2Service, DINOV2_EMBEDDING_DIMENSION, DINOV2_INPUT_SIZE } from "./
|
|
|
12
12
|
export type { DINOv2ServiceConfig } from "./dinov2/index.js";
|
|
13
13
|
export type { DINOv2WorkerMessage, DINOv2WorkerResponse } from "./dinov2/index.js";
|
|
14
14
|
export { isOnnxRuntimeAvailable, OnnxRuntimeUnavailableError, safeImportOnnx, } from "./onnx-availability.js";
|
|
15
|
+
export { detectExecutionProvider, verifyCudaAvailability, isLdLibraryPathSetAtOsLevel, } from "./onnx-provider-detect.js";
|
|
16
|
+
export type { ExecutionProvider } from "./onnx-provider-detect.js";
|
|
15
17
|
export { loadMLWorkerResourceLimits, getMLWorkerThreadOptions, MLWorkerResourceLimitsSchema, } from "./config/worker-resource-limits.js";
|
|
16
18
|
export type { MLWorkerResourceLimits } from "./config/worker-resource-limits.js";
|
|
17
19
|
export { calculateRRF, mergeWithRRF, normalizeRRFScore, toRankedItems } from "./search/index.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,UAAU,EACV,eAAe,EACf,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACjG,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGnF,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,cAAc,GACf,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,UAAU,EACV,eAAe,EACf,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACjG,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGnF,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,cAAc,GACf,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAGjF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACzF,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,12 @@ export { VisionEmbeddingService, visionEmbeddingService, createVisionEmbedding,
|
|
|
14
14
|
export { DINOv2Service, DINOV2_EMBEDDING_DIMENSION, DINOV2_INPUT_SIZE } from "./dinov2/index.js";
|
|
15
15
|
// ONNX Runtime availability checker
|
|
16
16
|
export { isOnnxRuntimeAvailable, OnnxRuntimeUnavailableError, safeImportOnnx, } from "./onnx-availability.js";
|
|
17
|
+
// ONNX execution provider detection (CUDA EP `.so` availability gate)
|
|
18
|
+
// Exported so the Phase 5 fork-child VRAM probe can gate CUDA selection on the
|
|
19
|
+
// CUDA EP shared-library availability (FIND-IMPL-PR1-H-NEW-01), not just on
|
|
20
|
+
// free VRAM. `verifyCudaAvailability` is a pure filesystem check (no GPU/native
|
|
21
|
+
// init), safe to call from the fork-child leaf path.
|
|
22
|
+
export { detectExecutionProvider, verifyCudaAvailability, isLdLibraryPathSetAtOsLevel, } from "./onnx-provider-detect.js";
|
|
17
23
|
// ML Worker Thread resource limits (PR7e-β1)
|
|
18
24
|
export { loadMLWorkerResourceLimits, getMLWorkerThreadOptions, MLWorkerResourceLimitsSchema, } from "./config/worker-resource-limits.js";
|
|
19
25
|
// Search utilities exports (SearchService removed in v0.1.0)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,yCAAyC;AAEzC;;;GAGG;AAEH,4BAA4B;AAC5B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAS7F,kCAAkC;AAClC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAG/B,mCAAmC;AACnC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAW/B,kCAAkC;AAClC,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAIjG,oCAAoC;AACpC,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,6CAA6C;AAC7C,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,oCAAoC,CAAC;AAG5C,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,yCAAyC;AAEzC;;;GAGG;AAEH,4BAA4B;AAC5B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAS7F,kCAAkC;AAClC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAG/B,mCAAmC;AACnC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAW/B,kCAAkC;AAClC,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAIjG,oCAAoC;AACpC,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,sEAAsE;AACtE,+EAA+E;AAC/E,4EAA4E;AAC5E,gFAAgF;AAChF,qDAAqD;AACrD,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAGnC,6CAA6C;AAC7C,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,oCAAoC,CAAC;AAG5C,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reftrixmcp/ml",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "ML/Embedding services for Reftrix",
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/node": "^22.0.0",
|
|
41
|
-
"@vitest/coverage-v8": "^4.0
|
|
41
|
+
"@vitest/coverage-v8": "^4.1.0",
|
|
42
42
|
"typescript": "^5.9.0",
|
|
43
|
-
"vitest": "^4.0
|
|
44
|
-
"@reftrixmcp/config": "0.
|
|
43
|
+
"vitest": "^4.1.0",
|
|
44
|
+
"@reftrixmcp/config": "0.6.0"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
|
@@ -65,6 +65,7 @@
|
|
|
65
65
|
"test:watch": "vitest",
|
|
66
66
|
"test:coverage": "vitest run --coverage",
|
|
67
67
|
"download:dinov2": "tsx scripts/download-dinov2.ts",
|
|
68
|
+
"repair:e5-cache": "tsx scripts/repair-e5-cache.ts",
|
|
68
69
|
"clean": "rm -rf dist node_modules .turbo"
|
|
69
70
|
}
|
|
70
71
|
}
|
|
@@ -23,6 +23,7 @@ import type { EmbeddingTextType, EmbeddingServiceConfig, CacheStats } from "./ty
|
|
|
23
23
|
import type { WorkerMessage, WorkerResponse } from "./worker-thread-types.js";
|
|
24
24
|
import { OnnxRuntimeUnavailableError } from "../onnx-availability.js";
|
|
25
25
|
import { getMLWorkerThreadOptions } from "../config/worker-resource-limits.js";
|
|
26
|
+
import { detectExecutionProvider, isLdLibraryPathSetAtOsLevel } from "../onnx-provider-detect.js";
|
|
26
27
|
|
|
27
28
|
/**
|
|
28
29
|
* Disposable pipeline interface (used only in in-process fallback mode).
|
|
@@ -453,10 +454,59 @@ export class EmbeddingService {
|
|
|
453
454
|
* If the configured device is 'cuda' but initialization fails (e.g. because
|
|
454
455
|
* LD_LIBRARY_PATH was not set at the OS level), automatically falls back to CPU.
|
|
455
456
|
*/
|
|
457
|
+
/**
|
|
458
|
+
* Resolve the safe execution device for the in-process pipeline.
|
|
459
|
+
*
|
|
460
|
+
* PR-1 GPU-COORD H regression fix (FIND-IMPL-PR1-H-NEW-01): the Phase 5 fork
|
|
461
|
+
* child's VRAM probe wires `ONNX_EXECUTION_PROVIDER=cuda` when free VRAM is
|
|
462
|
+
* available, but that does NOT guarantee the CUDA EP shared library
|
|
463
|
+
* (`libonnxruntime_providers_cuda.so`) is installed on the host. Previously
|
|
464
|
+
* the in-process path trusted `this.config.device` (set straight from the env
|
|
465
|
+
* var in the constructor) and passed `device:"cuda"` to transformers, which
|
|
466
|
+
* raw-throws on the native dlopen failure when the EP `.so` is absent.
|
|
467
|
+
*
|
|
468
|
+
* This gate mirrors the DINOv2 in-process path (`dinov2/worker-thread.ts`
|
|
469
|
+
* `initializeSession`): it resolves via `detectExecutionProvider` (which calls
|
|
470
|
+
* `verifyCudaAvailability` for an EP `.so` filesystem check) and also requires
|
|
471
|
+
* `LD_LIBRARY_PATH` at the OS level. If either fails, it returns "cpu" so the
|
|
472
|
+
* pipeline is never asked to create a CUDA session it cannot back. When the
|
|
473
|
+
* configured device is not "cuda", the configured device is returned as-is.
|
|
474
|
+
*/
|
|
475
|
+
private resolveInProcessDevice(): "cpu" | "cuda" {
|
|
476
|
+
if (this.config.device !== "cuda") {
|
|
477
|
+
return this.config.device === undefined ? "cpu" : (this.config.device as "cpu" | "cuda");
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
// CUDA requested — gate on EP `.so` availability and OS-level LD_LIBRARY_PATH.
|
|
481
|
+
const resolved = detectExecutionProvider("EmbeddingService");
|
|
482
|
+
if (resolved === "cuda" && !isLdLibraryPathSetAtOsLevel()) {
|
|
483
|
+
console.warn(
|
|
484
|
+
"[ML] CUDA requested but LD_LIBRARY_PATH not set at OS level. " +
|
|
485
|
+
"dlopen() cannot find CUDA libraries. Falling back to CPU."
|
|
486
|
+
);
|
|
487
|
+
return "cpu";
|
|
488
|
+
}
|
|
489
|
+
if (resolved !== "cuda") {
|
|
490
|
+
console.warn(
|
|
491
|
+
"[ML] CUDA requested but CUDA EP not available (libonnxruntime_providers_cuda.so absent). " +
|
|
492
|
+
"Falling back to CPU."
|
|
493
|
+
);
|
|
494
|
+
}
|
|
495
|
+
return resolved;
|
|
496
|
+
}
|
|
497
|
+
|
|
456
498
|
private async initializeInProcess(): Promise<void> {
|
|
457
499
|
if (this.pipeline) return;
|
|
458
500
|
if (this.initPromise) return this.initPromise;
|
|
459
501
|
|
|
502
|
+
// Resolve the safe device BEFORE init so we never pass an unbacked CUDA
|
|
503
|
+
// device to the pipeline (FIND-IMPL-PR1-H-NEW-01 — gate parity with DINOv2).
|
|
504
|
+
const effectiveDevice = this.resolveInProcessDevice();
|
|
505
|
+
if (effectiveDevice !== this.config.device) {
|
|
506
|
+
this.config = { ...this.config, device: effectiveDevice };
|
|
507
|
+
this.currentProvider = effectiveDevice;
|
|
508
|
+
}
|
|
509
|
+
|
|
460
510
|
this.initPromise = (async (): Promise<void> => {
|
|
461
511
|
try {
|
|
462
512
|
if (process.env.NODE_ENV === "development") {
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
/**
|
|
3
|
+
* Worker-thread ONNX device gate helpers
|
|
4
|
+
*
|
|
5
|
+
* Pure, side-effect-free helpers that decide the effective ONNX execution
|
|
6
|
+
* device for the e5-base embedding worker thread. Extracted from
|
|
7
|
+
* `worker-thread.ts` so the gate logic is directly unit-testable — the worker
|
|
8
|
+
* module itself only runs as a Worker Thread (it requires `parentPort` at
|
|
9
|
+
* import time), so its gate could otherwise not be exercised in-place.
|
|
10
|
+
*
|
|
11
|
+
* The contract mirrors the in-process gate
|
|
12
|
+
* (`service.ts` `resolveInProcessDevice`, FIND-IMPL-PR1-H-NEW-01): the effective
|
|
13
|
+
* device must HONOR the already-resolved provider (the result of
|
|
14
|
+
* `detectExecutionProvider()` + the OS-level `LD_LIBRARY_PATH` check) and must
|
|
15
|
+
* NOT fall back to a raw `config.device` value (which is set straight from the
|
|
16
|
+
* `ONNX_EXECUTION_PROVIDER` env var). Letting `config.device="cuda"` override a
|
|
17
|
+
* gate decision of `"cpu"` passes an unbacked CUDA device to transformers, which
|
|
18
|
+
* raw-throws on the native `dlopen()` failure when the EP `.so` is absent
|
|
19
|
+
* (root-cause decision `019ec56b`).
|
|
20
|
+
*
|
|
21
|
+
* @module embeddings/worker-thread-device
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import type { ExecutionProvider } from "../onnx-provider-detect.js";
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the effective ONNX device for the worker-thread pipeline.
|
|
28
|
+
*
|
|
29
|
+
* `resolvedProvider` is already the result of the init gate
|
|
30
|
+
* (`detectExecutionProvider()` — a CUDA EP `.so` filesystem check — plus the
|
|
31
|
+
* OS-level `LD_LIBRARY_PATH` check in `initializePipeline`). This helper simply
|
|
32
|
+
* honors that decision. It deliberately does NOT consult `config.device`: doing
|
|
33
|
+
* so was the line-97 bug that let a `"cuda"` env override a `"cpu"` gate result.
|
|
34
|
+
*
|
|
35
|
+
* Parity: `service.ts` `resolveInProcessDevice()` likewise returns the gate
|
|
36
|
+
* result (`resolved`), never a raw configured device when CUDA is unbacked.
|
|
37
|
+
*
|
|
38
|
+
* @param resolvedProvider - The provider already resolved by the init gate.
|
|
39
|
+
* @returns The effective device to pass to the transformers pipeline.
|
|
40
|
+
*/
|
|
41
|
+
export function resolveWorkerEffectiveDevice(
|
|
42
|
+
resolvedProvider: ExecutionProvider
|
|
43
|
+
): ExecutionProvider {
|
|
44
|
+
return resolvedProvider;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Decide whether a `switch-provider` request to CUDA may proceed.
|
|
49
|
+
*
|
|
50
|
+
* Mirrors the init-time AND gate (`initializePipeline`, line ~88): CUDA may be
|
|
51
|
+
* used only if BOTH the CUDA EP shared library is present
|
|
52
|
+
* (`verifyCudaAvailability`) AND `LD_LIBRARY_PATH` was set at the OS level
|
|
53
|
+
* (`isLdLibraryPathSetAtOsLevel`). Pre-fix, `switch-provider` gated on
|
|
54
|
+
* `verifyCudaAvailability` alone — so a host with the EP `.so` but an unset
|
|
55
|
+
* `LD_LIBRARY_PATH` would let `resolvedProvider="cuda"` through, producing an
|
|
56
|
+
* unbacked CUDA device and a `dlopen()` raw throw (UB-6 init parity).
|
|
57
|
+
*
|
|
58
|
+
* The two checks are passed in as functions so this helper stays pure and
|
|
59
|
+
* deterministically testable (the production caller passes the real
|
|
60
|
+
* `verifyCudaAvailability` / `isLdLibraryPathSetAtOsLevel`).
|
|
61
|
+
*
|
|
62
|
+
* @param verifyCuda - CUDA EP `.so` filesystem availability check.
|
|
63
|
+
* @param isLdSet - OS-level `LD_LIBRARY_PATH` presence check.
|
|
64
|
+
* @returns true only if both checks pass (CUDA switch permitted).
|
|
65
|
+
*/
|
|
66
|
+
export function canSwitchToCuda(verifyCuda: () => boolean, isLdSet: () => boolean): boolean {
|
|
67
|
+
return verifyCuda() && isLdSet();
|
|
68
|
+
}
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
isLdLibraryPathSetAtOsLevel,
|
|
29
29
|
} from "../onnx-provider-detect.js";
|
|
30
30
|
import type { ExecutionProvider } from "../onnx-provider-detect.js";
|
|
31
|
+
import { resolveWorkerEffectiveDevice, canSwitchToCuda } from "./worker-thread-device.js";
|
|
31
32
|
|
|
32
33
|
// =====================================================
|
|
33
34
|
// Pipeline types (mirrors service.ts DisposablePipeline)
|
|
@@ -97,7 +98,13 @@ async function initializePipeline(): Promise<void> {
|
|
|
97
98
|
resolvedProvider = "cpu";
|
|
98
99
|
}
|
|
99
100
|
|
|
100
|
-
|
|
101
|
+
// Honor the gate decision. resolvedProvider is already the result of
|
|
102
|
+
// detectExecutionProvider() (CUDA EP .so check) + the LD_LIBRARY_PATH OS-level
|
|
103
|
+
// check above (line 88-95). config.device (set straight from the env var) must
|
|
104
|
+
// NOT override the gate — otherwise a "cuda" env on a host without the EP .so
|
|
105
|
+
// passes device:"cuda" to transformers, which raw-throws on dlopen. Parity with
|
|
106
|
+
// the in-process resolveInProcessDevice() gate (service.ts:472, FIND-IMPL-PR1-H-NEW-01).
|
|
107
|
+
const effectiveDevice: ExecutionProvider = resolveWorkerEffectiveDevice(resolvedProvider);
|
|
101
108
|
|
|
102
109
|
// eslint-disable-next-line no-console
|
|
103
110
|
console.log("[EmbeddingWorker] Initializing ONNX pipeline", {
|
|
@@ -355,9 +362,17 @@ async function handleMessage(message: WorkerMessage): Promise<void> {
|
|
|
355
362
|
case "switch-provider": {
|
|
356
363
|
const targetProvider = message.provider;
|
|
357
364
|
|
|
358
|
-
// If switching to CUDA, verify availability first
|
|
365
|
+
// If switching to CUDA, verify availability first. Mirror the init-time
|
|
366
|
+
// AND gate (line ~88): CUDA may proceed only if BOTH the EP .so is present
|
|
367
|
+
// AND LD_LIBRARY_PATH was set at the OS level. Gating on
|
|
368
|
+
// verifyCudaAvailability ALONE (the pre-fix gap, UB-6) would let a host
|
|
369
|
+
// with the EP .so but unset LD_LIBRARY_PATH pass device:"cuda" through →
|
|
370
|
+
// dlopen raw throw. canSwitchToCuda ANDs both checks (init parity).
|
|
359
371
|
if (targetProvider === "cuda") {
|
|
360
|
-
const canUseCuda =
|
|
372
|
+
const canUseCuda = canSwitchToCuda(
|
|
373
|
+
() => verifyCudaAvailability("EmbeddingWorker"),
|
|
374
|
+
isLdLibraryPathSetAtOsLevel
|
|
375
|
+
);
|
|
361
376
|
if (!canUseCuda) {
|
|
362
377
|
// Cannot switch to CUDA — respond with current (cpu) provider
|
|
363
378
|
sendResponse({
|
package/src/index.ts
CHANGED
|
@@ -56,6 +56,18 @@ export {
|
|
|
56
56
|
safeImportOnnx,
|
|
57
57
|
} from "./onnx-availability.js";
|
|
58
58
|
|
|
59
|
+
// ONNX execution provider detection (CUDA EP `.so` availability gate)
|
|
60
|
+
// Exported so the Phase 5 fork-child VRAM probe can gate CUDA selection on the
|
|
61
|
+
// CUDA EP shared-library availability (FIND-IMPL-PR1-H-NEW-01), not just on
|
|
62
|
+
// free VRAM. `verifyCudaAvailability` is a pure filesystem check (no GPU/native
|
|
63
|
+
// init), safe to call from the fork-child leaf path.
|
|
64
|
+
export {
|
|
65
|
+
detectExecutionProvider,
|
|
66
|
+
verifyCudaAvailability,
|
|
67
|
+
isLdLibraryPathSetAtOsLevel,
|
|
68
|
+
} from "./onnx-provider-detect.js";
|
|
69
|
+
export type { ExecutionProvider } from "./onnx-provider-detect.js";
|
|
70
|
+
|
|
59
71
|
// ML Worker Thread resource limits (PR7e-β1)
|
|
60
72
|
export {
|
|
61
73
|
loadMLWorkerResourceLimits,
|