@mlx-node/server 0.0.7 → 0.0.8
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/chat-session-warm-reuse.d.ts +51 -0
- package/dist/chat-session-warm-reuse.d.ts.map +1 -0
- package/dist/chat-session-warm-reuse.js +68 -0
- package/dist/endpoints/messages-count-tokens.d.ts +8 -0
- package/dist/endpoints/messages-count-tokens.d.ts.map +1 -0
- package/dist/endpoints/messages-count-tokens.js +121 -0
- package/dist/endpoints/messages.d.ts +57 -5
- package/dist/endpoints/messages.d.ts.map +1 -1
- package/dist/endpoints/messages.js +1043 -147
- package/dist/endpoints/models.d.ts +2 -1
- package/dist/endpoints/models.d.ts.map +1 -1
- package/dist/endpoints/models.js +2 -2
- package/dist/endpoints/responses.d.ts +20 -7
- package/dist/endpoints/responses.d.ts.map +1 -1
- package/dist/endpoints/responses.js +572 -82
- package/dist/errors.d.ts +1 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -0
- package/dist/handler.d.ts +42 -0
- package/dist/handler.d.ts.map +1 -1
- package/dist/handler.js +6 -1
- package/dist/idle-sweeper.d.ts +245 -0
- package/dist/idle-sweeper.d.ts.map +1 -0
- package/dist/idle-sweeper.js +408 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/mappers/anthropic-request.d.ts +24 -2
- package/dist/mappers/anthropic-request.d.ts.map +1 -1
- package/dist/mappers/anthropic-request.js +222 -24
- package/dist/mappers/anthropic-response.d.ts +29 -4
- package/dist/mappers/anthropic-response.d.ts.map +1 -1
- package/dist/mappers/anthropic-response.js +143 -21
- package/dist/mappers/request.d.ts +48 -0
- package/dist/mappers/request.d.ts.map +1 -1
- package/dist/mappers/request.js +211 -35
- package/dist/mappers/response.d.ts.map +1 -1
- package/dist/mappers/response.js +13 -1
- package/dist/model-work-coordinator.d.ts +70 -0
- package/dist/model-work-coordinator.d.ts.map +1 -0
- package/dist/model-work-coordinator.js +120 -0
- package/dist/pending-writes.d.ts.map +1 -1
- package/dist/presets.d.ts +82 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +98 -0
- package/dist/registry.d.ts +31 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +33 -5
- package/dist/router.d.ts +4 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +34 -4
- package/dist/server.d.ts +76 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +48 -1
- package/dist/session-registry.d.ts +272 -18
- package/dist/session-registry.d.ts.map +1 -1
- package/dist/session-registry.js +509 -37
- package/dist/stop-sequence-buffer.d.ts +58 -0
- package/dist/stop-sequence-buffer.d.ts.map +1 -0
- package/dist/stop-sequence-buffer.js +148 -0
- package/dist/text-recovery.d.ts +35 -0
- package/dist/text-recovery.d.ts.map +1 -0
- package/dist/text-recovery.js +41 -0
- package/dist/timing.d.ts +80 -0
- package/dist/timing.d.ts.map +1 -0
- package/dist/timing.js +121 -0
- package/dist/tool-call-buffer.d.ts +5 -5
- package/dist/tool-call-buffer.d.ts.map +1 -1
- package/dist/tool-call-buffer.js +28 -8
- package/dist/types-anthropic.d.ts +161 -1
- package/dist/types-anthropic.d.ts.map +1 -1
- package/dist/types.d.ts +172 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** GET /v1/models endpoint. */
|
|
2
2
|
import type { ServerResponse } from 'node:http';
|
|
3
|
+
import type { PublicModelEntry } from '../handler.js';
|
|
3
4
|
import type { ModelRegistry } from '../registry.js';
|
|
4
|
-
export declare function handleListModels(res: ServerResponse, registry: ModelRegistry): void;
|
|
5
|
+
export declare function handleListModels(res: ServerResponse, registry: ModelRegistry, listModels?: () => PublicModelEntry[]): void;
|
|
5
6
|
//# sourceMappingURL=models.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/endpoints/models.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/endpoints/models.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,aAAa,EACvB,UAAU,CAAC,EAAE,MAAM,gBAAgB,EAAE,GACpC,IAAI,CAQN"}
|
package/dist/endpoints/models.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** GET /v1/models endpoint. */
|
|
2
|
-
export function handleListModels(res, registry) {
|
|
3
|
-
const models = registry.list();
|
|
2
|
+
export function handleListModels(res, registry, listModels) {
|
|
3
|
+
const models = listModels ? listModels() : registry.list();
|
|
4
4
|
const body = {
|
|
5
5
|
object: 'list',
|
|
6
6
|
data: models,
|
|
@@ -9,18 +9,31 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
11
11
|
import type { ChatMessage, ResponseStore } from '@mlx-node/core';
|
|
12
|
+
import type { IdleSweeper } from '../idle-sweeper.js';
|
|
13
|
+
import type { ModelWorkCoordinator } from '../model-work-coordinator.js';
|
|
12
14
|
import type { ModelRegistry } from '../registry.js';
|
|
13
15
|
import type { ResponsesAPIRequest } from '../types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Upper bound for a client-supplied output-token budget. The native
|
|
18
|
+
* `ChatConfig.max_new_tokens` is `Option<i32>`, and NAPI's
|
|
19
|
+
* `napi_get_value_int32` silently truncates a JS integer above `i32::MAX`
|
|
20
|
+
* to a NEGATIVE value — which the core clamp then turns into 0 (a silent
|
|
21
|
+
* empty completion). Reject anything above this bound at the edge so an
|
|
22
|
+
* over-large budget 400s instead of producing nothing. Shared with
|
|
23
|
+
* `/v1/messages` (`messages.ts`).
|
|
24
|
+
*/
|
|
25
|
+
export declare const MAX_OUTPUT_TOKENS = 2147483647;
|
|
14
26
|
/**
|
|
15
27
|
* Value of the `X-Session-Cache` response header emitted on every
|
|
16
28
|
* `/v1/responses` and `/v1/messages` response. Advertises whether the
|
|
17
|
-
* request warm-hit the per-model `SessionRegistry`
|
|
18
|
-
* cold-replayed from the stored chain
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
29
|
+
* request warm-hit the per-model `SessionRegistry` via `previous_response_id`
|
|
30
|
+
* (`hit`), missed and cold-replayed from the stored chain
|
|
31
|
+
* (`cold_replay`), reused a warm session via the stateless-agent
|
|
32
|
+
* `prompt_cache_key` tier-2 lookup (`prefix_hit`), or started a fresh
|
|
33
|
+
* session with neither keying signal (`fresh`). The literal string
|
|
34
|
+
* values are load-bearing — clients and operator tooling pin on them.
|
|
22
35
|
*/
|
|
23
|
-
export type SessionCacheStatus = 'hit' | 'cold_replay' | 'fresh';
|
|
36
|
+
export type SessionCacheStatus = 'hit' | 'cold_replay' | 'fresh' | 'prefix_hit';
|
|
24
37
|
/**
|
|
25
38
|
* Hard timeout (ms) for the off-lock post-commit persist — the
|
|
26
39
|
* second-stage breaker that force-releases the `retainBinding` paired
|
|
@@ -75,5 +88,5 @@ export declare function __setServerBootIdForTesting(id: string): void;
|
|
|
75
88
|
* `tool_result` / `tool_use_id`). Validation logic is identical.
|
|
76
89
|
*/
|
|
77
90
|
export declare function validateAndCanonicalizeHistoryToolOrder(messages: ChatMessage[], apiSurface?: 'openai' | 'anthropic'): string | null;
|
|
78
|
-
export declare function handleCreateResponse(res: ServerResponse, body: ResponsesAPIRequest, registry: ModelRegistry, store: ResponseStore | null, httpReq?: IncomingMessage, responseRetentionSec?: number): Promise<void>;
|
|
91
|
+
export declare function handleCreateResponse(res: ServerResponse, body: ResponsesAPIRequest, registry: ModelRegistry, store: ResponseStore | null, httpReq?: IncomingMessage, responseRetentionSec?: number, idleSweeper?: IdleSweeper | null, modelWorkCoordinator?: ModelWorkCoordinator): Promise<void>;
|
|
79
92
|
//# sourceMappingURL=responses.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/endpoints/responses.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,KAAK,EAAc,WAAW,EAAc,aAAa,EAAwB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/endpoints/responses.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,KAAK,EAAc,WAAW,EAAc,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AAM/G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAStD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAcpD,OAAO,KAAK,EAMV,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAUrB;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAU5C;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,aAAa,GAAG,OAAO,GAAG,YAAY,CAAC;AAmChF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iCAAiC,IAAI,MAAM,CAM1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAMnD;AA0BD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE5D;AAs9BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,WAAW,EAAE,EACvB,UAAU,GAAE,QAAQ,GAAG,WAAsB,GAC5C,MAAM,GAAG,IAAI,CAiHf;AA8WD,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,aAAa,GAAG,IAAI,EAC3B,OAAO,CAAC,EAAE,eAAe,EACzB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,EAChC,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAAC,IAAI,CAAC,CAugEf"}
|