@adhd/sox-embedding-provider 0.5.2 → 0.5.3
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/README.md +44 -3
- package/dist/embedHostConfig.d.ts +53 -12
- package/dist/embedHostConfig.d.ts.map +1 -1
- package/dist/embedHostConfig.js +67 -13
- package/dist/embedHostConfig.js.map +1 -1
- package/dist/embedHostMain.d.ts +17 -4
- package/dist/embedHostMain.d.ts.map +1 -1
- package/dist/embedHostMain.js +45 -14
- package/dist/embedHostMain.js.map +1 -1
- package/dist/funnelClient.d.ts.map +1 -1
- package/dist/funnelClient.js +11 -2
- package/dist/funnelClient.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -43,6 +43,8 @@ interface EmbeddingProviderConfig {
|
|
|
43
43
|
type: string; // 'fastembed' | 'remote'
|
|
44
44
|
model: string;
|
|
45
45
|
options?: Record<string, unknown>;
|
|
46
|
+
host?: 'shared' | 'private'; // default 'shared' — see "Host posture" below
|
|
47
|
+
idleGraceMs?: number; // how long an idle shared host lingers (default 30000)
|
|
46
48
|
}
|
|
47
49
|
```
|
|
48
50
|
|
|
@@ -107,9 +109,48 @@ Built-in models (`modelId` → dimensions):
|
|
|
107
109
|
| `bge-m3` | 1024 | 8192 | 100+ languages, long context, ~570M params |
|
|
108
110
|
| `codexembed-400m` | 1024 | 8192 | code-only, ~1.6GB RAM, long context |
|
|
109
111
|
|
|
110
|
-
fastembed inference is routed through
|
|
111
|
-
|
|
112
|
-
|
|
112
|
+
fastembed inference is routed through **one machine-wide, peer-spawned, self-reaping host
|
|
113
|
+
process** per `(model, execution-provider, cacheDir)` — not one ONNX host per consumer process.
|
|
114
|
+
The first consumer to need it peer-spawns the host through the service-proxy's `ensureBackend()`
|
|
115
|
+
singleton spawn-lock; every other consumer on the box dials that same host over a Unix domain
|
|
116
|
+
socket. The host is compute-only (it holds no store connection) and it **reaps itself**: a
|
|
117
|
+
debounced, ref-counted teardown retires it `idleGraceMs` after the last client disconnects and its
|
|
118
|
+
last in-flight request drains. There is no supervised service and no daemon.
|
|
119
|
+
|
|
120
|
+
#### Host posture
|
|
121
|
+
|
|
122
|
+
`EmbeddingProviderConfig.host` is a typed closed union (default `'shared'`), applied
|
|
123
|
+
process-wide before the accessor is constructed and reported in `health().host`:
|
|
124
|
+
|
|
125
|
+
- `'shared'` — funnel through the machine-wide host above. `getSharedFastembedProcess()` returns a
|
|
126
|
+
`FunneledFastembedClient`; its `terminate()` is a **no-op** (a consumer must never kill a host
|
|
127
|
+
other consumers are using).
|
|
128
|
+
- `'private'` — the pre-funnel per-process fork (CI/diagnostics). `getSharedFastembedProcess()`
|
|
129
|
+
returns the private pool directly.
|
|
130
|
+
|
|
131
|
+
`EmbeddingProviderConfig.idleGraceMs` (typed config, default `DEFAULT_EMBED_HOST_IDLE_GRACE_MS` =
|
|
132
|
+
30 s) sets how long a zero-client host lingers before it reaps itself. A host that fails to come up
|
|
133
|
+
throws a typed `TransientEmbeddingError` naming the socket — it never silently falls back to a
|
|
134
|
+
private host.
|
|
135
|
+
|
|
136
|
+
#### Lifecycle helpers
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
import {
|
|
140
|
+
getPrivateFastembedProcess, // the PRIVATE (un-funneled) per-process pool
|
|
141
|
+
resetSharedFastembedHost, // heal: ask the live shared host to re-fork its private pool
|
|
142
|
+
getSharedFastembedProcess, // the host-aware accessor (shared by default)
|
|
143
|
+
FunneledFastembedClient, // what getSharedFastembedProcess() returns under 'shared'
|
|
144
|
+
} from '@adhd/sox-embedding-provider';
|
|
145
|
+
|
|
146
|
+
const client = getSharedFastembedProcess(); // FunneledFastembedClient under the default
|
|
147
|
+
const vec = await client.request({ type: 'embed', text: 'hello' });
|
|
148
|
+
console.log(client.started, client.pendingCount, client.hostSocketPath);
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
`resetSharedFastembedHost()` is the recovery path for a wedged private child: under `'shared'` it
|
|
152
|
+
asks the live host to tear down and re-fork its private ONNX pool (without killing the host other
|
|
153
|
+
consumers share); under `'private'` the accessor's `terminate()` path is unchanged.
|
|
113
154
|
|
|
114
155
|
### remote — call an HTTP embedding endpoint
|
|
115
156
|
|
|
@@ -13,16 +13,27 @@
|
|
|
13
13
|
* `backendSocketPath()` (the SAME derivation the service-proxy uses, so
|
|
14
14
|
* there is never a port-selection problem and never a clash).
|
|
15
15
|
*
|
|
16
|
-
* ── Host selection
|
|
16
|
+
* ── Host selection AND the idle bound are typed config, never env toggles ──────
|
|
17
17
|
*
|
|
18
18
|
* `host` is a closed union (`'shared' | 'private'`) carried on
|
|
19
|
-
* `EmbeddingProviderConfig.host` and reported in `health()`.
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
19
|
+
* `EmbeddingProviderConfig.host` and reported in `health()`. `idleGraceMs` is the
|
|
20
|
+
* same shape: a typed field on `EmbeddingProviderConfig.idleGraceMs` (applied by
|
|
21
|
+
* `createEmbeddingProvider()`), reported in the host's `embedding.health`, and
|
|
22
|
+
* carried on the resolved `EmbedHostConfig` the SPAWNER reads and forwards to the
|
|
23
|
+
* spawned host. There is deliberately NO `SOX_EMBED_HOST=shared|private`
|
|
24
|
+
* variable: a behavior switch must be visible, validated, and auditable, not an
|
|
25
|
+
* ambient string.
|
|
26
|
+
*
|
|
27
|
+
* `SOX_EMBED_HOST_IDLE_GRACE_MS` still exists, but it is the INTERNAL
|
|
28
|
+
* cross-process transport between the spawner and the spawned host — the spawner
|
|
29
|
+
* writes the resolved `EmbedHostConfig.idleGraceMs` into the child's env and the
|
|
30
|
+
* host consumes it. It is not the public configuration surface; set the typed
|
|
31
|
+
* `idleGraceMs` (or `configureEmbedHostIdleGraceMs()`) instead. (Owner directive:
|
|
32
|
+
* "the time bound should be configurable" — typed config, not an ADR-0013 D3 env
|
|
33
|
+
* tuning constant. This supersedes ADR-0020 D2's env-tuning framing.)
|
|
34
|
+
*
|
|
35
|
+
* The remaining env reads are ADR-0013 D5 shapes:
|
|
23
36
|
*
|
|
24
|
-
* - `SOX_EMBED_HOST_IDLE_GRACE_MS` — a numeric tuning constant (D3): how long
|
|
25
|
-
* the host lingers after its last client leaves. Additive/numeric only.
|
|
26
37
|
* - `SOX_ECOSYSTEM_HOME` — host config (D5): where the socket lives.
|
|
27
38
|
* - `SOX_EMBED_HOST_MAIN` / `SOX_EMBED_HOST_SOCKET` — host-injected transport
|
|
28
39
|
* config (D5) / test seams; they select a path, they never enable a feature.
|
|
@@ -38,7 +49,13 @@ export interface EmbedHostConfig {
|
|
|
38
49
|
host: EmbedHostMode;
|
|
39
50
|
/** The directory the host UDS is created under (ADR-0004: `$SOX_ECOSYSTEM_HOME/run`). */
|
|
40
51
|
socketDir: string;
|
|
41
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* How long the host lingers with zero clients and zero in-flight work before
|
|
54
|
+
* it reaps itself. Typed config (owner directive: "the time bound should be
|
|
55
|
+
* configurable"): the SPAWNER reads this resolved value and forwards it to the
|
|
56
|
+
* spawned host, which consumes it. Set it via
|
|
57
|
+
* `EmbeddingProviderConfig.idleGraceMs` / `configureEmbedHostIdleGraceMs()`.
|
|
58
|
+
*/
|
|
42
59
|
idleGraceMs: number;
|
|
43
60
|
}
|
|
44
61
|
/**
|
|
@@ -57,22 +74,46 @@ export interface EmbedHostConfig {
|
|
|
57
74
|
export declare const EMBED_HOST_PROTOCOL_VERSION = 1;
|
|
58
75
|
/** Default grace before a zero-client host reaps itself. Sized to the short-lived-CLI arrival cadence. */
|
|
59
76
|
export declare const DEFAULT_EMBED_HOST_IDLE_GRACE_MS = 30000;
|
|
77
|
+
/**
|
|
78
|
+
* The internal cross-process transport variable the spawner uses to hand the
|
|
79
|
+
* resolved `EmbedHostConfig.idleGraceMs` to the spawned host. Not a public knob
|
|
80
|
+
* — set the typed `idleGraceMs` instead.
|
|
81
|
+
*/
|
|
82
|
+
export declare const EMBED_HOST_IDLE_GRACE_ENV = "SOX_EMBED_HOST_IDLE_GRACE_MS";
|
|
60
83
|
/**
|
|
61
84
|
* Apply the typed `host` field from an `EmbeddingProviderConfig`. Passing
|
|
62
85
|
* `undefined` leaves the current posture unchanged (so a `remote` provider
|
|
63
86
|
* without a `host` field never resets a deliberate `'private'` selection).
|
|
64
87
|
*/
|
|
65
88
|
export declare function configureEmbedHostHost(host: EmbedHostMode | undefined): void;
|
|
66
|
-
/**
|
|
89
|
+
/**
|
|
90
|
+
* Apply the typed `idleGraceMs` field from an `EmbeddingProviderConfig`. Passing
|
|
91
|
+
* `undefined` leaves the current value unchanged (so a provider without the field
|
|
92
|
+
* never resets a deliberate selection). A non-positive or non-finite value is
|
|
93
|
+
* rejected loudly — never silently treated as "off".
|
|
94
|
+
*/
|
|
95
|
+
export declare function configureEmbedHostIdleGraceMs(idleGraceMs: number | undefined): void;
|
|
96
|
+
/** TEST-ONLY: clear the process-wide host + idle-grace overrides back to defaults. */
|
|
67
97
|
export declare function __resetEmbedHostConfigForTests(): void;
|
|
68
98
|
/**
|
|
69
99
|
* Resolve the funnel configuration. `host` defaults to `'shared'`; `idleGraceMs`
|
|
70
|
-
* is
|
|
100
|
+
* is typed config (with the transport env / hard default as fallbacks). The
|
|
101
|
+
* SPAWNER reads the resolved `idleGraceMs` and forwards it to the spawned host —
|
|
102
|
+
* see `funnelClient.ts`'s `doEnsure()` — which is what makes this field the
|
|
103
|
+
* consumed surface rather than a dead declaration.
|
|
71
104
|
*/
|
|
72
105
|
export declare function resolveEmbedHostConfig(): EmbedHostConfig;
|
|
73
106
|
/**
|
|
74
|
-
*
|
|
75
|
-
*
|
|
107
|
+
* Resolve the idle grace, in priority order:
|
|
108
|
+
*
|
|
109
|
+
* 1. the typed override (`configureEmbedHostIdleGraceMs()` /
|
|
110
|
+
* `EmbeddingProviderConfig.idleGraceMs`) — the public surface;
|
|
111
|
+
* 2. the internal transport env (`SOX_EMBED_HOST_IDLE_GRACE_ENV`) the spawner
|
|
112
|
+
* writes for the spawned host;
|
|
113
|
+
* 3. `DEFAULT_EMBED_HOST_IDLE_GRACE_MS`.
|
|
114
|
+
*
|
|
115
|
+
* A non-positive or non-numeric transport value is rejected loudly (never
|
|
116
|
+
* silently treated as "off").
|
|
76
117
|
*/
|
|
77
118
|
export declare function resolveEmbedHostIdleGraceMs(): number;
|
|
78
119
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedHostConfig.d.ts","sourceRoot":"","sources":["../src/embedHostConfig.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"embedHostConfig.d.ts","sourceRoot":"","sources":["../src/embedHostConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAYH,6EAA6E;AAC7E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,qCAAqC;AACrC,MAAM,WAAW,eAAe;IAC9B,iIAAiI;IACjI,IAAI,EAAE,aAAa,CAAC;IACpB,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,0GAA0G;AAC1G,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAwBvD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,iCAAiC,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAM5E;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAQnF;AAED,sFAAsF;AACtF,wBAAgB,8BAA8B,IAAI,IAAI,CAGrD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,eAAe,CAMxD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAWpD;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAIlD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG3F;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAgBjD;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAE1E"}
|
package/dist/embedHostConfig.js
CHANGED
|
@@ -13,16 +13,27 @@
|
|
|
13
13
|
* `backendSocketPath()` (the SAME derivation the service-proxy uses, so
|
|
14
14
|
* there is never a port-selection problem and never a clash).
|
|
15
15
|
*
|
|
16
|
-
* ── Host selection
|
|
16
|
+
* ── Host selection AND the idle bound are typed config, never env toggles ──────
|
|
17
17
|
*
|
|
18
18
|
* `host` is a closed union (`'shared' | 'private'`) carried on
|
|
19
|
-
* `EmbeddingProviderConfig.host` and reported in `health()`.
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
19
|
+
* `EmbeddingProviderConfig.host` and reported in `health()`. `idleGraceMs` is the
|
|
20
|
+
* same shape: a typed field on `EmbeddingProviderConfig.idleGraceMs` (applied by
|
|
21
|
+
* `createEmbeddingProvider()`), reported in the host's `embedding.health`, and
|
|
22
|
+
* carried on the resolved `EmbedHostConfig` the SPAWNER reads and forwards to the
|
|
23
|
+
* spawned host. There is deliberately NO `SOX_EMBED_HOST=shared|private`
|
|
24
|
+
* variable: a behavior switch must be visible, validated, and auditable, not an
|
|
25
|
+
* ambient string.
|
|
26
|
+
*
|
|
27
|
+
* `SOX_EMBED_HOST_IDLE_GRACE_MS` still exists, but it is the INTERNAL
|
|
28
|
+
* cross-process transport between the spawner and the spawned host — the spawner
|
|
29
|
+
* writes the resolved `EmbedHostConfig.idleGraceMs` into the child's env and the
|
|
30
|
+
* host consumes it. It is not the public configuration surface; set the typed
|
|
31
|
+
* `idleGraceMs` (or `configureEmbedHostIdleGraceMs()`) instead. (Owner directive:
|
|
32
|
+
* "the time bound should be configurable" — typed config, not an ADR-0013 D3 env
|
|
33
|
+
* tuning constant. This supersedes ADR-0020 D2's env-tuning framing.)
|
|
34
|
+
*
|
|
35
|
+
* The remaining env reads are ADR-0013 D5 shapes:
|
|
23
36
|
*
|
|
24
|
-
* - `SOX_EMBED_HOST_IDLE_GRACE_MS` — a numeric tuning constant (D3): how long
|
|
25
|
-
* the host lingers after its last client leaves. Additive/numeric only.
|
|
26
37
|
* - `SOX_ECOSYSTEM_HOME` — host config (D5): where the socket lives.
|
|
27
38
|
* - `SOX_EMBED_HOST_MAIN` / `SOX_EMBED_HOST_SOCKET` — host-injected transport
|
|
28
39
|
* config (D5) / test seams; they select a path, they never enable a feature.
|
|
@@ -65,6 +76,21 @@ export const DEFAULT_EMBED_HOST_IDLE_GRACE_MS = 30_000;
|
|
|
65
76
|
* hidden).
|
|
66
77
|
*/
|
|
67
78
|
let _hostOverride = null;
|
|
79
|
+
/**
|
|
80
|
+
* Process-wide idle-grace override. `null` ⇒ resolve from the transport env (or
|
|
81
|
+
* the default). This is the TYPED public surface for the time bound: the owner
|
|
82
|
+
* directive is that the bound be configurable as config, not as an ambient
|
|
83
|
+
* ADR-0013 D3 env constant. Set via `configureEmbedHostIdleGraceMs()` (which
|
|
84
|
+
* `createEmbeddingProvider()` calls with `EmbeddingProviderConfig.idleGraceMs`)
|
|
85
|
+
* before the host is spawned.
|
|
86
|
+
*/
|
|
87
|
+
let _idleGraceOverride = null;
|
|
88
|
+
/**
|
|
89
|
+
* The internal cross-process transport variable the spawner uses to hand the
|
|
90
|
+
* resolved `EmbedHostConfig.idleGraceMs` to the spawned host. Not a public knob
|
|
91
|
+
* — set the typed `idleGraceMs` instead.
|
|
92
|
+
*/
|
|
93
|
+
export const EMBED_HOST_IDLE_GRACE_ENV = 'SOX_EMBED_HOST_IDLE_GRACE_MS';
|
|
68
94
|
/**
|
|
69
95
|
* Apply the typed `host` field from an `EmbeddingProviderConfig`. Passing
|
|
70
96
|
* `undefined` leaves the current posture unchanged (so a `remote` provider
|
|
@@ -78,13 +104,31 @@ export function configureEmbedHostHost(host) {
|
|
|
78
104
|
}
|
|
79
105
|
_hostOverride = host;
|
|
80
106
|
}
|
|
81
|
-
/**
|
|
107
|
+
/**
|
|
108
|
+
* Apply the typed `idleGraceMs` field from an `EmbeddingProviderConfig`. Passing
|
|
109
|
+
* `undefined` leaves the current value unchanged (so a provider without the field
|
|
110
|
+
* never resets a deliberate selection). A non-positive or non-finite value is
|
|
111
|
+
* rejected loudly — never silently treated as "off".
|
|
112
|
+
*/
|
|
113
|
+
export function configureEmbedHostIdleGraceMs(idleGraceMs) {
|
|
114
|
+
if (idleGraceMs === undefined)
|
|
115
|
+
return;
|
|
116
|
+
if (!Number.isFinite(idleGraceMs) || idleGraceMs <= 0) {
|
|
117
|
+
throw new TypeError(`EmbedHostConfig.idleGraceMs must be a positive number, got ${String(idleGraceMs)}`);
|
|
118
|
+
}
|
|
119
|
+
_idleGraceOverride = idleGraceMs;
|
|
120
|
+
}
|
|
121
|
+
/** TEST-ONLY: clear the process-wide host + idle-grace overrides back to defaults. */
|
|
82
122
|
export function __resetEmbedHostConfigForTests() {
|
|
83
123
|
_hostOverride = null;
|
|
124
|
+
_idleGraceOverride = null;
|
|
84
125
|
}
|
|
85
126
|
/**
|
|
86
127
|
* Resolve the funnel configuration. `host` defaults to `'shared'`; `idleGraceMs`
|
|
87
|
-
* is
|
|
128
|
+
* is typed config (with the transport env / hard default as fallbacks). The
|
|
129
|
+
* SPAWNER reads the resolved `idleGraceMs` and forwards it to the spawned host —
|
|
130
|
+
* see `funnelClient.ts`'s `doEnsure()` — which is what makes this field the
|
|
131
|
+
* consumed surface rather than a dead declaration.
|
|
88
132
|
*/
|
|
89
133
|
export function resolveEmbedHostConfig() {
|
|
90
134
|
return {
|
|
@@ -94,16 +138,26 @@ export function resolveEmbedHostConfig() {
|
|
|
94
138
|
};
|
|
95
139
|
}
|
|
96
140
|
/**
|
|
97
|
-
*
|
|
98
|
-
*
|
|
141
|
+
* Resolve the idle grace, in priority order:
|
|
142
|
+
*
|
|
143
|
+
* 1. the typed override (`configureEmbedHostIdleGraceMs()` /
|
|
144
|
+
* `EmbeddingProviderConfig.idleGraceMs`) — the public surface;
|
|
145
|
+
* 2. the internal transport env (`SOX_EMBED_HOST_IDLE_GRACE_ENV`) the spawner
|
|
146
|
+
* writes for the spawned host;
|
|
147
|
+
* 3. `DEFAULT_EMBED_HOST_IDLE_GRACE_MS`.
|
|
148
|
+
*
|
|
149
|
+
* A non-positive or non-numeric transport value is rejected loudly (never
|
|
150
|
+
* silently treated as "off").
|
|
99
151
|
*/
|
|
100
152
|
export function resolveEmbedHostIdleGraceMs() {
|
|
101
|
-
|
|
153
|
+
if (_idleGraceOverride !== null)
|
|
154
|
+
return _idleGraceOverride;
|
|
155
|
+
const raw = process.env[EMBED_HOST_IDLE_GRACE_ENV];
|
|
102
156
|
if (raw === undefined || raw === '')
|
|
103
157
|
return DEFAULT_EMBED_HOST_IDLE_GRACE_MS;
|
|
104
158
|
const parsed = Number(raw);
|
|
105
159
|
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
106
|
-
throw new TypeError(
|
|
160
|
+
throw new TypeError(`${EMBED_HOST_IDLE_GRACE_ENV} must be a positive number, got ${JSON.stringify(raw)}`);
|
|
107
161
|
}
|
|
108
162
|
return parsed;
|
|
109
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedHostConfig.js","sourceRoot":"","sources":["../src/embedHostConfig.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"embedHostConfig.js","sourceRoot":"","sources":["../src/embedHostConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/embedHostMain.d.ts
CHANGED
|
@@ -28,13 +28,26 @@
|
|
|
28
28
|
*
|
|
29
29
|
* - `activeClients` — live UDS client connections, from `serveBackend`'s
|
|
30
30
|
* `onClientCountChange` hook (the cross-process half);
|
|
31
|
-
* - `
|
|
32
|
-
* in
|
|
33
|
-
*
|
|
34
|
-
*
|
|
31
|
+
* - `inFlight` — THIS host's own request depth, incremented synchronously at
|
|
32
|
+
* the top of every handler invocation and decremented in its `finally` (the
|
|
33
|
+
* in-process half). It is deliberately NOT the private pool's
|
|
34
|
+
* `pendingCount`: that counter is incremented only AFTER `ensureProcess()`
|
|
35
|
+
* (the fork) resolves, so it reads 0 during a cold-start fork and would arm
|
|
36
|
+
* a reap over live work. `inFlight` is the synchronous truth.
|
|
37
|
+
*
|
|
38
|
+
* `activeClients === 0 && inFlight === 0` arms the grace timer; a new client
|
|
35
39
|
* or request cancels it. On expiry the private pool is terminated, the listener
|
|
36
40
|
* closed (which unlinks the socket), and the process exits 0. The private pool's
|
|
37
41
|
* ONNX child is forked `detached: false`, so it dies with the host — no orphans.
|
|
42
|
+
*
|
|
43
|
+
* ── The accessor is resolved at EVERY use, never captured ──────────────────────
|
|
44
|
+
*
|
|
45
|
+
* `embedding.reset` terminates AND nulls the private singleton
|
|
46
|
+
* (`resetPrivateFastembedProcess()`); a host that captured the accessor once
|
|
47
|
+
* would keep forwarding through the terminated reference and answer every later
|
|
48
|
+
* request with `shared fastembed process terminated`. Every use
|
|
49
|
+
* (the request handler, `armIfIdle`, `teardown`, `health`) therefore calls
|
|
50
|
+
* `getPrivateFastembedProcess()` fresh.
|
|
38
51
|
*/
|
|
39
52
|
/**
|
|
40
53
|
* Start the host: bind the UDS, serve `embedding.*`, and arm the debounced
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedHostMain.d.ts","sourceRoot":"","sources":["../src/embedHostMain.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"embedHostMain.d.ts","sourceRoot":"","sources":["../src/embedHostMain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAyBH;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA4HlD"}
|
package/dist/embedHostMain.js
CHANGED
|
@@ -28,13 +28,26 @@
|
|
|
28
28
|
*
|
|
29
29
|
* - `activeClients` — live UDS client connections, from `serveBackend`'s
|
|
30
30
|
* `onClientCountChange` hook (the cross-process half);
|
|
31
|
-
* - `
|
|
32
|
-
* in
|
|
31
|
+
* - `inFlight` — THIS host's own request depth, incremented synchronously at
|
|
32
|
+
* the top of every handler invocation and decremented in its `finally` (the
|
|
33
|
+
* in-process half). It is deliberately NOT the private pool's
|
|
34
|
+
* `pendingCount`: that counter is incremented only AFTER `ensureProcess()`
|
|
35
|
+
* (the fork) resolves, so it reads 0 during a cold-start fork and would arm
|
|
36
|
+
* a reap over live work. `inFlight` is the synchronous truth.
|
|
33
37
|
*
|
|
34
|
-
* `activeClients === 0 &&
|
|
38
|
+
* `activeClients === 0 && inFlight === 0` arms the grace timer; a new client
|
|
35
39
|
* or request cancels it. On expiry the private pool is terminated, the listener
|
|
36
40
|
* closed (which unlinks the socket), and the process exits 0. The private pool's
|
|
37
41
|
* ONNX child is forked `detached: false`, so it dies with the host — no orphans.
|
|
42
|
+
*
|
|
43
|
+
* ── The accessor is resolved at EVERY use, never captured ──────────────────────
|
|
44
|
+
*
|
|
45
|
+
* `embedding.reset` terminates AND nulls the private singleton
|
|
46
|
+
* (`resetPrivateFastembedProcess()`); a host that captured the accessor once
|
|
47
|
+
* would keep forwarding through the terminated reference and answer every later
|
|
48
|
+
* request with `shared fastembed process terminated`. Every use
|
|
49
|
+
* (the request handler, `armIfIdle`, `teardown`, `health`) therefore calls
|
|
50
|
+
* `getPrivateFastembedProcess()` fresh.
|
|
38
51
|
*/
|
|
39
52
|
import { fileURLToPath } from 'node:url';
|
|
40
53
|
import { resolve } from 'node:path';
|
|
@@ -68,8 +81,14 @@ export async function runEmbedHost() {
|
|
|
68
81
|
process.exit(2);
|
|
69
82
|
}
|
|
70
83
|
const idleGraceMs = resolveEmbedHostIdleGraceMs();
|
|
71
|
-
const privateClient = getPrivateFastembedProcess();
|
|
72
84
|
let activeClients = 0;
|
|
85
|
+
/**
|
|
86
|
+
* This host's own in-flight request depth. Incremented synchronously before
|
|
87
|
+
* the handler's first `await` and decremented in its `finally`, so it covers a
|
|
88
|
+
* request's entire synchronous prefix — including the cold-start fork, where
|
|
89
|
+
* the private pool's `pendingCount` still reads 0.
|
|
90
|
+
*/
|
|
91
|
+
let inFlight = 0;
|
|
73
92
|
let idleTimer = null;
|
|
74
93
|
let shuttingDown = false;
|
|
75
94
|
let handle = null;
|
|
@@ -85,7 +104,9 @@ export async function runEmbedHost() {
|
|
|
85
104
|
shuttingDown = true;
|
|
86
105
|
cancelIdle();
|
|
87
106
|
try {
|
|
88
|
-
|
|
107
|
+
// Resolve the accessor at teardown time: a preceding `embedding.reset`
|
|
108
|
+
// may have swapped the private singleton for a fresh one.
|
|
109
|
+
await getPrivateFastembedProcess().terminate();
|
|
89
110
|
}
|
|
90
111
|
catch {
|
|
91
112
|
/* best-effort — the ONNX child dies with us regardless (detached:false) */
|
|
@@ -101,7 +122,11 @@ export async function runEmbedHost() {
|
|
|
101
122
|
const armIfIdle = () => {
|
|
102
123
|
if (shuttingDown || idleTimer)
|
|
103
124
|
return;
|
|
104
|
-
if (activeClients !== 0 ||
|
|
125
|
+
if (activeClients !== 0 || inFlight !== 0)
|
|
126
|
+
return;
|
|
127
|
+
// Defensive second gate: the private pool's own counter, resolved per use so
|
|
128
|
+
// a post-reset pool is never the stale terminated reference.
|
|
129
|
+
if (getPrivateFastembedProcess().pendingCount !== 0)
|
|
105
130
|
return;
|
|
106
131
|
idleTimer = setTimeout(() => {
|
|
107
132
|
idleTimer = null;
|
|
@@ -111,18 +136,22 @@ export async function runEmbedHost() {
|
|
|
111
136
|
idleTimer.unref?.();
|
|
112
137
|
};
|
|
113
138
|
const handler = async (req) => {
|
|
114
|
-
// Any inbound request is demand — cancel a pending reap
|
|
139
|
+
// Any inbound request is demand — cancel a pending reap, and count this
|
|
140
|
+
// request as in-flight BEFORE the first await (the synchronous prefix).
|
|
115
141
|
cancelIdle();
|
|
142
|
+
inFlight++;
|
|
116
143
|
const id = req.id;
|
|
117
144
|
const method = req.method;
|
|
118
|
-
if (!HOST_METHODS.has(method)) {
|
|
119
|
-
return fail(id, -32601, `method not found: ${method}`);
|
|
120
|
-
}
|
|
121
145
|
try {
|
|
146
|
+
if (!HOST_METHODS.has(method)) {
|
|
147
|
+
return fail(id, -32601, `method not found: ${method}`);
|
|
148
|
+
}
|
|
122
149
|
if (method === 'embedding.health') {
|
|
150
|
+
const pc = getPrivateFastembedProcess();
|
|
123
151
|
return ok(id, {
|
|
124
|
-
started:
|
|
125
|
-
pendingCount:
|
|
152
|
+
started: pc.started,
|
|
153
|
+
pendingCount: pc.pendingCount,
|
|
154
|
+
inFlight,
|
|
126
155
|
activeClients,
|
|
127
156
|
idleGraceMs,
|
|
128
157
|
});
|
|
@@ -132,15 +161,17 @@ export async function runEmbedHost() {
|
|
|
132
161
|
return ok(id, { reset: true });
|
|
133
162
|
}
|
|
134
163
|
// embedding.init | embedding.embed | embedding.embedBatch — forward the
|
|
135
|
-
// payload 1:1 to the PRIVATE pool (never the funnel accessor)
|
|
164
|
+
// payload 1:1 to the PRIVATE pool (never the funnel accessor), resolving
|
|
165
|
+
// it per use so a reset mid-life never leaves us on a terminated pool.
|
|
136
166
|
const params = (req.params ?? {});
|
|
137
|
-
const result = await
|
|
167
|
+
const result = await getPrivateFastembedProcess().request(params);
|
|
138
168
|
return ok(id, result);
|
|
139
169
|
}
|
|
140
170
|
catch (e) {
|
|
141
171
|
return fail(id, -32603, e instanceof Error ? e.message : String(e));
|
|
142
172
|
}
|
|
143
173
|
finally {
|
|
174
|
+
inFlight--;
|
|
144
175
|
// A request may have drained the last in-flight work with no clients
|
|
145
176
|
// attached (e.g. a one-shot embed) — re-arm the reap.
|
|
146
177
|
if (activeClients === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedHostMain.js","sourceRoot":"","sources":["../src/embedHostMain.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"embedHostMain.js","sourceRoot":"","sources":["../src/embedHostMain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnelClient.d.ts","sourceRoot":"","sources":["../src/funnelClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"funnelClient.d.ts","sourceRoot":"","sources":["../src/funnelClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAYH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEzE,2DAA2D;AAC3D,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAoB5C,oDAAoD;AACpD,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AAOD,qBAAa,uBAAwB,YAAW,qBAAqB;IACnE,OAAO,CAAC,IAAI,CAAkC;IAC9C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAAoD;IACvE,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,yBAAyB,CAAK;IACtC,OAAO,CAAC,gBAAgB,CAAK;;IAM7B,gFAAgF;IAChF,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,iEAAiE;IACjE,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,mFAAmF;IACnF,IAAI,cAAc,IAAI,MAAM,GAAG,IAAI,CAElC;IAEK,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC;IAqCb;;;;;OAKG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAMhC,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,aAAa;IA8DrB,4EAA4E;IAC5E,OAAO,CAAC,UAAU;YASJ,QAAQ;IA0EtB,OAAO,CAAC,iBAAiB;IAOzB;;;;;OAKG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAYhC;;;OAGG;YACW,OAAO;IAcrB;;OAEG;IACH,OAAO,CAAC,cAAc;CAKvB;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9D"}
|
package/dist/funnelClient.js
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import { dialBackend, ensureBackend, probeSocketLive } from '@adhd/sox-service-proxy';
|
|
31
31
|
import { TransientEmbeddingError, PermanentEmbeddingError } from './errors.js';
|
|
32
|
-
import { embedHostSingletonKey, embedHostSocketPath, resolveEmbedHostConfig, resolveEmbedHostMainPath, resolveEmbedHostStderrLogPath, } from './embedHostConfig.js';
|
|
32
|
+
import { EMBED_HOST_IDLE_GRACE_ENV, embedHostSingletonKey, embedHostSocketPath, resolveEmbedHostConfig, resolveEmbedHostMainPath, resolveEmbedHostStderrLogPath, } from './embedHostConfig.js';
|
|
33
33
|
/** Consecutive failed ensures before the breaker opens. */
|
|
34
34
|
export const ENSURE_FAILURE_THRESHOLD = 3;
|
|
35
35
|
/** How long the breaker stays open (fail-fast window) once tripped. */
|
|
@@ -224,7 +224,16 @@ export class FunneledFastembedClient {
|
|
|
224
224
|
singletonKey: key,
|
|
225
225
|
command: process.execPath,
|
|
226
226
|
args: [resolveEmbedHostMainPath()],
|
|
227
|
-
env: {
|
|
227
|
+
env: {
|
|
228
|
+
...process.env,
|
|
229
|
+
SOX_EMBED_HOST_SOCKET: socketPath,
|
|
230
|
+
// Internal cross-process transport for the typed idle bound: the
|
|
231
|
+
// spawned host consumes the value the spawner resolved here
|
|
232
|
+
// (`EmbedHostConfig.idleGraceMs`), which is what makes the resolved
|
|
233
|
+
// config field the consumed surface rather than a dead declaration.
|
|
234
|
+
// The public knob is `EmbeddingProviderConfig.idleGraceMs`.
|
|
235
|
+
[EMBED_HOST_IDLE_GRACE_ENV]: String(cfg.idleGraceMs),
|
|
236
|
+
},
|
|
228
237
|
stderrLogPath: resolveEmbedHostStderrLogPath(cfg),
|
|
229
238
|
readyTimeoutMs: HOST_READY_TIMEOUT_MS,
|
|
230
239
|
});
|
package/dist/funnelClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnelClient.js","sourceRoot":"","sources":["../src/funnelClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"funnelClient.js","sourceRoot":"","sources":["../src/funnelClient.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -44,6 +44,14 @@ export interface EmbeddingProviderConfig {
|
|
|
44
44
|
* it is a closed union, never an env toggle, and is reported in `health()`.
|
|
45
45
|
*/
|
|
46
46
|
host?: 'shared' | 'private';
|
|
47
|
+
/**
|
|
48
|
+
* How long the peer-shared host lingers with zero clients and zero in-flight
|
|
49
|
+
* work before it reaps itself, in milliseconds. Typed config (owner directive:
|
|
50
|
+
* "the time bound should be configurable") — applied process-wide before the
|
|
51
|
+
* host is spawned, and reported in the host's `embedding.health`. Defaults to
|
|
52
|
+
* `DEFAULT_EMBED_HOST_IDLE_GRACE_MS` (30 s). Must be a positive number.
|
|
53
|
+
*/
|
|
54
|
+
idleGraceMs?: number;
|
|
47
55
|
}
|
|
48
56
|
export { TransientEmbeddingError, PermanentEmbeddingError, ResolutionError } from './errors.js';
|
|
49
57
|
/**
|
|
@@ -161,7 +169,7 @@ export { getPrivateFastembedProcess, FastembedProcessPool, AdaptiveFastembedProc
|
|
|
161
169
|
* re-fork its private pool (memory-core's `reinitEmbedProvider` routes here).
|
|
162
170
|
*/
|
|
163
171
|
export { FunneledFastembedClient, resetSharedFastembedHost } from './funnelClient.js';
|
|
164
|
-
export { resolveEmbedHostConfig, configureEmbedHostHost, resolveEmbedHostSocketDir, embedHostSingletonKey, embedHostSocketPath, resolveEmbedHostMainPath, resolveEmbedHostIdleGraceMs, EMBED_HOST_PROTOCOL_VERSION, type EmbedHostConfig, type EmbedHostMode, } from './embedHostConfig.js';
|
|
172
|
+
export { resolveEmbedHostConfig, configureEmbedHostHost, configureEmbedHostIdleGraceMs, resolveEmbedHostSocketDir, embedHostSingletonKey, embedHostSocketPath, resolveEmbedHostMainPath, resolveEmbedHostIdleGraceMs, EMBED_HOST_PROTOCOL_VERSION, DEFAULT_EMBED_HOST_IDLE_GRACE_MS, EMBED_HOST_IDLE_GRACE_ENV, type EmbedHostConfig, type EmbedHostMode, } from './embedHostConfig.js';
|
|
165
173
|
export declare function createEmbeddingProvider(config: EmbeddingProviderConfig): Promise<EmbeddingProvider>;
|
|
166
174
|
/**
|
|
167
175
|
* 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":"AAcA,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7C,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACtD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnE,UAAU,CACR,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,CAAC;IAC/B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,4DAA4D;IAC5D,MAAM,IAAI,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { join } from 'node:path';
|
|
|
6
6
|
// Local binding so this module's own throws/type-guards use the SAME classes the
|
|
7
7
|
// barrel re-exports (one home — see `errors.ts`).
|
|
8
8
|
import { ResolutionError } from './errors.js';
|
|
9
|
-
import { configureEmbedHostHost } from './embedHostConfig.js';
|
|
9
|
+
import { configureEmbedHostHost, configureEmbedHostIdleGraceMs } from './embedHostConfig.js';
|
|
10
10
|
// ── Error taxonomy — three tiers, no silent degradation ──────────────────────
|
|
11
11
|
// Defined in `errors.ts` so `funnelClient.ts` can throw them without importing
|
|
12
12
|
// this barrel (which re-exports the funnel client) — re-exported here so the
|
|
@@ -51,7 +51,7 @@ export { getPrivateFastembedProcess, FastembedProcessPool, AdaptiveFastembedProc
|
|
|
51
51
|
* re-fork its private pool (memory-core's `reinitEmbedProvider` routes here).
|
|
52
52
|
*/
|
|
53
53
|
export { FunneledFastembedClient, resetSharedFastembedHost } from './funnelClient.js';
|
|
54
|
-
export { resolveEmbedHostConfig, configureEmbedHostHost, resolveEmbedHostSocketDir, embedHostSingletonKey, embedHostSocketPath, resolveEmbedHostMainPath, resolveEmbedHostIdleGraceMs, EMBED_HOST_PROTOCOL_VERSION, } from './embedHostConfig.js';
|
|
54
|
+
export { resolveEmbedHostConfig, configureEmbedHostHost, configureEmbedHostIdleGraceMs, resolveEmbedHostSocketDir, embedHostSingletonKey, embedHostSocketPath, resolveEmbedHostMainPath, resolveEmbedHostIdleGraceMs, EMBED_HOST_PROTOCOL_VERSION, DEFAULT_EMBED_HOST_IDLE_GRACE_MS, EMBED_HOST_IDLE_GRACE_ENV, } from './embedHostConfig.js';
|
|
55
55
|
// ── Factory ───────────────────────────────────────────────────────────────────
|
|
56
56
|
export async function createEmbeddingProvider(config) {
|
|
57
57
|
if (!config.type || typeof config.type !== 'string') {
|
|
@@ -68,6 +68,17 @@ export async function createEmbeddingProvider(config) {
|
|
|
68
68
|
throw new ResolutionError(`Invalid embedding host mode: ${err instanceof Error ? err.message : String(err)}`);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
+
// Typed idle bound (owner directive: "the time bound should be configurable").
|
|
72
|
+
// Applied process-wide before the host is spawned; the spawner forwards the
|
|
73
|
+
// resolved value to the host, which consumes it.
|
|
74
|
+
if (config.idleGraceMs !== undefined) {
|
|
75
|
+
try {
|
|
76
|
+
configureEmbedHostIdleGraceMs(config.idleGraceMs);
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
throw new ResolutionError(`Invalid embedding idle grace: ${err instanceof Error ? err.message : String(err)}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
71
82
|
switch (config.type) {
|
|
72
83
|
case 'fastembed':
|
|
73
84
|
return createFastembedProvider(config);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,iFAAiF;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,iFAAiF;AACjF,kDAAkD;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adhd/sox-embedding-provider",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "Pluggable text→vector embedding provider — generic EmbeddingProvider interface, config-driven model resolution, async batch-first API (AsyncIterable). Default: fastembed (local ONNX, >=3 model dims proven). Loud-fail: createEmbeddingProvider() throws ResolutionError if config is invalid or model cannot load — no silent downgrade.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@huggingface/transformers": "^4.2.0",
|
|
32
32
|
"fastembed": "^2.1.0",
|
|
33
|
-
"@adhd/sox-
|
|
34
|
-
"@adhd/sox-
|
|
33
|
+
"@adhd/sox-service-proxy": "^0.4.2",
|
|
34
|
+
"@adhd/sox-telemetry": "^0.3.1"
|
|
35
35
|
},
|
|
36
36
|
"sox": {
|
|
37
37
|
"area": "data",
|