@atomic-chat/core 0.17.0 → 0.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-daemon.js +9 -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 +10 -1
- package/dist/client/control-client.js +15 -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 +11 -0
- package/dist/config/paths.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 +7 -1
- package/dist/contracts/errors.js.map +1 -1
- package/dist/contracts/events.d.ts +7 -0
- package/dist/contracts/foundry-local.d.ts +77 -0
- package/dist/contracts/foundry-local.js +17 -0
- package/dist/contracts/foundry-local.js.map +1 -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/model-yml.d.ts +28 -0
- package/dist/contracts/model-yml.js +11 -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 +5 -1
- package/dist/contracts/settings.js.map +1 -1
- package/dist/core/atomic-core.d.ts +1 -1
- package/dist/core/create.js +106 -5
- package/dist/core/create.js.map +1 -1
- package/dist/core/types.d.ts +9 -0
- package/dist/core/types.js.map +1 -1
- package/dist/diffusion/install.d.ts +0 -4
- package/dist/diffusion/install.js +5 -2
- package/dist/diffusion/install.js.map +1 -1
- package/dist/diffusion/server-process.d.ts +5 -2
- package/dist/diffusion/server-process.js +10 -2
- package/dist/diffusion/server-process.js.map +1 -1
- package/dist/downloads/archive.d.ts +1 -1
- package/dist/downloads/archive.js +2 -2
- package/dist/downloads/archive.js.map +1 -1
- package/dist/engine-builds/engines.d.ts +83 -0
- package/dist/engine-builds/engines.js +144 -0
- package/dist/engine-builds/engines.js.map +1 -0
- package/dist/engine-builds/foundry-local.d.ts +22 -0
- package/dist/engine-builds/foundry-local.js +100 -0
- package/dist/engine-builds/foundry-local.js.map +1 -0
- package/dist/engine-builds/manifest.d.ts +57 -6
- package/dist/engine-builds/manifest.js +109 -4
- package/dist/engine-builds/manifest.js.map +1 -1
- package/dist/engine-builds/order.d.ts +2 -1
- package/dist/engine-builds/order.js +11 -4
- package/dist/engine-builds/order.js.map +1 -1
- package/dist/engine-builds/select.d.ts +27 -0
- package/dist/engine-builds/select.js +45 -0
- package/dist/engine-builds/select.js.map +1 -1
- package/dist/engine-builds/service.d.ts +14 -15
- package/dist/engine-builds/service.js +68 -126
- package/dist/engine-builds/service.js.map +1 -1
- package/dist/engines/service.d.ts +6 -3
- package/dist/engines/service.js +6 -3
- package/dist/engines/service.js.map +1 -1
- package/dist/hardware/index.d.ts +1 -0
- package/dist/hardware/index.js +1 -0
- package/dist/hardware/index.js.map +1 -1
- package/dist/hardware/npu.d.ts +14 -0
- package/dist/hardware/npu.js +29 -0
- package/dist/hardware/npu.js.map +1 -0
- package/dist/integrations/detect.d.ts +2 -0
- package/dist/integrations/detect.js +4 -3
- package/dist/integrations/detect.js.map +1 -1
- package/dist/lock/instance-lock.js +5 -2
- package/dist/lock/instance-lock.js.map +1 -1
- package/dist/lock/process-identity.d.ts +9 -3
- package/dist/lock/process-identity.js +75 -9
- package/dist/lock/process-identity.js.map +1 -1
- package/dist/router/resolve.d.ts +2 -2
- package/dist/router/resolve.js +2 -1
- package/dist/router/resolve.js.map +1 -1
- package/dist/runtime/foundry-local/accelerators.d.ts +42 -0
- package/dist/runtime/foundry-local/accelerators.js +153 -0
- package/dist/runtime/foundry-local/accelerators.js.map +1 -0
- package/dist/runtime/foundry-local/check.d.ts +19 -0
- package/dist/runtime/foundry-local/check.js +69 -0
- package/dist/runtime/foundry-local/check.js.map +1 -0
- package/dist/runtime/foundry-local/host/args.d.ts +44 -0
- package/dist/runtime/foundry-local/host/args.js +109 -0
- package/dist/runtime/foundry-local/host/args.js.map +1 -0
- package/dist/runtime/foundry-local/host/execution-providers.d.ts +27 -0
- package/dist/runtime/foundry-local/host/execution-providers.js +43 -0
- package/dist/runtime/foundry-local/host/execution-providers.js.map +1 -0
- package/dist/runtime/foundry-local/host/ffi-bun.d.ts +17 -0
- package/dist/runtime/foundry-local/host/ffi-bun.js +256 -0
- package/dist/runtime/foundry-local/host/ffi-bun.js.map +1 -0
- package/dist/runtime/foundry-local/host/library.d.ts +61 -0
- package/dist/runtime/foundry-local/host/library.js +17 -0
- package/dist/runtime/foundry-local/host/library.js.map +1 -0
- package/dist/runtime/foundry-local/host/run.d.ts +54 -0
- package/dist/runtime/foundry-local/host/run.js +316 -0
- package/dist/runtime/foundry-local/host/run.js.map +1 -0
- package/dist/runtime/foundry-local/host-process.d.ts +78 -0
- package/dist/runtime/foundry-local/host-process.js +182 -0
- package/dist/runtime/foundry-local/host-process.js.map +1 -0
- package/dist/runtime/foundry-local/index.d.ts +11 -0
- package/dist/runtime/foundry-local/index.js +11 -0
- package/dist/runtime/foundry-local/index.js.map +1 -0
- package/dist/runtime/foundry-local/model-yml.d.ts +8 -0
- package/dist/runtime/foundry-local/model-yml.js +63 -0
- package/dist/runtime/foundry-local/model-yml.js.map +1 -0
- package/dist/runtime/foundry-local/runtime.d.ts +88 -0
- package/dist/runtime/foundry-local/runtime.js +321 -0
- package/dist/runtime/foundry-local/runtime.js.map +1 -0
- package/dist/runtime/llamacpp/args.d.ts +5 -0
- package/dist/runtime/llamacpp/args.js +7 -1
- package/dist/runtime/llamacpp/args.js.map +1 -1
- package/dist/runtime/llamacpp/errors.d.ts +1 -0
- package/dist/runtime/llamacpp/errors.js +10 -0
- package/dist/runtime/llamacpp/errors.js.map +1 -1
- package/dist/runtime/llamacpp/load-plan.d.ts +5 -0
- package/dist/runtime/llamacpp/load-plan.js +8 -0
- package/dist/runtime/llamacpp/load-plan.js.map +1 -1
- package/dist/runtime/llamacpp/runtime-device.d.ts +8 -0
- package/dist/runtime/llamacpp/runtime-device.js +9 -3
- package/dist/runtime/llamacpp/runtime-device.js.map +1 -1
- package/dist/runtime/llamacpp/runtime.d.ts +6 -1
- package/dist/runtime/llamacpp/runtime.js +19 -3
- package/dist/runtime/llamacpp/runtime.js.map +1 -1
- package/dist/runtime/managed-text/gateway.d.ts +2 -0
- package/dist/runtime/managed-text/gateway.js +1 -1
- package/dist/runtime/managed-text/gateway.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/runtime/shared/process.d.ts +13 -1
- package/dist/runtime/shared/process.js +21 -12
- package/dist/runtime/shared/process.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/foundry-local.d.ts +10 -0
- package/dist/server/control/routes/foundry-local.js +42 -0
- package/dist/server/control/routes/foundry-local.js.map +1 -0
- package/dist/server/control/routes/models.js +3 -1
- package/dist/server/control/routes/models.js.map +1 -1
- package/dist/server/control/types.d.ts +17 -1
- package/dist/server/control/types.js.map +1 -1
- package/dist/server/http.js +2 -0
- package/dist/server/http.js.map +1 -1
- package/dist/server/public/errors.d.ts +1 -0
- package/dist/server/public/errors.js +18 -0
- package/dist/server/public/errors.js.map +1 -1
- package/dist/server/public/listing.js +1 -0
- package/dist/server/public/listing.js.map +1 -1
- package/dist/settings/schema/foundry-local.json +14 -0
- package/dist/settings/schema.js +8 -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 +2 -1
- package/src/settings/schema/foundry-local.json +14 -0
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* listens. `/v1/models` is a stock route that llama-server answers too, so the richer
|
|
8
8
|
* `/sdcpp/v1/capabilities` is probed afterwards: a 404 there means the port belongs to someone else.
|
|
9
9
|
*/
|
|
10
|
-
import
|
|
10
|
+
import { AtomicCoreError } from '../contracts/index.js';
|
|
11
|
+
import type { DiffusionModality } from '../contracts/index.js';
|
|
11
12
|
import type { ExitInfo } from '../runtime/llamacpp/index.js';
|
|
12
13
|
import type { BackendOutputSink } from '../runtime/shared/index.js';
|
|
13
14
|
import { diffusionError } from './errors.js';
|
|
@@ -60,6 +61,8 @@ export declare function parseCapabilities(body: unknown): ServerCapabilities;
|
|
|
60
61
|
export declare function modeMismatchError(modality: DiffusionModality, supported: readonly string[]): AtomicCoreError;
|
|
61
62
|
/**
|
|
62
63
|
* Spawn `sd-server` for `spec`, wait until it serves the model, and probe its capabilities. On any
|
|
63
|
-
* failure the child is dead when this rejects.
|
|
64
|
+
* failure the child is dead when this rejects. A start that died because its port was taken before
|
|
65
|
+
* the engine could bind it (`randomFreePort`'s probe is racy) goes again on another port, as the
|
|
66
|
+
* llama.cpp, embedding and decision engines do.
|
|
64
67
|
*/
|
|
65
68
|
export declare function spawnServer(spec: ServerSpec, scratchDir: string, deps: SpawnServerDeps): Promise<ServerHandle>;
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
import { constants, cpus } from 'node:os';
|
|
11
11
|
import { mkdir, stat } from 'node:fs/promises';
|
|
12
12
|
import { join } from 'node:path';
|
|
13
|
-
import {
|
|
13
|
+
import { AtomicCoreError } from '../contracts/index.js';
|
|
14
|
+
import { backendOutputReporter, buildProcessEnv, discoverCudaPaths, nodeCudaProbeEnv, exitedOnTakenPort, randomFreePort, retryOnTakenPort, spawnManaged, } from '../runtime/shared/index.js';
|
|
14
15
|
import { buildServerArgs, commandSummaryForLog, hostEnv } from './args.js';
|
|
15
16
|
import { diffusionError, ioError } from './errors.js';
|
|
16
17
|
import { serverBinaryName } from './install.js';
|
|
@@ -99,9 +100,16 @@ export function modeMismatchError(modality, supported) {
|
|
|
99
100
|
}
|
|
100
101
|
/**
|
|
101
102
|
* Spawn `sd-server` for `spec`, wait until it serves the model, and probe its capabilities. On any
|
|
102
|
-
* failure the child is dead when this rejects.
|
|
103
|
+
* failure the child is dead when this rejects. A start that died because its port was taken before
|
|
104
|
+
* the engine could bind it (`randomFreePort`'s probe is racy) goes again on another port, as the
|
|
105
|
+
* llama.cpp, embedding and decision engines do.
|
|
103
106
|
*/
|
|
104
107
|
export async function spawnServer(spec, scratchDir, deps) {
|
|
108
|
+
return retryOnTakenPort(() => spawnServerOnce(spec, scratchDir, deps), (error) => error instanceof AtomicCoreError &&
|
|
109
|
+
error.code === 'MODEL_LOAD_FAILED' &&
|
|
110
|
+
exitedOnTakenPort(error.details), (attempt) => deps.log?.('warn', `sd-server's port was taken while it started; retrying (${attempt})`));
|
|
111
|
+
}
|
|
112
|
+
async function spawnServerOnce(spec, scratchDir, deps) {
|
|
105
113
|
const platform = deps.platform ?? process.platform;
|
|
106
114
|
const baseEnv = deps.env ?? process.env;
|
|
107
115
|
const log = deps.log ?? (() => { });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-process.js","sourceRoot":"","sources":["../../src/diffusion/server-process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server-process.js","sourceRoot":"","sources":["../../src/diffusion/server-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
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` and `.zip` are supported (same error text as the app). Zip entries are guarded
|
|
5
|
+
* Only `.tar.gz` (also named `.tgz`) and `.zip` are supported (same error text as the app). Zip entries are guarded
|
|
6
6
|
* against zip-slip, directory entries are created, and the unix mode bits are applied.
|
|
7
7
|
*/
|
|
8
8
|
export declare const UNSUPPORTED_ARCHIVE_MESSAGE = "Unsupported file format. Only .tar.gz and .zip are supported.";
|
|
@@ -2,7 +2,7 @@
|
|
|
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` and `.zip` are supported (same error text as the app). Zip entries are guarded
|
|
5
|
+
* Only `.tar.gz` (also named `.tgz`) and `.zip` are supported (same error text as the app). Zip entries are guarded
|
|
6
6
|
* against zip-slip, directory entries are created, and the unix mode bits are applied.
|
|
7
7
|
*/
|
|
8
8
|
import { createWriteStream } from 'node:fs';
|
|
@@ -14,7 +14,7 @@ import yauzl from 'yauzl';
|
|
|
14
14
|
export const UNSUPPORTED_ARCHIVE_MESSAGE = 'Unsupported file format. Only .tar.gz and .zip are supported.';
|
|
15
15
|
export async function extractArchive(archivePath, outputDir) {
|
|
16
16
|
await mkdir(outputDir, { recursive: true });
|
|
17
|
-
if (archivePath.endsWith('.tar.gz')) {
|
|
17
|
+
if (archivePath.endsWith('.tar.gz') || archivePath.endsWith('.tgz')) {
|
|
18
18
|
await tarExtract({ file: archivePath, cwd: outputDir });
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/downloads/archive.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,CAAC,IAAI,UAAU,EAAE,MAAM,KAAK,CAAA;AACrC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,CAAC,MAAM,2BAA2B,GAAG,+DAA+D,CAAA;AAE1G,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,WAAmB,EAAE,SAAiB;IACzE,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/downloads/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Everything that differs between the engines `EngineBuildsService` installs, as one table (openspec
|
|
3
|
+
* change `add-foundry-local`, task 4.1): which release a manifest offers, which build fits this host,
|
|
4
|
+
* which archives make it, how it is probed and recorded, what is on disk and which build is active.
|
|
5
|
+
* The service only orders the steps; a new engine is a new row here, not another branch there.
|
|
6
|
+
*/
|
|
7
|
+
import type { EngineBuildId, EngineBuildRef } from '../contracts/index.js';
|
|
8
|
+
import type { HardwareFacts } from '../hardware/index.js';
|
|
9
|
+
import type { BuildArchive } from './install.js';
|
|
10
|
+
import type { ManifestOf } from './manifest.js';
|
|
11
|
+
import type { FoundryLocalHostPlatform } from './select.js';
|
|
12
|
+
/** One build on disk as the service sees it. */
|
|
13
|
+
export interface Build extends EngineBuildRef {
|
|
14
|
+
/** For a bundled MLX build, `resources-dir`; otherwise the build's own directory. */
|
|
15
|
+
dir: string;
|
|
16
|
+
installed_at_ms: number | null;
|
|
17
|
+
published_at: string | null;
|
|
18
|
+
/** Foundry Local: the C API version recorded at install; `null` when unknown. */
|
|
19
|
+
c_api_version?: number | null;
|
|
20
|
+
}
|
|
21
|
+
/** What a row may read from the service's dependencies. */
|
|
22
|
+
export interface EngineContext {
|
|
23
|
+
/** This engine's `<data>/…/backends`. */
|
|
24
|
+
root: string;
|
|
25
|
+
failedBackendsFile: string;
|
|
26
|
+
resourcesDir?: string | undefined;
|
|
27
|
+
platform: NodeJS.Platform;
|
|
28
|
+
hardware: () => Promise<Pick<HardwareFacts, 'osType' | 'arch' | 'cpuExtensions' | 'gpus'>>;
|
|
29
|
+
log?: ((level: 'info' | 'warn', message: string) => void) | undefined;
|
|
30
|
+
/** Which Foundry Local archive this host runs (`foundryLocalHostPlatform`), or why none. */
|
|
31
|
+
foundryLocalHost: FoundryLocalHostPlatform;
|
|
32
|
+
/** `foundry-host probe --lib <dir>` of this core; throws `ENGINE_INSTALL_FAILED` with what it printed. */
|
|
33
|
+
foundryHostProbe?: ((libDir: string) => Promise<void>) | undefined;
|
|
34
|
+
}
|
|
35
|
+
export interface HostChoice {
|
|
36
|
+
/** What this host would install, best first. */
|
|
37
|
+
ladder: string[];
|
|
38
|
+
backend_id: string | null;
|
|
39
|
+
/** Why `backend_id` is `null`. */
|
|
40
|
+
reason: string | null;
|
|
41
|
+
}
|
|
42
|
+
/** An archive of a build; `sha256` and `size` are absent when the manifest does not pin them. */
|
|
43
|
+
export type ArchiveRef = Omit<BuildArchive, 'sha256' | 'size'> & {
|
|
44
|
+
sha256?: string;
|
|
45
|
+
size?: number;
|
|
46
|
+
};
|
|
47
|
+
export interface BuildRecordInfo {
|
|
48
|
+
tag: string;
|
|
49
|
+
backendId: string;
|
|
50
|
+
sha256: string | null;
|
|
51
|
+
installedAtMs: number;
|
|
52
|
+
publishedAt: string | null;
|
|
53
|
+
/** Foundry Local: the release's C API version. */
|
|
54
|
+
cApiVersion: number | null;
|
|
55
|
+
}
|
|
56
|
+
export interface EngineDescriptor<M> {
|
|
57
|
+
/** The release an install takes from the manifest, and the order key it carries. */
|
|
58
|
+
release(manifest: M): {
|
|
59
|
+
tag: string;
|
|
60
|
+
published_at: string | null;
|
|
61
|
+
c_api_version?: number;
|
|
62
|
+
};
|
|
63
|
+
hostChoice(ctx: EngineContext, manifest: M | null): Promise<HostChoice>;
|
|
64
|
+
/** The build's archive first, companions after; all unpack into one directory. */
|
|
65
|
+
archives(manifest: M, backendId: string): ArchiveRef[];
|
|
66
|
+
/** Fix the unpacked tree up before the probe; runs even when a test replaces the probe. */
|
|
67
|
+
prepare?(staging: string, ctx: EngineContext): Promise<void>;
|
|
68
|
+
/** Make the unpacked tree runnable and prove it runs here; throws `ENGINE_INSTALL_FAILED`. */
|
|
69
|
+
probe(staging: string, ctx: EngineContext): Promise<void>;
|
|
70
|
+
/** The ownership marker and `install.json`. */
|
|
71
|
+
record(staging: string, info: BuildRecordInfo): Promise<void>;
|
|
72
|
+
builds(ctx: EngineContext): Promise<Build[]>;
|
|
73
|
+
/** The build the next load uses. */
|
|
74
|
+
active(builds: Build[]): Build | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Present when a build that fails its probe sends the install down the host's ladder (sd.cpp,
|
|
77
|
+
* design D7 of `move-sdcpp-mlx-install-to-core`): remember the failed rung for this tag.
|
|
78
|
+
*/
|
|
79
|
+
rememberFailedRung?(ctx: EngineContext, tag: string, backendId: string): Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
export declare const ENGINE_DESCRIPTORS: {
|
|
82
|
+
[K in EngineBuildId]: EngineDescriptor<ManifestOf[K]>;
|
|
83
|
+
};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Everything that differs between the engines `EngineBuildsService` installs, as one table (openspec
|
|
3
|
+
* change `add-foundry-local`, task 4.1): which release a manifest offers, which build fits this host,
|
|
4
|
+
* which archives make it, how it is probed and recorded, what is on disk and which build is active.
|
|
5
|
+
* The service only orders the steps; a new engine is a new row here, not another branch there.
|
|
6
|
+
*/
|
|
7
|
+
import { AtomicCoreError } from '../contracts/index.js';
|
|
8
|
+
import { listInstalledBackends, prepareSdcppTree, writeInstallRecord } from '../diffusion/install.js';
|
|
9
|
+
import { listDownloadedMlx, probeMlxServer, readBundledMlx, writeMlxInstallRecord } from './builds.js';
|
|
10
|
+
import { listFoundryLocalBuilds, prepareFoundryLocalTree, writeFoundryLocalInstallRecord, } from './foundry-local.js';
|
|
11
|
+
import { FOUNDRY_LOCAL_C_API_VERSIONS, foundryLocalAssetUrl, mlxAssetUrl, sdcppAssetUrl } from './manifest.js';
|
|
12
|
+
import { compareBuilds } from './order.js';
|
|
13
|
+
import { backendKindOf, companionFor, foundryLocalHostChoice, mlxHostChoice, readFailedBackends, rememberFailedBackend, sdcppHostChoice, sdcppHostOf, } from './select.js';
|
|
14
|
+
const pin = (asset) => ({
|
|
15
|
+
...(asset.sha256 !== undefined ? { sha256: asset.sha256 } : {}),
|
|
16
|
+
...(asset.size !== undefined ? { size: asset.size } : {}),
|
|
17
|
+
});
|
|
18
|
+
/** The newest of `builds` by the engine's order; the first one wins a tie. */
|
|
19
|
+
function newest(engine, builds) {
|
|
20
|
+
let best;
|
|
21
|
+
for (const build of builds)
|
|
22
|
+
if (!best || compareBuilds(engine, build, best) > 0)
|
|
23
|
+
best = build;
|
|
24
|
+
return best;
|
|
25
|
+
}
|
|
26
|
+
const sdcpp = {
|
|
27
|
+
release: (manifest) => ({ tag: manifest.tag_name, published_at: null }),
|
|
28
|
+
async hostChoice(ctx, manifest) {
|
|
29
|
+
const host = sdcppHostOf(await ctx.hardware());
|
|
30
|
+
if (!manifest)
|
|
31
|
+
return { ladder: [], backend_id: null, reason: 'The sd.cpp manifest is unavailable.' };
|
|
32
|
+
return sdcppHostChoice(host, manifest, await readFailedBackends(ctx.failedBackendsFile));
|
|
33
|
+
},
|
|
34
|
+
archives(manifest, backendId) {
|
|
35
|
+
const ids = [backendId, companionFor(backendId)];
|
|
36
|
+
return ids.flatMap((id) => {
|
|
37
|
+
const asset = manifest.assets.find((candidate) => candidate.backend === id);
|
|
38
|
+
return asset ? [{ ...pin(asset), url: sdcppAssetUrl(manifest, asset), name: asset.name }] : [];
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
probe: (staging, ctx) => prepareSdcppTree(staging, { platform: ctx.platform, ...(ctx.log ? { log: ctx.log } : {}) }),
|
|
42
|
+
record: (staging, info) => writeInstallRecord(staging, {
|
|
43
|
+
tag: info.tag,
|
|
44
|
+
backendId: info.backendId,
|
|
45
|
+
backend: backendKindOf(info.backendId),
|
|
46
|
+
engine: 'sd-cpp',
|
|
47
|
+
sha256: info.sha256,
|
|
48
|
+
installedAtMs: info.installedAtMs,
|
|
49
|
+
dir: staging,
|
|
50
|
+
}),
|
|
51
|
+
async builds(ctx) {
|
|
52
|
+
return (await listInstalledBackends(ctx.root, ctx.platform))
|
|
53
|
+
.filter((record) => record.engine === 'sd-cpp')
|
|
54
|
+
.map((record) => ({
|
|
55
|
+
tag: record.tag,
|
|
56
|
+
backend_id: record.backendId,
|
|
57
|
+
origin: 'downloaded',
|
|
58
|
+
dir: record.dir,
|
|
59
|
+
installed_at_ms: record.installedAtMs,
|
|
60
|
+
published_at: null,
|
|
61
|
+
}));
|
|
62
|
+
},
|
|
63
|
+
/** The newest install, which `selectModelInstall` hands the next load. */
|
|
64
|
+
active: (builds) => builds[0],
|
|
65
|
+
rememberFailedRung: (ctx, tag, backendId) => rememberFailedBackend(ctx.failedBackendsFile, tag, backendId),
|
|
66
|
+
};
|
|
67
|
+
const mlx = {
|
|
68
|
+
release: (manifest) => ({ tag: manifest.tag_name, published_at: manifest.published_at }),
|
|
69
|
+
async hostChoice(ctx, manifest) {
|
|
70
|
+
const choice = mlxHostChoice(sdcppHostOf(await ctx.hardware()), manifest);
|
|
71
|
+
return { ...choice, ladder: choice.backend_id ? [choice.backend_id] : [] };
|
|
72
|
+
},
|
|
73
|
+
archives: (manifest, backendId) => manifest.assets
|
|
74
|
+
.filter((asset) => asset.backend === backendId)
|
|
75
|
+
.map((asset) => ({ ...pin(asset), url: mlxAssetUrl(manifest, asset), name: asset.name })),
|
|
76
|
+
probe: (staging, ctx) => probeMlxServer(staging, { platform: ctx.platform }),
|
|
77
|
+
record: (staging, { cApiVersion: _cApiVersion, ...info }) => writeMlxInstallRecord(staging, info),
|
|
78
|
+
async builds(ctx) {
|
|
79
|
+
const out = (await listDownloadedMlx(ctx.root)).map((record) => ({
|
|
80
|
+
tag: record.tag,
|
|
81
|
+
backend_id: record.backendId,
|
|
82
|
+
origin: 'downloaded',
|
|
83
|
+
dir: record.dir,
|
|
84
|
+
installed_at_ms: record.installedAtMs,
|
|
85
|
+
published_at: record.publishedAt,
|
|
86
|
+
}));
|
|
87
|
+
const bundled = await readBundledMlx(ctx.resourcesDir);
|
|
88
|
+
if (bundled)
|
|
89
|
+
out.unshift(bundledMlxBuild(bundled, ctx.resourcesDir));
|
|
90
|
+
return out;
|
|
91
|
+
},
|
|
92
|
+
/** The newest build by `published_at`, the bundled one on a tie (spec "Две точки происхождения mlx-server"). */
|
|
93
|
+
active: (builds) => newest('mlx', builds),
|
|
94
|
+
};
|
|
95
|
+
function bundledMlxBuild(bundled, resourcesDir) {
|
|
96
|
+
return {
|
|
97
|
+
tag: bundled.tag ?? 'bundled',
|
|
98
|
+
backend_id: 'macos-arm64',
|
|
99
|
+
origin: 'bundled',
|
|
100
|
+
dir: resourcesDir,
|
|
101
|
+
installed_at_ms: null,
|
|
102
|
+
published_at: bundled.published_at,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
const foundryLocal = {
|
|
106
|
+
release: (manifest) => {
|
|
107
|
+
const newest = manifest.releases[0];
|
|
108
|
+
return { tag: newest.tag, published_at: newest.published_at, c_api_version: newest.c_api_version };
|
|
109
|
+
},
|
|
110
|
+
hostChoice: async (ctx, manifest) => foundryLocalHostChoice(ctx.foundryLocalHost, manifest?.releases[0] ?? null),
|
|
111
|
+
archives(manifest, backendId) {
|
|
112
|
+
const release = manifest.releases[0];
|
|
113
|
+
const asset = release?.assets.find((candidate) => candidate.platform === backendId);
|
|
114
|
+
return release && asset
|
|
115
|
+
? [{ ...pin(asset), url: foundryLocalAssetUrl(manifest, release, asset), name: asset.name }]
|
|
116
|
+
: [];
|
|
117
|
+
},
|
|
118
|
+
prepare: (staging, ctx) => prepareFoundryLocalTree(staging, ctx.platform),
|
|
119
|
+
async probe(staging, ctx) {
|
|
120
|
+
if (!ctx.foundryHostProbe)
|
|
121
|
+
throw new AtomicCoreError('ENGINE_INSTALL_FAILED', 'This core has no Foundry Local host to check the build with.');
|
|
122
|
+
await ctx.foundryHostProbe(staging);
|
|
123
|
+
},
|
|
124
|
+
record: (staging, info) => writeFoundryLocalInstallRecord(staging, info),
|
|
125
|
+
async builds(ctx) {
|
|
126
|
+
return (await listFoundryLocalBuilds(ctx.root)).map((record) => ({
|
|
127
|
+
tag: record.tag,
|
|
128
|
+
backend_id: record.backendId,
|
|
129
|
+
origin: 'downloaded',
|
|
130
|
+
dir: record.dir,
|
|
131
|
+
installed_at_ms: record.installedAtMs,
|
|
132
|
+
published_at: record.publishedAt,
|
|
133
|
+
c_api_version: record.cApiVersion,
|
|
134
|
+
}));
|
|
135
|
+
},
|
|
136
|
+
/** The newest by `published_at` among the builds whose C API this core's host binds (design D2). */
|
|
137
|
+
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
|
+
export const ENGINE_DESCRIPTORS = {
|
|
140
|
+
'sd-cpp': sdcpp,
|
|
141
|
+
'mlx': mlx,
|
|
142
|
+
'foundry-local': foundryLocal,
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=engines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engines.js","sourceRoot":"","sources":["../../src/engine-builds/engines.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What is particular to Foundry Local builds (openspec change `add-foundry-local`, design D2): the
|
|
3
|
+
* tree a release archive unpacks to is made runnable before the probe — Microsoft's debug symbols
|
|
4
|
+
* go (`*.pdb` 129 MB, `*.so.dbg` 165 MB, `*.dSYM` 52 MB; integrity was already checked on the
|
|
5
|
+
* archive's sha256) and on Linux the ONNX Runtime soname the library asks for is added — and each
|
|
6
|
+
* build records the C API version it was published with, which decides whether this core can run it.
|
|
7
|
+
*/
|
|
8
|
+
/** Debug symbols out; on Linux, `lib/libonnxruntime.so.1` → `libonnxruntime.so` unless it is there. */
|
|
9
|
+
export declare function prepareFoundryLocalTree(staging: string, platform: NodeJS.Platform): Promise<void>;
|
|
10
|
+
export interface FoundryLocalInstallRecord {
|
|
11
|
+
tag: string;
|
|
12
|
+
backendId: string;
|
|
13
|
+
sha256: string | null;
|
|
14
|
+
installedAtMs: number;
|
|
15
|
+
publishedAt: string | null;
|
|
16
|
+
cApiVersion: number | null;
|
|
17
|
+
dir: string;
|
|
18
|
+
}
|
|
19
|
+
/** The marker, then `install.json` without `dir`. */
|
|
20
|
+
export declare function writeFoundryLocalInstallRecord(dir: string, record: Omit<FoundryLocalInstallRecord, 'dir'>): Promise<void>;
|
|
21
|
+
/** Every marked `<root>/<tag>/<platform>/` with a record and its library, newest install first. */
|
|
22
|
+
export declare function listFoundryLocalBuilds(root: string): Promise<FoundryLocalInstallRecord[]>;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What is particular to Foundry Local builds (openspec change `add-foundry-local`, design D2): the
|
|
3
|
+
* tree a release archive unpacks to is made runnable before the probe — Microsoft's debug symbols
|
|
4
|
+
* go (`*.pdb` 129 MB, `*.so.dbg` 165 MB, `*.dSYM` 52 MB; integrity was already checked on the
|
|
5
|
+
* archive's sha256) and on Linux the ONNX Runtime soname the library asks for is added — and each
|
|
6
|
+
* build records the C API version it was published with, which decides whether this core can run it.
|
|
7
|
+
*/
|
|
8
|
+
import { lstat, readdir, readFile, rm, stat, symlink, writeFile } from 'node:fs/promises';
|
|
9
|
+
import { join } from 'node:path';
|
|
10
|
+
import { INSTALL_RECORD, OWNER_MARKER } from '../diffusion/install.js';
|
|
11
|
+
import { isDateTime } from './manifest.js';
|
|
12
|
+
/** Names that are debug symbols only, on any of the three systems. */
|
|
13
|
+
const DEBUG_SYMBOLS_RE = /\.(pdb|so\.dbg|dSYM)$/;
|
|
14
|
+
/** `libfoundry_local.so` needs this name; the archive ships `libonnxruntime.so` alone (spike, ruling S1). */
|
|
15
|
+
const ORT_SONAME = 'libonnxruntime.so.1';
|
|
16
|
+
const ORT_LIBRARY = 'libonnxruntime.so';
|
|
17
|
+
const exists = (path) => stat(path).then(() => true, () => false);
|
|
18
|
+
/** The name itself, a dangling symlink included. */
|
|
19
|
+
const named = (path) => lstat(path).then(() => true, () => false);
|
|
20
|
+
/** Delete debug symbols anywhere under `dir`; a `.dSYM` bundle is a directory. */
|
|
21
|
+
async function removeDebugSymbols(dir) {
|
|
22
|
+
for (const entry of await readdir(dir, { withFileTypes: true })) {
|
|
23
|
+
const path = join(dir, entry.name);
|
|
24
|
+
if (DEBUG_SYMBOLS_RE.test(entry.name))
|
|
25
|
+
await rm(path, { recursive: true, force: true });
|
|
26
|
+
else if (entry.isDirectory())
|
|
27
|
+
await removeDebugSymbols(path);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Debug symbols out; on Linux, `lib/libonnxruntime.so.1` → `libonnxruntime.so` unless it is there. */
|
|
31
|
+
export async function prepareFoundryLocalTree(staging, platform) {
|
|
32
|
+
await removeDebugSymbols(staging);
|
|
33
|
+
if (platform !== 'linux')
|
|
34
|
+
return;
|
|
35
|
+
const lib = join(staging, 'lib');
|
|
36
|
+
if ((await exists(join(lib, ORT_LIBRARY))) && !(await named(join(lib, ORT_SONAME))))
|
|
37
|
+
await symlink(ORT_LIBRARY, join(lib, ORT_SONAME));
|
|
38
|
+
}
|
|
39
|
+
/** The marker, then `install.json` without `dir`. */
|
|
40
|
+
export async function writeFoundryLocalInstallRecord(dir, record) {
|
|
41
|
+
await writeFile(join(dir, OWNER_MARKER), 'atomic-chat\n');
|
|
42
|
+
const file = {
|
|
43
|
+
tag: record.tag,
|
|
44
|
+
backendId: record.backendId,
|
|
45
|
+
sha256: record.sha256,
|
|
46
|
+
installedAtMs: record.installedAtMs,
|
|
47
|
+
publishedAt: record.publishedAt,
|
|
48
|
+
cApiVersion: record.cApiVersion,
|
|
49
|
+
};
|
|
50
|
+
await writeFile(join(dir, INSTALL_RECORD), JSON.stringify(file, null, 2));
|
|
51
|
+
}
|
|
52
|
+
async function readFoundryLocalInstallRecord(dir) {
|
|
53
|
+
let raw;
|
|
54
|
+
try {
|
|
55
|
+
raw = JSON.parse(await readFile(join(dir, INSTALL_RECORD), 'utf8'));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
if (raw === null || typeof raw !== 'object' || Array.isArray(raw))
|
|
61
|
+
return undefined;
|
|
62
|
+
const { tag, backendId, sha256, installedAtMs, publishedAt, cApiVersion } = raw;
|
|
63
|
+
if (typeof tag !== 'string' ||
|
|
64
|
+
typeof backendId !== 'string' ||
|
|
65
|
+
typeof installedAtMs !== 'number' ||
|
|
66
|
+
!Number.isSafeInteger(installedAtMs))
|
|
67
|
+
return undefined;
|
|
68
|
+
return {
|
|
69
|
+
tag,
|
|
70
|
+
backendId,
|
|
71
|
+
sha256: typeof sha256 === 'string' ? sha256 : null,
|
|
72
|
+
installedAtMs,
|
|
73
|
+
publishedAt: isDateTime(publishedAt) ? publishedAt : null,
|
|
74
|
+
cApiVersion: typeof cApiVersion === 'number' && Number.isSafeInteger(cApiVersion) ? cApiVersion : null,
|
|
75
|
+
dir,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/** The Foundry Local library under `lib/`, by each system's name for it. */
|
|
79
|
+
const LIBRARY_NAMES = ['libfoundry_local.dylib', 'libfoundry_local.so', 'foundry_local.dll'];
|
|
80
|
+
async function hasLibrary(dir) {
|
|
81
|
+
for (const name of LIBRARY_NAMES)
|
|
82
|
+
if (await exists(join(dir, 'lib', name)))
|
|
83
|
+
return true;
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
/** Every marked `<root>/<tag>/<platform>/` with a record and its library, newest install first. */
|
|
87
|
+
export async function listFoundryLocalBuilds(root) {
|
|
88
|
+
const out = [];
|
|
89
|
+
for (const tag of await readdir(root).catch(() => []))
|
|
90
|
+
for (const backend of await readdir(join(root, tag)).catch(() => [])) {
|
|
91
|
+
const dir = join(root, tag, backend);
|
|
92
|
+
if (!(await exists(join(dir, OWNER_MARKER))))
|
|
93
|
+
continue;
|
|
94
|
+
const record = await readFoundryLocalInstallRecord(dir);
|
|
95
|
+
if (record && (await hasLibrary(dir)))
|
|
96
|
+
out.push(record);
|
|
97
|
+
}
|
|
98
|
+
return out.sort((a, b) => b.installedAtMs - a.installedAtMs);
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=foundry-local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foundry-local.js","sourceRoot":"","sources":["../../src/engine-builds/foundry-local.ts"],"names":[],"mappings":"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"}
|