@adhd/sox-embedding-provider 0.3.0 → 0.4.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/fastembed.d.ts +4 -4
- package/dist/fastembed.d.ts.map +1 -1
- package/dist/fastembed.js +12 -38
- package/dist/fastembed.js.map +1 -1
- package/dist/fastembedLock.d.ts +15 -0
- package/dist/fastembedLock.d.ts.map +1 -1
- package/dist/fastembedLock.js.map +1 -1
- package/dist/fastembedModels.d.ts +54 -0
- package/dist/fastembedModels.d.ts.map +1 -0
- package/dist/fastembedModels.js +98 -0
- package/dist/fastembedModels.js.map +1 -0
- package/dist/fastembedProcessHost.d.ts.map +1 -1
- package/dist/fastembedProcessHost.js +96 -39
- package/dist/fastembedProcessHost.js.map +1 -1
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/package.json +2 -2
- package/dist/sharedFastembedProcess.d.ts +399 -4
- package/dist/sharedFastembedProcess.d.ts.map +1 -1
- package/dist/sharedFastembedProcess.js +945 -13
- package/dist/sharedFastembedProcess.js.map +1 -1
- package/package.json +2 -2
package/dist/fastembed.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type { EmbeddingHealth, EmbeddingProvider, EmbeddingProviderMetadata, EmbedRole
|
|
3
|
-
|
|
1
|
+
import { type SharedFastembedClient } from './sharedFastembedProcess.js';
|
|
2
|
+
import type { EmbeddingHealth, EmbeddingProvider, EmbeddingProviderMetadata, EmbedRole } from './index.js';
|
|
3
|
+
import { MODEL_CONFIGS } from './fastembedModels.js';
|
|
4
4
|
/** @deprecated Use MODEL_CONFIGS[modelId].dim instead. */
|
|
5
5
|
declare const MODEL_DIMS: Record<string, number>;
|
|
6
6
|
/** @deprecated Use MODEL_CONFIGS[modelId].maxTokens instead. */
|
|
@@ -34,7 +34,7 @@ export declare class FastembedProvider implements EmbeddingProvider {
|
|
|
34
34
|
* Tests pass a fake client here to inject an artificial init delay without
|
|
35
35
|
* forking a real fastembed child process or downloading a model.
|
|
36
36
|
*/
|
|
37
|
-
constructor(model: string, dimensions: number, cacheDir: string, sharedClient?:
|
|
37
|
+
constructor(model: string, dimensions: number, cacheDir: string, sharedClient?: SharedFastembedClient);
|
|
38
38
|
health(): EmbeddingHealth;
|
|
39
39
|
embedSingle(text: string, _role?: EmbedRole): Promise<Float32Array>;
|
|
40
40
|
embedBatch(texts: string[], opts?: {
|
package/dist/fastembed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastembed.d.ts","sourceRoot":"","sources":["../src/fastembed.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,
|
|
1
|
+
{"version":3,"file":"fastembed.d.ts","sourceRoot":"","sources":["../src/fastembed.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO3G,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAgBrD,0DAA0D;AAC1D,QAAA,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEtC,CAAC;AAEF,gEAAgE;AAChE,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAE5C,CAAC;AAEF,QAAA,MAAM,aAAa,qBAAqB,CAAC;AACzC,QAAA,MAAM,kBAAkB,MAAM,CAAC;AAE/B;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAS;IASzB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,kBAAkB,CAAiB;IAE3C;;;;;OAKG;gBAED,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,qBAAmD;IAkBnE,MAAM,IAAI,eAAe;IAmBnB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAkBlE,UAAU,CACf,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9C,aAAa,CAAC,YAAY,CAAC;IAuBxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAmBjB;;;OAGG;IACH,OAAO,CAAC,QAAQ;IA0BhB;;;OAGG;IACH,OAAO,CAAC,WAAW;YAQL,SAAS;YA2CT,SAAS;IAKvB,OAAO,CAAC,mBAAmB;CAc5B;AAED,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/fastembed.js
CHANGED
|
@@ -1,42 +1,12 @@
|
|
|
1
1
|
import { warmupTimeoutMs, isModelCached, WARMUP_CACHE_HIT_ATTEMPTS } from './index.js';
|
|
2
2
|
import { getSharedFastembedProcess } from './sharedFastembedProcess.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
'bge-base-en-v1.5': {
|
|
12
|
-
modelId: 'bge-base-en-v1.5',
|
|
13
|
-
hfRepoId: 'fast-bge-base-en-v1.5',
|
|
14
|
-
dim: 768,
|
|
15
|
-
maxTokens: 512,
|
|
16
|
-
description: 'BGE Base English v1.5 — balanced 768-dim embedding, ~110M params',
|
|
17
|
-
},
|
|
18
|
-
'multilingual-e5-large': {
|
|
19
|
-
modelId: 'multilingual-e5-large',
|
|
20
|
-
hfRepoId: 'fast-multilingual-e5-large',
|
|
21
|
-
dim: 1024,
|
|
22
|
-
maxTokens: 512,
|
|
23
|
-
description: 'Multilingual E5 Large — 1024-dim, 100+ languages, ~335M params',
|
|
24
|
-
},
|
|
25
|
-
'bge-m3': {
|
|
26
|
-
modelId: 'bge-m3',
|
|
27
|
-
hfRepoId: 'BAAI/bge-m3',
|
|
28
|
-
dim: 1024,
|
|
29
|
-
maxTokens: 8192,
|
|
30
|
-
description: 'BGE-M3 — 570M params, 8192-token context, 100+ languages, ONNX INT8',
|
|
31
|
-
},
|
|
32
|
-
'codexembed-400m': {
|
|
33
|
-
modelId: 'codexembed-400m',
|
|
34
|
-
hfRepoId: 'microsoft/codexembed-400m',
|
|
35
|
-
dim: 1024,
|
|
36
|
-
maxTokens: 8192,
|
|
37
|
-
description: 'CodeXEmbed-400M — code-only CPU, ~1.6GB RAM, 8192-token context',
|
|
38
|
-
},
|
|
39
|
-
};
|
|
3
|
+
// BUG-005: MODEL_CONFIGS lives in the side-effect-free `fastembedModels.js`
|
|
4
|
+
// (shared with the child-process host) — see that module's doc comment for
|
|
5
|
+
// why it cannot be imported from this file by the child. Re-exported below
|
|
6
|
+
// (the bottom `export { ... }` re-exports this imported binding) unchanged,
|
|
7
|
+
// so every existing consumer (`index.js`, `cache.js`, the bl376 /
|
|
8
|
+
// warmup-cachehit specs) keeps working.
|
|
9
|
+
import { MODEL_CONFIGS } from './fastembedModels.js';
|
|
40
10
|
/** @deprecated Use MODEL_CONFIGS[modelId].dim instead. */
|
|
41
11
|
const MODEL_DIMS = Object.fromEntries(Object.entries(MODEL_CONFIGS).map(([id, cfg]) => [id, cfg.dim]));
|
|
42
12
|
/** @deprecated Use MODEL_CONFIGS[modelId].maxTokens instead. */
|
|
@@ -60,7 +30,11 @@ export class FastembedProvider {
|
|
|
60
30
|
// BL-238/BL-171 fix: delegate ALL fastembed ONNX inference to the
|
|
61
31
|
// process-wide shared fastembed CHILD PROCESS singleton instead of
|
|
62
32
|
// spawning our own `Worker`/process — see `sharedFastembedProcess.ts` for
|
|
63
|
-
// the full root-cause writeup.
|
|
33
|
+
// the full root-cause writeup. (BUG-MEMORY-EMBED-HEAD-OF-LINE-BLOCKING-001)
|
|
34
|
+
// Typed against the `SharedFastembedClient` interface, not the concrete
|
|
35
|
+
// single-child class, so this transparently accepts either a lone
|
|
36
|
+
// `SharedFastembedProcessClient` (tests) or the pooled
|
|
37
|
+
// `FastembedProcessPool` (`getSharedFastembedProcess()`'s real return type).
|
|
64
38
|
shared;
|
|
65
39
|
ready = false;
|
|
66
40
|
readyPromise = null;
|
package/dist/fastembed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastembed.js","sourceRoot":"","sources":["../src/fastembed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"fastembed.js","sourceRoot":"","sources":["../src/fastembed.ts"],"names":[],"mappings":"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"}
|
package/dist/fastembedLock.d.ts
CHANGED
|
@@ -23,6 +23,21 @@
|
|
|
23
23
|
export interface FastembedLockInfo {
|
|
24
24
|
pid: number;
|
|
25
25
|
startedAt: string;
|
|
26
|
+
/**
|
|
27
|
+
* (BUG-MEMORY-EMBED-HEAD-OF-LINE-BLOCKING-001) Present when the writer is
|
|
28
|
+
* one member of a `FastembedProcessPool` — all members of the same pool
|
|
29
|
+
* share one `poolGroup` id, generated once by the pool and passed to every
|
|
30
|
+
* forked member via `SOX_FASTEMBED_POOL_GROUP`. This lets both the writer
|
|
31
|
+
* (`checkAndClaimFastembedLock`) and the reader
|
|
32
|
+
* (`detectCompetingFastembedHost`) distinguish "another member of MY OWN
|
|
33
|
+
* pool just wrote this lock" (expected, not a bug — a 4-member pool
|
|
34
|
+
* legitimately has 4 live fastembed hosts) from "a genuinely unrelated
|
|
35
|
+
* fastembed host process is running" (the real BL-331 signal this lock
|
|
36
|
+
* exists to catch). Without this, every pool member would warn about every
|
|
37
|
+
* OTHER pool member on every model load — the exact false-positive noise
|
|
38
|
+
* BL-331's own postmortem already warns against over-trusting.
|
|
39
|
+
*/
|
|
40
|
+
poolGroup?: string;
|
|
26
41
|
}
|
|
27
42
|
/**
|
|
28
43
|
* Resolved fresh on every call (not a module-level constant) so tests can
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastembedLock.d.ts","sourceRoot":"","sources":["../src/fastembedLock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"fastembedLock.d.ts","sourceRoot":"","sources":["../src/fastembedLock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastembedLock.js","sourceRoot":"","sources":["../src/fastembedLock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"fastembedLock.js","sourceRoot":"","sources":["../src/fastembedLock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAuBjC;;;;GAIG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared, side-effect-free model-resolution data for the fastembed ONNX
|
|
3
|
+
* provider — imported by BOTH the parent-side `fastembed.ts` (MODEL_CONFIGS)
|
|
4
|
+
* and the CHILD-side `fastembedProcessHost.ts` (MODEL_MAP, resolveModelDim).
|
|
5
|
+
*
|
|
6
|
+
* This module must stay PURE: zero imports at runtime (the only import is a
|
|
7
|
+
* type-only one, erased by esbuild), zero module-scope side effects. It is
|
|
8
|
+
* bundled into the forked child process, which must never transitively load
|
|
9
|
+
* parent-side modules (`sharedFastembedProcess.ts` resolves
|
|
10
|
+
* `fileURLToPath(import.meta.url)` at module scope — BL-155 — and would crash
|
|
11
|
+
* a CJS bundle). That is why MODEL_CONFIGS lives HERE rather than being
|
|
12
|
+
* imported by the child from `./fastembed.js` (which drags in
|
|
13
|
+
* `./sharedFastembedProcess.js` and `./index.js`).
|
|
14
|
+
*/
|
|
15
|
+
import type { FastEmbedModelConfig } from './index.js';
|
|
16
|
+
/**
|
|
17
|
+
* Single source of truth for the configured fastembed ONNX models — moved
|
|
18
|
+
* here from `fastembed.ts` (BUG-005) so the child process host can read the
|
|
19
|
+
* resolved model config (dim) without importing parent-side modules.
|
|
20
|
+
*/
|
|
21
|
+
export declare const MODEL_CONFIGS: Record<string, FastEmbedModelConfig>;
|
|
22
|
+
/**
|
|
23
|
+
* Raw configured model name → fastembed model id passed to
|
|
24
|
+
* `FlagEmbedding.init({ model })`. Distinct from `hfRepoId` (the HuggingFace
|
|
25
|
+
* repo path used for cache layout) — e.g. codexembed-400m maps to
|
|
26
|
+
* 'CodeXEmbed-400M' for fastembed but 'microsoft/codexembed-400m' on disk.
|
|
27
|
+
*/
|
|
28
|
+
export declare const MODEL_MAP: Record<string, string>;
|
|
29
|
+
/**
|
|
30
|
+
* Resolve the embedding dimension to report for a configured model.
|
|
31
|
+
*
|
|
32
|
+
* BUG-005: the child host's original lookup compared the RAW configured name
|
|
33
|
+
* ('bge-base-en-v1.5') against the `model` field of
|
|
34
|
+
* `listSupportedModels()` — which carries fastembed's ENUM VALUE
|
|
35
|
+
* ('fast-bge-base-en-v1.5'). The comparison never matched, so the init reply
|
|
36
|
+
* always reported dim 0 (the actual model config still loaded fine).
|
|
37
|
+
*
|
|
38
|
+
* Strategy, in order:
|
|
39
|
+
* 1. Match `listSupportedModels()` against the resolved enum constant
|
|
40
|
+
* (`MODEL_MAP[model] ?? model`) — the truth from the loaded embedder.
|
|
41
|
+
* 2. Fall back to the resolved `MODEL_CONFIGS[model]` entry — covers
|
|
42
|
+
* custom models (bge-m3, codexembed-400m) that fastembed's supported
|
|
43
|
+
* list never contains.
|
|
44
|
+
* 3. Return 0 only when the model is entirely unknown — callers (the
|
|
45
|
+
* child's init reply) must treat that as an error, never a silent 0.
|
|
46
|
+
*
|
|
47
|
+
* @param model Raw configured model name (MODEL_CONFIGS key).
|
|
48
|
+
* @param supportedModels The embedder's `listSupportedModels()` output.
|
|
49
|
+
*/
|
|
50
|
+
export declare function resolveModelDim(model: string, supportedModels: ReadonlyArray<{
|
|
51
|
+
model: string;
|
|
52
|
+
dim: number;
|
|
53
|
+
}>): number;
|
|
54
|
+
//# sourceMappingURL=fastembedModels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastembedModels.d.ts","sourceRoot":"","sources":["../src/fastembedModels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAoC9D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM5C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7D,MAAM,CAKR"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared, side-effect-free model-resolution data for the fastembed ONNX
|
|
3
|
+
* provider — imported by BOTH the parent-side `fastembed.ts` (MODEL_CONFIGS)
|
|
4
|
+
* and the CHILD-side `fastembedProcessHost.ts` (MODEL_MAP, resolveModelDim).
|
|
5
|
+
*
|
|
6
|
+
* This module must stay PURE: zero imports at runtime (the only import is a
|
|
7
|
+
* type-only one, erased by esbuild), zero module-scope side effects. It is
|
|
8
|
+
* bundled into the forked child process, which must never transitively load
|
|
9
|
+
* parent-side modules (`sharedFastembedProcess.ts` resolves
|
|
10
|
+
* `fileURLToPath(import.meta.url)` at module scope — BL-155 — and would crash
|
|
11
|
+
* a CJS bundle). That is why MODEL_CONFIGS lives HERE rather than being
|
|
12
|
+
* imported by the child from `./fastembed.js` (which drags in
|
|
13
|
+
* `./sharedFastembedProcess.js` and `./index.js`).
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Single source of truth for the configured fastembed ONNX models — moved
|
|
17
|
+
* here from `fastembed.ts` (BUG-005) so the child process host can read the
|
|
18
|
+
* resolved model config (dim) without importing parent-side modules.
|
|
19
|
+
*/
|
|
20
|
+
export const MODEL_CONFIGS = {
|
|
21
|
+
'bge-small-en-v1.5': {
|
|
22
|
+
modelId: 'bge-small-en-v1.5',
|
|
23
|
+
hfRepoId: 'fast-bge-small-en-v1.5',
|
|
24
|
+
dim: 384,
|
|
25
|
+
maxTokens: 512,
|
|
26
|
+
description: 'BGE Small English v1.5 — lightweight 384-dim embedding, ~33M params',
|
|
27
|
+
},
|
|
28
|
+
'bge-base-en-v1.5': {
|
|
29
|
+
modelId: 'bge-base-en-v1.5',
|
|
30
|
+
hfRepoId: 'fast-bge-base-en-v1.5',
|
|
31
|
+
dim: 768,
|
|
32
|
+
maxTokens: 512,
|
|
33
|
+
description: 'BGE Base English v1.5 — balanced 768-dim embedding, ~110M params',
|
|
34
|
+
},
|
|
35
|
+
'multilingual-e5-large': {
|
|
36
|
+
modelId: 'multilingual-e5-large',
|
|
37
|
+
hfRepoId: 'fast-multilingual-e5-large',
|
|
38
|
+
dim: 1024,
|
|
39
|
+
maxTokens: 512,
|
|
40
|
+
description: 'Multilingual E5 Large — 1024-dim, 100+ languages, ~335M params',
|
|
41
|
+
},
|
|
42
|
+
'bge-m3': {
|
|
43
|
+
modelId: 'bge-m3',
|
|
44
|
+
hfRepoId: 'BAAI/bge-m3',
|
|
45
|
+
dim: 1024,
|
|
46
|
+
maxTokens: 8192,
|
|
47
|
+
description: 'BGE-M3 — 570M params, 8192-token context, 100+ languages, ONNX INT8',
|
|
48
|
+
},
|
|
49
|
+
'codexembed-400m': {
|
|
50
|
+
modelId: 'codexembed-400m',
|
|
51
|
+
hfRepoId: 'microsoft/codexembed-400m',
|
|
52
|
+
dim: 1024,
|
|
53
|
+
maxTokens: 8192,
|
|
54
|
+
description: 'CodeXEmbed-400M — code-only CPU, ~1.6GB RAM, 8192-token context',
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Raw configured model name → fastembed model id passed to
|
|
59
|
+
* `FlagEmbedding.init({ model })`. Distinct from `hfRepoId` (the HuggingFace
|
|
60
|
+
* repo path used for cache layout) — e.g. codexembed-400m maps to
|
|
61
|
+
* 'CodeXEmbed-400M' for fastembed but 'microsoft/codexembed-400m' on disk.
|
|
62
|
+
*/
|
|
63
|
+
export const MODEL_MAP = {
|
|
64
|
+
'bge-small-en-v1.5': 'fast-bge-small-en-v1.5',
|
|
65
|
+
'bge-base-en-v1.5': 'fast-bge-base-en-v1.5',
|
|
66
|
+
'multilingual-e5-large': 'fast-multilingual-e5-large',
|
|
67
|
+
'bge-m3': 'BAAI/bge-m3',
|
|
68
|
+
'codexembed-400m': 'CodeXEmbed-400M',
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Resolve the embedding dimension to report for a configured model.
|
|
72
|
+
*
|
|
73
|
+
* BUG-005: the child host's original lookup compared the RAW configured name
|
|
74
|
+
* ('bge-base-en-v1.5') against the `model` field of
|
|
75
|
+
* `listSupportedModels()` — which carries fastembed's ENUM VALUE
|
|
76
|
+
* ('fast-bge-base-en-v1.5'). The comparison never matched, so the init reply
|
|
77
|
+
* always reported dim 0 (the actual model config still loaded fine).
|
|
78
|
+
*
|
|
79
|
+
* Strategy, in order:
|
|
80
|
+
* 1. Match `listSupportedModels()` against the resolved enum constant
|
|
81
|
+
* (`MODEL_MAP[model] ?? model`) — the truth from the loaded embedder.
|
|
82
|
+
* 2. Fall back to the resolved `MODEL_CONFIGS[model]` entry — covers
|
|
83
|
+
* custom models (bge-m3, codexembed-400m) that fastembed's supported
|
|
84
|
+
* list never contains.
|
|
85
|
+
* 3. Return 0 only when the model is entirely unknown — callers (the
|
|
86
|
+
* child's init reply) must treat that as an error, never a silent 0.
|
|
87
|
+
*
|
|
88
|
+
* @param model Raw configured model name (MODEL_CONFIGS key).
|
|
89
|
+
* @param supportedModels The embedder's `listSupportedModels()` output.
|
|
90
|
+
*/
|
|
91
|
+
export function resolveModelDim(model, supportedModels) {
|
|
92
|
+
const fastModel = MODEL_MAP[model] ?? model;
|
|
93
|
+
const fromList = supportedModels.find((m) => m.model === fastModel);
|
|
94
|
+
if (fromList && fromList.dim > 0)
|
|
95
|
+
return fromList.dim;
|
|
96
|
+
return MODEL_CONFIGS[model]?.dim ?? 0;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=fastembedModels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastembedModels.js","sourceRoot":"","sources":["../src/fastembedModels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAyC;IACjE,mBAAmB,EAAE;QACnB,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,GAAG,EAAE,GAAG;QACR,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,qEAAqE;KACnF;IACD,kBAAkB,EAAE;QAClB,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,uBAAuB;QACjC,GAAG,EAAE,GAAG;QACR,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,kEAAkE;KAChF;IACD,uBAAuB,EAAE;QACvB,OAAO,EAAE,uBAAuB;QAChC,QAAQ,EAAE,4BAA4B;QACtC,GAAG,EAAE,IAAI;QACT,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,gEAAgE;KAC9E;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,aAAa;QACvB,GAAG,EAAE,IAAI;QACT,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,qEAAqE;KACnF;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,iBAAiB;QAC1B,QAAQ,EAAE,2BAA2B;QACrC,GAAG,EAAE,IAAI;QACT,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,iEAAiE;KAC/E;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAA2B;IAC/C,mBAAmB,EAAE,wBAAwB;IAC7C,kBAAkB,EAAE,uBAAuB;IAC3C,uBAAuB,EAAE,4BAA4B;IACrD,QAAQ,EAAE,aAAa;IACvB,iBAAiB,EAAE,iBAAiB;CACrC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,eAA8D;IAE9D,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;IAC5C,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IACpE,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC;IACtD,OAAO,aAAa,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastembedProcessHost.d.ts","sourceRoot":"","sources":["../src/fastembedProcessHost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;
|
|
1
|
+
{"version":3,"file":"fastembedProcessHost.d.ts","sourceRoot":"","sources":["../src/fastembedProcessHost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AA2DH,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ/C;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAyDjD"}
|
|
@@ -57,7 +57,13 @@
|
|
|
57
57
|
* internal: { __shutdown: true }
|
|
58
58
|
*/
|
|
59
59
|
import * as fs from 'node:fs';
|
|
60
|
+
import { initTelemetry, log } from '@adhd/sox-telemetry';
|
|
60
61
|
import { resolveFastembedLockPath } from './fastembedLock.js';
|
|
62
|
+
// BUG-005: MODEL_MAP + resolveModelDim live in the side-effect-free
|
|
63
|
+
// `fastembedModels.js` (see its doc comment — importing them from
|
|
64
|
+
// `./fastembed.js` here would drag parent-side modules into this child
|
|
65
|
+
// bundle via their `import.meta.url` module-scope resolution, BL-155).
|
|
66
|
+
import { MODEL_MAP, resolveModelDim } from './fastembedModels.js';
|
|
61
67
|
// ── BL-331: cross-process CoreML/ANE contention advisory lock ──────────────
|
|
62
68
|
//
|
|
63
69
|
// Root cause of BL-331 (production embed ~25-50x slower than a clean-room
|
|
@@ -124,44 +130,60 @@ export function isPidAlive(pid) {
|
|
|
124
130
|
*/
|
|
125
131
|
export function checkAndClaimFastembedLock() {
|
|
126
132
|
const lockPath = resolveFastembedLockPath();
|
|
133
|
+
// (BUG-MEMORY-EMBED-HEAD-OF-LINE-BLOCKING-001) Set by `SharedFastembedProcessClient
|
|
134
|
+
// .ensureProcess()` only when this child was forked as one member of a
|
|
135
|
+
// `FastembedProcessPool` — undefined for a lone (non-pooled) client, which
|
|
136
|
+
// preserves today's exact behaviour there. See `fastembedLock.ts`'s
|
|
137
|
+
// `poolGroup` doc comment for why this must be checked before warning.
|
|
138
|
+
const ownPoolGroup = process.env['SOX_FASTEMBED_POOL_GROUP'];
|
|
127
139
|
try {
|
|
128
140
|
if (fs.existsSync(lockPath)) {
|
|
129
141
|
const raw = fs.readFileSync(lockPath, 'utf8');
|
|
130
142
|
const prev = JSON.parse(raw);
|
|
143
|
+
const isKnownPoolSibling = typeof prev.poolGroup === 'string' &&
|
|
144
|
+
ownPoolGroup !== undefined &&
|
|
145
|
+
prev.poolGroup === ownPoolGroup;
|
|
131
146
|
if (typeof prev.pid === 'number' &&
|
|
132
147
|
prev.pid !== process.pid &&
|
|
133
|
-
isPidAlive(prev.pid)
|
|
134
|
-
|
|
148
|
+
isPidAlive(prev.pid) &&
|
|
149
|
+
!isKnownPoolSibling) {
|
|
150
|
+
const msg = `another fastembed host process (pid ${prev.pid}, ` +
|
|
135
151
|
`started ${prev.startedAt ?? 'unknown'}) is ALREADY RUNNING on this machine. ` +
|
|
136
152
|
`Concurrent onnxruntime-node CoreML/ANE execution across separate OS processes has ` +
|
|
137
153
|
`been observed to cause severe (25-50x) embed latency due to Neural Engine/hardware ` +
|
|
138
154
|
`queue contention, even though each process's own CPU usage looks low (it is waiting, ` +
|
|
139
155
|
`not computing). If pid ${prev.pid} is a leaked/orphaned process (check with ` +
|
|
140
|
-
`\`ps -p ${prev.pid}\`), terminate it. Lock file: ${lockPath}
|
|
156
|
+
`\`ps -p ${prev.pid}\`), terminate it. Lock file: ${lockPath}`;
|
|
157
|
+
console.error(`[fastembed] WARNING (BL-331): ${msg}`);
|
|
158
|
+
log.warn('embedding_provider.fastembed.competing_host_detected', {
|
|
159
|
+
competing_pid: prev.pid,
|
|
160
|
+
competing_started_at: prev.startedAt ?? 'unknown',
|
|
161
|
+
lock_file: lockPath,
|
|
162
|
+
});
|
|
141
163
|
}
|
|
142
164
|
}
|
|
143
165
|
}
|
|
144
166
|
catch (err) {
|
|
145
167
|
// Never let a malformed/unreadable lock file block real startup — this
|
|
146
168
|
// is a pure observability aid, not a correctness mechanism.
|
|
147
|
-
|
|
169
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
170
|
+
console.error(`[fastembed] BL-331 lock check failed (non-fatal): ${errMsg}`);
|
|
171
|
+
log.warn('embedding_provider.fastembed.lock_check_failed', {
|
|
172
|
+
error: errMsg,
|
|
173
|
+
});
|
|
148
174
|
}
|
|
149
175
|
try {
|
|
150
|
-
const info = {
|
|
176
|
+
const info = {
|
|
177
|
+
pid: process.pid,
|
|
178
|
+
startedAt: new Date().toISOString(),
|
|
179
|
+
...(ownPoolGroup !== undefined ? { poolGroup: ownPoolGroup } : {}),
|
|
180
|
+
};
|
|
151
181
|
fs.writeFileSync(lockPath, JSON.stringify(info));
|
|
152
182
|
}
|
|
153
183
|
catch {
|
|
154
184
|
// Non-fatal: if /tmp isn't writable for some reason, just skip claiming.
|
|
155
185
|
}
|
|
156
186
|
}
|
|
157
|
-
// ── Model management ──────────────────────────────────────────────────────────
|
|
158
|
-
const MODEL_MAP = {
|
|
159
|
-
'bge-small-en-v1.5': 'fast-bge-small-en-v1.5',
|
|
160
|
-
'bge-base-en-v1.5': 'fast-bge-base-en-v1.5',
|
|
161
|
-
'multilingual-e5-large': 'fast-multilingual-e5-large',
|
|
162
|
-
'bge-m3': 'BAAI/bge-m3',
|
|
163
|
-
'codexembed-400m': 'CodeXEmbed-400M',
|
|
164
|
-
};
|
|
165
187
|
let _embedder = null;
|
|
166
188
|
let _currentModel = '';
|
|
167
189
|
let _currentCacheDir = '';
|
|
@@ -169,6 +191,9 @@ function resolveExecutionProviders() {
|
|
|
169
191
|
const forced = process.env.SOX_EMBED_EXECUTION_PROVIDER;
|
|
170
192
|
if (forced) {
|
|
171
193
|
console.error(`[fastembed] Using forced execution provider: ${forced}`);
|
|
194
|
+
log.info('embedding_provider.fastembed.execution_provider_forced', {
|
|
195
|
+
provider: forced,
|
|
196
|
+
});
|
|
172
197
|
return [forced, 'cpu'];
|
|
173
198
|
}
|
|
174
199
|
if (process.platform === 'darwin')
|
|
@@ -180,33 +205,43 @@ function resolveExecutionProviders() {
|
|
|
180
205
|
return ['cpu'];
|
|
181
206
|
}
|
|
182
207
|
async function loadModel(model, cacheDir) {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
208
|
+
let execution_provider = 'cpu';
|
|
209
|
+
if (!(_embedder && _currentModel === model && _currentCacheDir === cacheDir)) {
|
|
210
|
+
// BL-331: advisory contention check, once, right before the real (expensive,
|
|
211
|
+
// ANE-contending) model load — see the lock helpers above for the full
|
|
212
|
+
// root-cause writeup.
|
|
213
|
+
checkAndClaimFastembedLock();
|
|
214
|
+
const { FlagEmbedding, EmbeddingModel: EM } = await import('fastembed');
|
|
215
|
+
const fastModel = MODEL_MAP[model] ?? model;
|
|
216
|
+
const modelKeys = Object.keys(EM);
|
|
217
|
+
const foundKey = modelKeys.find((k) => EM[k] === fastModel);
|
|
218
|
+
const modelEnum = foundKey ? EM[foundKey] : fastModel;
|
|
219
|
+
fs.mkdirSync(cacheDir, { recursive: true });
|
|
220
|
+
const executionProviders = resolveExecutionProviders();
|
|
221
|
+
_embedder = (await FlagEmbedding.init({
|
|
222
|
+
model: modelEnum,
|
|
223
|
+
cacheDir,
|
|
224
|
+
executionProviders,
|
|
225
|
+
showDownloadProgress: false,
|
|
226
|
+
}));
|
|
227
|
+
_currentModel = model;
|
|
228
|
+
_currentCacheDir = cacheDir;
|
|
229
|
+
execution_provider = executionProviders[0];
|
|
187
230
|
}
|
|
188
|
-
//
|
|
189
|
-
//
|
|
190
|
-
//
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
executionProviders,
|
|
203
|
-
showDownloadProgress: false,
|
|
204
|
-
}));
|
|
205
|
-
_currentModel = model;
|
|
206
|
-
_currentCacheDir = cacheDir;
|
|
207
|
-
const models = _embedder.listSupportedModels();
|
|
208
|
-
const info = models.find((m) => m.model === model);
|
|
209
|
-
return { dim: info?.dim ?? 0, execution_provider: executionProviders[0] };
|
|
231
|
+
// BUG-005: the pre-fix lookup `listSupportedModels().find((m) => m.model === model)`
|
|
232
|
+
// compared the RAW configured name ('bge-base-en-v1.5') against fastembed's
|
|
233
|
+
// enum VALUE ('fast-bge-base-en-v1.5') — it never matched, so the init reply
|
|
234
|
+
// always carried dim 0. `resolveModelDim` matches against the enum constant
|
|
235
|
+
// (MODEL_MAP) first, then falls back to the resolved MODEL_CONFIGS entry
|
|
236
|
+
// (covers custom models like bge-m3 / codexembed-400m that the supported
|
|
237
|
+
// list never contains). A still-unknown model FAILS LOUD here instead of
|
|
238
|
+
// replying dim 0: the init reply contract is dim > 0 or an error.
|
|
239
|
+
const dim = resolveModelDim(model, _embedder.listSupportedModels());
|
|
240
|
+
if (dim <= 0) {
|
|
241
|
+
throw new Error(`Cannot report embedding dimension for model "${model}" (fastembed id "${MODEL_MAP[model] ?? model}"): ` +
|
|
242
|
+
`not in listSupportedModels() and no MODEL_CONFIGS entry — refusing to report dim 0 (BUG-005)`);
|
|
243
|
+
}
|
|
244
|
+
return { dim, execution_provider };
|
|
210
245
|
}
|
|
211
246
|
async function collectEmbeddings(embedder, texts) {
|
|
212
247
|
const results = [];
|
|
@@ -332,6 +367,28 @@ process.on('message', (msg) => {
|
|
|
332
367
|
}
|
|
333
368
|
enqueue(() => handleRequest(msg));
|
|
334
369
|
});
|
|
370
|
+
/**
|
|
371
|
+
* (BL-404 universal-coverage) CHILD composition root. This file is the forked
|
|
372
|
+
* child PROCESS (the parent's `initTelemetry` never crosses the fork — each
|
|
373
|
+
* process has its own module-level `_state` in @adhd/sox-telemetry's
|
|
374
|
+
* runtime.ts), so the child needs its own init or every record it ever emits
|
|
375
|
+
* hits the logSink:'none' fallback. Today the child emits nothing via
|
|
376
|
+
* @adhd/sox-telemetry (only console.error), and DurableJsonlSink opens its file
|
|
377
|
+
* lazily on first write — so this is a zero-side-effect defensive composition
|
|
378
|
+
* root until the child actually emits. Role 'harness' keeps the OTel SDK off
|
|
379
|
+
* (otelDefaultFor) and the default logDir lands under SOX_ECOSYSTEM_HOME when a
|
|
380
|
+
* test sandbox sets it, keeping test runs hermetic.
|
|
381
|
+
*
|
|
382
|
+
* Non-fatal by construction: an init failure must never break embedding, so the
|
|
383
|
+
* call is guarded — telemetry is an observability aid, not a correctness
|
|
384
|
+
* mechanism.
|
|
385
|
+
*/
|
|
386
|
+
try {
|
|
387
|
+
initTelemetry({ service: 'embedding-provider', role: 'harness', logSink: 'file' });
|
|
388
|
+
}
|
|
389
|
+
catch {
|
|
390
|
+
// Never let a telemetry failure prevent model load or inference.
|
|
391
|
+
}
|
|
335
392
|
// Let the parent decide the process lifecycle (it never calls `.ref()`/relies
|
|
336
393
|
// on this process staying alive beyond its own `disconnect`/`kill`); nothing
|
|
337
394
|
// else to keep this process alive once IPC is torn down.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastembedProcessHost.js","sourceRoot":"","sources":["../src/fastembedProcessHost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,wBAAwB,EAA0B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"fastembedProcessHost.js","sourceRoot":"","sources":["../src/fastembedProcessHost.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -130,6 +130,23 @@ export { getSharedOnnxWorker, SharedOnnxWorkerClient } from './sharedOnnxWorker.
|
|
|
130
130
|
* root-cause writeup and rationale.
|
|
131
131
|
*/
|
|
132
132
|
export { getSharedFastembedProcess, SharedFastembedProcessClient, } from './sharedFastembedProcess.js';
|
|
133
|
+
/**
|
|
134
|
+
* (BUG-MEMORY-EMBED-HEAD-OF-LINE-BLOCKING-001 / BL-575) `getSharedFastembedProcess()`
|
|
135
|
+
* returns either a FIXED `FastembedProcessPool` (when `SOX_EMBED_POOL_SIZE`
|
|
136
|
+
* pins an exact size) or, by default, an `AdaptiveFastembedProcessPool` that
|
|
137
|
+
* grows from `minSize` toward `resolveFastembedPoolCeiling()` only under
|
|
138
|
+
* sustained demand — see `sharedFastembedProcess.ts` for the full
|
|
139
|
+
* production-measurement writeup, hysteresis policy, and rationale.
|
|
140
|
+
* `SharedFastembedClient` is the structural interface every shape (single
|
|
141
|
+
* client, fixed pool, adaptive pool) satisfies; `FastembedBusyError` is the
|
|
142
|
+
* typed admission-control rejection (opt-in via
|
|
143
|
+
* `SOX_EMBED_POOL_ADMISSION_LIMIT`). `resolveFastembedPoolPin`/
|
|
144
|
+
* `resolveFastembedPoolCeiling` are the split halves of what
|
|
145
|
+
* `resolveFastembedPoolSize` (kept for backward compatibility) used to
|
|
146
|
+
* compute as one value — see their doc comments for why the split exists.
|
|
147
|
+
*/
|
|
148
|
+
export type { SharedFastembedClient } from './sharedFastembedProcess.js';
|
|
149
|
+
export { FastembedProcessPool, AdaptiveFastembedProcessPool, type AdaptiveFastembedPoolOptions, FastembedBusyError, resolveFastembedPoolSize, resolveFastembedPoolPin, resolveFastembedPoolCeiling, resolveFastembedAdmissionLimit, } from './sharedFastembedProcess.js';
|
|
133
150
|
export declare function createEmbeddingProvider(config: EmbeddingProviderConfig): Promise<EmbeddingProvider>;
|
|
134
151
|
/**
|
|
135
152
|
* Single source of truth for the fastembed warmup/init timeout budget.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|