@atomic-chat/core 0.18.5 → 0.19.1
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/app-daemon.js +5 -0
- package/dist/app-daemon.js.map +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/cli/main.js +5 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/client/control-client.d.ts +18 -1
- package/dist/client/control-client.js +27 -0
- package/dist/client/control-client.js.map +1 -1
- package/dist/cloud/registry.js +1 -0
- package/dist/cloud/registry.js.map +1 -1
- package/dist/config/paths.d.ts +4 -0
- package/dist/config/paths.js +13 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/contracts/control-api.d.ts +9 -0
- package/dist/contracts/diffusion.d.ts +17 -7
- package/dist/contracts/diffusion.js.map +1 -1
- package/dist/contracts/engine-builds.d.ts +1 -1
- package/dist/contracts/engine-builds.js +1 -1
- package/dist/contracts/engine-builds.js.map +1 -1
- package/dist/contracts/engines.d.ts +1 -1
- package/dist/contracts/engines.js +2 -0
- package/dist/contracts/engines.js.map +1 -1
- package/dist/contracts/errors.d.ts +9 -1
- package/dist/contracts/errors.js.map +1 -1
- package/dist/contracts/events.d.ts +6 -1
- package/dist/contracts/index.d.ts +1 -0
- package/dist/contracts/index.js +1 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/litert-lm.d.ts +97 -0
- package/dist/contracts/litert-lm.js +17 -0
- package/dist/contracts/litert-lm.js.map +1 -0
- package/dist/contracts/model-yml.d.ts +31 -0
- package/dist/contracts/model-yml.js +5 -0
- package/dist/contracts/model-yml.js.map +1 -1
- package/dist/contracts/session.d.ts +5 -1
- package/dist/contracts/session.js.map +1 -1
- package/dist/contracts/settings.d.ts +10 -1
- package/dist/contracts/settings.js.map +1 -1
- package/dist/core/app-lease.d.ts +56 -0
- package/dist/core/app-lease.js +50 -0
- package/dist/core/app-lease.js.map +1 -0
- package/dist/core/atomic-core.d.ts +6 -1
- package/dist/core/atomic-core.js +6 -0
- package/dist/core/atomic-core.js.map +1 -1
- package/dist/core/create.js +175 -24
- package/dist/core/create.js.map +1 -1
- package/dist/diffusion/args.d.ts +8 -0
- package/dist/diffusion/args.js +10 -0
- package/dist/diffusion/args.js.map +1 -1
- package/dist/diffusion/compat.d.ts +3 -3
- package/dist/diffusion/compat.js +15 -10
- package/dist/diffusion/compat.js.map +1 -1
- package/dist/diffusion/recipe.d.ts +19 -2
- package/dist/diffusion/recipe.js +43 -20
- package/dist/diffusion/recipe.js.map +1 -1
- package/dist/diffusion/remote-job.js +6 -7
- package/dist/diffusion/remote-job.js.map +1 -1
- package/dist/diffusion/service.d.ts +1 -0
- package/dist/diffusion/service.js +4 -2
- package/dist/diffusion/service.js.map +1 -1
- package/dist/diffusion/video-history.js +3 -2
- package/dist/diffusion/video-history.js.map +1 -1
- package/dist/diffusion/video-recipe.d.ts +4 -1
- package/dist/diffusion/video-recipe.js +15 -11
- package/dist/diffusion/video-recipe.js.map +1 -1
- package/dist/diffusion/workflow.d.ts +2 -1
- package/dist/diffusion/workflow.js +3 -1
- package/dist/diffusion/workflow.js.map +1 -1
- package/dist/downloads/archive.d.ts +2 -1
- package/dist/downloads/archive.js +3 -2
- package/dist/downloads/archive.js.map +1 -1
- package/dist/engine-builds/engines.d.ts +22 -5
- package/dist/engine-builds/engines.js +44 -7
- package/dist/engine-builds/engines.js.map +1 -1
- package/dist/engine-builds/litert-lm.d.ts +29 -0
- package/dist/engine-builds/litert-lm.js +119 -0
- package/dist/engine-builds/litert-lm.js.map +1 -0
- package/dist/engine-builds/manifest.d.ts +55 -1
- package/dist/engine-builds/manifest.js +114 -1
- package/dist/engine-builds/manifest.js.map +1 -1
- package/dist/engine-builds/order.d.ts +2 -1
- package/dist/engine-builds/order.js +3 -1
- package/dist/engine-builds/order.js.map +1 -1
- package/dist/engine-builds/select.d.ts +19 -1
- package/dist/engine-builds/select.js +45 -0
- package/dist/engine-builds/select.js.map +1 -1
- package/dist/engine-builds/service.d.ts +8 -5
- package/dist/engine-builds/service.js +11 -4
- package/dist/engine-builds/service.js.map +1 -1
- package/dist/engines/service.d.ts +3 -1
- package/dist/engines/service.js +4 -1
- package/dist/engines/service.js.map +1 -1
- package/dist/router/resolve.d.ts +25 -4
- package/dist/router/resolve.js +34 -3
- package/dist/router/resolve.js.map +1 -1
- package/dist/runtime/litert-lm/accelerators.d.ts +54 -0
- package/dist/runtime/litert-lm/accelerators.js +176 -0
- package/dist/runtime/litert-lm/accelerators.js.map +1 -0
- package/dist/runtime/litert-lm/check.d.ts +44 -0
- package/dist/runtime/litert-lm/check.js +113 -0
- package/dist/runtime/litert-lm/check.js.map +1 -0
- package/dist/runtime/litert-lm/host/args.d.ts +47 -0
- package/dist/runtime/litert-lm/host/args.js +108 -0
- package/dist/runtime/litert-lm/host/args.js.map +1 -0
- package/dist/runtime/litert-lm/host/ffi-bun.d.ts +16 -0
- package/dist/runtime/litert-lm/host/ffi-bun.js +535 -0
- package/dist/runtime/litert-lm/host/ffi-bun.js.map +1 -0
- package/dist/runtime/litert-lm/host/library.d.ts +113 -0
- package/dist/runtime/litert-lm/host/library.js +38 -0
- package/dist/runtime/litert-lm/host/library.js.map +1 -0
- package/dist/runtime/litert-lm/host/openai.d.ts +97 -0
- package/dist/runtime/litert-lm/host/openai.js +355 -0
- package/dist/runtime/litert-lm/host/openai.js.map +1 -0
- package/dist/runtime/litert-lm/host/pool.d.ts +51 -0
- package/dist/runtime/litert-lm/host/pool.js +114 -0
- package/dist/runtime/litert-lm/host/pool.js.map +1 -0
- package/dist/runtime/litert-lm/host/run.d.ts +48 -0
- package/dist/runtime/litert-lm/host/run.js +169 -0
- package/dist/runtime/litert-lm/host/run.js.map +1 -0
- package/dist/runtime/litert-lm/host/server.d.ts +28 -0
- package/dist/runtime/litert-lm/host/server.js +242 -0
- package/dist/runtime/litert-lm/host/server.js.map +1 -0
- package/dist/runtime/litert-lm/host-process.d.ts +44 -0
- package/dist/runtime/litert-lm/host-process.js +99 -0
- package/dist/runtime/litert-lm/host-process.js.map +1 -0
- package/dist/runtime/litert-lm/index.d.ts +10 -0
- package/dist/runtime/litert-lm/index.js +11 -0
- package/dist/runtime/litert-lm/index.js.map +1 -0
- package/dist/runtime/litert-lm/litert-host.d.ts +17 -0
- package/dist/runtime/litert-lm/litert-host.js +22 -0
- package/dist/runtime/litert-lm/litert-host.js.map +1 -0
- package/dist/runtime/litert-lm/model-yml.d.ts +8 -0
- package/dist/runtime/litert-lm/model-yml.js +67 -0
- package/dist/runtime/litert-lm/model-yml.js.map +1 -0
- package/dist/runtime/litert-lm/npu.d.ts +11 -0
- package/dist/runtime/litert-lm/npu.js +24 -0
- package/dist/runtime/litert-lm/npu.js.map +1 -0
- package/dist/runtime/litert-lm/runtime.d.ts +99 -0
- package/dist/runtime/litert-lm/runtime.js +354 -0
- package/dist/runtime/litert-lm/runtime.js.map +1 -0
- package/dist/runtime/llamacpp/runtime.d.ts +4 -1
- package/dist/runtime/llamacpp/runtime.js +4 -1
- package/dist/runtime/llamacpp/runtime.js.map +1 -1
- package/dist/runtime/shared/external-sessions.js +1 -0
- package/dist/runtime/shared/external-sessions.js.map +1 -1
- package/dist/server/clients.d.ts +6 -0
- package/dist/server/clients.js +11 -0
- package/dist/server/clients.js.map +1 -1
- package/dist/server/control/router.js +2 -0
- package/dist/server/control/router.js.map +1 -1
- package/dist/server/control/routes/litert-lm.d.ts +11 -0
- package/dist/server/control/routes/litert-lm.js +33 -0
- package/dist/server/control/routes/litert-lm.js.map +1 -0
- package/dist/server/control/routes/public-server.js +22 -0
- package/dist/server/control/routes/public-server.js.map +1 -1
- package/dist/server/control/types.d.ts +16 -1
- package/dist/server/control/types.js.map +1 -1
- package/dist/server/http.js +3 -0
- package/dist/server/http.js.map +1 -1
- package/dist/server/public/errors.d.ts +17 -0
- package/dist/server/public/errors.js +28 -0
- package/dist/server/public/errors.js.map +1 -1
- package/dist/server/public/forward.d.ts +20 -1
- package/dist/server/public/forward.js +72 -19
- package/dist/server/public/forward.js.map +1 -1
- package/dist/server/public/listing.d.ts +6 -0
- package/dist/server/public/listing.js +25 -3
- package/dist/server/public/listing.js.map +1 -1
- package/dist/server/public/responses.js +21 -10
- package/dist/server/public/responses.js.map +1 -1
- package/dist/server/public/subscription.js +2 -2
- package/dist/server/public/subscription.js.map +1 -1
- package/dist/server/public/telemetry.d.ts +7 -1
- package/dist/server/public/telemetry.js +11 -3
- package/dist/server/public/telemetry.js.map +1 -1
- package/dist/server/public/trace.d.ts +8 -4
- package/dist/server/public/trace.js +15 -7
- package/dist/server/public/trace.js.map +1 -1
- package/dist/server/public/types.d.ts +5 -0
- package/dist/server/public/videos-params.js +6 -1
- package/dist/server/public/videos-params.js.map +1 -1
- package/dist/settings/schema/litert-lm.json +37 -0
- package/dist/settings/schema.js +9 -0
- package/dist/settings/schema.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LiteRT-LM's accelerator and compatibility check (openspec change `add-litert-lm-runtime`, tasks
|
|
3
|
+
* 6.4–6.5): the same routes, event and answer shapes as Foundry Local's, so the clients reuse their UI.
|
|
4
|
+
* The one accelerator is `openvino` — Intel's libraries an NPU variant needs on Windows (design D3);
|
|
5
|
+
* nothing downloads it on its own: not the start, not an install, not a load.
|
|
6
|
+
*
|
|
7
|
+
* Browser-safe: types and constants only. snake_case on the wire.
|
|
8
|
+
*/
|
|
9
|
+
import type { ProxyConfig } from './backend-advisor.js';
|
|
10
|
+
import type { FoundryLocalPrepareStage } from './foundry-local.js';
|
|
11
|
+
import type { LiteRtLmBackendId, LiteRtLmNpu } from './model-yml.js';
|
|
12
|
+
export interface LiteRtLmAccelerator {
|
|
13
|
+
/** `openvino`. */
|
|
14
|
+
name: string;
|
|
15
|
+
/** `npu`: the only device it serves. */
|
|
16
|
+
device: string;
|
|
17
|
+
/** The OpenVINO version the active release pins. */
|
|
18
|
+
version: string;
|
|
19
|
+
/** What a prepare downloads. */
|
|
20
|
+
size_bytes: number;
|
|
21
|
+
/** Downloaded, checked and unpacked on this machine. */
|
|
22
|
+
prepared: boolean;
|
|
23
|
+
/** Why the last prepare failed. */
|
|
24
|
+
reason?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface LiteRtLmAccelerators {
|
|
27
|
+
/** `false`: no LiteRT-LM build is installed; the list is empty. */
|
|
28
|
+
installed: boolean;
|
|
29
|
+
/** The active build, `<version>/<platform>`. */
|
|
30
|
+
build: string | null;
|
|
31
|
+
/** This machine's Intel NPU generation LiteRT-LM files target; `null` without one (the list is empty). */
|
|
32
|
+
npu: LiteRtLmNpu | null;
|
|
33
|
+
accelerators: LiteRtLmAccelerator[];
|
|
34
|
+
/** Why the list could not be made (no manifest for the active release, …). */
|
|
35
|
+
error: string | null;
|
|
36
|
+
}
|
|
37
|
+
export interface LiteRtLmPrepareRequest {
|
|
38
|
+
/** Names to prepare; absent or empty: every accelerator offered here. */
|
|
39
|
+
accelerators?: string[];
|
|
40
|
+
/** The proxy the wheel downloads through, as an engine install takes it. */
|
|
41
|
+
proxy?: ProxyConfig | null;
|
|
42
|
+
}
|
|
43
|
+
export interface LiteRtLmPrepareResult {
|
|
44
|
+
accelerators: Array<{
|
|
45
|
+
name: string;
|
|
46
|
+
prepared: boolean;
|
|
47
|
+
reason?: string;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
50
|
+
/** `litert-lm:accelerators`: one step of a prepare; `fraction` 0…1 while it downloads, `null` when failed. */
|
|
51
|
+
export interface LiteRtLmAcceleratorsEvent {
|
|
52
|
+
accelerator: string;
|
|
53
|
+
stage: FoundryLocalPrepareStage;
|
|
54
|
+
fraction: number | null;
|
|
55
|
+
reason?: string;
|
|
56
|
+
}
|
|
57
|
+
/** What `litert-host inspect` reads from a `.litertlm` file without an engine (spec "Сведения о файле"). */
|
|
58
|
+
export interface LiteRtLmFileMetadata {
|
|
59
|
+
model_type: 'llm' | 'embedding' | 'unknown';
|
|
60
|
+
/** `null` when the file does not declare one. */
|
|
61
|
+
max_context_tokens: number | null;
|
|
62
|
+
dynamic_context: boolean;
|
|
63
|
+
/** As the file declares it; Gemma 4 files say `false` and call tools anyway. */
|
|
64
|
+
function_calling: boolean;
|
|
65
|
+
thinking: boolean;
|
|
66
|
+
modalities: Array<'text' | 'vision' | 'audio' | 'video'>;
|
|
67
|
+
/** Backends of the text modality, the default first. */
|
|
68
|
+
backends: LiteRtLmBackendId[];
|
|
69
|
+
vision_backends: LiteRtLmBackendId[];
|
|
70
|
+
npu: {
|
|
71
|
+
brand: 'unknown' | 'qualcomm' | 'google-tensor' | 'mediatek' | 'intel' | 'samsung';
|
|
72
|
+
soc: string | null;
|
|
73
|
+
} | null;
|
|
74
|
+
speculative_decoding: boolean;
|
|
75
|
+
min_runtime_version: string | null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* `POST /models/litert-lm/check`: a variant before it is downloaded (`backend`, `npu`,
|
|
79
|
+
* `min_runtime_version` from conf), a downloaded file by `path` inside `<data>/litert-lm/models` with
|
|
80
|
+
* the variant's `backend`/`npu`, or an installed model by `model_id`.
|
|
81
|
+
*/
|
|
82
|
+
export interface LiteRtLmCheckRequest {
|
|
83
|
+
backend?: string;
|
|
84
|
+
npu?: string;
|
|
85
|
+
min_runtime_version?: string;
|
|
86
|
+
path?: string;
|
|
87
|
+
model_id?: string;
|
|
88
|
+
}
|
|
89
|
+
export declare const LITERT_LM_CHECK_VERDICTS: readonly ["ok", "engine-not-installed", "platform-unsupported", "accelerator-unavailable", "accelerator-not-prepared", "requires-newer-engine"];
|
|
90
|
+
export type LiteRtLmCheckVerdict = (typeof LITERT_LM_CHECK_VERDICTS)[number];
|
|
91
|
+
export interface LiteRtLmCheckResult {
|
|
92
|
+
verdict: LiteRtLmCheckVerdict;
|
|
93
|
+
/** Why, in words a card can show; `null` for `ok`. */
|
|
94
|
+
reason: string | null;
|
|
95
|
+
/** The file's facts, for a file on disk: what a client writes into `model.yml`. */
|
|
96
|
+
metadata?: LiteRtLmFileMetadata;
|
|
97
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LiteRT-LM's accelerator and compatibility check (openspec change `add-litert-lm-runtime`, tasks
|
|
3
|
+
* 6.4–6.5): the same routes, event and answer shapes as Foundry Local's, so the clients reuse their UI.
|
|
4
|
+
* The one accelerator is `openvino` — Intel's libraries an NPU variant needs on Windows (design D3);
|
|
5
|
+
* nothing downloads it on its own: not the start, not an install, not a load.
|
|
6
|
+
*
|
|
7
|
+
* Browser-safe: types and constants only. snake_case on the wire.
|
|
8
|
+
*/
|
|
9
|
+
export const LITERT_LM_CHECK_VERDICTS = [
|
|
10
|
+
'ok',
|
|
11
|
+
'engine-not-installed',
|
|
12
|
+
'platform-unsupported',
|
|
13
|
+
'accelerator-unavailable',
|
|
14
|
+
'accelerator-not-prepared',
|
|
15
|
+
'requires-newer-engine',
|
|
16
|
+
];
|
|
17
|
+
//# sourceMappingURL=litert-lm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"litert-lm.js","sourceRoot":"","sources":["../../src/contracts/litert-lm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsFH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI;IACJ,sBAAsB;IACtB,sBAAsB;IACtB,yBAAyB;IACzB,0BAA0B;IAC1B,uBAAuB;CACf,CAAA"}
|
|
@@ -30,6 +30,8 @@ export interface ModelYml {
|
|
|
30
30
|
atomic_runtime?: ModelYmlAtomicRuntime;
|
|
31
31
|
/** A Foundry Local variant (`<data>/foundry-local/models/<variant_id>/`), written by the app's installer. */
|
|
32
32
|
foundry_local?: ModelYmlFoundryLocal;
|
|
33
|
+
/** A LiteRT-LM variant (`<data>/litert-lm/models/<variant_id>/`), written by the app or `atc`. */
|
|
34
|
+
litert_lm?: ModelYmlLiteRtLm;
|
|
33
35
|
}
|
|
34
36
|
export interface ModelYmlAtomicRuntime {
|
|
35
37
|
provider: 'atomic-prism';
|
|
@@ -66,5 +68,34 @@ export interface ModelYmlFoundryLocal {
|
|
|
66
68
|
reasoning_start?: string;
|
|
67
69
|
reasoning_end?: string;
|
|
68
70
|
}
|
|
71
|
+
/** The backends a LiteRT-LM variant runs on (change `add-litert-lm-runtime`). */
|
|
72
|
+
export declare const LITERT_LM_BACKENDS: readonly ["cpu", "gpu", "npu"];
|
|
73
|
+
export type LiteRtLmBackendId = (typeof LITERT_LM_BACKENDS)[number];
|
|
74
|
+
/** The Intel NPU generations LiteRT-LM files are compiled for: Lunar Lake and Panther Lake (design D3). */
|
|
75
|
+
export declare const LITERT_LM_NPUS: readonly ["intel-lnl", "intel-ptl"];
|
|
76
|
+
export type LiteRtLmNpu = (typeof LITERT_LM_NPUS)[number];
|
|
77
|
+
/**
|
|
78
|
+
* The `litert_lm` block (spec `litert-lm-models`, task 6.2): which variant the folder holds and what it
|
|
79
|
+
* can do. `tools`, `reasoning` and `vision` come from conf's list, or for a Hugging Face model from
|
|
80
|
+
* core's check of the downloaded file.
|
|
81
|
+
*/
|
|
82
|
+
export interface ModelYmlLiteRtLm {
|
|
83
|
+
model_id: string;
|
|
84
|
+
variant_id: string;
|
|
85
|
+
backend: LiteRtLmBackendId;
|
|
86
|
+
/** Present exactly when `backend` is `npu`. */
|
|
87
|
+
npu?: LiteRtLmNpu;
|
|
88
|
+
/** `<org>/<name>` on Hugging Face. */
|
|
89
|
+
repo: string;
|
|
90
|
+
revision: string;
|
|
91
|
+
/** The file's path in the repository; its name in the variant folder. */
|
|
92
|
+
file: string;
|
|
93
|
+
/** Absent when neither conf nor the file declares one. */
|
|
94
|
+
context_length?: number;
|
|
95
|
+
tools: boolean;
|
|
96
|
+
reasoning: boolean;
|
|
97
|
+
vision: boolean;
|
|
98
|
+
source: 'curated' | 'huggingface';
|
|
99
|
+
}
|
|
69
100
|
/** Key order the app's serde_yaml writer produces; `writeModelYml` must emit keys in this order. */
|
|
70
101
|
export declare const MODEL_YML_KEY_ORDER: readonly (keyof ModelYml)[];
|
|
@@ -12,6 +12,10 @@ export const FOUNDRY_LOCAL_EXECUTION_PROVIDERS = [
|
|
|
12
12
|
'vitisai',
|
|
13
13
|
];
|
|
14
14
|
export const FOUNDRY_LOCAL_DEVICES = ['cpu', 'gpu', 'npu'];
|
|
15
|
+
/** The backends a LiteRT-LM variant runs on (change `add-litert-lm-runtime`). */
|
|
16
|
+
export const LITERT_LM_BACKENDS = ['cpu', 'gpu', 'npu'];
|
|
17
|
+
/** The Intel NPU generations LiteRT-LM files are compiled for: Lunar Lake and Panther Lake (design D3). */
|
|
18
|
+
export const LITERT_LM_NPUS = ['intel-lnl', 'intel-ptl'];
|
|
15
19
|
/** Key order the app's serde_yaml writer produces; `writeModelYml` must emit keys in this order. */
|
|
16
20
|
export const MODEL_YML_KEY_ORDER = [
|
|
17
21
|
'model_path',
|
|
@@ -31,5 +35,6 @@ export const MODEL_YML_KEY_ORDER = [
|
|
|
31
35
|
'capabilities',
|
|
32
36
|
'atomic_runtime',
|
|
33
37
|
'foundry_local',
|
|
38
|
+
'litert_lm',
|
|
34
39
|
];
|
|
35
40
|
//# sourceMappingURL=model-yml.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-yml.js","sourceRoot":"","sources":["../../src/contracts/model-yml.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"model-yml.js","sourceRoot":"","sources":["../../src/contracts/model-yml.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsDH,2FAA2F;AAC3F,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,KAAK;IACL,MAAM;IACN,QAAQ;IACR,UAAU;IACV,KAAK;IACL,SAAS;CACD,CAAA;AAGV,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAA;AAyBnE,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAA;AAGhE,2GAA2G;AAC3G,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,WAAW,CAAU,CAAA;AA2BjE,oGAAoG;AACpG,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC9D,YAAY;IACZ,aAAa;IACb,MAAM;IACN,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,mBAAmB;IACnB,WAAW;IACX,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,QAAQ;IACR,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,WAAW;CACZ,CAAA"}
|
|
@@ -14,8 +14,12 @@
|
|
|
14
14
|
* `foundry-local` is Microsoft Foundry Local (ONNX Runtime GenAI: NPU, CUDA, WebGPU, CPU), run by a
|
|
15
15
|
* host process of this binary per model (openspec change `add-foundry-local`); registered only on
|
|
16
16
|
* the platforms its archives support.
|
|
17
|
+
*
|
|
18
|
+
* `litert-lm` is Google's LiteRT-LM (`.litertlm` models on CPU, GPU and an Intel NPU), run by a host
|
|
19
|
+
* process of this binary per model with its own OpenAI server (openspec change
|
|
20
|
+
* `add-litert-lm-runtime`); registered only on macOS arm64, Linux x64/arm64 and Windows x64.
|
|
17
21
|
*/
|
|
18
|
-
export type LocalProviderId = 'llamacpp-upstream' | 'llamacpp' | 'atomic-prism' | 'mlx' | 'foundation-models' | 'foundry-local' | ManagedProviderId;
|
|
22
|
+
export type LocalProviderId = 'llamacpp-upstream' | 'llamacpp' | 'atomic-prism' | 'mlx' | 'foundation-models' | 'foundry-local' | 'litert-lm' | ManagedProviderId;
|
|
19
23
|
/**
|
|
20
24
|
* The managed engines — each one a container core runs from a model of the managed model store — in
|
|
21
25
|
* the order their registry lists them (change `add-sglang-runtime`, D1). The one list every place
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/contracts/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/contracts/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAA;AAG/E,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAQ,oBAA0C,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACvE,CAAC;AA8CD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,OAAO;CACC,CAAA"}
|
|
@@ -84,6 +84,15 @@ export interface FoundationModelsConfig {
|
|
|
84
84
|
export interface FoundryLocalConfig {
|
|
85
85
|
timeout: number;
|
|
86
86
|
}
|
|
87
|
+
/** `litert-lm` (change `add-litert-lm-runtime`, design D6). */
|
|
88
|
+
export interface LiteRtLmConfig {
|
|
89
|
+
/** Tokens; `0` takes `model.yml`'s length. Always cut to the file's maximum. */
|
|
90
|
+
ctx_len: number;
|
|
91
|
+
/** On when the file carries a draft model. */
|
|
92
|
+
speculative_decoding: boolean;
|
|
93
|
+
/** Seconds a model may take to load in its host. */
|
|
94
|
+
timeout: number;
|
|
95
|
+
}
|
|
87
96
|
/**
|
|
88
97
|
* `tensorrt-llm` as the settings store holds it (`src/settings/schema/tensorrt-llm.json`). `gpu_id: ''`
|
|
89
98
|
* lets a load pick the card with the most free memory and `load_timeout_seconds: 0` keeps the engine's own
|
|
@@ -162,7 +171,7 @@ export interface SglangProviderConfig {
|
|
|
162
171
|
default_min_p: string;
|
|
163
172
|
default_repetition_penalty: string;
|
|
164
173
|
}
|
|
165
|
-
export type ProviderSettings<P extends LocalProviderId> = P extends 'mlx' ? MlxConfig : P extends 'foundation-models' ? FoundationModelsConfig : P extends 'tensorrt-llm' ? TensorrtLlmProviderConfig : P extends 'vllm' ? VllmProviderConfig : P extends 'sglang' ? SglangProviderConfig : P extends 'foundry-local' ? FoundryLocalConfig : LlamacppConfig;
|
|
174
|
+
export type ProviderSettings<P extends LocalProviderId> = P extends 'mlx' ? MlxConfig : P extends 'foundation-models' ? FoundationModelsConfig : P extends 'tensorrt-llm' ? TensorrtLlmProviderConfig : P extends 'vllm' ? VllmProviderConfig : P extends 'sglang' ? SglangProviderConfig : P extends 'foundry-local' ? FoundryLocalConfig : P extends 'litert-lm' ? LiteRtLmConfig : LlamacppConfig;
|
|
166
175
|
/** UI descriptor of one setting (mirrors the app's SettingComponentProps). */
|
|
167
176
|
export interface SettingDescriptor {
|
|
168
177
|
key: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/contracts/settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/contracts/settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuOH,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,EAAE;IACjB,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,OAAO;IACzB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;CACpB,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* When an app-owned core retires itself. An app that crashes cannot detach, so once its client
|
|
3
|
+
* registration has expired (`CLIENT_EXPIRY_MS`, three missed heartbeats) the app owner unloads its
|
|
4
|
+
* models and releases its lock (ADR 2026-09-17-isolate-app-and-cli-owners). An expired registration
|
|
5
|
+
* is only evidence that the app is gone, though, and two things make it false evidence (ADR
|
|
6
|
+
* 2026-10-26-an-app-core-does-not-retire-while-it-works):
|
|
7
|
+
* - the core itself was not running: a machine swapping an image model, or asleep, runs neither
|
|
8
|
+
* the heartbeats waiting in the socket nor this check, and when it resumes the check comes first;
|
|
9
|
+
* - the core is in the middle of work a retirement would throw away (an image job, a model load).
|
|
10
|
+
* The first is measured here as the lateness of the check and handed back to every lease; the second
|
|
11
|
+
* postpones the retirement until the work is over. An app that really crashed still loses its core,
|
|
12
|
+
* only later; an app that is back registers again and the question never comes up.
|
|
13
|
+
*
|
|
14
|
+
* Pure: the clock, the clients and the work come in, the decision goes out. `create.ts` runs it.
|
|
15
|
+
*/
|
|
16
|
+
import type { GpuOccupant } from './gpu/index.js';
|
|
17
|
+
/** How often the app owner looks at its clients. */
|
|
18
|
+
export declare const APP_LEASE_CHECK_MS = 5000;
|
|
19
|
+
export interface AppLeaseCheck {
|
|
20
|
+
/** Registered clients, after expiry. */
|
|
21
|
+
clients: number;
|
|
22
|
+
/** Whether any client has ever registered with this core. */
|
|
23
|
+
everRegistered: boolean;
|
|
24
|
+
now: number;
|
|
25
|
+
/** Until when a core nobody has registered with yet waits for its app. */
|
|
26
|
+
startupDeadline: number;
|
|
27
|
+
/** Work a retirement would throw away, said for the log; empty when idle (`workInProgress`). */
|
|
28
|
+
work: readonly string[];
|
|
29
|
+
}
|
|
30
|
+
export type AppLeaseDecision =
|
|
31
|
+
/** A client is attached, or the app that started this core has not had time to register. */
|
|
32
|
+
{
|
|
33
|
+
action: 'keep';
|
|
34
|
+
}
|
|
35
|
+
/** Nobody is attached and nothing is running: unload, release the lock, exit. */
|
|
36
|
+
| {
|
|
37
|
+
action: 'retire';
|
|
38
|
+
}
|
|
39
|
+
/** Nobody is attached, but retiring now would throw `work` away: look again at the next check. */
|
|
40
|
+
| {
|
|
41
|
+
action: 'wait';
|
|
42
|
+
work: readonly string[];
|
|
43
|
+
};
|
|
44
|
+
export declare function appLeaseDecision(check: AppLeaseCheck): AppLeaseDecision;
|
|
45
|
+
/**
|
|
46
|
+
* How long this process was not running between two checks, beyond the interval it asked for: the
|
|
47
|
+
* time no client could have reached it. Zero for a check on time, or for a clock that went back.
|
|
48
|
+
*/
|
|
49
|
+
export declare function stalledMs(previousCheckAt: number, now: number, intervalMs?: number): number;
|
|
50
|
+
/**
|
|
51
|
+
* The work a retirement would throw away, from what every engine reports it holds: a session that
|
|
52
|
+
* says it is busy (an image or video job), and a model being loaded. Embedding and transcription
|
|
53
|
+
* sessions are not work worth keeping a core alive for; a loaded model that answers chat is not
|
|
54
|
+
* either, since nothing tells an idle one from a busy one without a proxy in front of every request.
|
|
55
|
+
*/
|
|
56
|
+
export declare function workInProgress(occupants: readonly GpuOccupant[]): string[];
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* When an app-owned core retires itself. An app that crashes cannot detach, so once its client
|
|
3
|
+
* registration has expired (`CLIENT_EXPIRY_MS`, three missed heartbeats) the app owner unloads its
|
|
4
|
+
* models and releases its lock (ADR 2026-09-17-isolate-app-and-cli-owners). An expired registration
|
|
5
|
+
* is only evidence that the app is gone, though, and two things make it false evidence (ADR
|
|
6
|
+
* 2026-10-26-an-app-core-does-not-retire-while-it-works):
|
|
7
|
+
* - the core itself was not running: a machine swapping an image model, or asleep, runs neither
|
|
8
|
+
* the heartbeats waiting in the socket nor this check, and when it resumes the check comes first;
|
|
9
|
+
* - the core is in the middle of work a retirement would throw away (an image job, a model load).
|
|
10
|
+
* The first is measured here as the lateness of the check and handed back to every lease; the second
|
|
11
|
+
* postpones the retirement until the work is over. An app that really crashed still loses its core,
|
|
12
|
+
* only later; an app that is back registers again and the question never comes up.
|
|
13
|
+
*
|
|
14
|
+
* Pure: the clock, the clients and the work come in, the decision goes out. `create.ts` runs it.
|
|
15
|
+
*/
|
|
16
|
+
/** How often the app owner looks at its clients. */
|
|
17
|
+
export const APP_LEASE_CHECK_MS = 5_000;
|
|
18
|
+
export function appLeaseDecision(check) {
|
|
19
|
+
if (check.clients > 0)
|
|
20
|
+
return { action: 'keep' };
|
|
21
|
+
if (!check.everRegistered && check.now <= check.startupDeadline)
|
|
22
|
+
return { action: 'keep' };
|
|
23
|
+
if (check.work.length > 0)
|
|
24
|
+
return { action: 'wait', work: check.work };
|
|
25
|
+
return { action: 'retire' };
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* How long this process was not running between two checks, beyond the interval it asked for: the
|
|
29
|
+
* time no client could have reached it. Zero for a check on time, or for a clock that went back.
|
|
30
|
+
*/
|
|
31
|
+
export function stalledMs(previousCheckAt, now, intervalMs = APP_LEASE_CHECK_MS) {
|
|
32
|
+
return Math.max(0, now - previousCheckAt - intervalMs);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The work a retirement would throw away, from what every engine reports it holds: a session that
|
|
36
|
+
* says it is busy (an image or video job), and a model being loaded. Embedding and transcription
|
|
37
|
+
* sessions are not work worth keeping a core alive for; a loaded model that answers chat is not
|
|
38
|
+
* either, since nothing tells an idle one from a busy one without a proxy in front of every request.
|
|
39
|
+
*/
|
|
40
|
+
export function workInProgress(occupants) {
|
|
41
|
+
const work = [];
|
|
42
|
+
for (const occupant of occupants) {
|
|
43
|
+
if (occupant.busy !== undefined)
|
|
44
|
+
work.push(occupant.busy);
|
|
45
|
+
else if (occupant.state === 'loading' && !occupant.auxiliary)
|
|
46
|
+
work.push(`${occupant.provider}/${occupant.model_id} is loading`);
|
|
47
|
+
}
|
|
48
|
+
return work;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=app-lease.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-lease.js","sourceRoot":"","sources":["../../src/core/app-lease.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,oDAAoD;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAsBvC,MAAM,UAAU,gBAAgB,CAAC,KAAoB;IACnD,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IAChD,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,eAAe;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IAC1F,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;IACtE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,eAAuB,EAAE,GAAW,EAAE,UAAU,GAAG,kBAAkB;IAC7F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,eAAe,GAAG,UAAU,CAAC,CAAA;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiC;IAC9D,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;aACpD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,SAAS;YAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,aAAa,CAAC,CAAA;IACrE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -77,11 +77,16 @@ export interface AtomicCoreParts {
|
|
|
77
77
|
telemetry?: TelemetryControl | undefined;
|
|
78
78
|
}
|
|
79
79
|
export declare class AtomicCore {
|
|
80
|
-
readonly version = "0.
|
|
80
|
+
readonly version = "0.19.1";
|
|
81
81
|
private lifecycle;
|
|
82
82
|
private shutdownPromise;
|
|
83
83
|
/** Whether the app's API screen is watching; previews are collected only then. */
|
|
84
84
|
inspecting: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* The provider the app selected to serve each model id on the public server, read per request;
|
|
87
|
+
* kept across server restarts, not across core restarts (the app hands it over again).
|
|
88
|
+
*/
|
|
89
|
+
servedSelection: ReadonlyMap<string, string>;
|
|
85
90
|
private resolveStopped;
|
|
86
91
|
/** Resolves once this core has stopped, however that was triggered (API, signal, or in-process). */
|
|
87
92
|
readonly stopped: Promise<void>;
|
package/dist/core/atomic-core.js
CHANGED
|
@@ -27,6 +27,11 @@ export class AtomicCore {
|
|
|
27
27
|
shutdownPromise;
|
|
28
28
|
/** Whether the app's API screen is watching; previews are collected only then. */
|
|
29
29
|
inspecting = false;
|
|
30
|
+
/**
|
|
31
|
+
* The provider the app selected to serve each model id on the public server, read per request;
|
|
32
|
+
* kept across server restarts, not across core restarts (the app hands it over again).
|
|
33
|
+
*/
|
|
34
|
+
servedSelection = new Map();
|
|
30
35
|
resolveStopped;
|
|
31
36
|
/** Resolves once this core has stopped, however that was triggered (API, signal, or in-process). */
|
|
32
37
|
stopped = new Promise((resolve) => {
|
|
@@ -129,6 +134,7 @@ export class AtomicCore {
|
|
|
129
134
|
findLocal: (provider, modelId) => this.localSessions.localTarget(provider, modelId),
|
|
130
135
|
listLocal: () => this.localSessions.listLocalTargets(),
|
|
131
136
|
providers: () => this.cloud.routing(),
|
|
137
|
+
selection: () => this.servedSelection,
|
|
132
138
|
chatgpt: parts.chatgptBackend,
|
|
133
139
|
increaseCtx: (provider, modelId, trigger) => this.localSessions.serverCtxRequest(provider, modelId, trigger),
|
|
134
140
|
emit: (name, payload) => this.events.emit(name, payload),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomic-core.js","sourceRoot":"","sources":["../../src/core/atomic-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAiBjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAG1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AAIjE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAIxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAkD3C,MAAM,OAAO,UAAU;IACZ,OAAO,GAAG,YAAY,CAAA;IACvB,SAAS,GAAuC,SAAS,CAAA;IACzD,eAAe,CAA2B;IAClD,kFAAkF;IAClF,UAAU,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"atomic-core.js","sourceRoot":"","sources":["../../src/core/atomic-core.ts"],"names":[],"mappings":"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"}
|