@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
@@ -19,7 +19,8 @@
19
19
  */
20
20
  import { AtomicCoreError } from '../../contracts/index.js';
21
21
  import { archSuffixFor, findPrismRelease, prismArchiveSources, prismAssetOffered, PRISM_CAPABILITIES, PrismCatalogService, prismCatalogToBackends, prismTagBuild, TurboquantCatalogService, turboquantCatalogToBackends, UpstreamReleasesCatalogService, upstreamRemoteBackends, withHardTimeout, } from '../catalog/index.js';
22
- import { findLatestPrismVersionForBackend } from '../select/index.js';
22
+ import { findLatestPrismVersionForBackend, gpuDriverKey, isBackendMarkedBad } from '../select/index.js';
23
+ import { readBadBackends } from '../install/runtime-backend.js';
23
24
  import { CORE_VERSION } from '../../version.js';
24
25
  import { scanInstalledBackends } from '../installed/index.js';
25
26
  import { recheckOptimalBackend, refreshOptimalBackendCache } from '../optimal/index.js';
@@ -146,7 +147,15 @@ export class BackendAdvisor {
146
147
  this.installed(),
147
148
  ]);
148
149
  const merged = this.policy.merge(remote, installed);
149
- const available = this.policy.filterBySupport(merged, supported, osType);
150
+ // A pack this machine already failed to run with its current GPU driver (CUDA 13 on Turing
151
+ // before R616, a build Windows cannot load) is left out, so detection and the recommendation
152
+ // move on to the next build instead of offering it again. Binary failures apply only to that release;
153
+ // GPU incompatibility lasts until the driver changes.
154
+ const badEntries = await readBadBackends(this.deps.layout);
155
+ const driver = gpuDriverKey(gpus);
156
+ const available = this.policy
157
+ .filterBySupport(merged, supported, osType)
158
+ .filter((b) => !isBackendMarkedBad(badEntries, this.provider, b.backend, driver, b.version));
150
159
  const installedKeys = new Set(installed.map((b) => `${b.version}|${b.backend}`));
151
160
  const installedAvailable = available.filter((b) => installedKeys.has(`${b.version}|${b.backend}`));
152
161
  const latestByType = {};
@@ -1 +1 @@
1
- {"version":3,"file":"advisor.js","sourceRoot":"","sources":["../../../src/backend/advisor/advisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advisor.js","sourceRoot":"","sources":["../../../src/backend/advisor/advisor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * A Windows CUDA pack whose CUDA runtime could not be put in place does not run: its `ggml-cuda.dll`
3
+ * imports `cudart64_<major>.dll`, and without it the load dies with an empty stderr. The pre-flight
4
+ * that repairs it before every load (`ensureUpstreamCudart`, `ensureTurboquantCudart`) used to only
5
+ * warn when the repair failed — offline, a refused download — and the load went on into that crash.
6
+ *
7
+ * `CudaRuntimeGuard` remembers such a failure for the rest of the core's run, per provider: backend
8
+ * selection then sees the machine without its CUDA facts (`nvidia_info` is what every CUDA tier
9
+ * reads; Vulkan does not need it), and a load that asked for the broken CUDA pack is given the best
10
+ * other installed one instead. A configured CUDA pack is still tried first on every load, so a repair
11
+ * that succeeds later (the network is back) gives it back. A host with a CUDA toolkit of its own is
12
+ * never blocked: the runtime puts the toolkit on PATH, and the pack may well run from it.
13
+ */
14
+ import type { LocalProviderId } from '../../contracts/index.js';
15
+ import type { DataLayout } from '../../config/index.js';
16
+ import type { HardwareFacts, HardwareFactsSource } from '../../hardware/index.js';
17
+ /** The facts with the CUDA side of every NVIDIA GPU removed: no CUDA tier is supported from them. */
18
+ export declare function factsWithoutCuda(facts: HardwareFacts): HardwareFacts;
19
+ /** What a load runs: `ensureBackend`'s answer. */
20
+ export interface ReadyBackend {
21
+ version: string;
22
+ backend: string;
23
+ exePath: string;
24
+ }
25
+ /** The steps of one guarded `ensureBackend`, injected so the guard knows nothing of the data folder. */
26
+ export interface GuardedEnsureSteps {
27
+ /** `ensureBackend` with the facts and the repair hook it is given. */
28
+ ensure: (hardware: HardwareFactsSource, repair: (backend: string, version: string) => Promise<void>) => Promise<ReadyBackend>;
29
+ /** Put the CUDA runtime in place beside this pack; rejects when that could not be done. */
30
+ repair: (backend: string, version: string) => Promise<unknown>;
31
+ /** `selectInstalledBackend` over the given facts. */
32
+ select: (hardware: HardwareFactsSource) => Promise<{
33
+ version: string;
34
+ backend: string;
35
+ path: string;
36
+ } | undefined>;
37
+ }
38
+ export interface CudaRuntimeGuardOptions {
39
+ platform?: NodeJS.Platform;
40
+ env?: NodeJS.ProcessEnv;
41
+ /** Whether the host has a CUDA toolkit the runtime would put on PATH; probed from `platform`/`env` by default. */
42
+ toolkitOnHost?: () => boolean;
43
+ log?: (level: 'warn', message: string) => void;
44
+ }
45
+ export declare class CudaRuntimeGuard {
46
+ private readonly options;
47
+ private readonly blocked;
48
+ private readonly toolkitOnHost;
49
+ constructor(options?: CudaRuntimeGuardOptions);
50
+ /** Whether `provider`'s CUDA packs are kept out of selection for the rest of this run. */
51
+ isBlocked(provider: string): boolean;
52
+ /** The facts backend selection reads for `provider`: without CUDA while its runtime is missing. */
53
+ facts(provider: string, source: HardwareFactsSource): HardwareFactsSource;
54
+ /** `ensureBackend` over the data folder, guarded as `ensure` describes; `repair` rejects when it fails. */
55
+ ensureBackend(layout: DataLayout, provider: LocalProviderId, backend: string, version: string, hardware: HardwareFactsSource, hostArch: NodeJS.Architecture, repair: GuardedEnsureSteps['repair']): Promise<ReadyBackend>;
56
+ /**
57
+ * One `ensureBackend` for a load. When the CUDA repair of the pack it chose fails and the host has
58
+ * no toolkit, the provider's CUDA packs leave selection for this run and the best other installed
59
+ * pack is returned; with no other pack the CUDA one is returned, as before.
60
+ */
61
+ ensure(provider: string, hardware: HardwareFactsSource, steps: GuardedEnsureSteps): Promise<ReadyBackend>;
62
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * A Windows CUDA pack whose CUDA runtime could not be put in place does not run: its `ggml-cuda.dll`
3
+ * imports `cudart64_<major>.dll`, and without it the load dies with an empty stderr. The pre-flight
4
+ * that repairs it before every load (`ensureUpstreamCudart`, `ensureTurboquantCudart`) used to only
5
+ * warn when the repair failed — offline, a refused download — and the load went on into that crash.
6
+ *
7
+ * `CudaRuntimeGuard` remembers such a failure for the rest of the core's run, per provider: backend
8
+ * selection then sees the machine without its CUDA facts (`nvidia_info` is what every CUDA tier
9
+ * reads; Vulkan does not need it), and a load that asked for the broken CUDA pack is given the best
10
+ * other installed one instead. A configured CUDA pack is still tried first on every load, so a repair
11
+ * that succeeds later (the network is back) gives it back. A host with a CUDA toolkit of its own is
12
+ * never blocked: the runtime puts the toolkit on PATH, and the pack may well run from it.
13
+ */
14
+ import { discoverCudaPaths, nodeCudaProbeEnv } from '../../runtime/shared/index.js';
15
+ import { ensureBackend, selectInstalledBackend } from './runtime-backend.js';
16
+ /** The facts with the CUDA side of every NVIDIA GPU removed: no CUDA tier is supported from them. */
17
+ export function factsWithoutCuda(facts) {
18
+ return { ...facts, gpus: facts.gpus.map((gpu) => (gpu.nvidia_info ? { ...gpu, nvidia_info: null } : gpu)) };
19
+ }
20
+ export class CudaRuntimeGuard {
21
+ options;
22
+ blocked = new Set();
23
+ toolkitOnHost;
24
+ constructor(options = {}) {
25
+ this.options = options;
26
+ this.toolkitOnHost =
27
+ options.toolkitOnHost ??
28
+ (() => discoverCudaPaths(nodeCudaProbeEnv(options.platform ?? process.platform, options.env ?? process.env))
29
+ .binDirs.length > 0);
30
+ }
31
+ /** Whether `provider`'s CUDA packs are kept out of selection for the rest of this run. */
32
+ isBlocked(provider) {
33
+ return this.blocked.has(provider);
34
+ }
35
+ /** The facts backend selection reads for `provider`: without CUDA while its runtime is missing. */
36
+ facts(provider, source) {
37
+ return {
38
+ facts: async () => {
39
+ const facts = await source.facts();
40
+ return this.blocked.has(provider) ? factsWithoutCuda(facts) : facts;
41
+ },
42
+ };
43
+ }
44
+ /** `ensureBackend` over the data folder, guarded as `ensure` describes; `repair` rejects when it fails. */
45
+ ensureBackend(layout, provider, backend, version, hardware, hostArch, repair) {
46
+ return this.ensure(provider, hardware, {
47
+ ensure: (facts, guarded) => ensureBackend(layout, provider, backend, version, facts, hostArch, guarded),
48
+ select: (facts) => selectInstalledBackend(layout, provider, facts, hostArch),
49
+ repair,
50
+ });
51
+ }
52
+ /**
53
+ * One `ensureBackend` for a load. When the CUDA repair of the pack it chose fails and the host has
54
+ * no toolkit, the provider's CUDA packs leave selection for this run and the best other installed
55
+ * pack is returned; with no other pack the CUDA one is returned, as before.
56
+ */
57
+ async ensure(provider, hardware, steps) {
58
+ let repairFailed = false;
59
+ const ready = await steps.ensure(this.facts(provider, hardware), async (backend, version) => {
60
+ try {
61
+ await steps.repair(backend, version);
62
+ }
63
+ catch (error) {
64
+ repairFailed = true;
65
+ this.options.log?.('warn', `cudart pre-flight for ${version}/${backend} failed: ${String(error)}`);
66
+ }
67
+ });
68
+ if (!repairFailed || this.toolkitOnHost())
69
+ return ready;
70
+ if (!this.blocked.has(provider))
71
+ this.options.log?.('warn', `${provider}: CUDA builds are left out of backend selection until the core restarts`);
72
+ this.blocked.add(provider);
73
+ const other = await steps.select(this.facts(provider, hardware));
74
+ if (!other || (other.version === ready.version && other.backend === ready.backend))
75
+ return ready;
76
+ this.options.log?.('warn', `${ready.version}/${ready.backend} cannot run without its CUDA runtime; loading ${other.version}/${other.backend} instead`);
77
+ return { version: other.version, backend: other.backend, exePath: other.path };
78
+ }
79
+ }
80
+ //# sourceMappingURL=cuda-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cuda-guard.js","sourceRoot":"","sources":["../../../src/backend/install/cuda-guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Put a Windows CUDA pack's runtime beside it — `cudart64_<N>`, `cublas64_<N>`, `cublasLt64_<N>` —
3
+ * from the best source this machine has, so a CUDA build never runs without it (and never quietly
4
+ * runs on the CPU). Sources, in order, until the whole set is in the pack's `build/bin`:
5
+ *
6
+ * 1. Already there.
7
+ * 2. Offline: another installed llama.cpp pack of any provider with the same CUDA major and at least
8
+ * the same minor, or the legacy `<data>/llamacpp/lib` folder.
9
+ * 3. Offline: a CUDA toolkit installed on the host (`CUDA_PATH*`, `Program Files\NVIDIA GPU Computing
10
+ * Toolkit\CUDA\vX.Y`), from `bin\x64` (CUDA 13) or `bin` (CUDA 12), same major, minor at least.
11
+ * 4. The pack's own ggml-org companion for its release tag (the caller passes it, with its sha256
12
+ * when the release list names it).
13
+ * 5. NVIDIA's own redistributable archives (`cuda_cudart` + `libcublas`, windows-x86_64) from the
14
+ * `redistrib_<X.Y.Z>.json` manifest of the same major and the nearest minor, verified by sha256.
15
+ * 6. The pinned ggml-org companions below, verified by GitHub's digests.
16
+ *
17
+ * An incomplete runtime is replaced as a whole from one source: existing cuBLAS and cuBLASLt may
18
+ * belong to different releases, so filling only the missing filenames is not enough. A failed copy is never reported as a successful repair; the caller decides how to
19
+ * handle a pack that remains unusable.
20
+ */
21
+ import type { DataLayout } from '../../config/index.js';
22
+ import type { Downloader, ProxyConfig } from '../../downloads/index.js';
23
+ export declare const NVIDIA_CUDA_REDIST_BASE = "https://developer.download.nvidia.com/compute/cuda/redist";
24
+ /** ggml-org's Windows runtime companions with GitHub's digests; the fallback when nothing better answers. */
25
+ export declare const PINNED_WINDOWS_CUDA_RUNTIMES: ReadonlyArray<{
26
+ toolkit: string;
27
+ arch: 'x64' | 'arm64';
28
+ url: string;
29
+ sha256: string;
30
+ size: number;
31
+ }>;
32
+ export type CudaRuntimeSource = 'present' | 'installed-pack' | 'host-toolkit' | 'release-companion' | 'nvidia-redist' | 'pinned-companion';
33
+ export interface CudaRuntimeTarget {
34
+ provider: string;
35
+ version: string;
36
+ backend: string;
37
+ /** The pack's directory (`…/<version>/<backend>`), or its staging directory during an install. */
38
+ packDir: string;
39
+ }
40
+ export interface CudaRuntimeDeps {
41
+ layout: DataLayout;
42
+ downloader: Pick<Downloader, 'download'>;
43
+ taskId: string;
44
+ proxy?: ProxyConfig | null;
45
+ /** The pack's own ggml-org companion, with its sha256 and size when the release list names them. */
46
+ releaseCompanion?: {
47
+ url: string;
48
+ sha256?: string | null;
49
+ size?: number | null;
50
+ } | null;
51
+ /** For NVIDIA's manifests; without it the NVIDIA source is skipped. */
52
+ fetch?: typeof fetch;
53
+ env?: NodeJS.ProcessEnv;
54
+ log?: (message: string) => void;
55
+ /** Directory listing; injected by tests. */
56
+ listDir?: (dir: string) => Promise<string[]>;
57
+ }
58
+ interface Toolkit {
59
+ major: number;
60
+ minor: number;
61
+ }
62
+ export declare function cudaToolkitOfPack(provider: string, backend: string): string | null;
63
+ /** NVIDIA's cudart + cuBLAS archives for the nearest release of the same major, or nothing. */
64
+ export declare function nvidiaRedistArchives(wanted: Toolkit, fetchImpl: typeof fetch): Promise<Array<{
65
+ url: string;
66
+ sha256: string;
67
+ size: number;
68
+ name: string;
69
+ }> | undefined>;
70
+ /**
71
+ * Make `target` carry its whole CUDA runtime; answer where it came from. Not a CUDA pack, or not
72
+ * Windows: `'present'` with nothing done. Throws `ENGINE_BINARY_BROKEN` naming the missing DLLs and
73
+ * every source tried when none could supply them.
74
+ */
75
+ export declare function deliverWindowsCudaRuntime(target: CudaRuntimeTarget, deps: CudaRuntimeDeps): Promise<CudaRuntimeSource>;
76
+ export {};