@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-history.js","sourceRoot":"","sources":["../../src/diffusion/video-history.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAG3F,iDAAiD;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAC9B,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAA8B,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAE5E;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAyB,EAAE,MAAmB;IACxE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IACjD,MAAM,IAAI,GAAuB;QAC/B,GAAG,IAAI;QACP,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"video-history.js","sourceRoot":"","sources":["../../src/diffusion/video-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { VideoRecipe } from '../contracts/index.js';
|
|
8
8
|
export declare const RECIPE_SIDECAR_SUFFIX = ".json";
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* The sidecar's text: every key, fixed order, `null`s, two-space indent like the flags file. A
|
|
11
|
+
* provider's clip leaves out the steps and CFG it is never sent, and the seed its model did not take.
|
|
12
|
+
*/
|
|
10
13
|
export declare function serializeVideoRecipe(recipe: VideoRecipe): string;
|
|
11
14
|
/** The recipe out of a sidecar, or `undefined` when the text is not one. */
|
|
12
15
|
export declare function parseVideoRecipe(text: string): VideoRecipe | undefined;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* order of `ImageRecipe`'s sibling, so a clip copied anywhere can be reproduced. The parser is as
|
|
5
5
|
* strict as `parseRecipe`, because it decides whether a `.webm` in the folder is ours.
|
|
6
6
|
*/
|
|
7
|
-
import { orderedEngine, parseRecipeEngine } from './recipe.js';
|
|
7
|
+
import { knob, knobOk, orderedEngine, parseRecipeEngine } from './recipe.js';
|
|
8
8
|
import { VIDEO_WORKFLOWS } from './workflow.js';
|
|
9
9
|
export const RECIPE_SIDECAR_SUFFIX = '.json';
|
|
10
10
|
const OUTPUT_FORMATS = ['webm', 'mp4'];
|
|
@@ -22,7 +22,10 @@ function optional(value, check) {
|
|
|
22
22
|
return null;
|
|
23
23
|
return check(value) ? value : undefined;
|
|
24
24
|
}
|
|
25
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* The sidecar's text: every key, fixed order, `null`s, two-space indent like the flags file. A
|
|
27
|
+
* provider's clip leaves out the steps and CFG it is never sent, and the seed its model did not take.
|
|
28
|
+
*/
|
|
26
29
|
export function serializeVideoRecipe(recipe) {
|
|
27
30
|
const ordered = {
|
|
28
31
|
jobId: recipe.jobId,
|
|
@@ -33,10 +36,10 @@ export function serializeVideoRecipe(recipe) {
|
|
|
33
36
|
frames: recipe.frames,
|
|
34
37
|
frameCount: recipe.frameCount,
|
|
35
38
|
fps: recipe.fps,
|
|
36
|
-
steps: recipe.steps,
|
|
37
|
-
cfgScale: recipe.cfgScale,
|
|
39
|
+
...(recipe.steps === undefined ? {} : { steps: recipe.steps }),
|
|
40
|
+
...(recipe.cfgScale === undefined ? {} : { cfgScale: recipe.cfgScale }),
|
|
38
41
|
guidance: recipe.guidance,
|
|
39
|
-
seed: recipe.seed,
|
|
42
|
+
...(recipe.seed === undefined ? {} : { seed: recipe.seed }),
|
|
40
43
|
samplingMethod: recipe.samplingMethod,
|
|
41
44
|
flowShift: recipe.flowShift,
|
|
42
45
|
workflow: recipe.workflow,
|
|
@@ -114,6 +117,7 @@ export function parseVideoRecipe(text) {
|
|
|
114
117
|
const flowShift = optional(raw['flowShift'], isNumber);
|
|
115
118
|
const parsedEngine = parseRecipeEngine(engine);
|
|
116
119
|
const remote = parseRemoteVideo(raw['remote']);
|
|
120
|
+
const fromProvider = parsedEngine?.kind === 'remote';
|
|
117
121
|
const ok = isString(raw['jobId']) &&
|
|
118
122
|
isString(raw['prompt']) &&
|
|
119
123
|
isWhole(raw['width']) &&
|
|
@@ -121,9 +125,9 @@ export function parseVideoRecipe(text) {
|
|
|
121
125
|
isWhole(raw['frames']) &&
|
|
122
126
|
isWhole(raw['frameCount']) &&
|
|
123
127
|
isWhole(raw['fps']) &&
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
128
|
+
knobOk(raw['steps'], fromProvider, isWhole) &&
|
|
129
|
+
knobOk(raw['cfgScale'], fromProvider, isNumber) &&
|
|
130
|
+
knobOk(raw['seed'], fromProvider, isI64) &&
|
|
127
131
|
among(raw['workflow'], VIDEO_WORKFLOWS) &&
|
|
128
132
|
among(raw['outputFormat'], OUTPUT_FORMATS) &&
|
|
129
133
|
isString(model['modelId']) &&
|
|
@@ -149,10 +153,10 @@ export function parseVideoRecipe(text) {
|
|
|
149
153
|
frames: raw['frames'],
|
|
150
154
|
frameCount: raw['frameCount'],
|
|
151
155
|
fps: raw['fps'],
|
|
152
|
-
steps
|
|
153
|
-
cfgScale
|
|
156
|
+
...knob('steps', raw['steps']),
|
|
157
|
+
...knob('cfgScale', raw['cfgScale']),
|
|
154
158
|
guidance,
|
|
155
|
-
seed
|
|
159
|
+
...knob('seed', raw['seed']),
|
|
156
160
|
samplingMethod,
|
|
157
161
|
flowShift,
|
|
158
162
|
workflow: raw['workflow'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-recipe.js","sourceRoot":"","sources":["../../src/diffusion/video-recipe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"video-recipe.js","sourceRoot":"","sources":["../../src/diffusion/video-recipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,8 @@ export declare function isQwenImage21(family: string): boolean;
|
|
|
25
25
|
/**
|
|
26
26
|
* img2img and masking are generic in sd.cpp (the init image is VAE-encoded and noised to `strength`,
|
|
27
27
|
* a mask blends latents), so the established base families get them; a distilled model such as
|
|
28
|
-
* Krea 2 Turbo keeps to its verified Create.
|
|
28
|
+
* Krea 2 Turbo keeps to its verified Create, and so does FLUX.3 Klein until its edits are measured
|
|
29
|
+
* (sd.cpp runs them). Reference-guided generation and instruction edits need
|
|
29
30
|
* a model trained on reference images: FLUX.2 Klein and Qwen Image 2.1 (Turbo included, which the
|
|
30
31
|
* official checkpoint trains for editing), which also needs its vision projector loaded
|
|
31
32
|
* (`workflowsForSpec`). Anything else, video families included, only creates.
|
|
@@ -47,7 +47,8 @@ export function isQwenImage21(family) {
|
|
|
47
47
|
/**
|
|
48
48
|
* img2img and masking are generic in sd.cpp (the init image is VAE-encoded and noised to `strength`,
|
|
49
49
|
* a mask blends latents), so the established base families get them; a distilled model such as
|
|
50
|
-
* Krea 2 Turbo keeps to its verified Create.
|
|
50
|
+
* Krea 2 Turbo keeps to its verified Create, and so does FLUX.3 Klein until its edits are measured
|
|
51
|
+
* (sd.cpp runs them). Reference-guided generation and instruction edits need
|
|
51
52
|
* a model trained on reference images: FLUX.2 Klein and Qwen Image 2.1 (Turbo included, which the
|
|
52
53
|
* official checkpoint trains for editing), which also needs its vision projector loaded
|
|
53
54
|
* (`workflowsForSpec`). Anything else, video families included, only creates.
|
|
@@ -59,6 +60,7 @@ export function workflowsForFamily(family) {
|
|
|
59
60
|
case 'flux.2-klein':
|
|
60
61
|
return ['create', 'transform', 'inpaint', 'extend', 'upscale', 'reference', 'edit'];
|
|
61
62
|
case 'krea-2-turbo':
|
|
63
|
+
case 'flux.3-klein':
|
|
62
64
|
return ['create'];
|
|
63
65
|
case 'z-image':
|
|
64
66
|
case 'qwen-image':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/diffusion/workflow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,QAAQ;IACR,WAAW;IACX,SAAS;IACT,QAAQ;IACR,SAAS;IACT,WAAW;IACX,MAAM;CACP,CAAA;AAED,MAAM,UAAU,UAAU,CAAC,OAA+C;IACxE,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAA;AACrC,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,QAAyB;IACrD,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAA;AAC9G,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAyB;IAChD,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,CAAA;AACxD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAAC,QAAyB;IACtD,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,MAAM,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,QAAyB;IACvD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACrC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvC,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,sBAAsB,CAAA;AACzE,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/diffusion/workflow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,QAAQ;IACR,WAAW;IACX,SAAS;IACT,QAAQ;IACR,SAAS;IACT,WAAW;IACX,MAAM;CACP,CAAA;AAED,MAAM,UAAU,UAAU,CAAC,OAA+C;IACxE,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAA;AACrC,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,QAAyB;IACrD,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAA;AAC9G,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAyB;IAChD,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,CAAA;AACxD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAAC,QAAyB;IACtD,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,MAAM,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,QAAyB;IACvD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACrC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvC,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,sBAAsB,CAAA;AACzE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACjE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,cAAc;YACjB,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QACrF,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc;YACjB,OAAO,CAAC,QAAQ,CAAC,CAAA;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,YAAY;YACf,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;QAChE;YACE,kFAAkF;YAClF,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;YAC/F,OAAO,CAAC,QAAQ,CAAC,CAAA;IACrB,CAAC;AACH,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,gBAAgB,CAAC,IAA0C;IACzE,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjD,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;QAClE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IAClE,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,eAAe,GAA+B,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AAEvF,qFAAqF;AACrF,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,OAAO,CAAC,QAAQ,CAAC,CAAA;AACnB,CAAC"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Archive extraction and backend-pack layout normalisation. Port of `decompress` and
|
|
3
3
|
* `normalize_backend_layout` in `src-tauri/src/core/filesystem/commands.rs`.
|
|
4
4
|
*
|
|
5
|
-
* Only `.tar.gz` (also named `.tgz`) and `.zip` are supported (same error text as the app)
|
|
5
|
+
* Only `.tar.gz` (also named `.tgz`) and `.zip` are supported (same error text as the app); a Python
|
|
6
|
+
* wheel (`.whl`) is a zip and unpacks as one (change `add-litert-lm-runtime`, task 4.2). Zip entries are guarded
|
|
6
7
|
* against zip-slip, directory entries are created, and the unix mode bits are applied.
|
|
7
8
|
*/
|
|
8
9
|
export declare const UNSUPPORTED_ARCHIVE_MESSAGE = "Unsupported file format. Only .tar.gz and .zip are supported.";
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Archive extraction and backend-pack layout normalisation. Port of `decompress` and
|
|
3
3
|
* `normalize_backend_layout` in `src-tauri/src/core/filesystem/commands.rs`.
|
|
4
4
|
*
|
|
5
|
-
* Only `.tar.gz` (also named `.tgz`) and `.zip` are supported (same error text as the app)
|
|
5
|
+
* Only `.tar.gz` (also named `.tgz`) and `.zip` are supported (same error text as the app); a Python
|
|
6
|
+
* wheel (`.whl`) is a zip and unpacks as one (change `add-litert-lm-runtime`, task 4.2). Zip entries are guarded
|
|
6
7
|
* against zip-slip, directory entries are created, and the unix mode bits are applied.
|
|
7
8
|
*/
|
|
8
9
|
import { createWriteStream } from 'node:fs';
|
|
@@ -18,7 +19,7 @@ export async function extractArchive(archivePath, outputDir) {
|
|
|
18
19
|
await tarExtract({ file: archivePath, cwd: outputDir });
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
21
|
-
if (archivePath.endsWith('.zip')) {
|
|
22
|
+
if (archivePath.endsWith('.zip') || archivePath.endsWith('.whl')) {
|
|
22
23
|
await extractZip(archivePath, outputDir);
|
|
23
24
|
return;
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/downloads/archive.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/downloads/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ import type { EngineBuildId, EngineBuildRef } from '../contracts/index.js';
|
|
|
8
8
|
import type { HardwareFacts } from '../hardware/index.js';
|
|
9
9
|
import type { BuildArchive } from './install.js';
|
|
10
10
|
import type { ManifestOf } from './manifest.js';
|
|
11
|
-
import type { FoundryLocalHostPlatform } from './select.js';
|
|
12
11
|
/** One build on disk as the service sees it. */
|
|
13
12
|
export interface Build extends EngineBuildRef {
|
|
14
13
|
/** For a bundled MLX build, `resources-dir`; otherwise the build's own directory. */
|
|
@@ -17,7 +16,19 @@ export interface Build extends EngineBuildRef {
|
|
|
17
16
|
published_at: string | null;
|
|
18
17
|
/** Foundry Local: the C API version recorded at install; `null` when unknown. */
|
|
19
18
|
c_api_version?: number | null;
|
|
19
|
+
/** LiteRT-LM: the binding number recorded at install; `null` when unknown. */
|
|
20
|
+
abi?: number | null;
|
|
20
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Which build of an engine with one archive per platform this host runs, or why none
|
|
24
|
+
* (`foundryLocalHostPlatform`, `liteRtLmHostPlatform`).
|
|
25
|
+
*/
|
|
26
|
+
export type EngineHostPlatform = {
|
|
27
|
+
platform: string;
|
|
28
|
+
} | {
|
|
29
|
+
platform: null;
|
|
30
|
+
reason: string;
|
|
31
|
+
};
|
|
21
32
|
/** What a row may read from the service's dependencies. */
|
|
22
33
|
export interface EngineContext {
|
|
23
34
|
/** This engine's `<data>/…/backends`. */
|
|
@@ -27,10 +38,13 @@ export interface EngineContext {
|
|
|
27
38
|
platform: NodeJS.Platform;
|
|
28
39
|
hardware: () => Promise<Pick<HardwareFacts, 'osType' | 'arch' | 'cpuExtensions' | 'gpus'>>;
|
|
29
40
|
log?: ((level: 'info' | 'warn', message: string) => void) | undefined;
|
|
30
|
-
/** Which
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
|
|
41
|
+
/** Which build of this engine the host runs, for the engines that are one archive per platform. */
|
|
42
|
+
hostPlatform: EngineHostPlatform;
|
|
43
|
+
/**
|
|
44
|
+
* This core's own host mode run against an unpacked build (`foundry-host probe`, `litert-host
|
|
45
|
+
* probe`); throws `ENGINE_INSTALL_FAILED` with what it printed. Absent where this core has none.
|
|
46
|
+
*/
|
|
47
|
+
hostProbe?: ((buildDir: string) => Promise<void>) | undefined;
|
|
34
48
|
}
|
|
35
49
|
export interface HostChoice {
|
|
36
50
|
/** What this host would install, best first. */
|
|
@@ -52,6 +66,8 @@ export interface BuildRecordInfo {
|
|
|
52
66
|
publishedAt: string | null;
|
|
53
67
|
/** Foundry Local: the release's C API version. */
|
|
54
68
|
cApiVersion: number | null;
|
|
69
|
+
/** LiteRT-LM: the release's binding number. */
|
|
70
|
+
abi: number | null;
|
|
55
71
|
}
|
|
56
72
|
export interface EngineDescriptor<M> {
|
|
57
73
|
/** The release an install takes from the manifest, and the order key it carries. */
|
|
@@ -59,6 +75,7 @@ export interface EngineDescriptor<M> {
|
|
|
59
75
|
tag: string;
|
|
60
76
|
published_at: string | null;
|
|
61
77
|
c_api_version?: number;
|
|
78
|
+
abi?: number;
|
|
62
79
|
};
|
|
63
80
|
hostChoice(ctx: EngineContext, manifest: M | null): Promise<HostChoice>;
|
|
64
81
|
/** The build's archive first, companions after; all unpack into one directory. */
|
|
@@ -8,9 +8,10 @@ import { AtomicCoreError } from '../contracts/index.js';
|
|
|
8
8
|
import { listInstalledBackends, prepareSdcppTree, writeInstallRecord } from '../diffusion/install.js';
|
|
9
9
|
import { listDownloadedMlx, probeMlxServer, readBundledMlx, writeMlxInstallRecord } from './builds.js';
|
|
10
10
|
import { listFoundryLocalBuilds, prepareFoundryLocalTree, writeFoundryLocalInstallRecord, } from './foundry-local.js';
|
|
11
|
-
import {
|
|
11
|
+
import { listLiteRtLmBuilds, prepareLiteRtLmTree, writeLiteRtLmInstallRecord } from './litert-lm.js';
|
|
12
|
+
import { FOUNDRY_LOCAL_C_API_VERSIONS, foundryLocalAssetUrl, mlxAssetUrl, sdcppAssetUrl, SUPPORTED_LITERT_LM_ABI, } from './manifest.js';
|
|
12
13
|
import { compareBuilds } from './order.js';
|
|
13
|
-
import { backendKindOf, companionFor, foundryLocalHostChoice, mlxHostChoice, readFailedBackends, rememberFailedBackend, sdcppHostChoice, sdcppHostOf, } from './select.js';
|
|
14
|
+
import { backendKindOf, companionFor, foundryLocalHostChoice, liteRtLmHostChoice, mlxHostChoice, readFailedBackends, rememberFailedBackend, sdcppHostChoice, sdcppHostOf, } from './select.js';
|
|
14
15
|
const pin = (asset) => ({
|
|
15
16
|
...(asset.sha256 !== undefined ? { sha256: asset.sha256 } : {}),
|
|
16
17
|
...(asset.size !== undefined ? { size: asset.size } : {}),
|
|
@@ -74,7 +75,7 @@ const mlx = {
|
|
|
74
75
|
.filter((asset) => asset.backend === backendId)
|
|
75
76
|
.map((asset) => ({ ...pin(asset), url: mlxAssetUrl(manifest, asset), name: asset.name })),
|
|
76
77
|
probe: (staging, ctx) => probeMlxServer(staging, { platform: ctx.platform }),
|
|
77
|
-
record: (staging, { cApiVersion: _cApiVersion, ...info }) => writeMlxInstallRecord(staging, info),
|
|
78
|
+
record: (staging, { cApiVersion: _cApiVersion, abi: _abi, ...info }) => writeMlxInstallRecord(staging, info),
|
|
78
79
|
async builds(ctx) {
|
|
79
80
|
const out = (await listDownloadedMlx(ctx.root)).map((record) => ({
|
|
80
81
|
tag: record.tag,
|
|
@@ -107,7 +108,7 @@ const foundryLocal = {
|
|
|
107
108
|
const newest = manifest.releases[0];
|
|
108
109
|
return { tag: newest.tag, published_at: newest.published_at, c_api_version: newest.c_api_version };
|
|
109
110
|
},
|
|
110
|
-
hostChoice: async (ctx, manifest) => foundryLocalHostChoice(ctx.
|
|
111
|
+
hostChoice: async (ctx, manifest) => foundryLocalHostChoice(ctx.hostPlatform, manifest?.releases[0] ?? null),
|
|
111
112
|
archives(manifest, backendId) {
|
|
112
113
|
const release = manifest.releases[0];
|
|
113
114
|
const asset = release?.assets.find((candidate) => candidate.platform === backendId);
|
|
@@ -117,11 +118,11 @@ const foundryLocal = {
|
|
|
117
118
|
},
|
|
118
119
|
prepare: (staging, ctx) => prepareFoundryLocalTree(staging, ctx.platform),
|
|
119
120
|
async probe(staging, ctx) {
|
|
120
|
-
if (!ctx.
|
|
121
|
+
if (!ctx.hostProbe)
|
|
121
122
|
throw new AtomicCoreError('ENGINE_INSTALL_FAILED', 'This core has no Foundry Local host to check the build with.');
|
|
122
|
-
await ctx.
|
|
123
|
+
await ctx.hostProbe(staging);
|
|
123
124
|
},
|
|
124
|
-
record: (staging, info) => writeFoundryLocalInstallRecord(staging, info),
|
|
125
|
+
record: (staging, { abi: _abi, ...info }) => writeFoundryLocalInstallRecord(staging, info),
|
|
125
126
|
async builds(ctx) {
|
|
126
127
|
return (await listFoundryLocalBuilds(ctx.root)).map((record) => ({
|
|
127
128
|
tag: record.tag,
|
|
@@ -136,9 +137,45 @@ const foundryLocal = {
|
|
|
136
137
|
/** The newest by `published_at` among the builds whose C API this core's host binds (design D2). */
|
|
137
138
|
active: (builds) => newest('foundry-local', builds.filter((build) => build.c_api_version != null && FOUNDRY_LOCAL_C_API_VERSIONS.includes(build.c_api_version))),
|
|
138
139
|
};
|
|
140
|
+
/**
|
|
141
|
+
* LiteRT-LM (change `add-litert-lm-runtime`, task 4.4): the host's wheel of the newest release; the
|
|
142
|
+
* native part of it goes to `lib/`, `litert-host probe --lib <staging>` of this core proves it loads.
|
|
143
|
+
*/
|
|
144
|
+
const liteRtLm = {
|
|
145
|
+
release: (manifest) => {
|
|
146
|
+
const newest = manifest.releases[0];
|
|
147
|
+
return { tag: newest.version, published_at: newest.published_at, abi: newest.abi };
|
|
148
|
+
},
|
|
149
|
+
hostChoice: async (ctx, manifest) => liteRtLmHostChoice(ctx.hostPlatform, manifest?.releases[0] ?? null),
|
|
150
|
+
archives(manifest, backendId) {
|
|
151
|
+
const asset = manifest.releases[0]?.assets.find((candidate) => candidate.platform === backendId);
|
|
152
|
+
return asset ? [{ url: asset.url, name: asset.name, sha256: asset.sha256, size: asset.size }] : [];
|
|
153
|
+
},
|
|
154
|
+
prepare: (staging) => prepareLiteRtLmTree(staging),
|
|
155
|
+
async probe(staging, ctx) {
|
|
156
|
+
if (!ctx.hostProbe)
|
|
157
|
+
throw new AtomicCoreError('ENGINE_INSTALL_FAILED', 'This core has no LiteRT-LM host to check the build with.');
|
|
158
|
+
await ctx.hostProbe(staging);
|
|
159
|
+
},
|
|
160
|
+
record: (staging, { cApiVersion: _cApiVersion, ...info }) => writeLiteRtLmInstallRecord(staging, info),
|
|
161
|
+
async builds(ctx) {
|
|
162
|
+
return (await listLiteRtLmBuilds(ctx.root)).map((record) => ({
|
|
163
|
+
tag: record.tag,
|
|
164
|
+
backend_id: record.backendId,
|
|
165
|
+
origin: 'downloaded',
|
|
166
|
+
dir: record.dir,
|
|
167
|
+
installed_at_ms: record.installedAtMs,
|
|
168
|
+
published_at: record.publishedAt,
|
|
169
|
+
abi: record.abi,
|
|
170
|
+
}));
|
|
171
|
+
},
|
|
172
|
+
/** The newest by `published_at` among the builds whose ABI this core's host binds (design D2). */
|
|
173
|
+
active: (builds) => newest('litert-lm', builds.filter((build) => build.abi != null && SUPPORTED_LITERT_LM_ABI.includes(build.abi))),
|
|
174
|
+
};
|
|
139
175
|
export const ENGINE_DESCRIPTORS = {
|
|
140
176
|
'sd-cpp': sdcpp,
|
|
141
177
|
'mlx': mlx,
|
|
142
178
|
'foundry-local': foundryLocal,
|
|
179
|
+
'litert-lm': liteRtLm,
|
|
143
180
|
};
|
|
144
181
|
//# sourceMappingURL=engines.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engines.js","sourceRoot":"","sources":["../../src/engine-builds/engines.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAErG,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAGtG,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"engines.js","sourceRoot":"","sources":["../../src/engine-builds/engines.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What is particular to LiteRT-LM builds (openspec change `add-litert-lm-runtime`, design D2): a build
|
|
3
|
+
* is a `litert-lm-api` wheel from PyPI, which is a zip. Only the native part of its `litert_lm/`
|
|
4
|
+
* package is kept, under `lib/` — the library, on Windows its DirectX companions and the Intel NPU
|
|
5
|
+
* dispatch library under `vendors/` — without the Python bindings and `*.dist-info` (task 4.2). Each
|
|
6
|
+
* build records the `abi` it was published with, which decides whether this core's host binds it.
|
|
7
|
+
*/
|
|
8
|
+
/** The library's file name on `platform`; `null` where LiteRT-LM has none. */
|
|
9
|
+
export declare function liteRtLmLibraryFile(platform: NodeJS.Platform): string | null;
|
|
10
|
+
/**
|
|
11
|
+
* Turn an unpacked wheel into a build: the native files of `litert_lm/` move to `lib/` with their
|
|
12
|
+
* relative paths, everything else goes. Wheels carry `0777`; libraries become `0755`. Throws
|
|
13
|
+
* `ENGINE_INSTALL_FAILED` when the wheel holds no LiteRT-LM library at all.
|
|
14
|
+
*/
|
|
15
|
+
export declare function prepareLiteRtLmTree(staging: string): Promise<void>;
|
|
16
|
+
export interface LiteRtLmInstallRecord {
|
|
17
|
+
/** The LiteRT-LM version, `X.Y.Z`. */
|
|
18
|
+
tag: string;
|
|
19
|
+
backendId: string;
|
|
20
|
+
sha256: string | null;
|
|
21
|
+
installedAtMs: number;
|
|
22
|
+
publishedAt: string | null;
|
|
23
|
+
abi: number | null;
|
|
24
|
+
dir: string;
|
|
25
|
+
}
|
|
26
|
+
/** The marker, then `install.json` without `dir`. */
|
|
27
|
+
export declare function writeLiteRtLmInstallRecord(dir: string, record: Omit<LiteRtLmInstallRecord, 'dir'>): Promise<void>;
|
|
28
|
+
/** Every marked `<root>/<version>/<platform>/` with a record and its library, newest install first. */
|
|
29
|
+
export declare function listLiteRtLmBuilds(root: string): Promise<LiteRtLmInstallRecord[]>;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What is particular to LiteRT-LM builds (openspec change `add-litert-lm-runtime`, design D2): a build
|
|
3
|
+
* is a `litert-lm-api` wheel from PyPI, which is a zip. Only the native part of its `litert_lm/`
|
|
4
|
+
* package is kept, under `lib/` — the library, on Windows its DirectX companions and the Intel NPU
|
|
5
|
+
* dispatch library under `vendors/` — without the Python bindings and `*.dist-info` (task 4.2). Each
|
|
6
|
+
* build records the `abi` it was published with, which decides whether this core's host binds it.
|
|
7
|
+
*/
|
|
8
|
+
import { chmod, mkdir, readdir, readFile, rename, rm, stat, writeFile } from 'node:fs/promises';
|
|
9
|
+
import { dirname, join, relative } from 'node:path';
|
|
10
|
+
import { AtomicCoreError } from '../contracts/index.js';
|
|
11
|
+
import { INSTALL_RECORD, OWNER_MARKER } from '../diffusion/install.js';
|
|
12
|
+
import { isDateTime } from './manifest.js';
|
|
13
|
+
/** The wheel's package; everything else in it is Python metadata. */
|
|
14
|
+
const PACKAGE_DIR = 'litert_lm';
|
|
15
|
+
/** Native files of the package: libraries anywhere, and every file under `vendors/`. */
|
|
16
|
+
const NATIVE_RE = /\.(dylib|so|dll)$/;
|
|
17
|
+
const LIBRARY_FILE = {
|
|
18
|
+
darwin: 'liblitert-lm.dylib',
|
|
19
|
+
linux: 'liblitert-lm.so',
|
|
20
|
+
win32: 'litert-lm.dll',
|
|
21
|
+
};
|
|
22
|
+
/** The library's file name on `platform`; `null` where LiteRT-LM has none. */
|
|
23
|
+
export function liteRtLmLibraryFile(platform) {
|
|
24
|
+
return LIBRARY_FILE[platform] ?? null;
|
|
25
|
+
}
|
|
26
|
+
const exists = (path) => stat(path).then(() => true, () => false);
|
|
27
|
+
async function nativeFiles(dir, at = dir) {
|
|
28
|
+
const out = [];
|
|
29
|
+
for (const entry of await readdir(at, { withFileTypes: true })) {
|
|
30
|
+
const path = join(at, entry.name);
|
|
31
|
+
const rel = relative(dir, path).split('\\').join('/');
|
|
32
|
+
if (entry.isDirectory())
|
|
33
|
+
out.push(...(await nativeFiles(dir, path)));
|
|
34
|
+
else if (rel.startsWith('vendors/') || NATIVE_RE.test(entry.name))
|
|
35
|
+
out.push(rel);
|
|
36
|
+
}
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Turn an unpacked wheel into a build: the native files of `litert_lm/` move to `lib/` with their
|
|
41
|
+
* relative paths, everything else goes. Wheels carry `0777`; libraries become `0755`. Throws
|
|
42
|
+
* `ENGINE_INSTALL_FAILED` when the wheel holds no LiteRT-LM library at all.
|
|
43
|
+
*/
|
|
44
|
+
export async function prepareLiteRtLmTree(staging) {
|
|
45
|
+
const pkg = join(staging, PACKAGE_DIR);
|
|
46
|
+
const keep = (await exists(pkg)) ? await nativeFiles(pkg) : [];
|
|
47
|
+
if (!keep.some((rel) => Object.values(LIBRARY_FILE).includes(rel)))
|
|
48
|
+
throw new AtomicCoreError('ENGINE_INSTALL_FAILED', 'The LiteRT-LM wheel holds no LiteRT-LM library.');
|
|
49
|
+
const lib = join(staging, 'lib');
|
|
50
|
+
for (const rel of keep) {
|
|
51
|
+
const to = join(lib, rel);
|
|
52
|
+
await mkdir(dirname(to), { recursive: true });
|
|
53
|
+
await rename(join(pkg, rel), to);
|
|
54
|
+
await chmod(to, 0o755).catch(() => { });
|
|
55
|
+
}
|
|
56
|
+
for (const name of await readdir(staging))
|
|
57
|
+
if (name !== 'lib')
|
|
58
|
+
await rm(join(staging, name), { recursive: true, force: true });
|
|
59
|
+
}
|
|
60
|
+
/** The marker, then `install.json` without `dir`. */
|
|
61
|
+
export async function writeLiteRtLmInstallRecord(dir, record) {
|
|
62
|
+
await writeFile(join(dir, OWNER_MARKER), 'atomic-chat\n');
|
|
63
|
+
const file = {
|
|
64
|
+
tag: record.tag,
|
|
65
|
+
backendId: record.backendId,
|
|
66
|
+
sha256: record.sha256,
|
|
67
|
+
installedAtMs: record.installedAtMs,
|
|
68
|
+
publishedAt: record.publishedAt,
|
|
69
|
+
abi: record.abi,
|
|
70
|
+
};
|
|
71
|
+
await writeFile(join(dir, INSTALL_RECORD), JSON.stringify(file, null, 2));
|
|
72
|
+
}
|
|
73
|
+
async function readLiteRtLmInstallRecord(dir) {
|
|
74
|
+
let raw;
|
|
75
|
+
try {
|
|
76
|
+
raw = JSON.parse(await readFile(join(dir, INSTALL_RECORD), 'utf8'));
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
if (raw === null || typeof raw !== 'object' || Array.isArray(raw))
|
|
82
|
+
return undefined;
|
|
83
|
+
const { tag, backendId, sha256, installedAtMs, publishedAt, abi } = raw;
|
|
84
|
+
if (typeof tag !== 'string' ||
|
|
85
|
+
typeof backendId !== 'string' ||
|
|
86
|
+
typeof installedAtMs !== 'number' ||
|
|
87
|
+
!Number.isSafeInteger(installedAtMs))
|
|
88
|
+
return undefined;
|
|
89
|
+
return {
|
|
90
|
+
tag,
|
|
91
|
+
backendId,
|
|
92
|
+
sha256: typeof sha256 === 'string' ? sha256 : null,
|
|
93
|
+
installedAtMs,
|
|
94
|
+
publishedAt: isDateTime(publishedAt) ? publishedAt : null,
|
|
95
|
+
abi: typeof abi === 'number' && Number.isSafeInteger(abi) ? abi : null,
|
|
96
|
+
dir,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
async function hasLibrary(dir) {
|
|
100
|
+
for (const name of Object.values(LIBRARY_FILE))
|
|
101
|
+
if (await exists(join(dir, 'lib', name)))
|
|
102
|
+
return true;
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
/** Every marked `<root>/<version>/<platform>/` with a record and its library, newest install first. */
|
|
106
|
+
export async function listLiteRtLmBuilds(root) {
|
|
107
|
+
const out = [];
|
|
108
|
+
for (const tag of await readdir(root).catch(() => []))
|
|
109
|
+
for (const backend of await readdir(join(root, tag)).catch(() => [])) {
|
|
110
|
+
const dir = join(root, tag, backend);
|
|
111
|
+
if (!(await exists(join(dir, OWNER_MARKER))))
|
|
112
|
+
continue;
|
|
113
|
+
const record = await readLiteRtLmInstallRecord(dir);
|
|
114
|
+
if (record && (await hasLibrary(dir)))
|
|
115
|
+
out.push(record);
|
|
116
|
+
}
|
|
117
|
+
return out.sort((a, b) => b.installedAtMs - a.installedAtMs);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=litert-lm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"litert-lm.js","sourceRoot":"","sources":["../../src/engine-builds/litert-lm.ts"],"names":[],"mappings":"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"}
|