@atomic-chat/core 0.21.1 → 0.21.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.
Files changed (116) hide show
  1. package/dist/backend/advisor/advisor.js +11 -2
  2. package/dist/backend/advisor/advisor.js.map +1 -1
  3. package/dist/backend/install/cuda-guard.d.ts +62 -0
  4. package/dist/backend/install/cuda-guard.js +80 -0
  5. package/dist/backend/install/cuda-guard.js.map +1 -0
  6. package/dist/backend/install/cuda-runtime-source.d.ts +76 -0
  7. package/dist/backend/install/cuda-runtime-source.js +294 -0
  8. package/dist/backend/install/cuda-runtime-source.js.map +1 -0
  9. package/dist/backend/install/index.d.ts +3 -0
  10. package/dist/backend/install/index.js +3 -0
  11. package/dist/backend/install/index.js.map +1 -1
  12. package/dist/backend/install/runtime-backend.d.ts +30 -3
  13. package/dist/backend/install/runtime-backend.js +106 -28
  14. package/dist/backend/install/runtime-backend.js.map +1 -1
  15. package/dist/backend/install/service.d.ts +40 -4
  16. package/dist/backend/install/service.js +175 -31
  17. package/dist/backend/install/service.js.map +1 -1
  18. package/dist/backend/install/windows-launch-check.d.ts +72 -0
  19. package/dist/backend/install/windows-launch-check.js +173 -0
  20. package/dist/backend/install/windows-launch-check.js.map +1 -0
  21. package/dist/backend/installed/installed.d.ts +13 -0
  22. package/dist/backend/installed/installed.js +32 -0
  23. package/dist/backend/installed/installed.js.map +1 -1
  24. package/dist/backend/select/bad-backends.d.ts +68 -0
  25. package/dist/backend/select/bad-backends.js +136 -0
  26. package/dist/backend/select/bad-backends.js.map +1 -0
  27. package/dist/backend/select/features.d.ts +18 -1
  28. package/dist/backend/select/features.js +29 -1
  29. package/dist/backend/select/features.js.map +1 -1
  30. package/dist/backend/select/index.d.ts +1 -0
  31. package/dist/backend/select/index.js +1 -0
  32. package/dist/backend/select/index.js.map +1 -1
  33. package/dist/backend/turboquant.d.ts +8 -0
  34. package/dist/backend/turboquant.js +37 -9
  35. package/dist/backend/turboquant.js.map +1 -1
  36. package/dist/cli/main.d.ts +1 -1
  37. package/dist/contracts/diagnostics.d.ts +1 -1
  38. package/dist/contracts/diagnostics.js +1 -0
  39. package/dist/contracts/diagnostics.js.map +1 -1
  40. package/dist/contracts/errors.d.ts +3 -3
  41. package/dist/contracts/errors.js +15 -0
  42. package/dist/contracts/errors.js.map +1 -1
  43. package/dist/contracts/hardware.d.ts +8 -0
  44. package/dist/contracts/index.d.ts +1 -0
  45. package/dist/contracts/index.js +1 -0
  46. package/dist/contracts/index.js.map +1 -1
  47. package/dist/contracts/load-diag.d.ts +34 -0
  48. package/dist/contracts/load-diag.js +48 -0
  49. package/dist/contracts/load-diag.js.map +1 -0
  50. package/dist/core/atomic-core.d.ts +1 -1
  51. package/dist/core/create.js +16 -13
  52. package/dist/core/create.js.map +1 -1
  53. package/dist/downloads/archive.js +8 -3
  54. package/dist/downloads/archive.js.map +1 -1
  55. package/dist/downloads/disk.d.ts +18 -0
  56. package/dist/downloads/disk.js +32 -1
  57. package/dist/downloads/disk.js.map +1 -1
  58. package/dist/downloads/downloader.js +7 -4
  59. package/dist/downloads/downloader.js.map +1 -1
  60. package/dist/downloads/fs-retry.d.ts +27 -0
  61. package/dist/downloads/fs-retry.js +40 -0
  62. package/dist/downloads/fs-retry.js.map +1 -0
  63. package/dist/downloads/index.d.ts +1 -0
  64. package/dist/downloads/index.js +1 -0
  65. package/dist/downloads/index.js.map +1 -1
  66. package/dist/hardware/index.d.ts +1 -0
  67. package/dist/hardware/index.js +1 -0
  68. package/dist/hardware/index.js.map +1 -1
  69. package/dist/hardware/probe-common.d.ts +9 -1
  70. package/dist/hardware/probe-common.js.map +1 -1
  71. package/dist/hardware/probe-windows.d.ts +10 -2
  72. package/dist/hardware/probe-windows.js +65 -10
  73. package/dist/hardware/probe-windows.js.map +1 -1
  74. package/dist/hardware/probe.js +1 -1
  75. package/dist/hardware/probe.js.map +1 -1
  76. package/dist/hardware/service.d.ts +11 -0
  77. package/dist/hardware/service.js +31 -4
  78. package/dist/hardware/service.js.map +1 -1
  79. package/dist/hardware/windows-registry.d.ts +80 -0
  80. package/dist/hardware/windows-registry.js +197 -0
  81. package/dist/hardware/windows-registry.js.map +1 -0
  82. package/dist/runtime/llamacpp/args.d.ts +11 -0
  83. package/dist/runtime/llamacpp/args.js +28 -3
  84. package/dist/runtime/llamacpp/args.js.map +1 -1
  85. package/dist/runtime/llamacpp/devices.d.ts +11 -0
  86. package/dist/runtime/llamacpp/devices.js +22 -0
  87. package/dist/runtime/llamacpp/devices.js.map +1 -1
  88. package/dist/runtime/llamacpp/errors.d.ts +32 -2
  89. package/dist/runtime/llamacpp/errors.js +77 -4
  90. package/dist/runtime/llamacpp/errors.js.map +1 -1
  91. package/dist/runtime/llamacpp/index.d.ts +1 -0
  92. package/dist/runtime/llamacpp/index.js +1 -0
  93. package/dist/runtime/llamacpp/index.js.map +1 -1
  94. package/dist/runtime/llamacpp/load-failure.d.ts +52 -0
  95. package/dist/runtime/llamacpp/load-failure.js +105 -0
  96. package/dist/runtime/llamacpp/load-failure.js.map +1 -0
  97. package/dist/runtime/llamacpp/load-plan.d.ts +5 -0
  98. package/dist/runtime/llamacpp/load-plan.js +34 -4
  99. package/dist/runtime/llamacpp/load-plan.js.map +1 -1
  100. package/dist/runtime/llamacpp/runtime.d.ts +24 -1
  101. package/dist/runtime/llamacpp/runtime.js +116 -27
  102. package/dist/runtime/llamacpp/runtime.js.map +1 -1
  103. package/dist/runtime/shared/env.js +13 -15
  104. package/dist/runtime/shared/env.js.map +1 -1
  105. package/dist/telemetry/diagnostics.d.ts +10 -2
  106. package/dist/telemetry/diagnostics.js +14 -3
  107. package/dist/telemetry/diagnostics.js.map +1 -1
  108. package/dist/telemetry/envelope.d.ts +6 -0
  109. package/dist/telemetry/envelope.js +12 -2
  110. package/dist/telemetry/envelope.js.map +1 -1
  111. package/dist/telemetry/reporter.d.ts +9 -0
  112. package/dist/telemetry/reporter.js +3 -0
  113. package/dist/telemetry/reporter.js.map +1 -1
  114. package/dist/version.d.ts +1 -1
  115. package/dist/version.js +1 -1
  116. 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 rm(to, { recursive: true, force: true });
93
- await rename(join(dir, inner), to);
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 rm(to, { recursive: true, force: true });
155
- await rename(join(from, inner), to);
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
- await rm(target, { recursive: true, force: true });
292
- await mkdir(join(target, '..'), { recursive: true });
293
- await rename(staging, target);
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
- await rm(staging, { recursive: true, force: true });
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
- items.push({ url: cudartUrl, save_path: join(staging, cudartName), ...proxy });
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>;