@atomic-chat/core 0.18.4 → 0.19.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/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 +3 -0
- 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/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 +141 -20
- 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/host/recipes/executor-io-windows.d.ts +10 -1
- package/dist/host/recipes/executor-io-windows.js +9 -3
- package/dist/host/recipes/executor-io-windows.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/environment/host-exec.d.ts +2 -0
- package/dist/runtime/environment/host-exec.js +15 -4
- package/dist/runtime/environment/host-exec.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/shared/external-sessions.js +1 -0
- package/dist/runtime/shared/external-sessions.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 +64 -14
- 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/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,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The arguments of the hidden `litert-host` mode (openspec change `add-litert-lm-runtime`, task 5.1).
|
|
3
|
+
* Core is the only caller, so the parse is strict: anything unknown is a bug on core's side.
|
|
4
|
+
*
|
|
5
|
+
* litert-host probe --lib <build>
|
|
6
|
+
* litert-host inspect --lib <build> <file>
|
|
7
|
+
* litert-host serve --lib <build> --engine-version <v> --model <file> --backend cpu|gpu|npu
|
|
8
|
+
* --max-tokens <n> --port <p, 0 for any> --cache <dir> --id <model id>
|
|
9
|
+
* [--dispatch <dir> --ov-libs <dir>] [--speculative] [--reasoning]
|
|
10
|
+
*/
|
|
11
|
+
export declare const LITERT_LM_BACKENDS: readonly ["cpu", "gpu", "npu"];
|
|
12
|
+
export type LiteRtLmBackend = (typeof LITERT_LM_BACKENDS)[number];
|
|
13
|
+
export type LiteRtHostArgs = {
|
|
14
|
+
mode: 'probe';
|
|
15
|
+
lib: string;
|
|
16
|
+
} | {
|
|
17
|
+
mode: 'inspect';
|
|
18
|
+
lib: string;
|
|
19
|
+
file: string;
|
|
20
|
+
} | {
|
|
21
|
+
mode: 'serve';
|
|
22
|
+
/** The build directory, holding `lib/`. */
|
|
23
|
+
lib: string;
|
|
24
|
+
/** The build's LiteRT-LM version, checked against the file's `min_runtime_version`. */
|
|
25
|
+
engineVersion: string;
|
|
26
|
+
model: string;
|
|
27
|
+
backend: LiteRtLmBackend;
|
|
28
|
+
/** The engine's `max_num_tokens`, already cut to what the file allows. */
|
|
29
|
+
maxTokens: number;
|
|
30
|
+
port: number;
|
|
31
|
+
/** The library's `cache_dir`; created when missing. */
|
|
32
|
+
cache: string;
|
|
33
|
+
/** The id `/v1/models` lists: core's session id. */
|
|
34
|
+
id: string;
|
|
35
|
+
/** NPU only: the build's `vendors/intel_openvino/dispatch`. */
|
|
36
|
+
dispatch?: string;
|
|
37
|
+
/** NPU only: the prepared OpenVINO libraries. */
|
|
38
|
+
ovLibs?: string;
|
|
39
|
+
/** Use the file's draft model when it has one. */
|
|
40
|
+
speculative: boolean;
|
|
41
|
+
/** Think by default (`model.yml` `reasoning`); a request may still turn it off. */
|
|
42
|
+
reasoning: boolean;
|
|
43
|
+
};
|
|
44
|
+
export declare class LiteRtHostUsageError extends Error {
|
|
45
|
+
constructor(message: string);
|
|
46
|
+
}
|
|
47
|
+
export declare function parseLiteRtHostArgs(argv: readonly string[]): LiteRtHostArgs;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The arguments of the hidden `litert-host` mode (openspec change `add-litert-lm-runtime`, task 5.1).
|
|
3
|
+
* Core is the only caller, so the parse is strict: anything unknown is a bug on core's side.
|
|
4
|
+
*
|
|
5
|
+
* litert-host probe --lib <build>
|
|
6
|
+
* litert-host inspect --lib <build> <file>
|
|
7
|
+
* litert-host serve --lib <build> --engine-version <v> --model <file> --backend cpu|gpu|npu
|
|
8
|
+
* --max-tokens <n> --port <p, 0 for any> --cache <dir> --id <model id>
|
|
9
|
+
* [--dispatch <dir> --ov-libs <dir>] [--speculative] [--reasoning]
|
|
10
|
+
*/
|
|
11
|
+
import { parseArgs } from 'node:util';
|
|
12
|
+
export const LITERT_LM_BACKENDS = ['cpu', 'gpu', 'npu'];
|
|
13
|
+
export class LiteRtHostUsageError extends Error {
|
|
14
|
+
constructor(message) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = 'LiteRtHostUsageError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const required = (values, key) => {
|
|
20
|
+
const value = values[key];
|
|
21
|
+
if (typeof value !== 'string' || value === '')
|
|
22
|
+
throw new LiteRtHostUsageError(`--${key} is required`);
|
|
23
|
+
return value;
|
|
24
|
+
};
|
|
25
|
+
const VERSION_RE = /^\d+\.\d+\.\d+$/;
|
|
26
|
+
function wholeNumber(values, key, min, max) {
|
|
27
|
+
const raw = required(values, key);
|
|
28
|
+
const value = Number(raw);
|
|
29
|
+
if (!Number.isSafeInteger(value) || value < min || value > max)
|
|
30
|
+
throw new LiteRtHostUsageError(`--${key} ${raw} is not a whole number from ${min} to ${max}`);
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
export function parseLiteRtHostArgs(argv) {
|
|
34
|
+
const [mode, ...rest] = argv;
|
|
35
|
+
try {
|
|
36
|
+
if (mode === 'probe') {
|
|
37
|
+
const { values } = parseArgs({ args: rest, options: { lib: { type: 'string' } }, strict: true });
|
|
38
|
+
return { mode, lib: required(values, 'lib') };
|
|
39
|
+
}
|
|
40
|
+
if (mode === 'inspect') {
|
|
41
|
+
const { values, positionals } = parseArgs({
|
|
42
|
+
args: rest,
|
|
43
|
+
options: { lib: { type: 'string' } },
|
|
44
|
+
strict: true,
|
|
45
|
+
allowPositionals: true,
|
|
46
|
+
});
|
|
47
|
+
const lib = required(values, 'lib');
|
|
48
|
+
if (positionals.length !== 1 || !positionals[0])
|
|
49
|
+
throw new LiteRtHostUsageError('inspect takes one model file');
|
|
50
|
+
return { mode, lib, file: positionals[0] };
|
|
51
|
+
}
|
|
52
|
+
if (mode === 'serve') {
|
|
53
|
+
const { values } = parseArgs({
|
|
54
|
+
args: rest,
|
|
55
|
+
options: {
|
|
56
|
+
'lib': { type: 'string' },
|
|
57
|
+
'engine-version': { type: 'string' },
|
|
58
|
+
'model': { type: 'string' },
|
|
59
|
+
'backend': { type: 'string' },
|
|
60
|
+
'max-tokens': { type: 'string' },
|
|
61
|
+
'port': { type: 'string' },
|
|
62
|
+
'cache': { type: 'string' },
|
|
63
|
+
'id': { type: 'string' },
|
|
64
|
+
'dispatch': { type: 'string' },
|
|
65
|
+
'ov-libs': { type: 'string' },
|
|
66
|
+
'speculative': { type: 'boolean' },
|
|
67
|
+
'reasoning': { type: 'boolean' },
|
|
68
|
+
},
|
|
69
|
+
strict: true,
|
|
70
|
+
});
|
|
71
|
+
const lib = required(values, 'lib');
|
|
72
|
+
const engineVersion = required(values, 'engine-version');
|
|
73
|
+
if (!VERSION_RE.test(engineVersion))
|
|
74
|
+
throw new LiteRtHostUsageError(`--engine-version ${engineVersion} is not X.Y.Z`);
|
|
75
|
+
const backend = required(values, 'backend');
|
|
76
|
+
if (!LITERT_LM_BACKENDS.some((known) => known === backend))
|
|
77
|
+
throw new LiteRtHostUsageError(`--backend ${backend} is not cpu, gpu or npu`);
|
|
78
|
+
const dispatch = values['dispatch'];
|
|
79
|
+
const ovLibs = values['ov-libs'];
|
|
80
|
+
if (backend === 'npu' && (!dispatch || !ovLibs))
|
|
81
|
+
throw new LiteRtHostUsageError('--backend npu needs --dispatch and --ov-libs');
|
|
82
|
+
if (backend !== 'npu' && (dispatch !== undefined || ovLibs !== undefined))
|
|
83
|
+
throw new LiteRtHostUsageError('--dispatch and --ov-libs are only for --backend npu');
|
|
84
|
+
return {
|
|
85
|
+
mode,
|
|
86
|
+
lib,
|
|
87
|
+
engineVersion,
|
|
88
|
+
model: required(values, 'model'),
|
|
89
|
+
backend: backend,
|
|
90
|
+
maxTokens: wholeNumber(values, 'max-tokens', 1, 16_777_216),
|
|
91
|
+
port: wholeNumber(values, 'port', 0, 65535),
|
|
92
|
+
cache: required(values, 'cache'),
|
|
93
|
+
id: required(values, 'id'),
|
|
94
|
+
...(dispatch ? { dispatch } : {}),
|
|
95
|
+
...(ovLibs ? { ovLibs } : {}),
|
|
96
|
+
speculative: values['speculative'] === true,
|
|
97
|
+
reasoning: values['reasoning'] === true,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
if (error instanceof LiteRtHostUsageError)
|
|
103
|
+
throw error;
|
|
104
|
+
throw new LiteRtHostUsageError(error instanceof Error ? error.message : String(error));
|
|
105
|
+
}
|
|
106
|
+
throw new LiteRtHostUsageError(`litert-host: unknown mode ${JSON.stringify(mode ?? '')} (probe, inspect, serve)`);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../../src/runtime/litert-lm/host/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `LiteRtLibrary` over `bun:ffi` — the second and last file in `src/` that may import `bun:*` (change
|
|
3
|
+
* `add-litert-lm-runtime`, design D1 and decision 3.6; allow-listed in both runtime-agnostic gates). It
|
|
4
|
+
* is imported dynamically by the `litert-host` mode alone, so the npm package still loads under Node.
|
|
5
|
+
*
|
|
6
|
+
* Streaming is the hard part (spike S2). The library calls a stream callback on a C++ thread of its
|
|
7
|
+
* own and frees the chunk as soon as the callback returns. A plain `JSCallback` cannot run there; a
|
|
8
|
+
* `threadsafe` one only queues the call, so the JS thread would read freed memory, and even with the
|
|
9
|
+
* chunk copied first Bun's threadsafe callbacks crashed about one run in five under a fast stream.
|
|
10
|
+
* So the callback is C: a shim compiled at start by the TinyCC built into Bun (`cc`) copies each chunk
|
|
11
|
+
* on the library's thread into a FIFO under a mutex, and JS drains the FIFO on a 2 ms timer that runs
|
|
12
|
+
* only while a generation is under way. The shim links nothing (`-nostdlib`: TinyCC finds no libc
|
|
13
|
+
* without development packages on Linux); `malloc` and the mutex come in as pointers from `dlsym`.
|
|
14
|
+
*/
|
|
15
|
+
import type { LoadLiteRtLibrary } from './library.js';
|
|
16
|
+
export declare const loadBunLiteRtLibrary: LoadLiteRtLibrary;
|