@atomic-chat/core 0.17.0 → 0.18.4

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 (189) hide show
  1. package/dist/app-daemon.js +7 -0
  2. package/dist/app-daemon.js.map +1 -1
  3. package/dist/backend/advisor/advisor.d.ts +6 -1
  4. package/dist/backend/advisor/advisor.js +69 -7
  5. package/dist/backend/advisor/advisor.js.map +1 -1
  6. package/dist/backend/catalog/prism-manifest.d.ts +2 -0
  7. package/dist/backend/catalog/prism-manifest.js +3 -2
  8. package/dist/backend/catalog/prism-manifest.js.map +1 -1
  9. package/dist/cli/main.d.ts +1 -1
  10. package/dist/cli/main.js +5 -0
  11. package/dist/cli/main.js.map +1 -1
  12. package/dist/client/control-client.d.ts +10 -1
  13. package/dist/client/control-client.js +15 -0
  14. package/dist/client/control-client.js.map +1 -1
  15. package/dist/cloud/registry.js +1 -0
  16. package/dist/cloud/registry.js.map +1 -1
  17. package/dist/config/paths.d.ts +4 -0
  18. package/dist/config/paths.js +11 -0
  19. package/dist/config/paths.js.map +1 -1
  20. package/dist/contracts/backend-advisor.d.ts +12 -0
  21. package/dist/contracts/engine-builds.d.ts +1 -1
  22. package/dist/contracts/engine-builds.js +1 -1
  23. package/dist/contracts/engine-builds.js.map +1 -1
  24. package/dist/contracts/engines.d.ts +1 -1
  25. package/dist/contracts/engines.js +2 -0
  26. package/dist/contracts/engines.js.map +1 -1
  27. package/dist/contracts/errors.d.ts +13 -2
  28. package/dist/contracts/errors.js.map +1 -1
  29. package/dist/contracts/events.d.ts +7 -0
  30. package/dist/contracts/foundry-local.d.ts +77 -0
  31. package/dist/contracts/foundry-local.js +17 -0
  32. package/dist/contracts/foundry-local.js.map +1 -0
  33. package/dist/contracts/index.d.ts +1 -0
  34. package/dist/contracts/index.js +1 -0
  35. package/dist/contracts/index.js.map +1 -1
  36. package/dist/contracts/model-yml.d.ts +28 -0
  37. package/dist/contracts/model-yml.js +11 -0
  38. package/dist/contracts/model-yml.js.map +1 -1
  39. package/dist/contracts/session.d.ts +5 -1
  40. package/dist/contracts/session.js.map +1 -1
  41. package/dist/contracts/settings.d.ts +5 -1
  42. package/dist/contracts/settings.js.map +1 -1
  43. package/dist/core/atomic-core.d.ts +1 -1
  44. package/dist/core/create.js +106 -5
  45. package/dist/core/create.js.map +1 -1
  46. package/dist/core/types.d.ts +9 -0
  47. package/dist/core/types.js.map +1 -1
  48. package/dist/diffusion/install.d.ts +0 -4
  49. package/dist/diffusion/install.js +5 -2
  50. package/dist/diffusion/install.js.map +1 -1
  51. package/dist/diffusion/server-process.d.ts +5 -2
  52. package/dist/diffusion/server-process.js +10 -2
  53. package/dist/diffusion/server-process.js.map +1 -1
  54. package/dist/downloads/archive.d.ts +1 -1
  55. package/dist/downloads/archive.js +2 -2
  56. package/dist/downloads/archive.js.map +1 -1
  57. package/dist/engine-builds/engines.d.ts +83 -0
  58. package/dist/engine-builds/engines.js +144 -0
  59. package/dist/engine-builds/engines.js.map +1 -0
  60. package/dist/engine-builds/foundry-local.d.ts +22 -0
  61. package/dist/engine-builds/foundry-local.js +100 -0
  62. package/dist/engine-builds/foundry-local.js.map +1 -0
  63. package/dist/engine-builds/manifest.d.ts +57 -6
  64. package/dist/engine-builds/manifest.js +109 -4
  65. package/dist/engine-builds/manifest.js.map +1 -1
  66. package/dist/engine-builds/order.d.ts +2 -1
  67. package/dist/engine-builds/order.js +11 -4
  68. package/dist/engine-builds/order.js.map +1 -1
  69. package/dist/engine-builds/select.d.ts +27 -0
  70. package/dist/engine-builds/select.js +45 -0
  71. package/dist/engine-builds/select.js.map +1 -1
  72. package/dist/engine-builds/service.d.ts +14 -15
  73. package/dist/engine-builds/service.js +68 -126
  74. package/dist/engine-builds/service.js.map +1 -1
  75. package/dist/engines/service.d.ts +6 -3
  76. package/dist/engines/service.js +6 -3
  77. package/dist/engines/service.js.map +1 -1
  78. package/dist/hardware/index.d.ts +1 -0
  79. package/dist/hardware/index.js +1 -0
  80. package/dist/hardware/index.js.map +1 -1
  81. package/dist/hardware/npu.d.ts +14 -0
  82. package/dist/hardware/npu.js +29 -0
  83. package/dist/hardware/npu.js.map +1 -0
  84. package/dist/host/recipes/executor-io-windows.d.ts +11 -0
  85. package/dist/host/recipes/executor-io-windows.js +23 -5
  86. package/dist/host/recipes/executor-io-windows.js.map +1 -1
  87. package/dist/integrations/detect.d.ts +2 -0
  88. package/dist/integrations/detect.js +4 -3
  89. package/dist/integrations/detect.js.map +1 -1
  90. package/dist/lock/instance-lock.js +5 -2
  91. package/dist/lock/instance-lock.js.map +1 -1
  92. package/dist/lock/process-identity.d.ts +9 -3
  93. package/dist/lock/process-identity.js +75 -9
  94. package/dist/lock/process-identity.js.map +1 -1
  95. package/dist/router/resolve.d.ts +2 -2
  96. package/dist/router/resolve.js +2 -1
  97. package/dist/router/resolve.js.map +1 -1
  98. package/dist/runtime/foundry-local/accelerators.d.ts +42 -0
  99. package/dist/runtime/foundry-local/accelerators.js +153 -0
  100. package/dist/runtime/foundry-local/accelerators.js.map +1 -0
  101. package/dist/runtime/foundry-local/check.d.ts +19 -0
  102. package/dist/runtime/foundry-local/check.js +69 -0
  103. package/dist/runtime/foundry-local/check.js.map +1 -0
  104. package/dist/runtime/foundry-local/foundry-host.d.ts +18 -0
  105. package/dist/runtime/foundry-local/foundry-host.js +23 -0
  106. package/dist/runtime/foundry-local/foundry-host.js.map +1 -0
  107. package/dist/runtime/foundry-local/host/args.d.ts +44 -0
  108. package/dist/runtime/foundry-local/host/args.js +109 -0
  109. package/dist/runtime/foundry-local/host/args.js.map +1 -0
  110. package/dist/runtime/foundry-local/host/execution-providers.d.ts +27 -0
  111. package/dist/runtime/foundry-local/host/execution-providers.js +43 -0
  112. package/dist/runtime/foundry-local/host/execution-providers.js.map +1 -0
  113. package/dist/runtime/foundry-local/host/ffi-bun.d.ts +17 -0
  114. package/dist/runtime/foundry-local/host/ffi-bun.js +256 -0
  115. package/dist/runtime/foundry-local/host/ffi-bun.js.map +1 -0
  116. package/dist/runtime/foundry-local/host/library.d.ts +61 -0
  117. package/dist/runtime/foundry-local/host/library.js +17 -0
  118. package/dist/runtime/foundry-local/host/library.js.map +1 -0
  119. package/dist/runtime/foundry-local/host/run.d.ts +54 -0
  120. package/dist/runtime/foundry-local/host/run.js +316 -0
  121. package/dist/runtime/foundry-local/host/run.js.map +1 -0
  122. package/dist/runtime/foundry-local/host-process.d.ts +81 -0
  123. package/dist/runtime/foundry-local/host-process.js +185 -0
  124. package/dist/runtime/foundry-local/host-process.js.map +1 -0
  125. package/dist/runtime/foundry-local/index.d.ts +10 -0
  126. package/dist/runtime/foundry-local/index.js +10 -0
  127. package/dist/runtime/foundry-local/index.js.map +1 -0
  128. package/dist/runtime/foundry-local/model-yml.d.ts +8 -0
  129. package/dist/runtime/foundry-local/model-yml.js +63 -0
  130. package/dist/runtime/foundry-local/model-yml.js.map +1 -0
  131. package/dist/runtime/foundry-local/runtime.d.ts +88 -0
  132. package/dist/runtime/foundry-local/runtime.js +321 -0
  133. package/dist/runtime/foundry-local/runtime.js.map +1 -0
  134. package/dist/runtime/llamacpp/args.d.ts +5 -0
  135. package/dist/runtime/llamacpp/args.js +7 -1
  136. package/dist/runtime/llamacpp/args.js.map +1 -1
  137. package/dist/runtime/llamacpp/errors.d.ts +1 -0
  138. package/dist/runtime/llamacpp/errors.js +10 -0
  139. package/dist/runtime/llamacpp/errors.js.map +1 -1
  140. package/dist/runtime/llamacpp/load-plan.d.ts +5 -0
  141. package/dist/runtime/llamacpp/load-plan.js +8 -0
  142. package/dist/runtime/llamacpp/load-plan.js.map +1 -1
  143. package/dist/runtime/llamacpp/runtime-device.d.ts +8 -0
  144. package/dist/runtime/llamacpp/runtime-device.js +9 -3
  145. package/dist/runtime/llamacpp/runtime-device.js.map +1 -1
  146. package/dist/runtime/llamacpp/runtime.d.ts +6 -1
  147. package/dist/runtime/llamacpp/runtime.js +19 -3
  148. package/dist/runtime/llamacpp/runtime.js.map +1 -1
  149. package/dist/runtime/managed-text/gateway.d.ts +2 -0
  150. package/dist/runtime/managed-text/gateway.js +1 -1
  151. package/dist/runtime/managed-text/gateway.js.map +1 -1
  152. package/dist/runtime/shared/external-sessions.js +1 -0
  153. package/dist/runtime/shared/external-sessions.js.map +1 -1
  154. package/dist/runtime/shared/process.d.ts +13 -1
  155. package/dist/runtime/shared/process.js +21 -12
  156. package/dist/runtime/shared/process.js.map +1 -1
  157. package/dist/server/control/router.js +2 -0
  158. package/dist/server/control/router.js.map +1 -1
  159. package/dist/server/control/routes/foundry-local.d.ts +10 -0
  160. package/dist/server/control/routes/foundry-local.js +42 -0
  161. package/dist/server/control/routes/foundry-local.js.map +1 -0
  162. package/dist/server/control/routes/models.js +6 -3
  163. package/dist/server/control/routes/models.js.map +1 -1
  164. package/dist/server/control/types.d.ts +17 -1
  165. package/dist/server/control/types.js.map +1 -1
  166. package/dist/server/http.js +45 -7
  167. package/dist/server/http.js.map +1 -1
  168. package/dist/server/public/errors.d.ts +1 -0
  169. package/dist/server/public/errors.js +18 -0
  170. package/dist/server/public/errors.js.map +1 -1
  171. package/dist/server/public/listing.js +1 -0
  172. package/dist/server/public/listing.js.map +1 -1
  173. package/dist/settings/public.d.ts +7 -0
  174. package/dist/settings/public.js +8 -0
  175. package/dist/settings/public.js.map +1 -0
  176. package/dist/settings/schema/foundry-local.json +14 -0
  177. package/dist/settings/schema.js +8 -0
  178. package/dist/settings/schema.js.map +1 -1
  179. package/dist/version.d.ts +1 -1
  180. package/dist/version.js +1 -1
  181. package/package.json +11 -3
  182. package/src/settings/schema/atomic-prism.json +0 -433
  183. package/src/settings/schema/foundation-models.json +0 -1
  184. package/src/settings/schema/llamacpp-upstream.json +0 -498
  185. package/src/settings/schema/llamacpp.json +0 -475
  186. package/src/settings/schema/mlx.json +0 -136
  187. package/src/settings/schema/sglang.json +0 -251
  188. package/src/settings/schema/tensorrt-llm.json +0 -253
  189. package/src/settings/schema/vllm.json +0 -273
@@ -23,14 +23,13 @@
23
23
  */
24
24
  import { readdir, rm } from 'node:fs/promises';
25
25
  import { join } from 'node:path';
26
- import { AtomicCoreError } from '../contracts/index.js';
26
+ import { AtomicCoreError, ENGINE_BUILD_IDS } from '../contracts/index.js';
27
27
  import { samePath } from '../diffusion/containment.js';
28
- import { listInstalledBackends, prepareSdcppTree, writeInstallRecord } from '../diffusion/install.js';
29
- import { listDownloadedMlx, MLX_SERVER_BINARY, probeMlxServer, readBundledMlx, removeOwnedBuild, writeMlxInstallRecord, } from './builds.js';
28
+ import { MLX_SERVER_BINARY, removeOwnedBuild } from './builds.js';
29
+ import { ENGINE_DESCRIPTORS } from './engines.js';
30
30
  import { installStaged } from './install.js';
31
- import { assetInstallable, mlxAssetUrl, sdcppAssetUrl } from './manifest.js';
31
+ import { assetInstallable } from './manifest.js';
32
32
  import { compareBuilds } from './order.js';
33
- import { backendKindOf, companionFor, mlxHostChoice, readFailedBackends, rememberFailedBackend, sdcppHostChoice, sdcppHostOf, } from './select.js';
34
33
  /** The host of an engine with no runtime in this core (MLX off macOS): nothing runs, so nothing to hold. */
35
34
  export const IDLE_ENGINE_HOST = {
36
35
  exclusive: (fn) => fn(),
@@ -44,9 +43,11 @@ const ref = (build) => ({
44
43
  origin: build.origin,
45
44
  });
46
45
  export function parseEngineBuildId(raw) {
47
- if (raw === 'sd-cpp' || raw === 'mlx')
48
- return raw;
49
- throw new AtomicCoreError('INVALID_ARGUMENT', `Engine builds exist for sd-cpp and mlx, not ${raw}.`);
46
+ const known = ENGINE_BUILD_IDS.find((id) => id === raw);
47
+ if (known)
48
+ return known;
49
+ const names = `${ENGINE_BUILD_IDS.slice(0, -1).join(', ')} and ${ENGINE_BUILD_IDS.at(-1)}`;
50
+ throw new AtomicCoreError('INVALID_ARGUMENT', `Engine builds exist for ${names}, not ${raw}.`);
50
51
  }
51
52
  export class EngineBuildsService {
52
53
  deps;
@@ -66,11 +67,11 @@ export class EngineBuildsService {
66
67
  const installed = [];
67
68
  for (const build of builds)
68
69
  installed.push(await this.describe(build, active, inUse));
69
- const manifestTag = read.manifest?.tag_name;
70
- const manifest = read.manifest && manifestTag !== undefined && read.source && read.fetched_at !== null
70
+ const release = read.manifest ? this.engine(engine).release(read.manifest) : null;
71
+ const manifest = release && read.source && read.fetched_at !== null
71
72
  ? {
72
- tag: manifestTag,
73
- ...('published_at' in read.manifest ? { published_at: read.manifest.published_at } : {}),
73
+ tag: release.tag,
74
+ ...(release.published_at !== null ? { published_at: release.published_at } : {}),
74
75
  source: read.source,
75
76
  fetched_at: read.fetched_at,
76
77
  error: read.error,
@@ -93,15 +94,15 @@ export class EngineBuildsService {
93
94
  const choice = await this.hostChoice(engine, read.manifest);
94
95
  if (!active || !read.manifest || !choice.backend_id)
95
96
  return { update_needed: false, current, target: null };
96
- const candidate = { tag: read.manifest.tag_name, published_at: publishedAt(read.manifest) };
97
+ const candidate = this.engine(engine).release(read.manifest);
97
98
  if (compareBuilds(engine, candidate, active) <= 0)
98
99
  return { update_needed: false, current, target: null };
99
- const archives = this.archivesFor(engine, read.manifest, choice.backend_id);
100
+ const archives = this.engine(engine).archives(read.manifest, choice.backend_id);
100
101
  return {
101
102
  update_needed: true,
102
103
  current,
103
104
  target: {
104
- tag: read.manifest.tag_name,
105
+ tag: candidate.tag,
105
106
  backend_id: choice.backend_id,
106
107
  ...(candidate.published_at ? { published_at: candidate.published_at } : {}),
107
108
  download_bytes: archives.reduce((sum, archive) => sum + (archive.size ?? 0), 0),
@@ -128,8 +129,8 @@ export class EngineBuildsService {
128
129
  const choice = await this.hostChoice(engine, manifest);
129
130
  if (!choice.backend_id)
130
131
  throw new AtomicCoreError('UNSUPPORTED_BACKEND', choice.reason ?? 'No build of this engine fits this computer.');
131
- const tag = manifest.tag_name;
132
- const target = { tag, published_at: publishedAt(manifest) };
132
+ const target = this.engine(engine).release(manifest);
133
+ const tag = target.tag;
133
134
  const top = { tag, backend_id: choice.backend_id, origin: 'downloaded' };
134
135
  const builds = await this.builds(engine);
135
136
  const active = this.activeOf(engine, builds);
@@ -149,6 +150,7 @@ export class EngineBuildsService {
149
150
  retired: [],
150
151
  kept_in_use: [],
151
152
  };
153
+ const rememberFailedRung = this.engine(engine).rememberFailedRung;
152
154
  const failed = [];
153
155
  for (const [index, backendId] of choice.ladder.entries()) {
154
156
  const last = index === choice.ladder.length - 1;
@@ -161,9 +163,9 @@ export class EngineBuildsService {
161
163
  return { ...outcome, ...(failed.length > 0 ? { failed_backend_ids: failed } : {}) };
162
164
  }
163
165
  catch (error) {
164
- if (engine !== 'sd-cpp' || last || !probeFailed)
166
+ if (!rememberFailedRung || last || !probeFailed)
165
167
  throw error;
166
- await rememberFailedBackend(this.deps.failedBackendsFile, tag, backendId);
168
+ await rememberFailedRung(this.context(engine), tag, backendId);
167
169
  failed.push(backendId);
168
170
  this.deps.log?.('warn', `${tag}/${backendId} does not run on this machine (${error instanceof Error ? error.message : String(error)}); trying ${choice.ladder[index + 1]}`);
169
171
  }
@@ -172,20 +174,16 @@ export class EngineBuildsService {
172
174
  throw new AtomicCoreError('INTERNAL_ERROR', 'The install ladder was empty.');
173
175
  }
174
176
  async installOne(engine, manifest, backendId, request, onProbeFailure) {
175
- const tag = manifest.tag_name;
176
- const archives = this.archivesFor(engine, manifest, backendId);
177
+ const descriptor = this.engine(engine);
178
+ const { tag, published_at: publishedAt, c_api_version: cApiVersion } = descriptor.release(manifest);
179
+ const archives = descriptor.archives(manifest, backendId);
177
180
  const unpinned = archives.find((archive) => !assetInstallable(archive));
178
181
  if (unpinned)
179
182
  throw new AtomicCoreError('ENGINE_INSTALL_FAILED', 'The manifest does not pin this build with a sha256 and a size; it is not installed.', `${tag}/${unpinned.name}`);
180
183
  const dir = join(this.deps.roots[engine], tag, backendId);
181
184
  const sha256 = archives[0]?.sha256 ?? null;
182
- const probe = this.deps.probe?.[engine] ??
183
- (engine === 'sd-cpp'
184
- ? (staging) => prepareSdcppTree(staging, {
185
- platform: this.deps.platform,
186
- ...(this.deps.log ? { log: this.deps.log } : {}),
187
- })
188
- : (staging) => probeMlxServer(staging, { platform: this.deps.platform }));
185
+ const context = this.context(engine);
186
+ const probe = this.deps.probe?.[engine] ?? ((staging) => descriptor.probe(staging, context));
189
187
  const { replaced } = await installStaged({
190
188
  dataFolder: this.deps.dataFolder,
191
189
  target: dir,
@@ -195,24 +193,18 @@ export class EngineBuildsService {
195
193
  downloader: this.deps.downloader,
196
194
  availableSpace: this.deps.availableSpace,
197
195
  now: this.now,
198
- verify: (staging) => probe(staging).catch(onProbeFailure),
199
- record: (staging) => engine === 'sd-cpp'
200
- ? writeInstallRecord(staging, {
201
- tag,
202
- backendId,
203
- backend: backendKindOf(backendId),
204
- engine: 'sd-cpp',
205
- sha256,
206
- installedAtMs: this.now(),
207
- dir: staging,
208
- })
209
- : writeMlxInstallRecord(staging, {
210
- tag,
211
- backendId,
212
- sha256,
213
- installedAtMs: this.now(),
214
- publishedAt: publishedAt(manifest),
215
- }),
196
+ verify: async (staging) => {
197
+ await descriptor.prepare?.(staging, context);
198
+ await probe(staging).catch(onProbeFailure);
199
+ },
200
+ record: (staging) => descriptor.record(staging, {
201
+ tag,
202
+ backendId,
203
+ sha256,
204
+ installedAtMs: this.now(),
205
+ publishedAt,
206
+ cApiVersion: cApiVersion ?? null,
207
+ }),
216
208
  });
217
209
  const build = { tag, backend_id: backendId, origin: 'downloaded' };
218
210
  const host = this.deps.hosts[engine];
@@ -259,7 +251,7 @@ export class EngineBuildsService {
259
251
  * disk, active or not, always stays. Under each engine's load lock.
260
252
  */
261
253
  async startupCleanup() {
262
- for (const engine of ['sd-cpp', 'mlx'])
254
+ for (const engine of ENGINE_BUILD_IDS)
263
255
  await this.deps.hosts[engine]
264
256
  .exclusive(() => this.removeLeftovers(engine))
265
257
  .catch((error) => {
@@ -275,48 +267,39 @@ export class EngineBuildsService {
275
267
  await rm(join(root, tag, name), { recursive: true, force: true }).catch(() => { });
276
268
  }
277
269
  // --- what is on disk -------------------------------------------------------------------------
270
+ /** The directory of the build the next load of `engine` uses; nothing installed, `undefined`. */
271
+ async activeDir(engine) {
272
+ return this.activeOf(engine, await this.builds(engine))?.dir;
273
+ }
278
274
  /** The build the next MLX load starts: the newest of bundled and downloaded, bundled on a tie. */
279
275
  async resolveMlxBinary() {
280
276
  const active = this.activeOf('mlx', await this.builds('mlx'));
281
277
  return active ? join(active.dir, MLX_SERVER_BINARY) : undefined;
282
278
  }
283
- async builds(engine) {
284
- if (engine === 'sd-cpp')
285
- return (await listInstalledBackends(this.deps.roots['sd-cpp'], this.deps.platform))
286
- .filter((record) => record.engine === 'sd-cpp')
287
- .map((record) => ({
288
- tag: record.tag,
289
- backend_id: record.backendId,
290
- origin: 'downloaded',
291
- dir: record.dir,
292
- installed_at_ms: record.installedAtMs,
293
- published_at: null,
294
- }));
295
- const out = (await listDownloadedMlx(this.deps.roots.mlx)).map((record) => ({
296
- tag: record.tag,
297
- backend_id: record.backendId,
298
- origin: 'downloaded',
299
- dir: record.dir,
300
- installed_at_ms: record.installedAtMs,
301
- published_at: record.publishedAt,
302
- }));
303
- const bundled = await readBundledMlx(this.deps.resourcesDir);
304
- if (bundled)
305
- out.unshift(bundledBuild(bundled, this.deps.resourcesDir));
306
- return out;
279
+ builds(engine) {
280
+ return this.engine(engine).builds(this.context(engine));
307
281
  }
308
- /**
309
- * sd.cpp: the newest install, which `selectModelInstall` hands the next load. MLX: the newest
310
- * build by `published_at`, the bundled one on a tie (spec "Две точки происхождения mlx-server").
311
- */
312
282
  activeOf(engine, builds) {
313
- if (engine === 'sd-cpp')
314
- return builds[0];
315
- let best;
316
- for (const build of builds)
317
- if (!best || compareBuilds('mlx', build, best) > 0)
318
- best = build;
319
- return best;
283
+ return this.engine(engine).active(builds);
284
+ }
285
+ /** The table row of `engine`; one cast, since TypeScript cannot correlate a key with its row. */
286
+ engine(engine) {
287
+ return ENGINE_DESCRIPTORS[engine];
288
+ }
289
+ context(engine) {
290
+ return {
291
+ root: this.deps.roots[engine],
292
+ failedBackendsFile: this.deps.failedBackendsFile,
293
+ resourcesDir: this.deps.resourcesDir,
294
+ platform: this.deps.platform,
295
+ hardware: this.deps.hardware,
296
+ log: this.deps.log,
297
+ foundryLocalHost: this.deps.foundryLocalHost ?? {
298
+ platform: null,
299
+ reason: 'Foundry Local does not run on this computer.',
300
+ },
301
+ foundryHostProbe: this.deps.foundryHostProbe,
302
+ };
320
303
  }
321
304
  async isUsed(build, inUse) {
322
305
  for (const dir of inUse)
@@ -342,51 +325,10 @@ export class EngineBuildsService {
342
325
  ...(request.force ? { force: true } : {}),
343
326
  ...(request.proxy ? { proxy: request.proxy } : {}),
344
327
  };
345
- return engine === 'sd-cpp'
346
- ? this.deps.manifests['sd-cpp'].read(options)
347
- : this.deps.manifests.mlx.read(options);
328
+ return this.deps.manifests[engine].read(options);
348
329
  }
349
- async hostChoice(engine, manifest) {
350
- const facts = await this.deps.hardware();
351
- const host = sdcppHostOf(facts);
352
- if (engine === 'mlx') {
353
- const choice = mlxHostChoice(host, manifest);
354
- return { ...choice, ladder: choice.backend_id ? [choice.backend_id] : [] };
355
- }
356
- if (!manifest)
357
- return { ladder: [], backend_id: null, reason: 'The sd.cpp manifest is unavailable.' };
358
- return sdcppHostChoice(host, manifest, await readFailedBackends(this.deps.failedBackendsFile));
330
+ hostChoice(engine, manifest) {
331
+ return this.engine(engine).hostChoice(this.context(engine), manifest);
359
332
  }
360
- archivesFor(engine, manifest, backendId) {
361
- if (engine === 'mlx') {
362
- const mlx = manifest;
363
- return mlx.assets
364
- .filter((asset) => asset.backend === backendId)
365
- .map((asset) => ({ ...pin(asset), url: mlxAssetUrl(mlx, asset), name: asset.name }));
366
- }
367
- const sd = manifest;
368
- const ids = [backendId, companionFor(backendId)];
369
- return ids.flatMap((id) => {
370
- const asset = sd.assets.find((candidate) => candidate.backend === id);
371
- return asset ? [{ ...pin(asset), url: sdcppAssetUrl(sd, asset), name: asset.name }] : [];
372
- });
373
- }
374
- }
375
- const pin = (asset) => ({
376
- ...(asset.sha256 !== undefined ? { sha256: asset.sha256 } : {}),
377
- ...(asset.size !== undefined ? { size: asset.size } : {}),
378
- });
379
- function publishedAt(manifest) {
380
- return 'published_at' in manifest ? manifest.published_at : null;
381
- }
382
- function bundledBuild(bundled, resourcesDir) {
383
- return {
384
- tag: bundled.tag ?? 'bundled',
385
- backend_id: 'macos-arm64',
386
- origin: 'bundled',
387
- dir: resourcesDir,
388
- installed_at_ms: null,
389
- published_at: bundled.published_at,
390
- };
391
333
  }
392
334
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/engine-builds/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/engine-builds/service.ts"],"names":[],"mappings":"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"}
@@ -23,10 +23,13 @@ export interface EngineRemoveOptions {
23
23
  }
24
24
  /**
25
25
  * The engines registered on this host, in catalog order: the three llama.cpp providers and sd.cpp
26
- * everywhere, MLX on macOS, a managed engine where this core offers it (Linux, Windows with Atomic
27
- * Chat's WSL distribution).
26
+ * everywhere, MLX on macOS, Foundry Local where its platform rule holds (`foundryLocal`, change
27
+ * `add-foundry-local` design D7), a managed engine where this core offers it (Linux, Windows with
28
+ * Atomic Chat's WSL distribution).
28
29
  */
29
- export declare function hostEngines(platform: NodeJS.Platform, managed: readonly string[]): EngineId[];
30
+ export declare function hostEngines(platform: NodeJS.Platform, managed: readonly string[], host?: {
31
+ foundryLocal?: boolean;
32
+ }): EngineId[];
30
33
  export interface EnginesServiceDeps {
31
34
  engines: readonly EngineHandle[];
32
35
  }
@@ -8,13 +8,16 @@ import { AtomicCoreError, ENGINE_IDS, ENGINE_KINDS } from '../contracts/index.js
8
8
  import { collectEngineVersions } from './versions.js';
9
9
  /**
10
10
  * The engines registered on this host, in catalog order: the three llama.cpp providers and sd.cpp
11
- * everywhere, MLX on macOS, a managed engine where this core offers it (Linux, Windows with Atomic
12
- * Chat's WSL distribution).
11
+ * everywhere, MLX on macOS, Foundry Local where its platform rule holds (`foundryLocal`, change
12
+ * `add-foundry-local` design D7), a managed engine where this core offers it (Linux, Windows with
13
+ * Atomic Chat's WSL distribution).
13
14
  */
14
- export function hostEngines(platform, managed) {
15
+ export function hostEngines(platform, managed, host = {}) {
15
16
  return ENGINE_IDS.filter((engine) => {
16
17
  if (engine === 'mlx')
17
18
  return platform === 'darwin';
19
+ if (engine === 'foundry-local')
20
+ return host.foundryLocal === true;
18
21
  if (ENGINE_KINDS[engine] === 'managed')
19
22
  return managed.includes(engine);
20
23
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/engines/service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAajF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAwBrD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,QAAyB,EAAE,OAA0B;IAC/E,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAClC,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,QAAQ,KAAK,QAAQ,CAAA;QAClD,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACvE,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAMD,MAAM,OAAO,cAAc;IACR,OAAO,CAAgB;IAExC,YAAY,IAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CACtE,CAAA;IACH,CAAC;IAED,oFAAoF;IAC5E,MAAM,CAAC,MAAc;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;QAC5E,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAA;QACvC,MAAM,IAAI,eAAe,CACvB,kBAAkB,EACjB,UAAgC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAChD,CAAC,CAAC,OAAO,MAAM,4CAA4C;YAC3D,CAAC,CAAC,4BAA4B,MAAM,GAAG,EACzC,MAAM,CACP,CAAA;IACH,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,MAAM,CACV,MAAc,EACd,OAA4B;QAE5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,MAAM,CACV,MAAc,EACd,OAAe,EACf,OAAe,EACf,UAA+B,EAAE;QAEjC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAe,EAAE,OAAe;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAC/B,MAAM,IAAI,eAAe,CACvB,kBAAkB,EAClB,6BAA6B,MAAM,8BAA8B,EACjE,MAAM,CACP,CAAA;QACH,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,+FAA+F;IAC/F,QAAQ,CAAC,UAAiC,EAAE;QAC1C,OAAO,qBAAqB,CAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;SACrC,CAAC,CAAC,CACJ,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/engines/service.ts"],"names":[],"mappings":"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"}
@@ -21,3 +21,4 @@ export * from './probe-linux.js';
21
21
  export * from './probe-windows.js';
22
22
  export * from './probe-darwin.js';
23
23
  export * from './service.js';
24
+ export * from './npu.js';
@@ -21,4 +21,5 @@ export * from './probe-linux.js';
21
21
  export * from './probe-windows.js';
22
22
  export * from './probe-darwin.js';
23
23
  export * from './service.js';
24
+ export * from './npu.js';
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hardware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hardware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Whether this machine has an NPU (openspec change `add-foundry-local`, task 6.5). Windows ML offers
3
+ * the OpenVINO accelerator on Intel machines without one (spike rulings S2), so "OpenVINO found" does
4
+ * not mean "NPU here": the device list does. NPUs register as PnP class `ComputeAccelerator` (Intel AI
5
+ * Boost, Qualcomm Hexagon, AMD's IPU). Off Windows there is no NPU this core runs variants on.
6
+ */
7
+ import type { ProbeDeps } from './probe-common.js';
8
+ export interface NpuPresence {
9
+ /** `null`: Windows could not be asked; callers then go by the accelerators the library offers. */
10
+ present: boolean | null;
11
+ devices: string[];
12
+ }
13
+ export declare function parseNpuDevices(stdout: string): string[];
14
+ export declare function probeNpu(deps: Pick<ProbeDeps, 'platform' | 'run'>): Promise<NpuPresence>;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Whether this machine has an NPU (openspec change `add-foundry-local`, task 6.5). Windows ML offers
3
+ * the OpenVINO accelerator on Intel machines without one (spike rulings S2), so "OpenVINO found" does
4
+ * not mean "NPU here": the device list does. NPUs register as PnP class `ComputeAccelerator` (Intel AI
5
+ * Boost, Qualcomm Hexagon, AMD's IPU). Off Windows there is no NPU this core runs variants on.
6
+ */
7
+ import { PROBE_POWERSHELL_TIMEOUT_MS } from './probe-common.js';
8
+ const NPU_QUERY = "Get-CimInstance Win32_PnPEntity -Filter \"PNPClass='ComputeAccelerator'\" | Where-Object { $_.Status -eq 'OK' } | ForEach-Object { $_.Name }";
9
+ export function parseNpuDevices(stdout) {
10
+ return stdout
11
+ .split(/\r?\n/)
12
+ .map((line) => line.trim())
13
+ .filter(Boolean);
14
+ }
15
+ export async function probeNpu(deps) {
16
+ if (deps.platform !== 'win32')
17
+ return { present: false, devices: [] };
18
+ try {
19
+ const result = await deps.run('powershell.exe', ['-NoProfile', '-NonInteractive', '-Command', NPU_QUERY], PROBE_POWERSHELL_TIMEOUT_MS);
20
+ if (result.code !== 0)
21
+ return { present: null, devices: [] };
22
+ const devices = parseNpuDevices(result.stdout);
23
+ return { present: devices.length > 0, devices };
24
+ }
25
+ catch {
26
+ return { present: null, devices: [] };
27
+ }
28
+ }
29
+ //# sourceMappingURL=npu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npu.js","sourceRoot":"","sources":["../../src/hardware/npu.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AAS/D,MAAM,SAAS,GACb,8IAA8I,CAAA;AAEhJ,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM;SACV,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAyC;IACtE,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IACrE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,gBAAgB,EAChB,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,CAAC,EACxD,2BAA2B,CAC5B,CAAA;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QAC5D,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9C,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IACvC,CAAC;AACH,CAAC"}
@@ -62,6 +62,17 @@ export interface WindowsHostStepIo {
62
62
  rename(from: string, to: string): Promise<void>;
63
63
  remove(path: string): Promise<void>;
64
64
  }
65
+ /**
66
+ * `path`'s owner, ACL (by SID, inherited rules included), whether it is a folder and whether it is a
67
+ * reparse point: one `Get-Acl` through PowerShell by its full path under `systemRoot` (default
68
+ * `%SystemRoot%`), the path in the environment, never in the script. Throws when PowerShell fails or
69
+ * answers without an owner. The host-step executor reads every ACL through it; `atc` checks its data
70
+ * folder with it (change close-cli-core-gaps, design D5).
71
+ */
72
+ export declare function readWindowsAcl(path: string, options: {
73
+ exec: WindowsHostStepIo['exec'];
74
+ systemRoot?: string;
75
+ }): Promise<WindowsAcl>;
65
76
  /**
66
77
  * The executor's dependencies on a Windows machine. `env` gives `%SystemRoot%`, where the only
67
78
  * command it runs — `wsl.exe` — and PowerShell live.
@@ -94,6 +94,23 @@ export function parseWindowsAcl(output) {
94
94
  })),
95
95
  };
96
96
  }
97
+ /**
98
+ * `path`'s owner, ACL (by SID, inherited rules included), whether it is a folder and whether it is a
99
+ * reparse point: one `Get-Acl` through PowerShell by its full path under `systemRoot` (default
100
+ * `%SystemRoot%`), the path in the environment, never in the script. Throws when PowerShell fails or
101
+ * answers without an owner. The host-step executor reads every ACL through it; `atc` checks its data
102
+ * folder with it (change close-cli-core-gaps, design D5).
103
+ */
104
+ export async function readWindowsAcl(path, options) {
105
+ const systemRoot = (options.systemRoot ??
106
+ process.env['SystemRoot'] ??
107
+ process.env['SYSTEMROOT'] ??
108
+ 'C:\\Windows').replace(/[\\/]+$/, '');
109
+ const powershell = `${systemRoot}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;
110
+ return parseWindowsAcl(await options.exec(powershell, ['-NoProfile', '-NonInteractive', '-Command', ACL_QUERY], {
111
+ env: { ATOMIC_HOST_STEP_PATH: path },
112
+ }));
113
+ }
97
114
  /**
98
115
  * Runs `command` with this process's own console (stdio inherited, window hidden), no shell, and
99
116
  * resolves with the exit code only. The elevated executor is started by the app with `SW_HIDE`, so the
@@ -173,14 +190,15 @@ const refuse = (message) => {
173
190
  * command it runs — `wsl.exe` — and PowerShell live.
174
191
  */
175
192
  export function windowsHostStepDeps(env, io = nodeIo()) {
176
- const system32 = `${(env['SystemRoot'] ?? env['SYSTEMROOT'] ?? 'C:\\Windows').replace(/[\\/]+$/, '')}\\System32`;
177
- const powershell = `${system32}\\WindowsPowerShell\\v1.0\\powershell.exe`;
193
+ const systemRoot = (env['SystemRoot'] ?? env['SYSTEMROOT'] ?? 'C:\\Windows').replace(/[\\/]+$/, '');
194
+ const system32 = `${systemRoot}\\System32`;
178
195
  const trust = async (path, what, expect) => {
179
196
  let acl;
180
197
  try {
181
- acl = parseWindowsAcl(await io.exec(powershell, ['-NoProfile', '-NonInteractive', '-Command', ACL_QUERY], {
182
- env: { ATOMIC_HOST_STEP_PATH: path },
183
- }));
198
+ acl = await readWindowsAcl(path, {
199
+ exec: (command, args, options) => io.exec(command, args, options),
200
+ systemRoot,
201
+ });
184
202
  }
185
203
  catch (error) {
186
204
  return refuse(`could not read the owner and permissions of ${what}: ${error.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"executor-io-windows.js","sourceRoot":"","sources":["../../../src/host/recipes/executor-io-windows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor-io-windows.js","sourceRoot":"","sources":["../../../src/host/recipes/executor-io-windows.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ export interface DetectDeps {
14
14
  home?: string;
15
15
  /** Run the PATH probe; resolves true when the command exists. */
16
16
  onPath?: (bin: string) => Promise<boolean>;
17
+ /** Budget of the default PATH probe; one that runs out reads as not on PATH. Default `PATH_PROBE_TIMEOUT_MS`. */
18
+ pathProbeTimeoutMs?: number;
17
19
  /** Does this absolute path exist as a file? */
18
20
  isFile?: (path: string) => Promise<boolean>;
19
21
  }