@atomic-chat/core 0.21.1 → 0.21.2
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/backend/advisor/advisor.js +11 -2
- package/dist/backend/advisor/advisor.js.map +1 -1
- package/dist/backend/install/cuda-guard.d.ts +62 -0
- package/dist/backend/install/cuda-guard.js +80 -0
- package/dist/backend/install/cuda-guard.js.map +1 -0
- package/dist/backend/install/cuda-runtime-source.d.ts +76 -0
- package/dist/backend/install/cuda-runtime-source.js +294 -0
- package/dist/backend/install/cuda-runtime-source.js.map +1 -0
- package/dist/backend/install/index.d.ts +3 -0
- package/dist/backend/install/index.js +3 -0
- package/dist/backend/install/index.js.map +1 -1
- package/dist/backend/install/runtime-backend.d.ts +30 -3
- package/dist/backend/install/runtime-backend.js +106 -28
- package/dist/backend/install/runtime-backend.js.map +1 -1
- package/dist/backend/install/service.d.ts +40 -4
- package/dist/backend/install/service.js +175 -31
- package/dist/backend/install/service.js.map +1 -1
- package/dist/backend/install/windows-launch-check.d.ts +72 -0
- package/dist/backend/install/windows-launch-check.js +173 -0
- package/dist/backend/install/windows-launch-check.js.map +1 -0
- package/dist/backend/installed/installed.d.ts +13 -0
- package/dist/backend/installed/installed.js +32 -0
- package/dist/backend/installed/installed.js.map +1 -1
- package/dist/backend/select/bad-backends.d.ts +68 -0
- package/dist/backend/select/bad-backends.js +136 -0
- package/dist/backend/select/bad-backends.js.map +1 -0
- package/dist/backend/select/features.d.ts +18 -1
- package/dist/backend/select/features.js +29 -1
- package/dist/backend/select/features.js.map +1 -1
- package/dist/backend/select/index.d.ts +1 -0
- package/dist/backend/select/index.js +1 -0
- package/dist/backend/select/index.js.map +1 -1
- package/dist/backend/turboquant.d.ts +8 -0
- package/dist/backend/turboquant.js +37 -9
- package/dist/backend/turboquant.js.map +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/contracts/diagnostics.d.ts +1 -1
- package/dist/contracts/diagnostics.js +1 -0
- package/dist/contracts/diagnostics.js.map +1 -1
- package/dist/contracts/errors.d.ts +3 -3
- package/dist/contracts/errors.js +15 -0
- package/dist/contracts/errors.js.map +1 -1
- package/dist/contracts/hardware.d.ts +8 -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/load-diag.d.ts +34 -0
- package/dist/contracts/load-diag.js +48 -0
- package/dist/contracts/load-diag.js.map +1 -0
- package/dist/core/atomic-core.d.ts +1 -1
- package/dist/core/create.js +16 -13
- package/dist/core/create.js.map +1 -1
- package/dist/downloads/archive.js +8 -3
- package/dist/downloads/archive.js.map +1 -1
- package/dist/downloads/disk.d.ts +18 -0
- package/dist/downloads/disk.js +32 -1
- package/dist/downloads/disk.js.map +1 -1
- package/dist/downloads/downloader.js +7 -4
- package/dist/downloads/downloader.js.map +1 -1
- package/dist/downloads/fs-retry.d.ts +27 -0
- package/dist/downloads/fs-retry.js +40 -0
- package/dist/downloads/fs-retry.js.map +1 -0
- package/dist/downloads/index.d.ts +1 -0
- package/dist/downloads/index.js +1 -0
- package/dist/downloads/index.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/probe-common.d.ts +9 -1
- package/dist/hardware/probe-common.js.map +1 -1
- package/dist/hardware/probe-windows.d.ts +10 -2
- package/dist/hardware/probe-windows.js +65 -10
- package/dist/hardware/probe-windows.js.map +1 -1
- package/dist/hardware/probe.js +1 -1
- package/dist/hardware/probe.js.map +1 -1
- package/dist/hardware/service.d.ts +11 -0
- package/dist/hardware/service.js +31 -4
- package/dist/hardware/service.js.map +1 -1
- package/dist/hardware/windows-registry.d.ts +80 -0
- package/dist/hardware/windows-registry.js +197 -0
- package/dist/hardware/windows-registry.js.map +1 -0
- package/dist/runtime/llamacpp/args.d.ts +11 -0
- package/dist/runtime/llamacpp/args.js +28 -3
- package/dist/runtime/llamacpp/args.js.map +1 -1
- package/dist/runtime/llamacpp/devices.d.ts +11 -0
- package/dist/runtime/llamacpp/devices.js +22 -0
- package/dist/runtime/llamacpp/devices.js.map +1 -1
- package/dist/runtime/llamacpp/errors.d.ts +32 -2
- package/dist/runtime/llamacpp/errors.js +77 -4
- package/dist/runtime/llamacpp/errors.js.map +1 -1
- package/dist/runtime/llamacpp/index.d.ts +1 -0
- package/dist/runtime/llamacpp/index.js +1 -0
- package/dist/runtime/llamacpp/index.js.map +1 -1
- package/dist/runtime/llamacpp/load-failure.d.ts +52 -0
- package/dist/runtime/llamacpp/load-failure.js +105 -0
- package/dist/runtime/llamacpp/load-failure.js.map +1 -0
- package/dist/runtime/llamacpp/load-plan.d.ts +5 -0
- package/dist/runtime/llamacpp/load-plan.js +34 -4
- package/dist/runtime/llamacpp/load-plan.js.map +1 -1
- package/dist/runtime/llamacpp/runtime.d.ts +24 -1
- package/dist/runtime/llamacpp/runtime.js +116 -27
- package/dist/runtime/llamacpp/runtime.js.map +1 -1
- package/dist/runtime/shared/env.js +13 -15
- package/dist/runtime/shared/env.js.map +1 -1
- package/dist/telemetry/diagnostics.js +4 -0
- package/dist/telemetry/diagnostics.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { FailureObserver } from '../../contracts/index.js';
|
|
2
2
|
import type { LocalProviderId } from '../../contracts/index.js';
|
|
3
3
|
import type { DataLayout } from '../../config/index.js';
|
|
4
|
-
import type { Downloader, ProxyConfig } from '../../downloads/index.js';
|
|
4
|
+
import type { Downloader, FsRetryOptions, ProxyConfig } from '../../downloads/index.js';
|
|
5
5
|
import type { PrismCatalogService } from '../catalog/index.js';
|
|
6
|
-
import type { InstalledBackendPack, UpstreamManifest } from '../types.js';
|
|
6
|
+
import type { BackendArchiveSource, InstalledBackendPack, UpstreamManifest } from '../types.js';
|
|
7
7
|
import type { OptimalBackendStore, OptimalState, OptimalUpdate } from '../optimal/index.js';
|
|
8
8
|
/**
|
|
9
9
|
* How long a pack's `llama-server --version` may take. The first launch of a pack is from a path
|
|
@@ -12,13 +12,23 @@ import type { OptimalBackendStore, OptimalState, OptimalUpdate } from '../optima
|
|
|
12
12
|
* compiles its shaders on top (15.7 s). The former 15 s left every such install failing.
|
|
13
13
|
*/
|
|
14
14
|
export declare const LAUNCH_CHECK_TIMEOUT_MS = 120000;
|
|
15
|
+
/** The retry policy of the moves an install makes; `platform` decides whether it waits (`fs-retry.ts`). */
|
|
16
|
+
export type InstallMoveRetry = Omit<FsRetryOptions, 'platform'>;
|
|
17
|
+
/**
|
|
18
|
+
* A rename or removal of what this install has just written. On Windows it waits while a scanner or
|
|
19
|
+
* the indexer holds the files (`retryTransientFs`); a failure that outlasts the wait is rethrown as
|
|
20
|
+
* the downloader renders its disk failures — a plain `Error` whose message carries the disk tag
|
|
21
|
+
* (`Error: [disk_file_locked] …`, `[disk_permission]`, `[disk_full]`), the shape the app's telemetry
|
|
22
|
+
* reads — with the fs error as its `cause` and the failure diagnostic attached for the core's reporter.
|
|
23
|
+
*/
|
|
24
|
+
export declare function moveWithRetry(op: () => Promise<void>, what: string, platform: NodeJS.Platform, retry?: InstallMoveRetry): Promise<void>;
|
|
15
25
|
/** Same launch gate as the former macOS extension, run on staging before replacing a working pack. */
|
|
16
26
|
export declare function verifyMacBackendBinary(staging: string, version: string, timeoutMs?: number): Promise<void>;
|
|
17
27
|
/**
|
|
18
28
|
* The Linux cudart companion unpacks into its own `cudart-llama-<tag>-bin-…/` directory, outside the
|
|
19
29
|
* `build/bin` the runtime puts on `LD_LIBRARY_PATH`; its libraries are moved there.
|
|
20
30
|
*/
|
|
21
|
-
export declare function mergeCudartIntoBin(staging: string): Promise<void>;
|
|
31
|
+
export declare function mergeCudartIntoBin(staging: string, platform?: NodeJS.Platform, retry?: InstallMoveRetry): Promise<void>;
|
|
22
32
|
/**
|
|
23
33
|
* How long a PrismML pack's `llama-server --version` may take. Its macOS build initialises Metal
|
|
24
34
|
* while it parses its arguments and compiles its shaders at runtime, and the shader cache follows
|
|
@@ -36,7 +46,13 @@ export declare function verifyPrismBackendBinary(staging: string, version: strin
|
|
|
36
46
|
* A companion archive (the Windows CUDA runtime) unpacked into `build/bin`, beside `llama-server`:
|
|
37
47
|
* flat, or under one top directory, which is dropped.
|
|
38
48
|
*/
|
|
39
|
-
export declare function mergeCompanionIntoBin(staging: string, archive: string): Promise<void>;
|
|
49
|
+
export declare function mergeCompanionIntoBin(staging: string, archive: string, platform?: NodeJS.Platform, retry?: InstallMoveRetry): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Where the CUDA runtime companion of an upstream pack comes from: the signed mirror, against its
|
|
52
|
+
* hash and size, when the release list lists that asset (the rule `resolveBackendArchiveSource`
|
|
53
|
+
* applies to the pack itself); otherwise the ggml-org CDN without a checksum, as before.
|
|
54
|
+
*/
|
|
55
|
+
export declare function companionSource(version: string, name: string, cdnUrl: string, manifest: UpstreamManifest | null | undefined): BackendArchiveSource;
|
|
40
56
|
/** The server executable inside a pack; the only name `normalizeBackendLayout` looks for. */
|
|
41
57
|
export declare function backendExeName(osType: string): string;
|
|
42
58
|
export interface BackendServiceDeps {
|
|
@@ -60,6 +76,12 @@ export interface BackendServiceDeps {
|
|
|
60
76
|
prismCatalog?: Pick<PrismCatalogService, 'catalog'>;
|
|
61
77
|
/** Test seam for the PrismML launch gate. */
|
|
62
78
|
verifyPrismBackend?: (staging: string, version: string) => Promise<void>;
|
|
79
|
+
/** Test seam for the Windows launch gate of the upstream and TurboQuant packs. */
|
|
80
|
+
verifyWindowsBackend?: (staging: string, version: string, backend: string) => Promise<void>;
|
|
81
|
+
/** The environment a model load starts from, for the Windows launch gate; `process.env` by default. */
|
|
82
|
+
env?: NodeJS.ProcessEnv;
|
|
83
|
+
/** Test seam for the waits of `moveWithRetry`. */
|
|
84
|
+
moveRetry?: InstallMoveRetry;
|
|
63
85
|
/**
|
|
64
86
|
* What runs this provider's packs (change `unify-engine-lifecycle`, task 2.4): the runtime's load
|
|
65
87
|
* queue, and the pack directories its sessions and the decision and embedding models run from.
|
|
@@ -74,6 +96,12 @@ export interface BackendServiceDeps {
|
|
|
74
96
|
*/
|
|
75
97
|
onChanged?: (reason: 'install' | 'uninstall') => void;
|
|
76
98
|
log?: (message: string) => void;
|
|
99
|
+
/**
|
|
100
|
+
* The fetch for NVIDIA's CUDA redistributable manifests, by the install's proxy. Absent — the
|
|
101
|
+
* NVIDIA source is skipped and the CUDA runtime comes from local packs, a host toolkit or the
|
|
102
|
+
* ggml-org companions only.
|
|
103
|
+
*/
|
|
104
|
+
cudaRuntimeFetchFor?: (proxy: ProxyConfig | null) => typeof fetch;
|
|
77
105
|
}
|
|
78
106
|
export interface BackendHost {
|
|
79
107
|
/** Run `fn` once the load in flight is done, with every new load held until it returns. */
|
|
@@ -157,6 +185,14 @@ export declare class BackendService {
|
|
|
157
185
|
* downloaded again, because the updater screen calls this for every row it offers and a user
|
|
158
186
|
* clicking twice should not re-fetch half a gigabyte.
|
|
159
187
|
*/
|
|
188
|
+
/**
|
|
189
|
+
* Before a load: make an installed Windows CUDA pack carry its whole CUDA runtime. The provider's
|
|
190
|
+
* own repair runs first (its companion, as it always did); whatever it could not supply comes from
|
|
191
|
+
* another pack, a host toolkit, NVIDIA's redistributables or the pinned companions. Rejects when no
|
|
192
|
+
* source could, which is what makes the load guard pick another pack. PrismML packs are installed
|
|
193
|
+
* with their runtime and are left alone; other platforms have nothing to do.
|
|
194
|
+
*/
|
|
195
|
+
repairCudaRuntime(version: string, backend: string): Promise<void>;
|
|
160
196
|
install(version: string, backend: string, options: InstallBackendOptions): Promise<InstallBackendResult>;
|
|
161
197
|
/**
|
|
162
198
|
* An upstream pack: from the signed mirror when the release list lists this exact asset, otherwise
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { withLoadDiag } from '../../contracts/index.js';
|
|
1
2
|
/**
|
|
2
3
|
* Installing and updating llama.cpp backends (PLAN.md §4, stage 3c).
|
|
3
4
|
*
|
|
@@ -24,14 +25,16 @@ import { promisify } from 'node:util';
|
|
|
24
25
|
import { join } from 'node:path';
|
|
25
26
|
import { AtomicCoreError } from '../../contracts/index.js';
|
|
26
27
|
import { samePath } from '../../diffusion/containment.js';
|
|
27
|
-
import { validateProxyConfig } from '../../downloads/index.js';
|
|
28
|
+
import { DOWNLOAD_CANCELLED, diskFaultMessage, heldFileFaultTag, retryTransientFs, validateProxyConfig, } from '../../downloads/index.js';
|
|
28
29
|
import { extractArchive, normalizeBackendLayout } from '../../downloads/index.js';
|
|
29
|
-
import { findPrismRelease, getBackendArchiveName, getCudartArchiveName, getCudartDownloadUrl, prismArchiveSources, prismTagBuild, resolveBackendArchiveSource, } from '../catalog/index.js';
|
|
30
|
+
import { findPrismRelease, getBackendArchiveName, getCudartArchiveName, getCudartDownloadUrl, getCudaToolkitVersion, prismArchiveSources, prismTagBuild, resolveBackendArchiveSource, } from '../catalog/index.js';
|
|
30
31
|
import { deletableBackendPack, getBackendDir, listInstalledBackendPacks, readBundledLlamacppPack, } from '../installed/index.js';
|
|
31
|
-
import { scanInstalledBackends } from '../installed/index.js';
|
|
32
|
+
import { missingWindowsCudaRuntimeDlls, scanInstalledBackends } from '../installed/index.js';
|
|
32
33
|
import { llamaServerExeName } from '../../config/index.js';
|
|
33
|
-
import { ensureTurboquantCudart, readTurboquantIndexedAsset, turboquantArchiveUrl } from '../turboquant.js';
|
|
34
|
+
import { ensureTurboquantCudart, ensureUpstreamCudart, readTurboquantIndexedAsset, turboquantArchiveUrl, turboquantCudaToolkit, } from '../turboquant.js';
|
|
34
35
|
import { parseBackendVersion, parseBinaryVersion, stripBom } from '../version.js';
|
|
36
|
+
import { verifyWindowsBackendBinary } from './windows-launch-check.js';
|
|
37
|
+
import { deliverWindowsCudaRuntime } from './cuda-runtime-source.js';
|
|
35
38
|
const execFileAsync = promisify(execFile);
|
|
36
39
|
/**
|
|
37
40
|
* How long a pack's `llama-server --version` may take. The first launch of a pack is from a path
|
|
@@ -53,6 +56,31 @@ function launchFailure(error) {
|
|
|
53
56
|
.join(' | ');
|
|
54
57
|
return new Error(`llama-server --version failed (${how})${said ? `: ${said}` : ''}`);
|
|
55
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* A rename or removal of what this install has just written. On Windows it waits while a scanner or
|
|
61
|
+
* the indexer holds the files (`retryTransientFs`); a failure that outlasts the wait is rethrown as
|
|
62
|
+
* the downloader renders its disk failures — a plain `Error` whose message carries the disk tag
|
|
63
|
+
* (`Error: [disk_file_locked] …`, `[disk_permission]`, `[disk_full]`), the shape the app's telemetry
|
|
64
|
+
* reads — with the fs error as its `cause` and the failure diagnostic attached for the core's reporter.
|
|
65
|
+
*/
|
|
66
|
+
export async function moveWithRetry(op, what, platform, retry = {}) {
|
|
67
|
+
try {
|
|
68
|
+
await retryTransientFs(op, { ...retry, platform });
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
const tag = heldFileFaultTag(error, platform);
|
|
72
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
73
|
+
const diagnostic = {
|
|
74
|
+
component: 'backend',
|
|
75
|
+
operation: 'install',
|
|
76
|
+
stage: 'persist',
|
|
77
|
+
...(tag !== 'disk_fs_limit' ? { reason: tag } : {}),
|
|
78
|
+
};
|
|
79
|
+
throw Object.defineProperty(new Error(diskFaultMessage(tag, `${what}: ${message}`), { cause: error }), 'diagnostic', {
|
|
80
|
+
value: Object.freeze(diagnostic),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
56
84
|
/** Same launch gate as the former macOS extension, run on staging before replacing a working pack. */
|
|
57
85
|
export async function verifyMacBackendBinary(staging, version, timeoutMs = LAUNCH_CHECK_TIMEOUT_MS) {
|
|
58
86
|
const bin = join(staging, 'build', 'bin');
|
|
@@ -80,7 +108,7 @@ export async function verifyMacBackendBinary(staging, version, timeoutMs = LAUNC
|
|
|
80
108
|
* The Linux cudart companion unpacks into its own `cudart-llama-<tag>-bin-…/` directory, outside the
|
|
81
109
|
* `build/bin` the runtime puts on `LD_LIBRARY_PATH`; its libraries are moved there.
|
|
82
110
|
*/
|
|
83
|
-
export async function mergeCudartIntoBin(staging) {
|
|
111
|
+
export async function mergeCudartIntoBin(staging, platform = process.platform, retry = {}) {
|
|
84
112
|
const bin = join(staging, 'build', 'bin');
|
|
85
113
|
for (const entry of await readdir(staging, { withFileTypes: true })) {
|
|
86
114
|
if (!entry.isDirectory() || !entry.name.startsWith('cudart-'))
|
|
@@ -89,10 +117,12 @@ export async function mergeCudartIntoBin(staging) {
|
|
|
89
117
|
await mkdir(bin, { recursive: true });
|
|
90
118
|
for (const inner of await readdir(dir)) {
|
|
91
119
|
const to = join(bin, inner);
|
|
92
|
-
await
|
|
93
|
-
|
|
120
|
+
await moveWithRetry(async () => {
|
|
121
|
+
await rm(to, { recursive: true, force: true });
|
|
122
|
+
await rename(join(dir, inner), to);
|
|
123
|
+
}, `Could not move ${inner} into the backend`, platform, retry);
|
|
94
124
|
}
|
|
95
|
-
await rm(dir, { recursive: true, force: true });
|
|
125
|
+
await moveWithRetry(() => rm(dir, { recursive: true, force: true }), `Could not remove ${entry.name}`, platform, retry);
|
|
96
126
|
}
|
|
97
127
|
}
|
|
98
128
|
/**
|
|
@@ -138,7 +168,7 @@ export async function verifyPrismBackendBinary(staging, version, platform, timeo
|
|
|
138
168
|
* A companion archive (the Windows CUDA runtime) unpacked into `build/bin`, beside `llama-server`:
|
|
139
169
|
* flat, or under one top directory, which is dropped.
|
|
140
170
|
*/
|
|
141
|
-
export async function mergeCompanionIntoBin(staging, archive) {
|
|
171
|
+
export async function mergeCompanionIntoBin(staging, archive, platform = process.platform, retry = {}) {
|
|
142
172
|
const scratch = join(staging, '.companion');
|
|
143
173
|
await rm(scratch, { recursive: true, force: true });
|
|
144
174
|
await mkdir(scratch, { recursive: true });
|
|
@@ -151,10 +181,26 @@ export async function mergeCompanionIntoBin(staging, archive) {
|
|
|
151
181
|
await mkdir(bin, { recursive: true });
|
|
152
182
|
for (const inner of await readdir(from)) {
|
|
153
183
|
const to = join(bin, inner);
|
|
154
|
-
await
|
|
155
|
-
|
|
184
|
+
await moveWithRetry(async () => {
|
|
185
|
+
await rm(to, { recursive: true, force: true });
|
|
186
|
+
await rename(join(from, inner), to);
|
|
187
|
+
}, `Could not move ${inner} into the backend`, platform, retry);
|
|
156
188
|
}
|
|
157
|
-
await rm(scratch, { recursive: true, force: true });
|
|
189
|
+
await moveWithRetry(() => rm(scratch, { recursive: true, force: true }), 'Could not remove the unpacked companion', platform, retry);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Where the CUDA runtime companion of an upstream pack comes from: the signed mirror, against its
|
|
193
|
+
* hash and size, when the release list lists that asset (the rule `resolveBackendArchiveSource`
|
|
194
|
+
* applies to the pack itself); otherwise the ggml-org CDN without a checksum, as before.
|
|
195
|
+
*/
|
|
196
|
+
export function companionSource(version, name, cdnUrl, manifest) {
|
|
197
|
+
const tag = stripBom(version);
|
|
198
|
+
if (!manifest || manifest.tag_name !== tag || !manifest.download_base)
|
|
199
|
+
return { url: cdnUrl };
|
|
200
|
+
const asset = (manifest.assets ?? []).find((a) => a.name === name);
|
|
201
|
+
if (!asset?.sha256 || !asset.size)
|
|
202
|
+
return { url: cdnUrl };
|
|
203
|
+
return { url: `${manifest.download_base}/${tag}/${name}`, sha256: asset.sha256, size: asset.size };
|
|
158
204
|
}
|
|
159
205
|
/** The server executable inside a pack; the only name `normalizeBackendLayout` looks for. */
|
|
160
206
|
export function backendExeName(osType) {
|
|
@@ -238,6 +284,50 @@ export class BackendService {
|
|
|
238
284
|
* downloaded again, because the updater screen calls this for every row it offers and a user
|
|
239
285
|
* clicking twice should not re-fetch half a gigabyte.
|
|
240
286
|
*/
|
|
287
|
+
/**
|
|
288
|
+
* Before a load: make an installed Windows CUDA pack carry its whole CUDA runtime. The provider's
|
|
289
|
+
* own repair runs first (its companion, as it always did); whatever it could not supply comes from
|
|
290
|
+
* another pack, a host toolkit, NVIDIA's redistributables or the pinned companions. Rejects when no
|
|
291
|
+
* source could, which is what makes the load guard pick another pack. PrismML packs are installed
|
|
292
|
+
* with their runtime and are left alone; other platforms have nothing to do.
|
|
293
|
+
*/
|
|
294
|
+
async repairCudaRuntime(version, backend) {
|
|
295
|
+
const provider = this.deps.provider;
|
|
296
|
+
if (provider === 'atomic-prism')
|
|
297
|
+
return;
|
|
298
|
+
const platform = this.deps.platform ?? process.platform;
|
|
299
|
+
const backendDir = join(this.deps.layout.provider(provider).backendsDir, version, backend);
|
|
300
|
+
const taskId = `${provider}-cudart-${version}/${backend}`.replace(/[^A-Za-z0-9_/:-]/g, '_');
|
|
301
|
+
const deps = {
|
|
302
|
+
layout: this.deps.layout,
|
|
303
|
+
downloader: this.deps.downloader,
|
|
304
|
+
platform,
|
|
305
|
+
...(this.deps.log ? { log: this.deps.log } : {}),
|
|
306
|
+
};
|
|
307
|
+
await (provider === 'llamacpp'
|
|
308
|
+
? ensureTurboquantCudart(backend, backendDir, taskId, deps)
|
|
309
|
+
: ensureUpstreamCudart(version, backend, backendDir, taskId, deps)).catch((error) => {
|
|
310
|
+
if (error instanceof Error && error.message === DOWNLOAD_CANCELLED)
|
|
311
|
+
throw error;
|
|
312
|
+
this.deps.log?.(`cudart repair for ${version}/${backend}: ${String(error)}`);
|
|
313
|
+
});
|
|
314
|
+
if (platform !== 'win32')
|
|
315
|
+
return;
|
|
316
|
+
const companionName = getCudartArchiveName(backend, version);
|
|
317
|
+
const companionUrl = getCudartDownloadUrl(version, backend);
|
|
318
|
+
const releaseCompanion = provider === 'llamacpp-upstream' && companionName && companionUrl
|
|
319
|
+
? companionSource(version, companionName, companionUrl, await this.deps.readManifest(stripBom(version)).catch(() => null))
|
|
320
|
+
: null;
|
|
321
|
+
await deliverWindowsCudaRuntime({ provider, version, backend, packDir: backendDir }, {
|
|
322
|
+
layout: this.deps.layout,
|
|
323
|
+
downloader: this.deps.downloader,
|
|
324
|
+
taskId,
|
|
325
|
+
releaseCompanion,
|
|
326
|
+
...(this.deps.cudaRuntimeFetchFor ? { fetch: this.deps.cudaRuntimeFetchFor(null) } : {}),
|
|
327
|
+
...(this.deps.env ? { env: this.deps.env } : {}),
|
|
328
|
+
...(this.deps.log ? { log: this.deps.log } : {}),
|
|
329
|
+
});
|
|
330
|
+
}
|
|
241
331
|
async install(version, backend, options) {
|
|
242
332
|
if (this.operation !== null && options.operation !== this.operation)
|
|
243
333
|
throw this.busy();
|
|
@@ -259,6 +349,7 @@ export class BackendService {
|
|
|
259
349
|
? await this.prismDownloads(version, backend, staging, options)
|
|
260
350
|
: await this.upstreamDownloads(version, backend, staging, options);
|
|
261
351
|
const platform = this.deps.platform ?? process.platform;
|
|
352
|
+
const retry = this.deps.moveRetry ?? {};
|
|
262
353
|
await rm(staging, { recursive: true, force: true });
|
|
263
354
|
await mkdir(staging, { recursive: true });
|
|
264
355
|
try {
|
|
@@ -270,11 +361,27 @@ export class BackendService {
|
|
|
270
361
|
// Companions go first: a flat pack (PrismML's Windows CUDA zip) is normalised by moving every
|
|
271
362
|
// entry at the staging root into `build/bin`, the companion archive still waiting there with them.
|
|
272
363
|
for (const companion of plan.companions ?? []) {
|
|
273
|
-
await mergeCompanionIntoBin(staging, companion);
|
|
364
|
+
await mergeCompanionIntoBin(staging, companion, platform, retry);
|
|
274
365
|
await rm(companion, { force: true });
|
|
275
366
|
}
|
|
276
367
|
await normalizeBackendLayout(staging, llamaServerExeName(platform));
|
|
277
|
-
await mergeCudartIntoBin(staging);
|
|
368
|
+
await mergeCudartIntoBin(staging, platform, retry);
|
|
369
|
+
if (this.deps.provider === 'llamacpp') {
|
|
370
|
+
// Some fork zips ship without the CUDA runtime. The extension repaired it after installing and
|
|
371
|
+
// only warned on failure: the pack may still run on a host with a CUDA toolkit. It is repaired
|
|
372
|
+
// in staging, so the Windows launch gate below sees the pack as a load will.
|
|
373
|
+
await ensureTurboquantCudart(backend, staging, options.taskId, {
|
|
374
|
+
layout: this.deps.layout,
|
|
375
|
+
downloader: this.deps.downloader,
|
|
376
|
+
...(this.deps.platform ? { platform: this.deps.platform } : {}),
|
|
377
|
+
...(options.proxy ? { proxy: options.proxy } : {}),
|
|
378
|
+
...(this.deps.log ? { log: this.deps.log } : {}),
|
|
379
|
+
}).catch((e) => {
|
|
380
|
+
if (e instanceof Error && e.message === DOWNLOAD_CANCELLED)
|
|
381
|
+
throw e;
|
|
382
|
+
this.deps.log?.(`cudart repair for ${version}/${backend} failed: ${String(e)}`);
|
|
383
|
+
});
|
|
384
|
+
}
|
|
278
385
|
const verify = this.deps.provider === 'atomic-prism'
|
|
279
386
|
? (this.deps.verifyPrismBackend ?? ((dir, tag) => verifyPrismBackendBinary(dir, tag, platform)))
|
|
280
387
|
: this.deps.provider === 'llamacpp-upstream' && platform === 'darwin'
|
|
@@ -288,28 +395,58 @@ export class BackendService {
|
|
|
288
395
|
throw new Error(`The downloaded ${version}/${backend} backend failed its launch check (${String(error)}). Keeping the current backend.`);
|
|
289
396
|
}
|
|
290
397
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
398
|
+
else if (platform === 'win32') {
|
|
399
|
+
// A Windows CUDA pack is only installed with its whole CUDA runtime beside it: without cudart or
|
|
400
|
+
// cuBLAS, ggml-cuda.dll does not load and the "CUDA" pack quietly runs on the CPU. `--version`
|
|
401
|
+
// does not load the CUDA backend, so the launch check below cannot see this. What the archive
|
|
402
|
+
// and its companion did not bring is fetched from the best source this machine has; only when
|
|
403
|
+
// none can supply it is the install refused.
|
|
404
|
+
await deliverWindowsCudaRuntime({ provider: this.deps.provider, version, backend, packDir: staging }, {
|
|
405
|
+
layout: this.deps.layout,
|
|
406
|
+
downloader: this.deps.downloader,
|
|
407
|
+
taskId: options.taskId,
|
|
408
|
+
proxy: options.proxy ?? null,
|
|
409
|
+
...(this.deps.cudaRuntimeFetchFor
|
|
410
|
+
? { fetch: this.deps.cudaRuntimeFetchFor(options.proxy ?? null) }
|
|
411
|
+
: {}),
|
|
412
|
+
...(this.deps.env ? { env: this.deps.env } : {}),
|
|
413
|
+
...(this.deps.log ? { log: this.deps.log } : {}),
|
|
414
|
+
}).catch((error) => {
|
|
415
|
+
if (error instanceof AtomicCoreError && error.code === 'ENGINE_BINARY_BROKEN')
|
|
416
|
+
throw new AtomicCoreError(error.code, error.message, withLoadDiag(error.details, { stage: 'spawn', backend, build: version }));
|
|
417
|
+
throw error;
|
|
418
|
+
});
|
|
419
|
+
const toolkit = this.deps.provider === 'llamacpp' ? turboquantCudaToolkit(backend) : getCudaToolkitVersion(backend);
|
|
420
|
+
const missing = toolkit
|
|
421
|
+
? await missingWindowsCudaRuntimeDlls(join(staging, 'build', 'bin'), toolkit)
|
|
422
|
+
: [];
|
|
423
|
+
if (missing.length > 0) {
|
|
424
|
+
throw new AtomicCoreError('ENGINE_BINARY_BROKEN', `The ${version}/${backend} backend is missing its CUDA runtime (${missing.join(', ')}). Install it again to download the runtime, or pick another backend.`, withLoadDiag(undefined, { stage: 'spawn', backend, build: version }));
|
|
425
|
+
}
|
|
426
|
+
// Throws ENGINE_BINARY_BROKEN / CPU_INSTRUCTION_UNSUPPORTED with the load-diag line as is.
|
|
427
|
+
await (this.deps.verifyWindowsBackend ??
|
|
428
|
+
((dir, tag, id) => verifyWindowsBackendBinary(dir, tag, id, {
|
|
429
|
+
...(this.deps.env ? { env: this.deps.env } : {}),
|
|
430
|
+
...(this.deps.log ? { log: this.deps.log } : {}),
|
|
431
|
+
})))(staging, version, backend);
|
|
432
|
+
}
|
|
433
|
+
await moveWithRetry(async () => {
|
|
434
|
+
await rm(target, { recursive: true, force: true });
|
|
435
|
+
await mkdir(join(target, '..'), { recursive: true });
|
|
436
|
+
await rename(staging, target);
|
|
437
|
+
}, `Could not move the new ${version}/${backend} backend into place`, platform, retry);
|
|
294
438
|
}
|
|
295
439
|
catch (e) {
|
|
296
440
|
this.deps.onFailure?.(e, { component: 'backend', operation: 'install' });
|
|
297
441
|
// Nothing half-installed survives: a partial pack would be picked up by backend selection and
|
|
298
|
-
// would fail later as a model that will not load.
|
|
299
|
-
|
|
442
|
+
// would fail later as a model that will not load. A staging directory Windows still holds is
|
|
443
|
+
// left to the next install (which clears it first) rather than hiding why this one failed.
|
|
444
|
+
await retryTransientFs(() => rm(staging, { recursive: true, force: true }), {
|
|
445
|
+
...retry,
|
|
446
|
+
platform,
|
|
447
|
+
}).catch((cleanup) => this.deps.log?.(`could not remove ${staging}: ${String(cleanup)}`));
|
|
300
448
|
throw e;
|
|
301
449
|
}
|
|
302
|
-
if (this.deps.provider === 'llamacpp') {
|
|
303
|
-
// Some fork zips ship without the CUDA runtime. The extension repaired it after installing and
|
|
304
|
-
// only warned on failure: the pack may still run on a host with a CUDA toolkit.
|
|
305
|
-
await ensureTurboquantCudart(backend, target, options.taskId, {
|
|
306
|
-
layout: this.deps.layout,
|
|
307
|
-
downloader: this.deps.downloader,
|
|
308
|
-
...(this.deps.platform ? { platform: this.deps.platform } : {}),
|
|
309
|
-
...(options.proxy ? { proxy: options.proxy } : {}),
|
|
310
|
-
...(this.deps.log ? { log: this.deps.log } : {}),
|
|
311
|
-
}).catch((e) => this.deps.log?.(`cudart repair for ${version}/${backend} failed: ${String(e)}`));
|
|
312
|
-
}
|
|
313
450
|
if (options.operation === undefined)
|
|
314
451
|
this.deps.onChanged?.('install');
|
|
315
452
|
return { version, backend, installed: true, path: target };
|
|
@@ -339,7 +476,14 @@ export class BackendService {
|
|
|
339
476
|
];
|
|
340
477
|
const archives = [archivePath];
|
|
341
478
|
if (cudartName && cudartUrl) {
|
|
342
|
-
|
|
479
|
+
const companion = companionSource(version, cudartName, cudartUrl, manifest);
|
|
480
|
+
items.push({
|
|
481
|
+
url: companion.url,
|
|
482
|
+
save_path: join(staging, cudartName),
|
|
483
|
+
...(companion.sha256 ? { sha256: companion.sha256 } : {}),
|
|
484
|
+
...(companion.size ? { size: companion.size } : {}),
|
|
485
|
+
...proxy,
|
|
486
|
+
});
|
|
343
487
|
archives.push(join(staging, cudartName));
|
|
344
488
|
}
|
|
345
489
|
return { items, archives };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/backend/install/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/backend/install/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The launch gate of a llama.cpp pack on Windows: `llama-server.exe --version`, run from the staging
|
|
3
|
+
* directory with the environment a model load gives the server, before the pack replaces anything.
|
|
4
|
+
*
|
|
5
|
+
* A Windows pack that cannot start — a DLL missing from the archive, a `ggml-*.dll` antivirus
|
|
6
|
+
* quarantined while it was being unpacked, a build for another CPU — used to install without
|
|
7
|
+
* complaint and die at the first model load with nothing on stderr, because the loader ends the
|
|
8
|
+
* process before `main` prints anything. Here that exit code is read instead, the pack is refused
|
|
9
|
+
* with a code the app can name, and the staging directory is removed, so the next install starts
|
|
10
|
+
* clean. A check that runs out of time proves nothing (a first run of a 1 GB CUDA tree waits on the
|
|
11
|
+
* scanner): the pack is then kept, as before this gate existed.
|
|
12
|
+
*/
|
|
13
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
14
|
+
/** Long enough for a scanner to look at an unseen tree, short enough not to stall an install on a hang. */
|
|
15
|
+
export declare const WINDOWS_LAUNCH_CHECK_TIMEOUT_MS = 60000;
|
|
16
|
+
/** A scanner can hold a just-written executable for a moment, which surfaces as a spawn error. */
|
|
17
|
+
export declare const WINDOWS_LAUNCH_SPAWN_ATTEMPTS = 3;
|
|
18
|
+
export declare const WINDOWS_LAUNCH_SPAWN_RETRY_MS = 1000;
|
|
19
|
+
/** How one `--version` run ended. */
|
|
20
|
+
export interface LaunchOutcome {
|
|
21
|
+
/** The exit code; `null` when the process ended on a signal or never started. */
|
|
22
|
+
code: number | null;
|
|
23
|
+
signal: string | null;
|
|
24
|
+
stdout: string;
|
|
25
|
+
stderr: string;
|
|
26
|
+
/** The run was stopped at the deadline: inconclusive. */
|
|
27
|
+
timedOut: boolean;
|
|
28
|
+
/** Windows would not start the file at all (`ENOENT`, `EACCES`, a file that is not an executable). */
|
|
29
|
+
spawnError?: {
|
|
30
|
+
code: string;
|
|
31
|
+
message: string;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** `execFile`'s promise form, as the check uses it; replaced in tests. */
|
|
35
|
+
export type LaunchExec = (file: string, args: string[], options: {
|
|
36
|
+
env: Record<string, string>;
|
|
37
|
+
cwd: string | undefined;
|
|
38
|
+
timeout: number;
|
|
39
|
+
windowsHide: true;
|
|
40
|
+
}) => Promise<{
|
|
41
|
+
stdout: string;
|
|
42
|
+
stderr: string;
|
|
43
|
+
}>;
|
|
44
|
+
export interface WindowsLaunchCheckDeps {
|
|
45
|
+
/** The environment a model load starts from; `process.env` by default, as the runtime's. */
|
|
46
|
+
env?: NodeJS.ProcessEnv;
|
|
47
|
+
exec?: LaunchExec;
|
|
48
|
+
timeoutMs?: number;
|
|
49
|
+
spawnAttempts?: number;
|
|
50
|
+
spawnRetryMs?: number;
|
|
51
|
+
sleep?: (ms: number) => Promise<void>;
|
|
52
|
+
log?: (message: string) => void;
|
|
53
|
+
}
|
|
54
|
+
/** A Windows exit code the way the load-diag line spells it: `0xC0000135`, `0x1`. */
|
|
55
|
+
export declare function windowsExitCodeHex(code: number): string;
|
|
56
|
+
/**
|
|
57
|
+
* The verdict on one finished run: nothing when the pack started (or the run timed out, which proves
|
|
58
|
+
* nothing), otherwise the error to fail the install with. Its `details` end with the load-diag line.
|
|
59
|
+
*/
|
|
60
|
+
export declare function windowsLaunchVerdict(outcome: LaunchOutcome, pack: {
|
|
61
|
+
version: string;
|
|
62
|
+
backend: string;
|
|
63
|
+
}): AtomicCoreError | undefined;
|
|
64
|
+
/** One run, with `execFile`'s rejection read into an outcome rather than thrown. */
|
|
65
|
+
export declare function runLaunch(exec: LaunchExec, file: string, options: Parameters<LaunchExec>[2]): Promise<LaunchOutcome>;
|
|
66
|
+
/**
|
|
67
|
+
* Run the staged pack's `llama-server.exe --version` with the PATH a load gives it (its own
|
|
68
|
+
* `build/bin`, then any CUDA toolkit on the host), and throw `ENGINE_BINARY_BROKEN` or
|
|
69
|
+
* `CPU_INSTRUCTION_UNSUPPORTED` when it cannot start. A spawn refused with a held-handle code is
|
|
70
|
+
* retried; a run that times out is logged and accepted.
|
|
71
|
+
*/
|
|
72
|
+
export declare function verifyWindowsBackendBinary(staging: string, version: string, backend: string, deps?: WindowsLaunchCheckDeps): Promise<void>;
|