@atomic-chat/core 0.21.0 → 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.
Files changed (186) 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 +42 -24
  16. package/dist/backend/install/service.js +176 -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 +21 -0
  38. package/dist/contracts/diagnostics.js +71 -0
  39. package/dist/contracts/diagnostics.js.map +1 -0
  40. package/dist/contracts/errors.d.ts +18 -76
  41. package/dist/contracts/errors.js +145 -2
  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 +2 -0
  45. package/dist/contracts/index.js +2 -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/atomic-core.js +2 -1
  52. package/dist/core/atomic-core.js.map +1 -1
  53. package/dist/core/create.js +25 -15
  54. package/dist/core/create.js.map +1 -1
  55. package/dist/core/managed-environment.d.ts +2 -0
  56. package/dist/core/managed-environment.js +2 -0
  57. package/dist/core/managed-environment.js.map +1 -1
  58. package/dist/decision/service.d.ts +2 -23
  59. package/dist/decision/service.js +27 -0
  60. package/dist/decision/service.js.map +1 -1
  61. package/dist/decision/wiring.d.ts +2 -0
  62. package/dist/decision/wiring.js +1 -6
  63. package/dist/decision/wiring.js.map +1 -1
  64. package/dist/diffusion/errors.js +3 -3
  65. package/dist/diffusion/errors.js.map +1 -1
  66. package/dist/diffusion/jobs.js +1 -0
  67. package/dist/diffusion/jobs.js.map +1 -1
  68. package/dist/diffusion/remote-job.js +1 -0
  69. package/dist/diffusion/remote-job.js.map +1 -1
  70. package/dist/diffusion/service.d.ts +2 -6
  71. package/dist/diffusion/service.js +1 -0
  72. package/dist/diffusion/service.js.map +1 -1
  73. package/dist/diffusion/session.d.ts +2 -5
  74. package/dist/diffusion/session.js +1 -0
  75. package/dist/diffusion/session.js.map +1 -1
  76. package/dist/diffusion/wiring.d.ts +2 -0
  77. package/dist/diffusion/wiring.js +1 -5
  78. package/dist/diffusion/wiring.js.map +1 -1
  79. package/dist/downloads/archive.js +8 -3
  80. package/dist/downloads/archive.js.map +1 -1
  81. package/dist/downloads/disk.d.ts +18 -0
  82. package/dist/downloads/disk.js +32 -1
  83. package/dist/downloads/disk.js.map +1 -1
  84. package/dist/downloads/downloader.d.ts +2 -18
  85. package/dist/downloads/downloader.js +208 -97
  86. package/dist/downloads/downloader.js.map +1 -1
  87. package/dist/downloads/fs-retry.d.ts +27 -0
  88. package/dist/downloads/fs-retry.js +40 -0
  89. package/dist/downloads/fs-retry.js.map +1 -0
  90. package/dist/downloads/index.d.ts +1 -0
  91. package/dist/downloads/index.js +1 -0
  92. package/dist/downloads/index.js.map +1 -1
  93. package/dist/downloads/protocol.d.ts +6 -2
  94. package/dist/downloads/protocol.js +27 -5
  95. package/dist/downloads/protocol.js.map +1 -1
  96. package/dist/embedding/service.d.ts +2 -18
  97. package/dist/embedding/service.js +21 -1
  98. package/dist/embedding/service.js.map +1 -1
  99. package/dist/embedding/wiring.d.ts +2 -0
  100. package/dist/embedding/wiring.js +1 -6
  101. package/dist/embedding/wiring.js.map +1 -1
  102. package/dist/hardware/index.d.ts +1 -0
  103. package/dist/hardware/index.js +1 -0
  104. package/dist/hardware/index.js.map +1 -1
  105. package/dist/hardware/probe-common.d.ts +9 -1
  106. package/dist/hardware/probe-common.js.map +1 -1
  107. package/dist/hardware/probe-windows.d.ts +10 -2
  108. package/dist/hardware/probe-windows.js +65 -10
  109. package/dist/hardware/probe-windows.js.map +1 -1
  110. package/dist/hardware/probe.js +1 -1
  111. package/dist/hardware/probe.js.map +1 -1
  112. package/dist/hardware/service.d.ts +11 -0
  113. package/dist/hardware/service.js +31 -4
  114. package/dist/hardware/service.js.map +1 -1
  115. package/dist/hardware/windows-registry.d.ts +80 -0
  116. package/dist/hardware/windows-registry.js +197 -0
  117. package/dist/hardware/windows-registry.js.map +1 -0
  118. package/dist/lock/instance-lock.js +7 -3
  119. package/dist/lock/instance-lock.js.map +1 -1
  120. package/dist/remote-access/manager.d.ts +2 -0
  121. package/dist/remote-access/manager.js +18 -2
  122. package/dist/remote-access/manager.js.map +1 -1
  123. package/dist/runtime/environment/service.d.ts +2 -14
  124. package/dist/runtime/environment/service.js +10 -0
  125. package/dist/runtime/environment/service.js.map +1 -1
  126. package/dist/runtime/environment/wiring.d.ts +2 -23
  127. package/dist/runtime/environment/wiring.js +1 -0
  128. package/dist/runtime/environment/wiring.js.map +1 -1
  129. package/dist/runtime/llamacpp/args.d.ts +11 -0
  130. package/dist/runtime/llamacpp/args.js +28 -3
  131. package/dist/runtime/llamacpp/args.js.map +1 -1
  132. package/dist/runtime/llamacpp/devices.d.ts +11 -0
  133. package/dist/runtime/llamacpp/devices.js +22 -0
  134. package/dist/runtime/llamacpp/devices.js.map +1 -1
  135. package/dist/runtime/llamacpp/errors.d.ts +34 -4
  136. package/dist/runtime/llamacpp/errors.js +105 -22
  137. package/dist/runtime/llamacpp/errors.js.map +1 -1
  138. package/dist/runtime/llamacpp/index.d.ts +1 -0
  139. package/dist/runtime/llamacpp/index.js +1 -0
  140. package/dist/runtime/llamacpp/index.js.map +1 -1
  141. package/dist/runtime/llamacpp/load-failure.d.ts +52 -0
  142. package/dist/runtime/llamacpp/load-failure.js +105 -0
  143. package/dist/runtime/llamacpp/load-failure.js.map +1 -0
  144. package/dist/runtime/llamacpp/load-plan.d.ts +5 -0
  145. package/dist/runtime/llamacpp/load-plan.js +34 -4
  146. package/dist/runtime/llamacpp/load-plan.js.map +1 -1
  147. package/dist/runtime/llamacpp/runtime.d.ts +24 -1
  148. package/dist/runtime/llamacpp/runtime.js +116 -27
  149. package/dist/runtime/llamacpp/runtime.js.map +1 -1
  150. package/dist/runtime/shared/env.js +13 -15
  151. package/dist/runtime/shared/env.js.map +1 -1
  152. package/dist/server/public/errors.d.ts +2 -0
  153. package/dist/server/public/errors.js +6 -2
  154. package/dist/server/public/errors.js.map +1 -1
  155. package/dist/server/public/forward.js +22 -18
  156. package/dist/server/public/forward.js.map +1 -1
  157. package/dist/settings/store.js +1 -1
  158. package/dist/settings/store.js.map +1 -1
  159. package/dist/telemetry/diagnostics.d.ts +14 -0
  160. package/dist/telemetry/diagnostics.js +289 -0
  161. package/dist/telemetry/diagnostics.js.map +1 -0
  162. package/dist/telemetry/envelope.d.ts +1 -1
  163. package/dist/telemetry/envelope.js +57 -28
  164. package/dist/telemetry/envelope.js.map +1 -1
  165. package/dist/telemetry/index.d.ts +1 -0
  166. package/dist/telemetry/index.js +1 -0
  167. package/dist/telemetry/index.js.map +1 -1
  168. package/dist/telemetry/policy.d.ts +1 -1
  169. package/dist/telemetry/policy.js +45 -2
  170. package/dist/telemetry/policy.js.map +1 -1
  171. package/dist/telemetry/reporter.d.ts +1 -0
  172. package/dist/telemetry/reporter.js +0 -0
  173. package/dist/telemetry/reporter.js.map +1 -1
  174. package/dist/telemetry/reports.d.ts +2 -7
  175. package/dist/telemetry/reports.js +34 -29
  176. package/dist/telemetry/reports.js.map +1 -1
  177. package/dist/telemetry/stack.d.ts +1 -1
  178. package/dist/telemetry/stack.js +8 -1
  179. package/dist/telemetry/stack.js.map +1 -1
  180. package/dist/telemetry/subscribe.d.ts +1 -1
  181. package/dist/telemetry/subscribe.js +7 -5
  182. package/dist/telemetry/subscribe.js.map +1 -1
  183. package/dist/telemetry/types.d.ts +3 -2
  184. package/dist/version.d.ts +1 -1
  185. package/dist/version.js +1 -1
  186. package/package.json +1 -1
@@ -5,6 +5,136 @@
5
5
  * Source of truth in the app: src-tauri/plugins/tauri-plugin-llamacpp-upstream/src/error.rs,
6
6
  * src-tauri/src/core/downloads/disk.rs, src-tauri/src/core/server/proxy.rs.
7
7
  */
8
+ /** Runtime / model-load codes (Rust `ErrorCode`, `#[serde(rename_all = "SCREAMING_SNAKE_CASE")]`). */
9
+ const RUNTIME_CODES = [
10
+ 'BINARY_NOT_FOUND',
11
+ 'MODEL_LOAD_FAILED',
12
+ 'MODEL_FILE_NOT_FOUND',
13
+ 'MODEL_LOAD_TIMED_OUT',
14
+ /** The user stopped a load before the engine reported ready (the plugins' `ModelLoadCancelled`). */
15
+ 'MODEL_LOAD_CANCELLED',
16
+ 'INVALID_ARGUMENT',
17
+ 'IO_ERROR',
18
+ 'INTERNAL_ERROR',
19
+ 'DEVICE_LIST_PARSE_FAILED',
20
+ 'OS_VERSION_UNSUPPORTED',
21
+ 'OUT_OF_MEMORY',
22
+ 'MODEL_ARCH_NOT_SUPPORTED',
23
+ 'MULTIMODAL_PROJECTOR_LOAD_FAILED',
24
+ 'MODEL_FILE_CORRUPT',
25
+ 'LLAMA_CPP_PROCESS_ERROR',
26
+ /**
27
+ * The GPU build cannot run on this card or driver: CUDA "the provided PTX was compiled with an
28
+ * unsupported toolchain" or "no kernel image is available". Core retries the load once on another
29
+ * installed build and remembers the bad one for this machine.
30
+ */
31
+ 'GPU_BACKEND_INCOMPATIBLE',
32
+ /**
33
+ * Windows could not start the engine at all: a missing DLL (0xC0000135), a bad image (0xC000007B)
34
+ * or a DLL that failed to initialise (0xC0000142). Usually an incomplete or quarantined build.
35
+ */
36
+ 'ENGINE_BINARY_BROKEN',
37
+ /** The engine hit a CPU instruction this machine does not have (0xC000001D, illegal instruction). */
38
+ 'CPU_INSTRUCTION_UNSUPPORTED',
39
+ /** MLX plugin (`tauri-plugin-mlx/src/error.rs`): an mlx-server failure no pattern explained. */
40
+ 'MLX_PROCESS_ERROR',
41
+ /** Foundation Models plugin (`tauri-plugin-foundation-models/src/error.rs`). */
42
+ 'FOUNDATION_MODELS_UNAVAILABLE',
43
+ /** Foundry Local (change `add-foundry-local`): the variant's accelerator is not prepared yet. */
44
+ 'FOUNDRY_LOCAL_ACCELERATOR_NOT_PREPARED',
45
+ /** Foundry Local: the variant's accelerator or device does not exist on this platform. */
46
+ 'FOUNDRY_LOCAL_VARIANT_UNSUPPORTED',
47
+ /** Foundry Local: the host process failed, or the library inside it did. */
48
+ 'FOUNDRY_LOCAL_HOST_ERROR',
49
+ /** LiteRT-LM (change `add-litert-lm-runtime`): the host process failed, or the library inside it did. */
50
+ 'LITERT_LM_HOST_ERROR',
51
+ /** LiteRT-LM: the variant's backend or target NPU does not run on this platform or in this file. */
52
+ 'LITERT_LM_VARIANT_UNSUPPORTED',
53
+ /** LiteRT-LM: an NPU variant needs the OpenVINO accelerator prepared first. */
54
+ 'LITERT_LM_ACCELERATOR_NOT_PREPARED',
55
+ /** LiteRT-LM: the file needs a newer LiteRT-LM than the active build; `details` names the version. */
56
+ 'LITERT_LM_MODEL_REQUIRES_NEWER_ENGINE',
57
+ /** GenieX (change `add-geniex-runtime`): the host process failed, or the library inside it did; the message is the library's. */
58
+ 'GENIEX_HOST_ERROR',
59
+ /** GenieX: the bundle is for another chip, the device is not for this plugin, or the library found no such device. */
60
+ 'GENIEX_VARIANT_UNSUPPORTED',
61
+ /** GenieX: the bundle needs a newer GenieX than the active build; `details` names the version. */
62
+ 'GENIEX_MODEL_REQUIRES_NEWER_ENGINE',
63
+ 'SERVER_START_FAILED',
64
+ 'SERVER_START_TIMED_OUT',
65
+ 'PROCESS_ERROR',
66
+ ];
67
+ /**
68
+ * Codes raised by the TypeScript extension layer of the app (coded `Error.code` own-properties);
69
+ * the web-app maps them to actionable toasts. Source: extensions/llamacpp-upstream-extension/src/index.ts:173-204, util.ts:49.
70
+ */
71
+ const EXTENSION_CODES = [
72
+ 'MODEL_SHARDS_INCOMPLETE',
73
+ 'CPU_NO_AVX',
74
+ 'BACKEND_TAG_UNRESOLVED',
75
+ 'BACKEND_INSUFFICIENT_DISK_SPACE',
76
+ 'TRANSCRIPTION_MODEL_MISSING',
77
+ 'TRANSCRIPTION_UNSUPPORTED',
78
+ ];
79
+ /** Codes raised by the core itself (new; not present in the Rust app). */
80
+ const CORE_CODES = [
81
+ 'CORE_ALREADY_RUNNING',
82
+ 'CORE_NOT_RUNNING',
83
+ 'CORE_START_FAILED',
84
+ 'CORE_PROTOCOL_MISMATCH',
85
+ 'ALREADY_MIGRATED',
86
+ 'NO_MODEL_LOADED',
87
+ 'MODEL_NOT_LOADED',
88
+ 'MODEL_NOT_FOUND',
89
+ 'PROVIDER_NOT_FOUND',
90
+ 'UNAUTHORIZED',
91
+ 'FORBIDDEN_HOST',
92
+ /** No ChatGPT subscription is connected, or its sign-in expired and needs doing again. */
93
+ 'AUTH_REQUIRED',
94
+ /** A sign-in did not complete: the browser reported an error, `state` did not match, or the code exchange failed. */
95
+ 'AUTH_FAILED',
96
+ 'AUTH_CANCELLED',
97
+ /** An external service (a token endpoint, the subscription API) could not be reached or refused. */
98
+ 'UPSTREAM_ERROR',
99
+ /** A tunnel needs a running public server to point at. */
100
+ 'REMOTE_ACCESS_SERVER_STOPPED',
101
+ /** The tunnel is being stopped; ask again once it is down. */
102
+ 'REMOTE_ACCESS_OPERATION_IN_PROGRESS',
103
+ /** A previous tunnel could not be confirmed dead; only Stop is offered until it is. */
104
+ 'REMOTE_ACCESS_STOP_FAILED',
105
+ /** The decision model is turned off, or no model file is configured for it. */
106
+ 'DECISION_NOT_CONFIGURED',
107
+ /** No installed engine build serves `llama-server --decision` (API version 1). */
108
+ 'DECISION_ENGINE_UNSUPPORTED',
109
+ /** The decision model is not running right now (starting, failed or stopped). */
110
+ 'DECISION_UNAVAILABLE',
111
+ /** `decision.model_path` is a folder that lacks files of a laya checkpoint; `details` lists them. */
112
+ 'DECISION_CHECKPOINT_INCOMPLETE',
113
+ /** A decision model was asked to load as a chat or embedding session; it runs only in the decision module. */
114
+ 'DECISION_MODEL_NOT_CHAT',
115
+ /** The embedding model is turned off, or no model file is configured for it. */
116
+ 'EMBEDDING_NOT_CONFIGURED',
117
+ /** No installed llama.cpp build is new enough for the embedding model; the message names the build. */
118
+ 'EMBEDDING_ENGINE_UNSUPPORTED',
119
+ /** The embedding model is not running right now (starting, failed or stopped). */
120
+ 'EMBEDDING_UNAVAILABLE',
121
+ /** `embedding.model_path` is not an embedding GGUF (a chat, decision or reranker model). */
122
+ 'EMBEDDING_MODEL_NOT_EMBEDDING',
123
+ /**
124
+ * The file cannot run on the requested engine (a PrismML-only Bonsai file on stock llama.cpp, or a
125
+ * build too old for it); `details` is the JSON compatibility verdict. Never retried elsewhere.
126
+ */
127
+ 'MODEL_ENGINE_INCOMPATIBLE',
128
+ /** A legacy layout no current engine runs (Bonsai Q2_0 group-128); `details` names the replacement. */
129
+ 'MODEL_FORMAT_LEGACY',
130
+ /** Another install of the same engine build (sd.cpp, MLX) is running; wait for it. */
131
+ 'ENGINE_INSTALL_IN_PROGRESS',
132
+ /**
133
+ * `POST /backends/atomic-prism/catalog` with `requires`/`min_build`: no build this machine can run
134
+ * meets them; `details` is `{requires, min_build}` as asked (change close-cli-core-gaps, D2).
135
+ */
136
+ 'BACKEND_BUILD_UNAVAILABLE',
137
+ ];
8
138
  /**
9
139
  * Image generation (`tauri-plugin-atomic-diffusion/src/error.rs`, `NativeDiffusionErrorCode` in the
10
140
  * web app). `lib/diffusion/errors.ts` matches on them. Three are spelled like codes above and are
@@ -123,6 +253,15 @@ export const MANAGED_ERROR_CODES = [
123
253
  /** The caller addressed a session generation that has since been replaced. */
124
254
  'SESSION_GENERATION_STALE',
125
255
  ];
256
+ /** The wire code type and the telemetry allow-list share the same browser-safe catalog. */
257
+ export const ERROR_CODES = [
258
+ ...RUNTIME_CODES,
259
+ ...EXTENSION_CODES,
260
+ ...CORE_CODES,
261
+ ...DIFFUSION_ERROR_CODES,
262
+ ...AUDIO_ERROR_CODES,
263
+ ...MANAGED_ERROR_CODES,
264
+ ];
126
265
  /**
127
266
  * Disk-failure tags. Rendered into the error message as `Error: [<tag>] <detail>`; the app's
128
267
  * telemetry parses the tag out of the string. Byte-identical with `disk.rs`.
@@ -134,15 +273,19 @@ export const DISK_ERROR_TAGS = [
134
273
  'disk_path_too_long',
135
274
  'disk_device_lost',
136
275
  'disk_io',
276
+ /** The volume cannot hold a file this large: FAT/FAT32 stops at 4 GiB − 1 bytes. */
277
+ 'disk_fs_limit',
137
278
  ];
138
279
  export class AtomicCoreError extends Error {
139
280
  code;
140
281
  details;
141
- constructor(code, message, details) {
142
- super(message);
282
+ constructor(code, message, details, options) {
283
+ super(message, options && 'cause' in options ? { cause: options.cause } : undefined);
143
284
  this.name = 'AtomicCoreError';
144
285
  this.code = code;
145
286
  this.details = details;
287
+ if (options?.diagnostic)
288
+ Object.defineProperty(this, 'diagnostic', { value: Object.freeze({ ...options.diagnostic }) });
146
289
  }
147
290
  toJSON() {
148
291
  return this.details === undefined
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/contracts/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/contracts/errors.ts"],"names":[],"mappings":"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"}
@@ -115,6 +115,12 @@ export interface SystemInfo {
115
115
  }
116
116
  /** Where the facts came from: the core's own probe, or an injected override that replaces it. */
117
117
  export type HardwareSource = 'probe' | 'override';
118
+ /**
119
+ * Which enumeration produced the probe's GPU list on Windows: the PowerShell CIM + registry run, the
120
+ * `reg.exe` read of the display class key when PowerShell could not run or CIM answered nothing,
121
+ * `nvidia-smi` alone when neither answered, or `none`.
122
+ */
123
+ export type HardwareGpuSource = 'powershell' | 'registry' | 'nvidia-smi' | 'none';
118
124
  /** Body of `GET /hardware/info` and `POST /hardware/refresh`. */
119
125
  export interface HardwareInfoResponse {
120
126
  info: SystemInfo;
@@ -123,4 +129,6 @@ export interface HardwareInfoResponse {
123
129
  probed_at: number;
124
130
  /** What the probe could not read, one line each; empty when everything answered. */
125
131
  warnings: string[];
132
+ /** Windows only, and only while `source` is `probe`: where the GPU list came from. Additive. */
133
+ gpu_source?: HardwareGpuSource;
126
134
  }
@@ -2,6 +2,7 @@
2
2
  * Browser-safe contracts shared with the Atomic Chat app. No `node:*` imports allowed here.
3
3
  */
4
4
  export * from './errors.js';
5
+ export * from './diagnostics.js';
5
6
  export * from './session.js';
6
7
  export * from './model-yml.js';
7
8
  export * from './settings.js';
@@ -22,3 +23,4 @@ export * from './engines.js';
22
23
  export * from './foundry-local.js';
23
24
  export * from './litert-lm.js';
24
25
  export * from './geniex.js';
26
+ export * from './load-diag.js';
@@ -2,6 +2,7 @@
2
2
  * Browser-safe contracts shared with the Atomic Chat app. No `node:*` imports allowed here.
3
3
  */
4
4
  export * from './errors.js';
5
+ export * from './diagnostics.js';
5
6
  export * from './session.js';
6
7
  export * from './model-yml.js';
7
8
  export * from './settings.js';
@@ -22,4 +23,5 @@ export * from './engines.js';
22
23
  export * from './foundry-local.js';
23
24
  export * from './litert-lm.js';
24
25
  export * from './geniex.js';
26
+ export * from './load-diag.js';
25
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * A machine-readable line core appends as the LAST line of a model-load failure's `details`:
3
+ *
4
+ * atomic-core-diag {"exit_code":"0xC0000135","stage":"spawn","backend":"win-cuda-13.3-x64",...}
5
+ *
6
+ * The app keeps only the last ~2 KB of `details` as `model_load.stderr_tail`, so the line must stay
7
+ * at the end and short. The app parses it with the same prefix (web-app `parseLoadDiag`); this is a
8
+ * wire contract, so keys are only ever added.
9
+ */
10
+ export declare const LOAD_DIAG_PREFIX = "atomic-core-diag ";
11
+ export interface LoadDiag {
12
+ /** Process exit code as `0x`-prefixed upper-case hex on Windows, decimal elsewhere. */
13
+ exit_code?: string;
14
+ /** Signal name on Unix (`SIGSEGV`). */
15
+ signal?: string;
16
+ /** Where the load stopped: before the process ran, while loading weights, waiting for ready, or after ready. */
17
+ stage?: 'spawn' | 'load' | 'ready' | 'runtime';
18
+ /** The backend directory name that actually ran, e.g. `win-cuda-13.3-x64`. */
19
+ backend?: string;
20
+ /** The llama.cpp build tag that actually ran, e.g. `b12019`. */
21
+ build?: string;
22
+ /** Set when core retried on another build after this failure. */
23
+ fallback_from?: string;
24
+ fallback_to?: string;
25
+ /** Whether the retry on `fallback_to` loaded. */
26
+ fallback_ok?: boolean;
27
+ /** True when stderr was empty: the process died before printing anything. */
28
+ empty_stderr?: boolean;
29
+ }
30
+ export declare function formatLoadDiag(diag: LoadDiag): string;
31
+ /** Append the diag line to existing details, replacing an earlier diag line if there is one. */
32
+ export declare function withLoadDiag(details: string | undefined, diag: LoadDiag): string;
33
+ export declare function stripLoadDiag(details: string): string;
34
+ export declare function parseLoadDiag(text: string | undefined | null): LoadDiag | undefined;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * A machine-readable line core appends as the LAST line of a model-load failure's `details`:
3
+ *
4
+ * atomic-core-diag {"exit_code":"0xC0000135","stage":"spawn","backend":"win-cuda-13.3-x64",...}
5
+ *
6
+ * The app keeps only the last ~2 KB of `details` as `model_load.stderr_tail`, so the line must stay
7
+ * at the end and short. The app parses it with the same prefix (web-app `parseLoadDiag`); this is a
8
+ * wire contract, so keys are only ever added.
9
+ */
10
+ export const LOAD_DIAG_PREFIX = 'atomic-core-diag ';
11
+ export function formatLoadDiag(diag) {
12
+ const clean = {};
13
+ for (const [k, v] of Object.entries(diag))
14
+ if (v !== undefined && v !== null && v !== '')
15
+ clean[k] = v;
16
+ return `${LOAD_DIAG_PREFIX}${JSON.stringify(clean)}`;
17
+ }
18
+ /** Append the diag line to existing details, replacing an earlier diag line if there is one. */
19
+ export function withLoadDiag(details, diag) {
20
+ const base = stripLoadDiag(details ?? '').replace(/\s+$/, '');
21
+ const line = formatLoadDiag(diag);
22
+ return base ? `${base}\n${line}` : line;
23
+ }
24
+ export function stripLoadDiag(details) {
25
+ return details
26
+ .split('\n')
27
+ .filter((l) => !l.startsWith(LOAD_DIAG_PREFIX))
28
+ .join('\n');
29
+ }
30
+ export function parseLoadDiag(text) {
31
+ if (!text)
32
+ return undefined;
33
+ const lines = text.split('\n');
34
+ for (let i = lines.length - 1; i >= 0; i--) {
35
+ const line = lines[i].trim();
36
+ if (!line.startsWith(LOAD_DIAG_PREFIX))
37
+ continue;
38
+ try {
39
+ const parsed = JSON.parse(line.slice(LOAD_DIAG_PREFIX.length));
40
+ return parsed && typeof parsed === 'object' ? parsed : undefined;
41
+ }
42
+ catch {
43
+ return undefined;
44
+ }
45
+ }
46
+ return undefined;
47
+ }
48
+ //# sourceMappingURL=load-diag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-diag.js","sourceRoot":"","sources":["../../src/contracts/load-diag.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAA;AAsBnD,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,MAAM,KAAK,GAA4B,EAAE,CAAA;IACzC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;YAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACtG,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;AACtD,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,YAAY,CAAC,OAA2B,EAAE,IAAc;IACtE,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC7D,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,OAAO;SACX,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;SAC9C,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA+B;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAAE,SAAQ;QAChD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAY,CAAA;YACzE,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAmB,CAAC,CAAC,CAAC,SAAS,CAAA;QAChF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -80,7 +80,7 @@ export interface AtomicCoreParts {
80
80
  telemetry?: TelemetryControl | undefined;
81
81
  }
82
82
  export declare class AtomicCore {
83
- readonly version = "0.21.0";
83
+ readonly version = "0.21.2";
84
84
  private lifecycle;
85
85
  private shutdownPromise;
86
86
  /** Whether the app's API screen is watching; previews are collected only then. */
@@ -14,7 +14,7 @@ import { assertNotLoadedByLegacy } from '../lock/index.js';
14
14
  import { RemoteAccessManager } from '../remote-access/index.js';
15
15
  import { LlamacppRuntime } from '../runtime/llamacpp/index.js';
16
16
  import { managedExternalRoutePolicy } from './managed-engines.js';
17
- import { captureReport, loadFailureReport } from '../telemetry/index.js';
17
+ import { captureReport, failureObserver, loadFailureReport } from '../telemetry/index.js';
18
18
  import { DynamicTrustedHosts, SessionWindows } from '../server/index.js';
19
19
  import { CORE_VERSION } from '../version.js';
20
20
  import { createAtomicCore } from './create.js';
@@ -121,6 +121,7 @@ export class AtomicCore {
121
121
  externalPolicy: managedExternalRoutePolicy,
122
122
  });
123
123
  this.remoteAccess = new RemoteAccessManager({
124
+ onFailure: failureObserver(parts.errors),
124
125
  ...parts.remoteAccess,
125
126
  server: () => this.publicServer.endpoint(),
126
127
  hosts: this.trustedHosts,
@@ -1 +1 @@
1
- {"version":3,"file":"atomic-core.js","sourceRoot":"","sources":["../../src/core/atomic-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atomic-core.js","sourceRoot":"","sources":["../../src/core/atomic-core.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ import { TRANSCRIPTION_MODEL_ID } from '../speculative/index.js';
23
23
  import { ApiKeyStore, ChatGptAuth } from '../credentials/index.js';
24
24
  import { CloudRegistry, listSubscriptionModels } from '../cloud/index.js';
25
25
  import { HardwareService, nodeProbeDeps, probeNpu, probeSystemInfo, probeUnifiedMemory, } from '../hardware/index.js';
26
- import { BackendAdvisor, BackendService, PrismCatalogService, TurboquantCatalogService, UpstreamReleasesCatalogService, upstreamManifestForTag, ensureBackend, ensureTurboquantCudart, ensureUpstreamCudart, OptimalBackendStore, readRuntimeSettings, resolveBackendExe, selectInstalledBackend, } from '../backend/index.js';
26
+ import { BackendAdvisor, BackendService, CudaRuntimeGuard, PrismCatalogService, TurboquantCatalogService, UpstreamReleasesCatalogService, upstreamManifestForTag, llamaBackendFallback, OptimalBackendStore, readRuntimeSettings, resolveBackendExe, selectInstalledBackend, } from '../backend/index.js';
27
27
  import { noticeEngineInstall, wireDecision } from '../decision/index.js';
28
28
  import { EngineBuildEngine, EnginesService, LlamacppEngine, ManagedEngine, hostEngines, } from '../engines/index.js';
29
29
  import { DEFAULT_ENVIRONMENT_ID } from '../runtime/environment/index.js';
@@ -35,7 +35,7 @@ import { EngineBuildsService, EngineManifestSource, IDLE_ENGINE_HOST, manifestKi
35
35
  import { Downloader, availableDiskSpace, defaultAvailableSpace, policyFetchFor } from '../downloads/index.js';
36
36
  import { lanAddresses, reapTunnelOrphan, wireRemoteAccess } from '../remote-access/index.js';
37
37
  import { ClientRegistry, CLIENT_EXPIRY_MS, ControlServer } from '../server/index.js';
38
- import { captureReport, createCoreReporter, processFailureReport, reportCoreEvents, } from '../telemetry/index.js';
38
+ import { captureReport, failureObserver, createCoreReporter, processFailureReport, reportCoreEvents, } from '../telemetry/index.js';
39
39
  import { CORE_VERSION } from '../version.js';
40
40
  import { wireManagedEnvironment } from './managed-environment.js';
41
41
  import { compatibilityFor, removeLegacyPrismSetups, wirePrismCompatibility } from './prism.js';
@@ -90,8 +90,9 @@ export async function createAtomicCore(options, construct) {
90
90
  instanceId: lock.instanceId,
91
91
  onListenerError: (event, error) => captureReport(reporter, processFailureReport('event_listener', error, { event })),
92
92
  });
93
+ const onFailure = failureObserver(reporter);
93
94
  if (reporter)
94
- reportCoreEvents(emitter, reporter, options.platform ?? process.platform);
95
+ reportCoreEvents(emitter, reporter, options.platform ?? process.platform, false);
95
96
  const settings = await SettingsStore.open(layout.core.settings, { ownerScope: scope });
96
97
  // Settings written through the CLI/control API must reach the attached app immediately so it
97
98
  // can refresh the legacy rollback copy before acknowledging the revision. Migration
@@ -146,6 +147,7 @@ export async function createAtomicCore(options, construct) {
146
147
  // One downloader per core process: it owns the active-task table that `cancel` works from, so
147
148
  // two of them would each know only half of what is running.
148
149
  const downloader = new Downloader({
150
+ onFailure,
149
151
  dataFolder: layout.root,
150
152
  platform: process.platform,
151
153
  fetch: options.fetch ?? fetch,
@@ -156,6 +158,9 @@ export async function createAtomicCore(options, construct) {
156
158
  ['llamacpp', new ModelRegistry(layout, 'llamacpp')],
157
159
  ['atomic-prism', new ModelRegistry(layout, 'atomic-prism')],
158
160
  ]);
161
+ // A Windows CUDA pack whose CUDA runtime could not be repaired leaves backend selection for this
162
+ // run instead of dying at load with an empty stderr (`backend/install/cuda-guard.ts`).
163
+ const cudaGuard = new CudaRuntimeGuard({ platform, env, log });
159
164
  // The three llama.cpp providers run through one runtime class; what differs — backend ids, the
160
165
  // argument rules and Windows CUDA runtime repair — is decided by the provider it is given.
161
166
  const llamacppRuntime = (provider) => new LlamacppRuntime({
@@ -165,18 +170,16 @@ export async function createAtomicCore(options, construct) {
165
170
  provider,
166
171
  journal,
167
172
  emit: (name, payload) => emitter.emit(name, payload),
168
- readSettings: () => readRuntimeSettings(settings, provider, layout, hardware),
169
- ensureBackendReady: (backend, version) => ensureBackend(layout, provider, backend, version, hardware, process.arch, (repairBackend, repairVersion) => {
170
- const backendDir = join(layout.provider(provider).backendsDir, repairVersion, repairBackend);
171
- const taskId = `${provider}-cudart-${repairVersion}/${repairBackend}`.replace(/[^A-Za-z0-9_/:-]/g, '_');
172
- const deps = { layout, downloader, platform, log: (message) => log('warn', message) };
173
- // A PrismML pack is installed with its CUDA runtime in place; there is nothing to repair.
174
- if (provider === 'atomic-prism')
175
- return Promise.resolve();
176
- const repair = provider === 'llamacpp'
177
- ? ensureTurboquantCudart(repairBackend, backendDir, taskId, deps)
178
- : ensureUpstreamCudart(repairVersion, repairBackend, backendDir, taskId, deps);
179
- return repair.then(() => { }, (e) => log('warn', `cudart pre-flight for ${repairVersion}/${repairBackend} failed: ${String(e)}`));
173
+ readSettings: () => readRuntimeSettings(settings, provider, layout, cudaGuard.facts(provider, hardware)),
174
+ ensureBackendReady: (backend, version) => cudaGuard.ensureBackend(layout, provider, backend, version, hardware, process.arch,
175
+ // The provider's own companion first, then whatever source can supply the rest of the
176
+ // runtime; a rejection is what makes the guard pick another pack.
177
+ (repairBackend, repairVersion) => backendService(provider).repairCudaRuntime(repairVersion, repairBackend)),
178
+ // A GPU build this card or driver cannot run (CUDA 13 on Turing before R616, a pack Windows
179
+ // cannot load) is remembered and the load is retried once on the next installed build.
180
+ backendFallback: (failed, reason) => llamaBackendFallback(layout, provider, hardware, failed, reason, {
181
+ hostArch: process.arch,
182
+ log: (message) => log('warn', message),
180
183
  }),
181
184
  cpuInfo: async () => {
182
185
  // Unknown flags stay `undefined`: the no-AVX preflight fires on a positive signal only.
@@ -520,12 +523,14 @@ export async function createAtomicCore(options, construct) {
520
523
  if (existing)
521
524
  return existing;
522
525
  const created = new BackendService({
526
+ onFailure,
523
527
  layout,
524
528
  provider,
525
529
  downloader,
526
530
  optimalStore,
527
531
  prismCatalog,
528
532
  resourcesDir: options.resourcesDir,
533
+ log: (message) => log('warn', message),
529
534
  // An install or removal by any route; an update and an activation report themselves.
530
535
  onChanged: (reason) => emitter.emit('engine:changed', { engine: provider, reason }),
531
536
  // Read when a removal or update acts: the runtime's load queue and what its sessions, the
@@ -544,6 +549,7 @@ export async function createAtomicCore(options, construct) {
544
549
  },
545
550
  },
546
551
  readManifest: async (tag, proxy) => upstreamManifestForTag((await upstreamCatalog.catalog({ proxy: proxy ?? null })).catalog, tag),
552
+ cudaRuntimeFetchFor: (proxy) => fetchFor(proxy),
547
553
  });
548
554
  backendServices.set(provider, created);
549
555
  return created;
@@ -576,6 +582,7 @@ export async function createAtomicCore(options, construct) {
576
582
  log: runtimeLog,
577
583
  });
578
584
  const diffusion = wireDiffusion({
585
+ onFailure,
579
586
  layout,
580
587
  journal,
581
588
  instanceId: lock.instanceId,
@@ -698,6 +705,7 @@ export async function createAtomicCore(options, construct) {
698
705
  if (process.platform !== 'win32')
699
706
  await storeMigration.onLinux(layout);
700
707
  const { managed, containers: managedContainers, platform: managedPlatform, host: managedHost, arch: managedArch, windows: managedWindows, } = wireManagedEnvironment({
708
+ onFailure,
701
709
  env,
702
710
  platform,
703
711
  layout,
@@ -806,6 +814,7 @@ export async function createAtomicCore(options, construct) {
806
814
  // Both start on the user's own llama.cpp build first when it is new enough: it runs on this machine.
807
815
  const upstreamBackend = () => String(settings.get('llamacpp-upstream')['version_backend'] ?? '');
808
816
  const decision = wireDecision({
817
+ onFailure,
809
818
  layout,
810
819
  settings,
811
820
  upstreamBackend,
@@ -823,6 +832,7 @@ export async function createAtomicCore(options, construct) {
823
832
  // The embedding model the public `/v1/embeddings` serves by name: its own process too, started
824
833
  // with the decision model below.
825
834
  const embedding = wireEmbedding({
835
+ onFailure,
826
836
  layout,
827
837
  settings,
828
838
  upstreamBackend,