@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.
- package/dist/app-daemon.js +7 -0
- package/dist/app-daemon.js.map +1 -1
- package/dist/backend/advisor/advisor.d.ts +6 -1
- package/dist/backend/advisor/advisor.js +69 -7
- package/dist/backend/advisor/advisor.js.map +1 -1
- package/dist/backend/catalog/prism-manifest.d.ts +2 -0
- package/dist/backend/catalog/prism-manifest.js +3 -2
- package/dist/backend/catalog/prism-manifest.js.map +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/cli/main.js +5 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/client/control-client.d.ts +10 -1
- package/dist/client/control-client.js +15 -0
- package/dist/client/control-client.js.map +1 -1
- package/dist/cloud/registry.js +1 -0
- package/dist/cloud/registry.js.map +1 -1
- package/dist/config/paths.d.ts +4 -0
- package/dist/config/paths.js +11 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/contracts/backend-advisor.d.ts +12 -0
- package/dist/contracts/engine-builds.d.ts +1 -1
- package/dist/contracts/engine-builds.js +1 -1
- package/dist/contracts/engine-builds.js.map +1 -1
- package/dist/contracts/engines.d.ts +1 -1
- package/dist/contracts/engines.js +2 -0
- package/dist/contracts/engines.js.map +1 -1
- package/dist/contracts/errors.d.ts +13 -2
- package/dist/contracts/errors.js.map +1 -1
- package/dist/contracts/events.d.ts +7 -0
- package/dist/contracts/foundry-local.d.ts +77 -0
- package/dist/contracts/foundry-local.js +17 -0
- package/dist/contracts/foundry-local.js.map +1 -0
- package/dist/contracts/index.d.ts +1 -0
- package/dist/contracts/index.js +1 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/model-yml.d.ts +28 -0
- package/dist/contracts/model-yml.js +11 -0
- package/dist/contracts/model-yml.js.map +1 -1
- package/dist/contracts/session.d.ts +5 -1
- package/dist/contracts/session.js.map +1 -1
- package/dist/contracts/settings.d.ts +5 -1
- package/dist/contracts/settings.js.map +1 -1
- package/dist/core/atomic-core.d.ts +1 -1
- package/dist/core/create.js +106 -5
- package/dist/core/create.js.map +1 -1
- package/dist/core/types.d.ts +9 -0
- package/dist/core/types.js.map +1 -1
- package/dist/diffusion/install.d.ts +0 -4
- package/dist/diffusion/install.js +5 -2
- package/dist/diffusion/install.js.map +1 -1
- package/dist/diffusion/server-process.d.ts +5 -2
- package/dist/diffusion/server-process.js +10 -2
- package/dist/diffusion/server-process.js.map +1 -1
- package/dist/downloads/archive.d.ts +1 -1
- package/dist/downloads/archive.js +2 -2
- package/dist/downloads/archive.js.map +1 -1
- package/dist/engine-builds/engines.d.ts +83 -0
- package/dist/engine-builds/engines.js +144 -0
- package/dist/engine-builds/engines.js.map +1 -0
- package/dist/engine-builds/foundry-local.d.ts +22 -0
- package/dist/engine-builds/foundry-local.js +100 -0
- package/dist/engine-builds/foundry-local.js.map +1 -0
- package/dist/engine-builds/manifest.d.ts +57 -6
- package/dist/engine-builds/manifest.js +109 -4
- package/dist/engine-builds/manifest.js.map +1 -1
- package/dist/engine-builds/order.d.ts +2 -1
- package/dist/engine-builds/order.js +11 -4
- package/dist/engine-builds/order.js.map +1 -1
- package/dist/engine-builds/select.d.ts +27 -0
- package/dist/engine-builds/select.js +45 -0
- package/dist/engine-builds/select.js.map +1 -1
- package/dist/engine-builds/service.d.ts +14 -15
- package/dist/engine-builds/service.js +68 -126
- package/dist/engine-builds/service.js.map +1 -1
- package/dist/engines/service.d.ts +6 -3
- package/dist/engines/service.js +6 -3
- package/dist/engines/service.js.map +1 -1
- package/dist/hardware/index.d.ts +1 -0
- package/dist/hardware/index.js +1 -0
- package/dist/hardware/index.js.map +1 -1
- package/dist/hardware/npu.d.ts +14 -0
- package/dist/hardware/npu.js +29 -0
- package/dist/hardware/npu.js.map +1 -0
- package/dist/host/recipes/executor-io-windows.d.ts +11 -0
- package/dist/host/recipes/executor-io-windows.js +23 -5
- package/dist/host/recipes/executor-io-windows.js.map +1 -1
- package/dist/integrations/detect.d.ts +2 -0
- package/dist/integrations/detect.js +4 -3
- package/dist/integrations/detect.js.map +1 -1
- package/dist/lock/instance-lock.js +5 -2
- package/dist/lock/instance-lock.js.map +1 -1
- package/dist/lock/process-identity.d.ts +9 -3
- package/dist/lock/process-identity.js +75 -9
- package/dist/lock/process-identity.js.map +1 -1
- package/dist/router/resolve.d.ts +2 -2
- package/dist/router/resolve.js +2 -1
- package/dist/router/resolve.js.map +1 -1
- package/dist/runtime/foundry-local/accelerators.d.ts +42 -0
- package/dist/runtime/foundry-local/accelerators.js +153 -0
- package/dist/runtime/foundry-local/accelerators.js.map +1 -0
- package/dist/runtime/foundry-local/check.d.ts +19 -0
- package/dist/runtime/foundry-local/check.js +69 -0
- package/dist/runtime/foundry-local/check.js.map +1 -0
- package/dist/runtime/foundry-local/foundry-host.d.ts +18 -0
- package/dist/runtime/foundry-local/foundry-host.js +23 -0
- package/dist/runtime/foundry-local/foundry-host.js.map +1 -0
- package/dist/runtime/foundry-local/host/args.d.ts +44 -0
- package/dist/runtime/foundry-local/host/args.js +109 -0
- package/dist/runtime/foundry-local/host/args.js.map +1 -0
- package/dist/runtime/foundry-local/host/execution-providers.d.ts +27 -0
- package/dist/runtime/foundry-local/host/execution-providers.js +43 -0
- package/dist/runtime/foundry-local/host/execution-providers.js.map +1 -0
- package/dist/runtime/foundry-local/host/ffi-bun.d.ts +17 -0
- package/dist/runtime/foundry-local/host/ffi-bun.js +256 -0
- package/dist/runtime/foundry-local/host/ffi-bun.js.map +1 -0
- package/dist/runtime/foundry-local/host/library.d.ts +61 -0
- package/dist/runtime/foundry-local/host/library.js +17 -0
- package/dist/runtime/foundry-local/host/library.js.map +1 -0
- package/dist/runtime/foundry-local/host/run.d.ts +54 -0
- package/dist/runtime/foundry-local/host/run.js +316 -0
- package/dist/runtime/foundry-local/host/run.js.map +1 -0
- package/dist/runtime/foundry-local/host-process.d.ts +81 -0
- package/dist/runtime/foundry-local/host-process.js +185 -0
- package/dist/runtime/foundry-local/host-process.js.map +1 -0
- package/dist/runtime/foundry-local/index.d.ts +10 -0
- package/dist/runtime/foundry-local/index.js +10 -0
- package/dist/runtime/foundry-local/index.js.map +1 -0
- package/dist/runtime/foundry-local/model-yml.d.ts +8 -0
- package/dist/runtime/foundry-local/model-yml.js +63 -0
- package/dist/runtime/foundry-local/model-yml.js.map +1 -0
- package/dist/runtime/foundry-local/runtime.d.ts +88 -0
- package/dist/runtime/foundry-local/runtime.js +321 -0
- package/dist/runtime/foundry-local/runtime.js.map +1 -0
- package/dist/runtime/llamacpp/args.d.ts +5 -0
- package/dist/runtime/llamacpp/args.js +7 -1
- package/dist/runtime/llamacpp/args.js.map +1 -1
- package/dist/runtime/llamacpp/errors.d.ts +1 -0
- package/dist/runtime/llamacpp/errors.js +10 -0
- package/dist/runtime/llamacpp/errors.js.map +1 -1
- package/dist/runtime/llamacpp/load-plan.d.ts +5 -0
- package/dist/runtime/llamacpp/load-plan.js +8 -0
- package/dist/runtime/llamacpp/load-plan.js.map +1 -1
- package/dist/runtime/llamacpp/runtime-device.d.ts +8 -0
- package/dist/runtime/llamacpp/runtime-device.js +9 -3
- package/dist/runtime/llamacpp/runtime-device.js.map +1 -1
- package/dist/runtime/llamacpp/runtime.d.ts +6 -1
- package/dist/runtime/llamacpp/runtime.js +19 -3
- package/dist/runtime/llamacpp/runtime.js.map +1 -1
- package/dist/runtime/managed-text/gateway.d.ts +2 -0
- package/dist/runtime/managed-text/gateway.js +1 -1
- package/dist/runtime/managed-text/gateway.js.map +1 -1
- package/dist/runtime/shared/external-sessions.js +1 -0
- package/dist/runtime/shared/external-sessions.js.map +1 -1
- package/dist/runtime/shared/process.d.ts +13 -1
- package/dist/runtime/shared/process.js +21 -12
- package/dist/runtime/shared/process.js.map +1 -1
- package/dist/server/control/router.js +2 -0
- package/dist/server/control/router.js.map +1 -1
- package/dist/server/control/routes/foundry-local.d.ts +10 -0
- package/dist/server/control/routes/foundry-local.js +42 -0
- package/dist/server/control/routes/foundry-local.js.map +1 -0
- package/dist/server/control/routes/models.js +6 -3
- package/dist/server/control/routes/models.js.map +1 -1
- package/dist/server/control/types.d.ts +17 -1
- package/dist/server/control/types.js.map +1 -1
- package/dist/server/http.js +45 -7
- package/dist/server/http.js.map +1 -1
- package/dist/server/public/errors.d.ts +1 -0
- package/dist/server/public/errors.js +18 -0
- package/dist/server/public/errors.js.map +1 -1
- package/dist/server/public/listing.js +1 -0
- package/dist/server/public/listing.js.map +1 -1
- package/dist/settings/public.d.ts +7 -0
- package/dist/settings/public.js +8 -0
- package/dist/settings/public.js.map +1 -0
- package/dist/settings/schema/foundry-local.json +14 -0
- package/dist/settings/schema.js +8 -0
- package/dist/settings/schema.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +11 -3
- package/src/settings/schema/atomic-prism.json +0 -433
- package/src/settings/schema/foundation-models.json +0 -1
- package/src/settings/schema/llamacpp-upstream.json +0 -498
- package/src/settings/schema/llamacpp.json +0 -475
- package/src/settings/schema/mlx.json +0 -136
- package/src/settings/schema/sglang.json +0 -251
- package/src/settings/schema/tensorrt-llm.json +0 -253
- package/src/settings/schema/vllm.json +0 -273
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ffi-bun.js","sourceRoot":"","sources":["../../../../src/runtime/foundry-local/host/ffi-bun.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The part of Foundry Local's C API (`foundry_local_c.h`, `FOUNDRY_LOCAL_API_VERSION` 2) the host
|
|
3
|
+
* uses, as an interface. `ffi-bun.ts` implements it over `bun:ffi`; the protocol tests (tasks 5.2,
|
|
4
|
+
* 5.3) run the host against a fake one. Every call is synchronous and may block, like the C API.
|
|
5
|
+
*/
|
|
6
|
+
/** A non-null `flStatus*`: the library's error code and message. */
|
|
7
|
+
export declare class FoundryLibraryError extends Error {
|
|
8
|
+
readonly operation: string;
|
|
9
|
+
readonly libraryCode: number;
|
|
10
|
+
constructor(operation: string, libraryCode: number, message: string);
|
|
11
|
+
}
|
|
12
|
+
export interface FoundryManagerConfig {
|
|
13
|
+
appName: string;
|
|
14
|
+
appDataDir: string;
|
|
15
|
+
logsDir: string;
|
|
16
|
+
modelCacheDir: string;
|
|
17
|
+
/** `http://127.0.0.1:<port>` for `serve`; none otherwise. */
|
|
18
|
+
webServiceEndpoints: string[];
|
|
19
|
+
/** `SetAdditionalOptions`, e.g. `DisableNonessentialTelemetry`. */
|
|
20
|
+
additionalOptions: Record<string, string>;
|
|
21
|
+
}
|
|
22
|
+
export interface DiscoverableEp {
|
|
23
|
+
name: string;
|
|
24
|
+
/** Registered in this process; says nothing about a previous process (spike finding 18). */
|
|
25
|
+
registered: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface ModelMetadata {
|
|
28
|
+
strings: Record<string, string>;
|
|
29
|
+
ints: Record<string, number>;
|
|
30
|
+
}
|
|
31
|
+
export interface FoundryModel {
|
|
32
|
+
load(): void;
|
|
33
|
+
unload(): void;
|
|
34
|
+
/** The model's execution provider as the library holds it; `null` when unset. */
|
|
35
|
+
executionProvider(): string | null;
|
|
36
|
+
}
|
|
37
|
+
export interface FoundryManager {
|
|
38
|
+
discoverableEps(): DiscoverableEp[];
|
|
39
|
+
/**
|
|
40
|
+
* `Manager_DownloadAndRegisterEps`, blocking. `onProgress` is called on the calling thread for
|
|
41
|
+
* CDN accelerators (spike findings 2, 15). Windows ML ones may call it from a thread of their own
|
|
42
|
+
* on a first install, where the plain callback cannot run: pass it only for CDN accelerators. A
|
|
43
|
+
* per-EP failure is not an error — read `discoverableEps()` afterwards.
|
|
44
|
+
*/
|
|
45
|
+
downloadAndRegisterEps(names: string[], onProgress?: (ep: string, percent: number) => void): void;
|
|
46
|
+
/** `RegisterModel` in the local catalog; files are not copied. */
|
|
47
|
+
registerLocalModel(path: string, id: string, metadata: ModelMetadata): FoundryModel;
|
|
48
|
+
/** Start the built-in server; the bound URLs. */
|
|
49
|
+
webServiceStart(): string[];
|
|
50
|
+
shutdown(): void;
|
|
51
|
+
release(): void;
|
|
52
|
+
}
|
|
53
|
+
export interface FoundryLibrary {
|
|
54
|
+
/** `FoundryLocalGetVersionString`. */
|
|
55
|
+
version: string;
|
|
56
|
+
/** The C API version the table was requested at. */
|
|
57
|
+
cApiVersion: number;
|
|
58
|
+
createManager(config: FoundryManagerConfig): FoundryManager;
|
|
59
|
+
}
|
|
60
|
+
/** Opens the library of one build (`<build>/lib`); throws when it does not load or speaks another C API. */
|
|
61
|
+
export type LoadFoundryLibrary = (libDir: string) => Promise<FoundryLibrary>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The part of Foundry Local's C API (`foundry_local_c.h`, `FOUNDRY_LOCAL_API_VERSION` 2) the host
|
|
3
|
+
* uses, as an interface. `ffi-bun.ts` implements it over `bun:ffi`; the protocol tests (tasks 5.2,
|
|
4
|
+
* 5.3) run the host against a fake one. Every call is synchronous and may block, like the C API.
|
|
5
|
+
*/
|
|
6
|
+
/** A non-null `flStatus*`: the library's error code and message. */
|
|
7
|
+
export class FoundryLibraryError extends Error {
|
|
8
|
+
operation;
|
|
9
|
+
libraryCode;
|
|
10
|
+
constructor(operation, libraryCode, message) {
|
|
11
|
+
super(`${operation}: ${message}`);
|
|
12
|
+
this.operation = operation;
|
|
13
|
+
this.libraryCode = libraryCode;
|
|
14
|
+
this.name = 'FoundryLibraryError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=library.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../src/runtime/foundry-local/host/library.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oEAAoE;AACpE,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAEjC;IACA;IAFX,YACW,SAAiB,EACjB,WAAmB,EAC5B,OAAe;QAEf,KAAK,CAAC,GAAG,SAAS,KAAK,OAAO,EAAE,CAAC,CAAA;QAJxB,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAQ;QAI5B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The hidden `foundry-host` mode of the core binaries (openspec change `add-foundry-local`, design D1):
|
|
3
|
+
* one process per model or command, so a crash of Microsoft's native library never takes the core
|
|
4
|
+
* down. Core starts it with `process.execPath`; nothing else should.
|
|
5
|
+
*
|
|
6
|
+
* Exit codes: 0 done; 2 usage (a bug on core's side); 3 the library does not load or speaks another
|
|
7
|
+
* C API; 4 a library call failed. Errors go to stderr as one line each; stdout carries JSON lines only.
|
|
8
|
+
*/
|
|
9
|
+
import type { LoadFoundryLibrary } from './library.js';
|
|
10
|
+
export interface FoundryHostDeps {
|
|
11
|
+
stdout: (line: string) => void;
|
|
12
|
+
stderr: (line: string) => void;
|
|
13
|
+
loadLibrary: LoadFoundryLibrary;
|
|
14
|
+
/**
|
|
15
|
+
* What the library's log gained since the previous call (the first call: since the host started).
|
|
16
|
+
* The C API reports no per-accelerator failure (spike finding 11); its log does.
|
|
17
|
+
*/
|
|
18
|
+
readLogTail?: (logsDir: string) => Promise<string>;
|
|
19
|
+
/**
|
|
20
|
+
* Starts watching for core's stop: SIGTERM, SIGINT or stdin closed (Windows has no SIGTERM). Made
|
|
21
|
+
* before the model loads, so a stop sent right after the readiness line is never missed.
|
|
22
|
+
*/
|
|
23
|
+
watchStop?: () => StopWatch;
|
|
24
|
+
/** Deletes the host's catalog cache at exit. */
|
|
25
|
+
removeDir?: (path: string) => Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
export interface StopWatch {
|
|
28
|
+
stopped: Promise<void>;
|
|
29
|
+
/** Let go of the signals and of stdin, so nothing keeps the process alive after the host is done. */
|
|
30
|
+
dispose(): void;
|
|
31
|
+
}
|
|
32
|
+
/** SIGTERM, SIGINT or the end of stdin, whichever comes first. */
|
|
33
|
+
export declare function watchStopSignals(): StopWatch;
|
|
34
|
+
/** Where the built-in server serves models registered in the local catalog (spike finding 7). */
|
|
35
|
+
export declare const LOCAL_CATALOG_BASE_PATH = "/catalogs/local";
|
|
36
|
+
/** Reads what `foundry_local_<date>.log` files under `logsDir` gained since the reader was made. */
|
|
37
|
+
export declare function logTailReader(): (logsDir: string) => Promise<string>;
|
|
38
|
+
/**
|
|
39
|
+
* The library's own words for why `name` was not registered: the last warning or error that names the
|
|
40
|
+
* accelerator or its family (`cuda` for `CUDAExecutionProvider`), not the generic summary line.
|
|
41
|
+
*/
|
|
42
|
+
export declare function failureReason(log: string, name: string): string | null;
|
|
43
|
+
/** Line-oriented output over a stream-oriented CLI io: one JSON or error line per call. */
|
|
44
|
+
export declare function lineIo(io: {
|
|
45
|
+
stdout: (text: string) => void;
|
|
46
|
+
stderr: (text: string) => void;
|
|
47
|
+
}): Pick<FoundryHostDeps, 'stdout' | 'stderr'>;
|
|
48
|
+
/** The name the library reports itself under (telemetry, logs). */
|
|
49
|
+
export declare const FOUNDRY_HOST_APP_NAME = "atomic-chat";
|
|
50
|
+
/** `<build>/lib` when the build has one (release archives do), else the folder itself. */
|
|
51
|
+
export declare function libraryDir(build: string, exists?: (path: string) => boolean): string;
|
|
52
|
+
/** Opens the library through `bun:ffi`; under Node this mode cannot run, and says so. */
|
|
53
|
+
export declare const loadLibraryWithBun: LoadFoundryLibrary;
|
|
54
|
+
export declare function runFoundryHost(argv: readonly string[], deps: FoundryHostDeps): Promise<number>;
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The hidden `foundry-host` mode of the core binaries (openspec change `add-foundry-local`, design D1):
|
|
3
|
+
* one process per model or command, so a crash of Microsoft's native library never takes the core
|
|
4
|
+
* down. Core starts it with `process.execPath`; nothing else should.
|
|
5
|
+
*
|
|
6
|
+
* Exit codes: 0 done; 2 usage (a bug on core's side); 3 the library does not load or speaks another
|
|
7
|
+
* C API; 4 a library call failed. Errors go to stderr as one line each; stdout carries JSON lines only.
|
|
8
|
+
*/
|
|
9
|
+
import { existsSync } from 'node:fs';
|
|
10
|
+
import { open, readdir, rm, stat } from 'node:fs/promises';
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
import { FoundryHostUsageError, parseFoundryHostArgs } from './args.js';
|
|
13
|
+
import { describeDiscoverable, executionProvider } from './execution-providers.js';
|
|
14
|
+
import { FoundryLibraryError } from './library.js';
|
|
15
|
+
/** SIGTERM, SIGINT or the end of stdin, whichever comes first. */
|
|
16
|
+
export function watchStopSignals() {
|
|
17
|
+
let resolve = () => { };
|
|
18
|
+
const stopped = new Promise((done) => (resolve = done));
|
|
19
|
+
const stop = () => resolve();
|
|
20
|
+
process.on('SIGTERM', stop);
|
|
21
|
+
process.on('SIGINT', stop);
|
|
22
|
+
process.stdin.on('end', stop);
|
|
23
|
+
process.stdin.on('close', stop);
|
|
24
|
+
process.stdin.resume();
|
|
25
|
+
return {
|
|
26
|
+
stopped,
|
|
27
|
+
dispose() {
|
|
28
|
+
process.off('SIGTERM', stop);
|
|
29
|
+
process.off('SIGINT', stop);
|
|
30
|
+
process.stdin.off('end', stop);
|
|
31
|
+
process.stdin.off('close', stop);
|
|
32
|
+
process.stdin.pause();
|
|
33
|
+
process.stdin.destroy();
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/** Where the built-in server serves models registered in the local catalog (spike finding 7). */
|
|
38
|
+
export const LOCAL_CATALOG_BASE_PATH = '/catalogs/local';
|
|
39
|
+
/** Reads what `foundry_local_<date>.log` files under `logsDir` gained since the reader was made. */
|
|
40
|
+
export function logTailReader() {
|
|
41
|
+
const offsets = new Map();
|
|
42
|
+
let primed = false;
|
|
43
|
+
const files = async (dir) => (await readdir(dir).catch(() => [])).filter((name) => /^foundry_local.*\.log$/.test(name));
|
|
44
|
+
return async (logsDir) => {
|
|
45
|
+
if (!primed) {
|
|
46
|
+
primed = true;
|
|
47
|
+
for (const name of await files(logsDir))
|
|
48
|
+
offsets.set(name, (await stat(join(logsDir, name)).catch(() => ({ size: 0 }))).size);
|
|
49
|
+
}
|
|
50
|
+
let text = '';
|
|
51
|
+
for (const name of await files(logsDir)) {
|
|
52
|
+
const path = join(logsDir, name);
|
|
53
|
+
const size = (await stat(path).catch(() => ({ size: 0 }))).size;
|
|
54
|
+
const from = Math.min(offsets.get(name) ?? 0, size);
|
|
55
|
+
if (size > from) {
|
|
56
|
+
const handle = await open(path, 'r');
|
|
57
|
+
try {
|
|
58
|
+
const buffer = Buffer.alloc(Math.min(size - from, 256 * 1024));
|
|
59
|
+
await handle.read(buffer, 0, buffer.length, size - buffer.length);
|
|
60
|
+
text += buffer.toString('utf8');
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
await handle.close();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
offsets.set(name, size);
|
|
67
|
+
}
|
|
68
|
+
return text;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The library's own words for why `name` was not registered: the last warning or error that names the
|
|
73
|
+
* accelerator or its family (`cuda` for `CUDAExecutionProvider`), not the generic summary line.
|
|
74
|
+
*/
|
|
75
|
+
export function failureReason(log, name) {
|
|
76
|
+
const family = name.replace(/ExecutionProvider$/, '').toLowerCase();
|
|
77
|
+
const lines = log
|
|
78
|
+
.split(/\r?\n/)
|
|
79
|
+
.filter((line) => /\[(warning|error)\]/i.test(line))
|
|
80
|
+
.filter((line) => !/Failed to download or register EP/i.test(line))
|
|
81
|
+
.filter((line) => line.includes(name) || line.toLowerCase().includes(family));
|
|
82
|
+
const last = lines.at(-1);
|
|
83
|
+
if (!last)
|
|
84
|
+
return null;
|
|
85
|
+
const blocked = /failed to load '([^']+)' \(4551\)/.exec(last);
|
|
86
|
+
if (blocked)
|
|
87
|
+
return appControlBlocked(blocked[1] ?? '', family);
|
|
88
|
+
return last.replace(/^\[[^\]]*\]\s*\[[^\]]*\]\s*/, '').trim();
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Windows' 4551 (`ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION`): Smart App Control or an organization's
|
|
92
|
+
* app control policy refused a library without a signature. Microsoft's CUDA bundle ships
|
|
93
|
+
* `onnxruntime-genai-cuda.dll` unsigned, so on a laptop with Smart App Control on the whole bundle
|
|
94
|
+
* downloads and then cannot load. The person can act on this, not on the path and the code.
|
|
95
|
+
*/
|
|
96
|
+
const ACCELERATOR_LABELS = {
|
|
97
|
+
cuda: 'CUDA',
|
|
98
|
+
webgpu: 'WebGPU',
|
|
99
|
+
openvino: 'OpenVINO',
|
|
100
|
+
nvtensorrtrtx: 'TensorRT-RTX',
|
|
101
|
+
qnn: 'QNN',
|
|
102
|
+
};
|
|
103
|
+
function appControlBlocked(path, family) {
|
|
104
|
+
const file = path.split(/[\\/]/).at(-1) || 'a library';
|
|
105
|
+
const accelerator = ACCELERATOR_LABELS[family] ?? family;
|
|
106
|
+
return (`Windows blocked ${file}, a library of Microsoft's ${accelerator} accelerator that has no digital signature: ` +
|
|
107
|
+
"Smart App Control or your organization's app control policy does not let unsigned libraries load. " +
|
|
108
|
+
`To use ${accelerator}, turn Smart App Control off in Windows Security → App & browser control → ` +
|
|
109
|
+
'Smart App Control settings (Windows cannot turn it back on without a reset), or on a managed PC ask your ' +
|
|
110
|
+
'administrator to allow it; then press Retry. Models on WebGPU and CPU run without it.');
|
|
111
|
+
}
|
|
112
|
+
/** Line-oriented output over a stream-oriented CLI io: one JSON or error line per call. */
|
|
113
|
+
export function lineIo(io) {
|
|
114
|
+
return { stdout: (line) => io.stdout(`${line}\n`), stderr: (line) => io.stderr(`${line}\n`) };
|
|
115
|
+
}
|
|
116
|
+
/** The name the library reports itself under (telemetry, logs). */
|
|
117
|
+
export const FOUNDRY_HOST_APP_NAME = 'atomic-chat';
|
|
118
|
+
const json = (value) => JSON.stringify(value);
|
|
119
|
+
/** `<build>/lib` when the build has one (release archives do), else the folder itself. */
|
|
120
|
+
export function libraryDir(build, exists = existsSync) {
|
|
121
|
+
return exists(join(build, 'lib')) ? join(build, 'lib') : build;
|
|
122
|
+
}
|
|
123
|
+
/** Opens the library through `bun:ffi`; under Node this mode cannot run, and says so. */
|
|
124
|
+
export const loadLibraryWithBun = async (libDir) => {
|
|
125
|
+
let module;
|
|
126
|
+
try {
|
|
127
|
+
module = await import('./ffi-bun.js');
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
throw new FoundryLibraryError('load', 0, `foundry-host runs only inside a compiled binary (${error instanceof Error ? error.message : String(error)})`);
|
|
131
|
+
}
|
|
132
|
+
return module.loadBunFoundryLibrary(libDir);
|
|
133
|
+
};
|
|
134
|
+
function openManager(library, args, extra) {
|
|
135
|
+
return library.createManager({
|
|
136
|
+
appName: FOUNDRY_HOST_APP_NAME,
|
|
137
|
+
appDataDir: args.appData,
|
|
138
|
+
logsDir: args.logs,
|
|
139
|
+
modelCacheDir: extra.cache,
|
|
140
|
+
webServiceEndpoints: extra.endpoints,
|
|
141
|
+
// Design D8: the optional telemetry off; `ProcessInfo` still goes, and is disclosed.
|
|
142
|
+
additionalOptions: { DisableNonessentialTelemetry: 'true' },
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
function close(manager) {
|
|
146
|
+
try {
|
|
147
|
+
manager.shutdown();
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
manager.release();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
async function probe(library, args, deps) {
|
|
154
|
+
const manager = openManager(library, args, { cache: join(args.appData, 'cache'), endpoints: [] });
|
|
155
|
+
try {
|
|
156
|
+
const accelerators = manager.discoverableEps().map((ep) => ({
|
|
157
|
+
name: ep.name,
|
|
158
|
+
...describeDiscoverable(ep.name),
|
|
159
|
+
prepared: args.prepared.includes(ep.name),
|
|
160
|
+
}));
|
|
161
|
+
deps.stdout(json({ c_api_version: library.cApiVersion, version: library.version, accelerators }));
|
|
162
|
+
}
|
|
163
|
+
finally {
|
|
164
|
+
close(manager);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* The accelerators the library downloads from Microsoft's CDN and reports on the calling thread,
|
|
169
|
+
* synchronously (spike findings 2, 15). Every other one comes through Windows ML, which reported
|
|
170
|
+
* nothing on a machine that already had it (finding 16) and, on a first install on a Core Ultra
|
|
171
|
+
* laptop, called back from a thread of its own; it gets no callback and reports a start and an end.
|
|
172
|
+
*/
|
|
173
|
+
const CDN_ACCELERATORS = new Set([
|
|
174
|
+
'CUDAExecutionProvider',
|
|
175
|
+
'WebGpuExecutionProvider',
|
|
176
|
+
'WebGPUExecutionProvider',
|
|
177
|
+
]);
|
|
178
|
+
/**
|
|
179
|
+
* Task 5.2: each accelerator on its own `Manager_DownloadAndRegisterEps` call, so one failure never
|
|
180
|
+
* cancels the others and each gets its own reason. Lines: `{accelerator, stage, fraction}` with
|
|
181
|
+
* `stage` started → downloading* → done | failed; Windows ML accelerators report no downloading lines
|
|
182
|
+
* at all (spike finding 16), and a failed one has `fraction: null` (rulings R6). Last line: the summary.
|
|
183
|
+
*/
|
|
184
|
+
async function prepare(library, args, deps) {
|
|
185
|
+
const readLog = deps.readLogTail ?? logTailReader();
|
|
186
|
+
await readLog(args.logs);
|
|
187
|
+
const manager = openManager(library, args, { cache: join(args.appData, 'cache'), endpoints: [] });
|
|
188
|
+
const summary = [];
|
|
189
|
+
try {
|
|
190
|
+
const offered = manager.discoverableEps().map((ep) => ep.name);
|
|
191
|
+
const wanted = args.accelerators.length > 0 ? args.accelerators : offered;
|
|
192
|
+
for (const name of wanted) {
|
|
193
|
+
if (!offered.includes(name)) {
|
|
194
|
+
summary.push({ name, prepared: false, reason: `This computer does not offer ${name}.` });
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
deps.stdout(json({ accelerator: name, stage: 'started', fraction: 0 }));
|
|
198
|
+
let thrown = null;
|
|
199
|
+
try {
|
|
200
|
+
// The callback goes only where the library calls it on this thread: Windows ML reported a first
|
|
201
|
+
// install from a thread of its own, and Bun's plain callback called there failed the prepare.
|
|
202
|
+
manager.downloadAndRegisterEps([name], CDN_ACCELERATORS.has(name)
|
|
203
|
+
? (_label, percent) => deps.stdout(json({ accelerator: name, stage: 'downloading', fraction: Math.min(1, percent / 100) }))
|
|
204
|
+
: undefined);
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
thrown = error instanceof Error ? error.message : String(error);
|
|
208
|
+
}
|
|
209
|
+
const registered = manager.discoverableEps().some((ep) => ep.name === name && ep.registered);
|
|
210
|
+
if (registered) {
|
|
211
|
+
deps.stdout(json({ accelerator: name, stage: 'done', fraction: 1 }));
|
|
212
|
+
summary.push({ name, prepared: true });
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
const reason = thrown ?? failureReason(await readLog(args.logs), name) ?? `Foundry Local did not register ${name}.`;
|
|
216
|
+
deps.stdout(json({ accelerator: name, stage: 'failed', fraction: null, reason }));
|
|
217
|
+
summary.push({ name, prepared: false, reason });
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
deps.stdout(json({ done: true, accelerators: summary }));
|
|
221
|
+
}
|
|
222
|
+
finally {
|
|
223
|
+
close(manager);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Task 5.3: register the variant's accelerator (prepared only — nothing is downloaded here), register
|
|
228
|
+
* the folder in this host's own catalog with the accelerator named explicitly, load, start the
|
|
229
|
+
* built-in server on the loopback port core chose, print the readiness line, and on stop shut the
|
|
230
|
+
* library down and delete the catalog cache. Exit 5: the accelerator is not prepared.
|
|
231
|
+
*/
|
|
232
|
+
async function serve(library, args, deps) {
|
|
233
|
+
const ep = executionProvider(args.ep);
|
|
234
|
+
const removeDir = deps.removeDir ?? ((path) => rm(path, { recursive: true, force: true }));
|
|
235
|
+
const watch = (deps.watchStop ?? watchStopSignals)();
|
|
236
|
+
const manager = openManager(library, args, {
|
|
237
|
+
cache: args.cache,
|
|
238
|
+
endpoints: [`http://127.0.0.1:${args.port}`],
|
|
239
|
+
});
|
|
240
|
+
try {
|
|
241
|
+
if (ep.register) {
|
|
242
|
+
manager.downloadAndRegisterEps([ep.register]);
|
|
243
|
+
if (!manager.discoverableEps().some((found) => found.name === ep.register && found.registered)) {
|
|
244
|
+
deps.stderr(`${ep.register} is not prepared on this computer; prepare it before loading this model.`);
|
|
245
|
+
return 5;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
const reasoning = args.reasoningStart !== undefined && args.reasoningEnd !== undefined;
|
|
249
|
+
const model = manager.registerLocalModel(args.model, args.id, {
|
|
250
|
+
strings: {
|
|
251
|
+
task: 'chat-completion',
|
|
252
|
+
execution_provider: ep.metadata,
|
|
253
|
+
...(reasoning
|
|
254
|
+
? { reasoning_start: args.reasoningStart, reasoning_end: args.reasoningEnd }
|
|
255
|
+
: {}),
|
|
256
|
+
},
|
|
257
|
+
ints: {
|
|
258
|
+
supports_tool_calling: args.tools ? 1 : 0,
|
|
259
|
+
supports_reasoning: reasoning ? 1 : 0,
|
|
260
|
+
...(args.contextLength !== undefined ? { context_length: args.contextLength } : {}),
|
|
261
|
+
},
|
|
262
|
+
});
|
|
263
|
+
model.load();
|
|
264
|
+
const [url] = manager.webServiceStart();
|
|
265
|
+
deps.stdout(json({
|
|
266
|
+
ready: true,
|
|
267
|
+
url: url ?? `http://127.0.0.1:${args.port}`,
|
|
268
|
+
base_path: LOCAL_CATALOG_BASE_PATH,
|
|
269
|
+
model_id: args.id,
|
|
270
|
+
execution_provider: model.executionProvider(),
|
|
271
|
+
}));
|
|
272
|
+
await watch.stopped;
|
|
273
|
+
return 0;
|
|
274
|
+
}
|
|
275
|
+
finally {
|
|
276
|
+
try {
|
|
277
|
+
close(manager);
|
|
278
|
+
}
|
|
279
|
+
finally {
|
|
280
|
+
watch.dispose();
|
|
281
|
+
await removeDir(args.cache).catch(() => { });
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
export async function runFoundryHost(argv, deps) {
|
|
286
|
+
let args;
|
|
287
|
+
try {
|
|
288
|
+
args = parseFoundryHostArgs(argv);
|
|
289
|
+
}
|
|
290
|
+
catch (error) {
|
|
291
|
+
deps.stderr(error instanceof FoundryHostUsageError ? error.message : String(error));
|
|
292
|
+
return 2;
|
|
293
|
+
}
|
|
294
|
+
let library;
|
|
295
|
+
try {
|
|
296
|
+
library = await deps.loadLibrary(libraryDir(args.lib));
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
deps.stderr(`foundry_local does not load from ${args.lib}: ${error instanceof Error ? error.message : String(error)}`);
|
|
300
|
+
return 3;
|
|
301
|
+
}
|
|
302
|
+
try {
|
|
303
|
+
if (args.mode === 'probe')
|
|
304
|
+
await probe(library, args, deps);
|
|
305
|
+
else if (args.mode === 'prepare')
|
|
306
|
+
await prepare(library, args, deps);
|
|
307
|
+
else
|
|
308
|
+
return await serve(library, args, deps);
|
|
309
|
+
return 0;
|
|
310
|
+
}
|
|
311
|
+
catch (error) {
|
|
312
|
+
deps.stderr(error instanceof Error ? error.message : String(error));
|
|
313
|
+
return 4;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/runtime/foundry-local/host/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The core's side of the `foundry-host` protocol (openspec change `add-foundry-local`, design D1):
|
|
3
|
+
* the host is this very binary in a hidden mode, started with `process.execPath`, so a crash of
|
|
4
|
+
* Microsoft's native library never takes the core down. `probe` loads the library of one build and
|
|
5
|
+
* prints one JSON line: the C API version and the accelerators it finds, prepared or not.
|
|
6
|
+
*/
|
|
7
|
+
/** How to start `foundry-host`: `[execPath, script?]` + `foundry-host`, or a test stand-in. */
|
|
8
|
+
export interface FoundryHostCommand {
|
|
9
|
+
exe: string;
|
|
10
|
+
args: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface FoundryHostAccelerator {
|
|
13
|
+
name: string;
|
|
14
|
+
/** The conf spelling (`cuda`, `openvino`…); `null` for one this core runs no variant on. */
|
|
15
|
+
execution_provider?: string | null;
|
|
16
|
+
device: string;
|
|
17
|
+
prepared: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface FoundryHostProbeResult {
|
|
20
|
+
c_api_version: number;
|
|
21
|
+
/** The library's own version string. */
|
|
22
|
+
version?: string;
|
|
23
|
+
accelerators: FoundryHostAccelerator[];
|
|
24
|
+
}
|
|
25
|
+
/** What `probe` and `prepare` run against. */
|
|
26
|
+
export interface FoundryHostTarget {
|
|
27
|
+
/** The build directory. */
|
|
28
|
+
libDir: string;
|
|
29
|
+
/** The library's data, shared by every build (`<data>/foundry-local/runtime`). */
|
|
30
|
+
appDataDir: string;
|
|
31
|
+
/** The library's logs (`<data>/foundry-local/logs`); the host refuses to run without them. */
|
|
32
|
+
logsDir: string;
|
|
33
|
+
/** The accelerators core recorded as prepared (the library cannot tell, rulings R6). */
|
|
34
|
+
prepared?: readonly string[];
|
|
35
|
+
}
|
|
36
|
+
/** The first run of a freshly unpacked library is scanned by Gatekeeper / Defender. */
|
|
37
|
+
export declare const FOUNDRY_HOST_PROBE_TIMEOUT_MS = 60000;
|
|
38
|
+
/**
|
|
39
|
+
* `foundry-host probe --lib <libDir> --app-data <appDataDir>`. Throws `ENGINE_INSTALL_FAILED` with
|
|
40
|
+
* what the host printed when it exits non-zero, prints no answer or does not answer in time.
|
|
41
|
+
*/
|
|
42
|
+
export declare function runFoundryHostProbe(command: FoundryHostCommand, target: FoundryHostTarget, options?: {
|
|
43
|
+
env?: NodeJS.ProcessEnv;
|
|
44
|
+
timeoutMs?: number;
|
|
45
|
+
}): Promise<FoundryHostProbeResult>;
|
|
46
|
+
/**
|
|
47
|
+
* Test hook only, the same kind as `ATOMIC_MANAGED_TEST_HOST`: an executable that stands in for
|
|
48
|
+
* `atomic-chat-core foundry-host` in the e2e suite, where no real Foundry Local library exists.
|
|
49
|
+
* Production never sets it.
|
|
50
|
+
*/
|
|
51
|
+
export declare const FOUNDRY_HOST_TEST_COMMAND_ENV = "ATOMIC_FOUNDRY_HOST_TEST_COMMAND";
|
|
52
|
+
/**
|
|
53
|
+
* This binary in its `foundry-host` mode: `process.execPath` (inside a compiled Bun binary that is
|
|
54
|
+
* the binary; under a runtime, the runtime plus the entry script, as `selfCommand` in the CLI does).
|
|
55
|
+
* That binary may be a program embedding the core as a library (`atc`): it must hand an `argv` of
|
|
56
|
+
* `foundry-host …` to `runFoundryHostMain` (`@atomic-chat/core/foundry-host`) before its own commands,
|
|
57
|
+
* as the core binaries do (change close-cli-core-gaps, design D1).
|
|
58
|
+
*/
|
|
59
|
+
export declare function foundryHostCommand(env: Record<string, string | undefined>, argv?: readonly string[], execPath?: string): FoundryHostCommand;
|
|
60
|
+
/** One accelerator's step, as `foundry-host prepare` prints it (task 5.2). */
|
|
61
|
+
export interface FoundryHostPrepareStep {
|
|
62
|
+
accelerator: string;
|
|
63
|
+
stage: 'started' | 'downloading' | 'done' | 'failed';
|
|
64
|
+
fraction: number | null;
|
|
65
|
+
reason?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface FoundryHostPrepareSummary {
|
|
68
|
+
accelerators: Array<{
|
|
69
|
+
name: string;
|
|
70
|
+
prepared: boolean;
|
|
71
|
+
reason?: string;
|
|
72
|
+
}>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* `foundry-host prepare --lib --app-data --logs [names…]`: each step to `onStep` as it happens, the
|
|
76
|
+
* summary as the result. No timeout: a CUDA plugin is 2 GB (rulings S2). A host that exits non-zero
|
|
77
|
+
* or prints no summary is `FOUNDRY_LOCAL_HOST_ERROR` with what it said.
|
|
78
|
+
*/
|
|
79
|
+
export declare function runFoundryHostPrepare(command: FoundryHostCommand, target: Omit<FoundryHostTarget, 'prepared'>, names: readonly string[], onStep: (step: FoundryHostPrepareStep) => void, options?: {
|
|
80
|
+
env?: NodeJS.ProcessEnv;
|
|
81
|
+
}): Promise<FoundryHostPrepareSummary>;
|