@atomic-chat/core 0.5.1 → 0.13.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.
- package/README.md +22 -0
- package/dist/app-daemon.js +20 -67
- package/dist/app-daemon.js.map +1 -1
- package/dist/backend/advisor/advisor.d.ts +132 -0
- package/dist/backend/advisor/advisor.js +537 -0
- package/dist/backend/advisor/advisor.js.map +1 -0
- package/dist/backend/advisor/index.d.ts +6 -0
- package/dist/backend/advisor/index.js +7 -0
- package/dist/backend/advisor/index.js.map +1 -0
- package/dist/backend/advisor/policy.d.ts +81 -0
- package/dist/backend/advisor/policy.js +154 -0
- package/dist/backend/advisor/policy.js.map +1 -0
- package/dist/backend/catalog/archive.d.ts +21 -7
- package/dist/backend/catalog/archive.js +57 -17
- package/dist/backend/catalog/archive.js.map +1 -1
- package/dist/backend/catalog/bundled-manifest-baseline.js +42 -26
- package/dist/backend/catalog/bundled-manifest-baseline.js.map +1 -1
- package/dist/backend/catalog/cuda-family.d.ts +12 -2
- package/dist/backend/catalog/cuda-family.js +30 -7
- package/dist/backend/catalog/cuda-family.js.map +1 -1
- package/dist/backend/catalog/index.d.ts +5 -0
- package/dist/backend/catalog/index.js +5 -0
- package/dist/backend/catalog/index.js.map +1 -1
- package/dist/backend/catalog/manifest.d.ts +5 -3
- package/dist/backend/catalog/manifest.js +12 -9
- package/dist/backend/catalog/manifest.js.map +1 -1
- package/dist/backend/catalog/migrate.d.ts +8 -6
- package/dist/backend/catalog/migrate.js +26 -15
- package/dist/backend/catalog/migrate.js.map +1 -1
- package/dist/backend/catalog/prism-catalog.d.ts +42 -0
- package/dist/backend/catalog/prism-catalog.js +101 -0
- package/dist/backend/catalog/prism-catalog.js.map +1 -0
- package/dist/backend/catalog/prism-manifest-baseline.d.ts +2 -0
- package/dist/backend/catalog/prism-manifest-baseline.js +11 -0
- package/dist/backend/catalog/prism-manifest-baseline.js.map +1 -0
- package/dist/backend/catalog/prism-manifest-baseline.json +134 -0
- package/dist/backend/catalog/prism-manifest.d.ts +90 -0
- package/dist/backend/catalog/prism-manifest.js +171 -0
- package/dist/backend/catalog/prism-manifest.js.map +1 -0
- package/dist/backend/catalog/turboquant-catalog.d.ts +60 -0
- package/dist/backend/catalog/turboquant-catalog.js +162 -0
- package/dist/backend/catalog/turboquant-catalog.js.map +1 -0
- package/dist/backend/catalog/turboquant-index.d.ts +104 -0
- package/dist/backend/catalog/turboquant-index.js +260 -0
- package/dist/backend/catalog/turboquant-index.js.map +1 -0
- package/dist/backend/index.d.ts +1 -0
- package/dist/backend/index.js +1 -0
- package/dist/backend/index.js.map +1 -1
- package/dist/backend/install/runtime-backend.d.ts +6 -6
- package/dist/backend/install/runtime-backend.js +23 -20
- package/dist/backend/install/runtime-backend.js.map +1 -1
- package/dist/backend/install/service.d.ts +106 -5
- package/dist/backend/install/service.js +247 -21
- package/dist/backend/install/service.js.map +1 -1
- package/dist/backend/installed/bundled.d.ts +19 -0
- package/dist/backend/installed/bundled.js +45 -0
- package/dist/backend/installed/bundled.js.map +1 -0
- package/dist/backend/installed/index.d.ts +1 -0
- package/dist/backend/installed/index.js +1 -0
- package/dist/backend/installed/index.js.map +1 -1
- package/dist/backend/installed/installed.js +3 -0
- package/dist/backend/installed/installed.js.map +1 -1
- package/dist/backend/optimal/optimal-cache.d.ts +27 -8
- package/dist/backend/optimal/optimal-cache.js +38 -19
- package/dist/backend/optimal/optimal-cache.js.map +1 -1
- package/dist/backend/optimal/optimal-store.js +1 -1
- package/dist/backend/optimal/optimal-store.js.map +1 -1
- package/dist/backend/select/categories.d.ts +2 -1
- package/dist/backend/select/categories.js +8 -1
- package/dist/backend/select/categories.js.map +1 -1
- package/dist/backend/select/features.d.ts +13 -5
- package/dist/backend/select/features.js +36 -6
- package/dist/backend/select/features.js.map +1 -1
- package/dist/backend/select/index.d.ts +2 -0
- package/dist/backend/select/index.js +2 -0
- package/dist/backend/select/index.js.map +1 -1
- package/dist/backend/select/prism.d.ts +54 -0
- package/dist/backend/select/prism.js +212 -0
- package/dist/backend/select/prism.js.map +1 -0
- package/dist/backend/select/recovery.d.ts +4 -2
- package/dist/backend/select/recovery.js +17 -5
- package/dist/backend/select/recovery.js.map +1 -1
- package/dist/backend/select/tiers.d.ts +20 -11
- package/dist/backend/select/tiers.js +49 -11
- package/dist/backend/select/tiers.js.map +1 -1
- package/dist/backend/select/turboquant-tiers.d.ts +45 -0
- package/dist/backend/select/turboquant-tiers.js +114 -0
- package/dist/backend/select/turboquant-tiers.js.map +1 -0
- package/dist/backend/types.d.ts +6 -69
- package/dist/cli/commands/backends.d.ts +10 -0
- package/dist/cli/commands/backends.js +142 -0
- package/dist/cli/commands/backends.js.map +1 -0
- package/dist/cli/commands/hardware.d.ts +13 -0
- package/dist/cli/commands/hardware.js +71 -0
- package/dist/cli/commands/hardware.js.map +1 -0
- package/dist/cli/commands/host-step.d.ts +28 -0
- package/dist/cli/commands/host-step.js +67 -0
- package/dist/cli/commands/host-step.js.map +1 -0
- package/dist/cli/commands/index.d.ts +4 -1
- package/dist/cli/commands/index.js +4 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/serve.js +4 -4
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/shared.d.ts +6 -1
- package/dist/cli/commands/shared.js +7 -0
- package/dist/cli/commands/shared.js.map +1 -1
- package/dist/cli/io.d.ts +11 -0
- package/dist/cli/io.js +28 -3
- package/dist/cli/io.js.map +1 -1
- package/dist/cli/launch.js +2 -2
- package/dist/cli/launch.js.map +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/cli/main.js +11 -1
- package/dist/cli/main.js.map +1 -1
- package/dist/client/control-client.d.ts +128 -7
- package/dist/client/control-client.js +211 -12
- package/dist/client/control-client.js.map +1 -1
- package/dist/cloud/registry.js +9 -1
- package/dist/cloud/registry.js.map +1 -1
- package/dist/config/paths.d.ts +137 -0
- package/dist/config/paths.js +163 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/contracts/backend-advisor.d.ts +225 -0
- package/dist/contracts/backend-advisor.js +14 -0
- package/dist/contracts/backend-advisor.js.map +1 -0
- package/dist/contracts/control-api.d.ts +7 -1
- package/dist/contracts/control-api.js +7 -1
- package/dist/contracts/control-api.js.map +1 -1
- package/dist/contracts/decision.d.ts +394 -0
- package/dist/contracts/decision.js +69 -0
- package/dist/contracts/decision.js.map +1 -0
- package/dist/contracts/diffusion.d.ts +62 -9
- package/dist/contracts/embedding.d.ts +103 -0
- package/dist/contracts/embedding.js +24 -0
- package/dist/contracts/embedding.js.map +1 -0
- package/dist/contracts/engine-builds.d.ts +108 -0
- package/dist/contracts/engine-builds.js +11 -0
- package/dist/contracts/engine-builds.js.map +1 -0
- package/dist/contracts/engines.d.ts +157 -0
- package/dist/contracts/engines.js +50 -0
- package/dist/contracts/engines.js.map +1 -0
- package/dist/contracts/environment.d.ts +774 -0
- package/dist/contracts/environment.js +116 -0
- package/dist/contracts/environment.js.map +1 -0
- package/dist/contracts/errors.d.ts +43 -2
- package/dist/contracts/errors.js +41 -0
- package/dist/contracts/errors.js.map +1 -1
- package/dist/contracts/events.d.ts +82 -4
- package/dist/contracts/hardware.d.ts +79 -6
- package/dist/contracts/hardware.js +9 -5
- package/dist/contracts/hardware.js.map +1 -1
- package/dist/contracts/index.d.ts +8 -0
- package/dist/contracts/index.js +8 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/model-compatibility.d.ts +97 -0
- package/dist/contracts/model-compatibility.js +6 -0
- package/dist/contracts/model-compatibility.js.map +1 -0
- package/dist/contracts/model-setup.d.ts +115 -0
- package/dist/contracts/model-setup.js +33 -0
- package/dist/contracts/model-setup.js.map +1 -0
- package/dist/contracts/model-yml.d.ts +14 -0
- package/dist/contracts/model-yml.js +1 -0
- package/dist/contracts/model-yml.js.map +1 -1
- package/dist/contracts/session.d.ts +45 -2
- package/dist/contracts/session.js +14 -1
- package/dist/contracts/session.js.map +1 -1
- package/dist/contracts/settings.d.ts +44 -1
- package/dist/contracts/settings.js.map +1 -1
- package/dist/core/atomic-core.d.ts +44 -5
- package/dist/core/atomic-core.js +24 -0
- package/dist/core/atomic-core.js.map +1 -1
- package/dist/core/create.js +517 -23
- package/dist/core/create.js.map +1 -1
- package/dist/core/gpu/index.d.ts +6 -0
- package/dist/core/gpu/index.js +7 -0
- package/dist/core/gpu/index.js.map +1 -0
- package/dist/core/gpu/policy.d.ts +68 -0
- package/dist/core/gpu/policy.js +99 -0
- package/dist/core/gpu/policy.js.map +1 -0
- package/dist/core/gpu/residency.d.ts +44 -0
- package/dist/core/gpu/residency.js +101 -0
- package/dist/core/gpu/residency.js.map +1 -0
- package/dist/core/gpu-residency.d.ts +39 -0
- package/dist/core/gpu-residency.js +32 -0
- package/dist/core/gpu-residency.js.map +1 -0
- package/dist/core/index.d.ts +1 -1
- package/dist/core/managed-engines.d.ts +207 -0
- package/dist/core/managed-engines.js +579 -0
- package/dist/core/managed-engines.js.map +1 -0
- package/dist/core/managed-environment.d.ts +72 -0
- package/dist/core/managed-environment.js +218 -0
- package/dist/core/managed-environment.js.map +1 -0
- package/dist/core/model-setup/index.d.ts +4 -0
- package/dist/core/model-setup/index.js +5 -0
- package/dist/core/model-setup/index.js.map +1 -0
- package/dist/core/model-setup/plan.d.ts +56 -0
- package/dist/core/model-setup/plan.js +158 -0
- package/dist/core/model-setup/plan.js.map +1 -0
- package/dist/core/model-setup/service.d.ts +92 -0
- package/dist/core/model-setup/service.js +329 -0
- package/dist/core/model-setup/service.js.map +1 -0
- package/dist/core/model-setup/store.d.ts +29 -0
- package/dist/core/model-setup/store.js +116 -0
- package/dist/core/model-setup/store.js.map +1 -0
- package/dist/core/model-setup/wiring.d.ts +59 -0
- package/dist/core/model-setup/wiring.js +132 -0
- package/dist/core/model-setup/wiring.js.map +1 -0
- package/dist/core/prism.d.ts +36 -0
- package/dist/core/prism.js +42 -0
- package/dist/core/prism.js.map +1 -0
- package/dist/core/public-server.d.ts +7 -0
- package/dist/core/public-server.js +2 -0
- package/dist/core/public-server.js.map +1 -1
- package/dist/core/sessions.d.ts +6 -1
- package/dist/core/sessions.js +18 -14
- package/dist/core/sessions.js.map +1 -1
- package/dist/core/types.d.ts +27 -1
- package/dist/core/types.js.map +1 -1
- package/dist/decision/args.d.ts +110 -0
- package/dist/decision/args.js +126 -0
- package/dist/decision/args.js.map +1 -0
- package/dist/decision/backoff.d.ts +25 -0
- package/dist/decision/backoff.js +33 -0
- package/dist/decision/backoff.js.map +1 -0
- package/dist/decision/engine-candidates.d.ts +52 -0
- package/dist/decision/engine-candidates.js +138 -0
- package/dist/decision/engine-candidates.js.map +1 -0
- package/dist/decision/engine-fallback.d.ts +41 -0
- package/dist/decision/engine-fallback.js +57 -0
- package/dist/decision/engine-fallback.js.map +1 -0
- package/dist/decision/engine-version.d.ts +27 -0
- package/dist/decision/engine-version.js +54 -0
- package/dist/decision/engine-version.js.map +1 -0
- package/dist/decision/engine.d.ts +114 -0
- package/dist/decision/engine.js +253 -0
- package/dist/decision/engine.js.map +1 -0
- package/dist/decision/http.d.ts +36 -0
- package/dist/decision/http.js +73 -0
- package/dist/decision/http.js.map +1 -0
- package/dist/decision/index.d.ts +20 -0
- package/dist/decision/index.js +21 -0
- package/dist/decision/index.js.map +1 -0
- package/dist/decision/model-facts.d.ts +32 -0
- package/dist/decision/model-facts.js +40 -0
- package/dist/decision/model-facts.js.map +1 -0
- package/dist/decision/outcome.d.ts +35 -0
- package/dist/decision/outcome.js +105 -0
- package/dist/decision/outcome.js.map +1 -0
- package/dist/decision/process.d.ts +67 -0
- package/dist/decision/process.js +133 -0
- package/dist/decision/process.js.map +1 -0
- package/dist/decision/readiness.d.ts +74 -0
- package/dist/decision/readiness.js +165 -0
- package/dist/decision/readiness.js.map +1 -0
- package/dist/decision/request.d.ts +11 -0
- package/dist/decision/request.js +56 -0
- package/dist/decision/request.js.map +1 -0
- package/dist/decision/service.d.ts +202 -0
- package/dist/decision/service.js +711 -0
- package/dist/decision/service.js.map +1 -0
- package/dist/decision/upstream-version.d.ts +23 -0
- package/dist/decision/upstream-version.js +34 -0
- package/dist/decision/upstream-version.js.map +1 -0
- package/dist/decision/wiring.d.ts +67 -0
- package/dist/decision/wiring.js +101 -0
- package/dist/decision/wiring.js.map +1 -0
- package/dist/diffusion/args.d.ts +4 -2
- package/dist/diffusion/args.js +10 -3
- package/dist/diffusion/args.js.map +1 -1
- package/dist/diffusion/image-job.js +1 -1
- package/dist/diffusion/image-job.js.map +1 -1
- package/dist/diffusion/install.d.ts +35 -11
- package/dist/diffusion/install.js +74 -49
- package/dist/diffusion/install.js.map +1 -1
- package/dist/diffusion/job-kind.d.ts +33 -7
- package/dist/diffusion/jobs.d.ts +6 -1
- package/dist/diffusion/jobs.js +60 -18
- package/dist/diffusion/jobs.js.map +1 -1
- package/dist/diffusion/parse.d.ts +1 -2
- package/dist/diffusion/parse.js +1 -13
- package/dist/diffusion/parse.js.map +1 -1
- package/dist/diffusion/progress.js +3 -0
- package/dist/diffusion/progress.js.map +1 -1
- package/dist/diffusion/server-process.d.ts +6 -0
- package/dist/diffusion/server-process.js +3 -2
- package/dist/diffusion/server-process.js.map +1 -1
- package/dist/diffusion/service.d.ts +52 -6
- package/dist/diffusion/service.js +215 -40
- package/dist/diffusion/service.js.map +1 -1
- package/dist/diffusion/session.d.ts +27 -3
- package/dist/diffusion/session.js +108 -17
- package/dist/diffusion/session.js.map +1 -1
- package/dist/diffusion/state.d.ts +19 -1
- package/dist/diffusion/state.js +10 -0
- package/dist/diffusion/state.js.map +1 -1
- package/dist/diffusion/tracker.d.ts +15 -1
- package/dist/diffusion/tracker.js +32 -6
- package/dist/diffusion/tracker.js.map +1 -1
- package/dist/diffusion/types.d.ts +7 -0
- package/dist/diffusion/types.js +11 -0
- package/dist/diffusion/types.js.map +1 -1
- package/dist/diffusion/video-estimate.d.ts +214 -0
- package/dist/diffusion/video-estimate.js +402 -0
- package/dist/diffusion/video-estimate.js.map +1 -0
- package/dist/diffusion/video-eta.d.ts +90 -0
- package/dist/diffusion/video-eta.js +248 -0
- package/dist/diffusion/video-eta.js.map +1 -0
- package/dist/diffusion/video-history.d.ts +45 -0
- package/dist/diffusion/video-history.js +121 -0
- package/dist/diffusion/video-history.js.map +1 -0
- package/dist/diffusion/video-job.d.ts +13 -5
- package/dist/diffusion/video-job.js +42 -15
- package/dist/diffusion/video-job.js.map +1 -1
- package/dist/diffusion/video-recipe.js +3 -0
- package/dist/diffusion/video-recipe.js.map +1 -1
- package/dist/diffusion/video-tiling.d.ts +54 -0
- package/dist/diffusion/video-tiling.js +70 -0
- package/dist/diffusion/video-tiling.js.map +1 -0
- package/dist/diffusion/wiring.d.ts +14 -1
- package/dist/diffusion/wiring.js +7 -0
- package/dist/diffusion/wiring.js.map +1 -1
- package/dist/downloads/protocol.d.ts +3 -8
- package/dist/downloads/protocol.js.map +1 -1
- package/dist/embedding/args.d.ts +39 -0
- package/dist/embedding/args.js +46 -0
- package/dist/embedding/args.js.map +1 -0
- package/dist/embedding/engine.d.ts +50 -0
- package/dist/embedding/engine.js +100 -0
- package/dist/embedding/engine.js.map +1 -0
- package/dist/embedding/ffmpeg.d.ts +18 -0
- package/dist/embedding/ffmpeg.js +63 -0
- package/dist/embedding/ffmpeg.js.map +1 -0
- package/dist/embedding/index.d.ts +16 -0
- package/dist/embedding/index.js +17 -0
- package/dist/embedding/index.js.map +1 -0
- package/dist/embedding/model-facts.d.ts +51 -0
- package/dist/embedding/model-facts.js +84 -0
- package/dist/embedding/model-facts.js.map +1 -0
- package/dist/embedding/process.d.ts +66 -0
- package/dist/embedding/process.js +131 -0
- package/dist/embedding/process.js.map +1 -0
- package/dist/embedding/readiness.d.ts +56 -0
- package/dist/embedding/readiness.js +114 -0
- package/dist/embedding/readiness.js.map +1 -0
- package/dist/embedding/request.d.ts +43 -0
- package/dist/embedding/request.js +285 -0
- package/dist/embedding/request.js.map +1 -0
- package/dist/embedding/service.d.ts +152 -0
- package/dist/embedding/service.js +602 -0
- package/dist/embedding/service.js.map +1 -0
- package/dist/embedding/wiring.d.ts +51 -0
- package/dist/embedding/wiring.js +79 -0
- package/dist/embedding/wiring.js.map +1 -0
- package/dist/engine-builds/builds.d.ts +54 -0
- package/dist/engine-builds/builds.js +151 -0
- package/dist/engine-builds/builds.js.map +1 -0
- package/dist/engine-builds/index.d.ts +10 -0
- package/dist/engine-builds/index.js +11 -0
- package/dist/engine-builds/index.js.map +1 -0
- package/dist/engine-builds/install.d.ts +42 -0
- package/dist/engine-builds/install.js +100 -0
- package/dist/engine-builds/install.js.map +1 -0
- package/dist/engine-builds/manifest.d.ts +121 -0
- package/dist/engine-builds/manifest.js +254 -0
- package/dist/engine-builds/manifest.js.map +1 -0
- package/dist/engine-builds/order.d.ts +24 -0
- package/dist/engine-builds/order.js +44 -0
- package/dist/engine-builds/order.js.map +1 -0
- package/dist/engine-builds/select.d.ts +123 -0
- package/dist/engine-builds/select.js +223 -0
- package/dist/engine-builds/select.js.map +1 -0
- package/dist/engine-builds/service.d.ts +123 -0
- package/dist/engine-builds/service.js +392 -0
- package/dist/engine-builds/service.js.map +1 -0
- package/dist/engines/descriptor-order.d.ts +28 -0
- package/dist/engines/descriptor-order.js +60 -0
- package/dist/engines/descriptor-order.js.map +1 -0
- package/dist/engines/engine-build.d.ts +23 -0
- package/dist/engines/engine-build.js +58 -0
- package/dist/engines/engine-build.js.map +1 -0
- package/dist/engines/index.d.ts +10 -0
- package/dist/engines/index.js +11 -0
- package/dist/engines/index.js.map +1 -0
- package/dist/engines/llamacpp.d.ts +71 -0
- package/dist/engines/llamacpp.js +176 -0
- package/dist/engines/llamacpp.js.map +1 -0
- package/dist/engines/managed.d.ts +49 -0
- package/dist/engines/managed.js +88 -0
- package/dist/engines/managed.js.map +1 -0
- package/dist/engines/service.d.ts +46 -0
- package/dist/engines/service.js +61 -0
- package/dist/engines/service.js.map +1 -0
- package/dist/engines/versions.d.ts +65 -0
- package/dist/engines/versions.js +259 -0
- package/dist/engines/versions.js.map +1 -0
- package/dist/hardware/cpu-flags.d.ts +44 -0
- package/dist/hardware/cpu-flags.js +206 -0
- package/dist/hardware/cpu-flags.js.map +1 -0
- package/dist/hardware/drm-sysfs.d.ts +51 -0
- package/dist/hardware/drm-sysfs.js +67 -0
- package/dist/hardware/drm-sysfs.js.map +1 -0
- package/dist/hardware/facts.d.ts +42 -0
- package/dist/hardware/facts.js +92 -0
- package/dist/hardware/facts.js.map +1 -0
- package/dist/hardware/index.d.ts +19 -3
- package/dist/hardware/index.js +19 -3
- package/dist/hardware/index.js.map +1 -1
- package/dist/hardware/merge.d.ts +55 -0
- package/dist/hardware/merge.js +141 -0
- package/dist/hardware/merge.js.map +1 -0
- package/dist/hardware/nvidia-smi.d.ts +43 -0
- package/dist/hardware/nvidia-smi.js +118 -0
- package/dist/hardware/nvidia-smi.js.map +1 -0
- package/dist/hardware/probe-common.d.ts +72 -0
- package/dist/hardware/probe-common.js +106 -0
- package/dist/hardware/probe-common.js.map +1 -0
- package/dist/hardware/probe-darwin.d.ts +20 -0
- package/dist/hardware/probe-darwin.js +76 -0
- package/dist/hardware/probe-darwin.js.map +1 -0
- package/dist/hardware/probe-linux.d.ts +9 -0
- package/dist/hardware/probe-linux.js +133 -0
- package/dist/hardware/probe-linux.js.map +1 -0
- package/dist/hardware/probe-windows.d.ts +7 -0
- package/dist/hardware/probe-windows.js +50 -0
- package/dist/hardware/probe-windows.js.map +1 -0
- package/dist/hardware/probe.d.ts +16 -0
- package/dist/hardware/probe.js +65 -0
- package/dist/hardware/probe.js.map +1 -0
- package/dist/hardware/service.d.ts +60 -0
- package/dist/hardware/service.js +114 -0
- package/dist/hardware/service.js.map +1 -0
- package/dist/hardware/vulkan.d.ts +47 -0
- package/dist/hardware/vulkan.js +148 -0
- package/dist/hardware/vulkan.js.map +1 -0
- package/dist/hardware/windows-video.d.ts +97 -0
- package/dist/hardware/windows-video.js +214 -0
- package/dist/hardware/windows-video.js.map +1 -0
- package/dist/host/app-daemon.d.ts +47 -0
- package/dist/host/app-daemon.js +146 -0
- package/dist/host/app-daemon.js.map +1 -0
- package/dist/host/index.d.ts +5 -3
- package/dist/host/index.js +5 -3
- package/dist/host/index.js.map +1 -1
- package/dist/host/log-file.d.ts +74 -0
- package/dist/host/log-file.js +214 -0
- package/dist/host/log-file.js.map +1 -0
- package/dist/host/recipes/enable-wsl.d.ts +63 -0
- package/dist/host/recipes/enable-wsl.js +73 -0
- package/dist/host/recipes/enable-wsl.js.map +1 -0
- package/dist/host/recipes/executor-io-windows.d.ts +69 -0
- package/dist/host/recipes/executor-io-windows.js +235 -0
- package/dist/host/recipes/executor-io-windows.js.map +1 -0
- package/dist/host/recipes/executor-io.d.ts +80 -0
- package/dist/host/recipes/executor-io.js +211 -0
- package/dist/host/recipes/executor-io.js.map +1 -0
- package/dist/host/recipes/executor.d.ts +81 -0
- package/dist/host/recipes/executor.js +678 -0
- package/dist/host/recipes/executor.js.map +1 -0
- package/dist/host/recipes/guest-executor.d.ts +29 -0
- package/dist/host/recipes/guest-executor.js +76 -0
- package/dist/host/recipes/guest-executor.js.map +1 -0
- package/dist/host/recipes/index.d.ts +16 -0
- package/dist/host/recipes/index.js +17 -0
- package/dist/host/recipes/index.js.map +1 -0
- package/dist/host/recipes/install-container-runtime.d.ts +389 -0
- package/dist/host/recipes/install-container-runtime.js +796 -0
- package/dist/host/recipes/install-container-runtime.js.map +1 -0
- package/dist/host/recipes/openpgp.d.ts +23 -0
- package/dist/host/recipes/openpgp.js +153 -0
- package/dist/host/recipes/openpgp.js.map +1 -0
- package/dist/host/recipes/request-file.d.ts +96 -0
- package/dist/host/recipes/request-file.js +103 -0
- package/dist/host/recipes/request-file.js.map +1 -0
- package/dist/lock/process-journal.d.ts +5 -2
- package/dist/lock/process-journal.js.map +1 -1
- package/dist/models/capabilities.d.ts +7 -0
- package/dist/models/capabilities.js +17 -1
- package/dist/models/capabilities.js.map +1 -1
- package/dist/models/compatibility/index.d.ts +10 -0
- package/dist/models/compatibility/index.js +11 -0
- package/dist/models/compatibility/index.js.map +1 -0
- package/dist/models/compatibility/inspect.d.ts +19 -0
- package/dist/models/compatibility/inspect.js +59 -0
- package/dist/models/compatibility/inspect.js.map +1 -0
- package/dist/models/compatibility/resolve.d.ts +59 -0
- package/dist/models/compatibility/resolve.js +219 -0
- package/dist/models/compatibility/resolve.js.map +1 -0
- package/dist/models/compatibility/rules-baseline.d.ts +2 -0
- package/dist/models/compatibility/rules-baseline.js +10 -0
- package/dist/models/compatibility/rules-baseline.js.map +1 -0
- package/dist/models/compatibility/rules-baseline.json +292 -0
- package/dist/models/compatibility/rules-service.d.ts +36 -0
- package/dist/models/compatibility/rules-service.js +109 -0
- package/dist/models/compatibility/rules-service.js.map +1 -0
- package/dist/models/compatibility/rules.d.ts +81 -0
- package/dist/models/compatibility/rules.js +164 -0
- package/dist/models/compatibility/rules.js.map +1 -0
- package/dist/models/compatibility/service.d.ts +59 -0
- package/dist/models/compatibility/service.js +137 -0
- package/dist/models/compatibility/service.js.map +1 -0
- package/dist/models/decision-checkpoint.d.ts +22 -0
- package/dist/models/decision-checkpoint.js +33 -0
- package/dist/models/decision-checkpoint.js.map +1 -0
- package/dist/models/gguf/classify.d.ts +27 -1
- package/dist/models/gguf/classify.js +78 -2
- package/dist/models/gguf/classify.js.map +1 -1
- package/dist/models/gguf/index.d.ts +1 -0
- package/dist/models/gguf/index.js +1 -0
- package/dist/models/gguf/index.js.map +1 -1
- package/dist/models/gguf/tensors.d.ts +56 -0
- package/dist/models/gguf/tensors.js +236 -0
- package/dist/models/gguf/tensors.js.map +1 -0
- package/dist/models/index.d.ts +2 -0
- package/dist/models/index.js +2 -0
- package/dist/models/index.js.map +1 -1
- package/dist/router/resolve.d.ts +7 -1
- package/dist/router/resolve.js +14 -1
- package/dist/router/resolve.js.map +1 -1
- package/dist/runtime/container/argv.d.ts +88 -0
- package/dist/runtime/container/argv.js +406 -0
- package/dist/runtime/container/argv.js.map +1 -0
- package/dist/runtime/container/docker-binary.d.ts +4 -0
- package/dist/runtime/container/docker-binary.js +34 -0
- package/dist/runtime/container/docker-binary.js.map +1 -0
- package/dist/runtime/container/env.d.ts +17 -0
- package/dist/runtime/container/env.js +52 -0
- package/dist/runtime/container/env.js.map +1 -0
- package/dist/runtime/container/exec.d.ts +27 -0
- package/dist/runtime/container/exec.js +79 -0
- package/dist/runtime/container/exec.js.map +1 -0
- package/dist/runtime/container/execution-journal.d.ts +55 -0
- package/dist/runtime/container/execution-journal.js +167 -0
- package/dist/runtime/container/execution-journal.js.map +1 -0
- package/dist/runtime/container/heartbeat.d.ts +47 -0
- package/dist/runtime/container/heartbeat.js +78 -0
- package/dist/runtime/container/heartbeat.js.map +1 -0
- package/dist/runtime/container/index.d.ts +30 -0
- package/dist/runtime/container/index.js +31 -0
- package/dist/runtime/container/index.js.map +1 -0
- package/dist/runtime/container/operations.d.ts +40 -0
- package/dist/runtime/container/operations.js +233 -0
- package/dist/runtime/container/operations.js.map +1 -0
- package/dist/runtime/container/pull.d.ts +48 -0
- package/dist/runtime/container/pull.js +280 -0
- package/dist/runtime/container/pull.js.map +1 -0
- package/dist/runtime/container/reconcile.d.ts +34 -0
- package/dist/runtime/container/reconcile.js +79 -0
- package/dist/runtime/container/reconcile.js.map +1 -0
- package/dist/runtime/container/types.d.ts +124 -0
- package/dist/runtime/container/types.js +2 -0
- package/dist/runtime/container/types.js.map +1 -0
- package/dist/runtime/container/watchdog.d.ts +114 -0
- package/dist/runtime/container/watchdog.js +418 -0
- package/dist/runtime/container/watchdog.js.map +1 -0
- package/dist/runtime/container/wiring.d.ts +78 -0
- package/dist/runtime/container/wiring.js +92 -0
- package/dist/runtime/container/wiring.js.map +1 -0
- package/dist/runtime/container/wsl-exec.d.ts +13 -0
- package/dist/runtime/container/wsl-exec.js +18 -0
- package/dist/runtime/container/wsl-exec.js.map +1 -0
- package/dist/runtime/environment/cached-document.d.ts +128 -0
- package/dist/runtime/environment/cached-document.js +218 -0
- package/dist/runtime/environment/cached-document.js.map +1 -0
- package/dist/runtime/environment/canonical-json.d.ts +78 -0
- package/dist/runtime/environment/canonical-json.js +86 -0
- package/dist/runtime/environment/canonical-json.js.map +1 -0
- package/dist/runtime/environment/descriptor-provider.d.ts +121 -0
- package/dist/runtime/environment/descriptor-provider.js +159 -0
- package/dist/runtime/environment/descriptor-provider.js.map +1 -0
- package/dist/runtime/environment/descriptor.d.ts +35 -0
- package/dist/runtime/environment/descriptor.js +239 -0
- package/dist/runtime/environment/descriptor.js.map +1 -0
- package/dist/runtime/environment/diagnostics.d.ts +50 -0
- package/dist/runtime/environment/diagnostics.js +114 -0
- package/dist/runtime/environment/diagnostics.js.map +1 -0
- package/dist/runtime/environment/document-fields.d.ts +39 -0
- package/dist/runtime/environment/document-fields.js +96 -0
- package/dist/runtime/environment/document-fields.js.map +1 -0
- package/dist/runtime/environment/environment-manifest-provider.d.ts +65 -0
- package/dist/runtime/environment/environment-manifest-provider.js +89 -0
- package/dist/runtime/environment/environment-manifest-provider.js.map +1 -0
- package/dist/runtime/environment/environment-manifest.d.ts +35 -0
- package/dist/runtime/environment/environment-manifest.js +131 -0
- package/dist/runtime/environment/environment-manifest.js.map +1 -0
- package/dist/runtime/environment/guest-host.d.ts +43 -0
- package/dist/runtime/environment/guest-host.js +88 -0
- package/dist/runtime/environment/guest-host.js.map +1 -0
- package/dist/runtime/environment/host-exec.d.ts +38 -0
- package/dist/runtime/environment/host-exec.js +145 -0
- package/dist/runtime/environment/host-exec.js.map +1 -0
- package/dist/runtime/environment/host-step-failure.d.ts +33 -0
- package/dist/runtime/environment/host-step-failure.js +34 -0
- package/dist/runtime/environment/host-step-failure.js.map +1 -0
- package/dist/runtime/environment/index.d.ts +56 -0
- package/dist/runtime/environment/index.js +57 -0
- package/dist/runtime/environment/index.js.map +1 -0
- package/dist/runtime/environment/installations.d.ts +25 -0
- package/dist/runtime/environment/installations.js +70 -0
- package/dist/runtime/environment/installations.js.map +1 -0
- package/dist/runtime/environment/inventory.d.ts +42 -0
- package/dist/runtime/environment/inventory.js +57 -0
- package/dist/runtime/environment/inventory.js.map +1 -0
- package/dist/runtime/environment/linux-blockers.d.ts +130 -0
- package/dist/runtime/environment/linux-blockers.js +251 -0
- package/dist/runtime/environment/linux-blockers.js.map +1 -0
- package/dist/runtime/environment/linux-docker-facts.d.ts +200 -0
- package/dist/runtime/environment/linux-docker-facts.js +342 -0
- package/dist/runtime/environment/linux-docker-facts.js.map +1 -0
- package/dist/runtime/environment/linux-docker-network.d.ts +80 -0
- package/dist/runtime/environment/linux-docker-network.js +195 -0
- package/dist/runtime/environment/linux-docker-network.js.map +1 -0
- package/dist/runtime/environment/linux-host.d.ts +22 -0
- package/dist/runtime/environment/linux-host.js +98 -0
- package/dist/runtime/environment/linux-host.js.map +1 -0
- package/dist/runtime/environment/linux-plan.d.ts +126 -0
- package/dist/runtime/environment/linux-plan.js +392 -0
- package/dist/runtime/environment/linux-plan.js.map +1 -0
- package/dist/runtime/environment/linux-probe.d.ts +245 -0
- package/dist/runtime/environment/linux-probe.js +315 -0
- package/dist/runtime/environment/linux-probe.js.map +1 -0
- package/dist/runtime/environment/linux-provisioner.d.ts +102 -0
- package/dist/runtime/environment/linux-provisioner.js +734 -0
- package/dist/runtime/environment/linux-provisioner.js.map +1 -0
- package/dist/runtime/environment/provisioner-descriptors.d.ts +17 -0
- package/dist/runtime/environment/provisioner-descriptors.js +62 -0
- package/dist/runtime/environment/provisioner-descriptors.js.map +1 -0
- package/dist/runtime/environment/recovery.d.ts +74 -0
- package/dist/runtime/environment/recovery.js +121 -0
- package/dist/runtime/environment/recovery.js.map +1 -0
- package/dist/runtime/environment/rootfs-download.d.ts +2 -0
- package/dist/runtime/environment/rootfs-download.js +47 -0
- package/dist/runtime/environment/rootfs-download.js.map +1 -0
- package/dist/runtime/environment/service.d.ts +280 -0
- package/dist/runtime/environment/service.js +776 -0
- package/dist/runtime/environment/service.js.map +1 -0
- package/dist/runtime/environment/state.d.ts +163 -0
- package/dist/runtime/environment/state.js +479 -0
- package/dist/runtime/environment/state.js.map +1 -0
- package/dist/runtime/environment/store-models.d.ts +19 -0
- package/dist/runtime/environment/store-models.js +30 -0
- package/dist/runtime/environment/store-models.js.map +1 -0
- package/dist/runtime/environment/store.d.ts +210 -0
- package/dist/runtime/environment/store.js +438 -0
- package/dist/runtime/environment/store.js.map +1 -0
- package/dist/runtime/environment/windows-environment-record.d.ts +48 -0
- package/dist/runtime/environment/windows-environment-record.js +89 -0
- package/dist/runtime/environment/windows-environment-record.js.map +1 -0
- package/dist/runtime/environment/windows-forwarding.d.ts +27 -0
- package/dist/runtime/environment/windows-forwarding.js +84 -0
- package/dist/runtime/environment/windows-forwarding.js.map +1 -0
- package/dist/runtime/environment/windows-guest-setup.d.ts +48 -0
- package/dist/runtime/environment/windows-guest-setup.js +157 -0
- package/dist/runtime/environment/windows-guest-setup.js.map +1 -0
- package/dist/runtime/environment/windows-host.d.ts +46 -0
- package/dist/runtime/environment/windows-host.js +163 -0
- package/dist/runtime/environment/windows-host.js.map +1 -0
- package/dist/runtime/environment/windows-plan.d.ts +78 -0
- package/dist/runtime/environment/windows-plan.js +216 -0
- package/dist/runtime/environment/windows-plan.js.map +1 -0
- package/dist/runtime/environment/windows-probe.d.ts +135 -0
- package/dist/runtime/environment/windows-probe.js +261 -0
- package/dist/runtime/environment/windows-probe.js.map +1 -0
- package/dist/runtime/environment/windows-provisioner.d.ts +113 -0
- package/dist/runtime/environment/windows-provisioner.js +782 -0
- package/dist/runtime/environment/windows-provisioner.js.map +1 -0
- package/dist/runtime/environment/wiring.d.ts +117 -0
- package/dist/runtime/environment/wiring.js +354 -0
- package/dist/runtime/environment/wiring.js.map +1 -0
- package/dist/runtime/foundation-models/runtime.d.ts +8 -0
- package/dist/runtime/foundation-models/runtime.js +5 -2
- package/dist/runtime/foundation-models/runtime.js.map +1 -1
- package/dist/runtime/llamacpp/args.d.ts +10 -1
- package/dist/runtime/llamacpp/args.js +43 -7
- package/dist/runtime/llamacpp/args.js.map +1 -1
- package/dist/runtime/llamacpp/fit-margin.d.ts +46 -0
- package/dist/runtime/llamacpp/fit-margin.js +47 -0
- package/dist/runtime/llamacpp/fit-margin.js.map +1 -0
- package/dist/runtime/llamacpp/index.d.ts +1 -0
- package/dist/runtime/llamacpp/index.js +1 -0
- package/dist/runtime/llamacpp/index.js.map +1 -1
- package/dist/runtime/llamacpp/load-plan.d.ts +23 -1
- package/dist/runtime/llamacpp/load-plan.js +82 -1
- package/dist/runtime/llamacpp/load-plan.js.map +1 -1
- package/dist/runtime/llamacpp/policy.d.ts +16 -0
- package/dist/runtime/llamacpp/policy.js +20 -0
- package/dist/runtime/llamacpp/policy.js.map +1 -1
- package/dist/runtime/llamacpp/probe.d.ts +21 -1
- package/dist/runtime/llamacpp/probe.js +32 -6
- package/dist/runtime/llamacpp/probe.js.map +1 -1
- package/dist/runtime/llamacpp/runtime.d.ts +56 -1
- package/dist/runtime/llamacpp/runtime.js +142 -15
- package/dist/runtime/llamacpp/runtime.js.map +1 -1
- package/dist/runtime/managed-engines/index.d.ts +8 -0
- package/dist/runtime/managed-engines/index.js +9 -0
- package/dist/runtime/managed-engines/index.js.map +1 -0
- package/dist/runtime/managed-engines/runtime.d.ts +140 -0
- package/dist/runtime/managed-engines/runtime.js +402 -0
- package/dist/runtime/managed-engines/runtime.js.map +1 -0
- package/dist/runtime/managed-engines/spec.d.ts +70 -0
- package/dist/runtime/managed-engines/spec.js +39 -0
- package/dist/runtime/managed-engines/spec.js.map +1 -0
- package/dist/runtime/managed-models/check.d.ts +50 -0
- package/dist/runtime/managed-models/check.js +157 -0
- package/dist/runtime/managed-models/check.js.map +1 -0
- package/dist/runtime/managed-models/compatibility.d.ts +256 -0
- package/dist/runtime/managed-models/compatibility.js +594 -0
- package/dist/runtime/managed-models/compatibility.js.map +1 -0
- package/dist/runtime/managed-models/delete.d.ts +15 -0
- package/dist/runtime/managed-models/delete.js +60 -0
- package/dist/runtime/managed-models/delete.js.map +1 -0
- package/dist/runtime/managed-models/guest-files.d.ts +8 -0
- package/dist/runtime/managed-models/guest-files.js +49 -0
- package/dist/runtime/managed-models/guest-files.js.map +1 -0
- package/dist/runtime/managed-models/index.d.ts +17 -0
- package/dist/runtime/managed-models/index.js +18 -0
- package/dist/runtime/managed-models/index.js.map +1 -0
- package/dist/runtime/managed-models/location.d.ts +22 -0
- package/dist/runtime/managed-models/location.js +53 -0
- package/dist/runtime/managed-models/location.js.map +1 -0
- package/dist/runtime/managed-models/migrate.d.ts +30 -0
- package/dist/runtime/managed-models/migrate.js +119 -0
- package/dist/runtime/managed-models/migrate.js.map +1 -0
- package/dist/runtime/managed-models/model-dir.d.ts +36 -0
- package/dist/runtime/managed-models/model-dir.js +136 -0
- package/dist/runtime/managed-models/model-dir.js.map +1 -0
- package/dist/runtime/managed-models/quant-format.d.ts +71 -0
- package/dist/runtime/managed-models/quant-format.js +299 -0
- package/dist/runtime/managed-models/quant-format.js.map +1 -0
- package/dist/runtime/managed-models/registry.d.ts +26 -0
- package/dist/runtime/managed-models/registry.js +66 -0
- package/dist/runtime/managed-models/registry.js.map +1 -0
- package/dist/runtime/managed-text/adapter.d.ts +266 -0
- package/dist/runtime/managed-text/adapter.js +96 -0
- package/dist/runtime/managed-text/adapter.js.map +1 -0
- package/dist/runtime/managed-text/backend-target.d.ts +3 -0
- package/dist/runtime/managed-text/backend-target.js +52 -0
- package/dist/runtime/managed-text/backend-target.js.map +1 -0
- package/dist/runtime/managed-text/deployment.d.ts +14 -0
- package/dist/runtime/managed-text/deployment.js +32 -0
- package/dist/runtime/managed-text/deployment.js.map +1 -0
- package/dist/runtime/managed-text/engine-cache.d.ts +15 -0
- package/dist/runtime/managed-text/engine-cache.js +64 -0
- package/dist/runtime/managed-text/engine-cache.js.map +1 -0
- package/dist/runtime/managed-text/gateway.d.ts +158 -0
- package/dist/runtime/managed-text/gateway.js +535 -0
- package/dist/runtime/managed-text/gateway.js.map +1 -0
- package/dist/runtime/managed-text/generation-defaults.d.ts +23 -0
- package/dist/runtime/managed-text/generation-defaults.js +51 -0
- package/dist/runtime/managed-text/generation-defaults.js.map +1 -0
- package/dist/runtime/managed-text/index.d.ts +26 -0
- package/dist/runtime/managed-text/index.js +27 -0
- package/dist/runtime/managed-text/index.js.map +1 -0
- package/dist/runtime/managed-text/lifecycle.d.ts +276 -0
- package/dist/runtime/managed-text/lifecycle.js +859 -0
- package/dist/runtime/managed-text/lifecycle.js.map +1 -0
- package/dist/runtime/managed-text/load-policy.d.ts +47 -0
- package/dist/runtime/managed-text/load-policy.js +111 -0
- package/dist/runtime/managed-text/load-policy.js.map +1 -0
- package/dist/runtime/managed-text/mount-source.d.ts +14 -0
- package/dist/runtime/managed-text/mount-source.js +18 -0
- package/dist/runtime/managed-text/mount-source.js.map +1 -0
- package/dist/runtime/managed-text/readiness.d.ts +13 -0
- package/dist/runtime/managed-text/readiness.js +24 -0
- package/dist/runtime/managed-text/readiness.js.map +1 -0
- package/dist/runtime/managed-text/request-rules.d.ts +18 -0
- package/dist/runtime/managed-text/request-rules.js +62 -0
- package/dist/runtime/managed-text/request-rules.js.map +1 -0
- package/dist/runtime/managed-text/types.d.ts +88 -0
- package/dist/runtime/managed-text/types.js +12 -0
- package/dist/runtime/managed-text/types.js.map +1 -0
- package/dist/runtime/managed-text/wsl-deployment.d.ts +24 -0
- package/dist/runtime/managed-text/wsl-deployment.js +70 -0
- package/dist/runtime/managed-text/wsl-deployment.js.map +1 -0
- package/dist/runtime/mlx/errors.d.ts +6 -1
- package/dist/runtime/mlx/errors.js +7 -2
- package/dist/runtime/mlx/errors.js.map +1 -1
- package/dist/runtime/mlx/runtime.d.ts +36 -1
- package/dist/runtime/mlx/runtime.js +85 -4
- package/dist/runtime/mlx/runtime.js.map +1 -1
- package/dist/runtime/shared/backend-output.d.ts +23 -0
- package/dist/runtime/shared/backend-output.js +32 -0
- package/dist/runtime/shared/backend-output.js.map +1 -0
- package/dist/runtime/shared/bounded-output.d.ts +24 -0
- package/dist/runtime/shared/bounded-output.js +63 -0
- package/dist/runtime/shared/bounded-output.js.map +1 -0
- package/dist/runtime/shared/external-sessions.js +9 -1
- package/dist/runtime/shared/external-sessions.js.map +1 -1
- package/dist/runtime/shared/gpu-occupancy.d.ts +60 -0
- package/dist/runtime/shared/gpu-occupancy.js +10 -0
- package/dist/runtime/shared/gpu-occupancy.js.map +1 -0
- package/dist/runtime/shared/index.d.ts +4 -0
- package/dist/runtime/shared/index.js +4 -0
- package/dist/runtime/shared/index.js.map +1 -1
- package/dist/runtime/shared/local-runtime.d.ts +35 -0
- package/dist/runtime/shared/ports.d.ts +6 -0
- package/dist/runtime/shared/ports.js +12 -1
- package/dist/runtime/shared/ports.js.map +1 -1
- package/dist/runtime/shared/process.d.ts +11 -0
- package/dist/runtime/shared/process.js +20 -0
- package/dist/runtime/shared/process.js.map +1 -1
- package/dist/runtime/shared/redact-args.d.ts +7 -0
- package/dist/runtime/shared/redact-args.js +26 -0
- package/dist/runtime/shared/redact-args.js.map +1 -0
- package/dist/runtime/shared/sidecar.d.ts +15 -0
- package/dist/runtime/shared/sidecar.js +43 -8
- package/dist/runtime/shared/sidecar.js.map +1 -1
- package/dist/runtime/tensorrt-llm/adapter.d.ts +250 -0
- package/dist/runtime/tensorrt-llm/adapter.js +1011 -0
- package/dist/runtime/tensorrt-llm/adapter.js.map +1 -0
- package/dist/runtime/tensorrt-llm/check.d.ts +12 -0
- package/dist/runtime/tensorrt-llm/check.js +21 -0
- package/dist/runtime/tensorrt-llm/check.js.map +1 -0
- package/dist/runtime/tensorrt-llm/compatibility.d.ts +100 -0
- package/dist/runtime/tensorrt-llm/compatibility.js +181 -0
- package/dist/runtime/tensorrt-llm/compatibility.js.map +1 -0
- package/dist/runtime/tensorrt-llm/engine.d.ts +3 -0
- package/dist/runtime/tensorrt-llm/engine.js +24 -0
- package/dist/runtime/tensorrt-llm/engine.js.map +1 -0
- package/dist/runtime/tensorrt-llm/host-facts.d.ts +55 -0
- package/dist/runtime/tensorrt-llm/host-facts.js +87 -0
- package/dist/runtime/tensorrt-llm/host-facts.js.map +1 -0
- package/dist/runtime/tensorrt-llm/index.d.ts +30 -0
- package/dist/runtime/tensorrt-llm/index.js +31 -0
- package/dist/runtime/tensorrt-llm/index.js.map +1 -0
- package/dist/runtime/tensorrt-llm/installation.d.ts +23 -0
- package/dist/runtime/tensorrt-llm/installation.js +53 -0
- package/dist/runtime/tensorrt-llm/installation.js.map +1 -0
- package/dist/runtime/tensorrt-llm/kv-cache.d.ts +25 -0
- package/dist/runtime/tensorrt-llm/kv-cache.js +28 -0
- package/dist/runtime/tensorrt-llm/kv-cache.js.map +1 -0
- package/dist/runtime/tensorrt-llm/prelaunch.d.ts +20 -0
- package/dist/runtime/tensorrt-llm/prelaunch.js +168 -0
- package/dist/runtime/tensorrt-llm/prelaunch.js.map +1 -0
- package/dist/runtime/tensorrt-llm/route-policy.d.ts +19 -0
- package/dist/runtime/tensorrt-llm/route-policy.js +17 -0
- package/dist/runtime/tensorrt-llm/route-policy.js.map +1 -0
- package/dist/runtime/tensorrt-llm/settings.d.ts +7 -0
- package/dist/runtime/tensorrt-llm/settings.js +48 -0
- package/dist/runtime/tensorrt-llm/settings.js.map +1 -0
- package/dist/runtime/vllm/adapter.d.ts +46 -0
- package/dist/runtime/vllm/adapter.js +425 -0
- package/dist/runtime/vllm/adapter.js.map +1 -0
- package/dist/runtime/vllm/engine.d.ts +16 -0
- package/dist/runtime/vllm/engine.js +37 -0
- package/dist/runtime/vllm/engine.js.map +1 -0
- package/dist/runtime/vllm/index.d.ts +11 -0
- package/dist/runtime/vllm/index.js +12 -0
- package/dist/runtime/vllm/index.js.map +1 -0
- package/dist/runtime/vllm/memory.d.ts +69 -0
- package/dist/runtime/vllm/memory.js +123 -0
- package/dist/runtime/vllm/memory.js.map +1 -0
- package/dist/runtime/vllm/settings.d.ts +52 -0
- package/dist/runtime/vllm/settings.js +151 -0
- package/dist/runtime/vllm/settings.js.map +1 -0
- package/dist/runtime/wsl/guest-paths.d.ts +33 -0
- package/dist/runtime/wsl/guest-paths.js +83 -0
- package/dist/runtime/wsl/guest-paths.js.map +1 -0
- package/dist/runtime/wsl/guest-scope.d.ts +14 -0
- package/dist/runtime/wsl/guest-scope.js +98 -0
- package/dist/runtime/wsl/guest-scope.js.map +1 -0
- package/dist/runtime/wsl/index.d.ts +12 -0
- package/dist/runtime/wsl/index.js +13 -0
- package/dist/runtime/wsl/index.js.map +1 -0
- package/dist/runtime/wsl/keeper.d.ts +29 -0
- package/dist/runtime/wsl/keeper.js +48 -0
- package/dist/runtime/wsl/keeper.js.map +1 -0
- package/dist/runtime/wsl/transport.d.ts +106 -0
- package/dist/runtime/wsl/transport.js +181 -0
- package/dist/runtime/wsl/transport.js.map +1 -0
- package/dist/server/control/index.d.ts +1 -1
- package/dist/server/control/router.js +15 -0
- package/dist/server/control/router.js.map +1 -1
- package/dist/server/control/routes/backends.js +26 -0
- package/dist/server/control/routes/backends.js.map +1 -1
- package/dist/server/control/routes/decision.d.ts +10 -0
- package/dist/server/control/routes/decision.js +43 -0
- package/dist/server/control/routes/decision.js.map +1 -0
- package/dist/server/control/routes/diffusion-video.js +4 -0
- package/dist/server/control/routes/diffusion-video.js.map +1 -1
- package/dist/server/control/routes/diffusion.d.ts +1 -1
- package/dist/server/control/routes/diffusion.js +4 -9
- package/dist/server/control/routes/diffusion.js.map +1 -1
- package/dist/server/control/routes/embedding.d.ts +9 -0
- package/dist/server/control/routes/embedding.js +43 -0
- package/dist/server/control/routes/embedding.js.map +1 -0
- package/dist/server/control/routes/engine-builds.d.ts +14 -0
- package/dist/server/control/routes/engine-builds.js +82 -0
- package/dist/server/control/routes/engine-builds.js.map +1 -0
- package/dist/server/control/routes/engines.d.ts +17 -0
- package/dist/server/control/routes/engines.js +152 -0
- package/dist/server/control/routes/engines.js.map +1 -0
- package/dist/server/control/routes/environments.d.ts +16 -0
- package/dist/server/control/routes/environments.js +207 -0
- package/dist/server/control/routes/environments.js.map +1 -0
- package/dist/server/control/routes/hardware.d.ts +1 -1
- package/dist/server/control/routes/hardware.js +11 -6
- package/dist/server/control/routes/hardware.js.map +1 -1
- package/dist/server/control/routes/model-setups.d.ts +11 -0
- package/dist/server/control/routes/model-setups.js +55 -0
- package/dist/server/control/routes/model-setups.js.map +1 -0
- package/dist/server/control/routes/models.d.ts +3 -2
- package/dist/server/control/routes/models.js +45 -2
- package/dist/server/control/routes/models.js.map +1 -1
- package/dist/server/control/types.d.ts +167 -9
- package/dist/server/control/types.js.map +1 -1
- package/dist/server/http.d.ts +9 -1
- package/dist/server/http.js +51 -1
- package/dist/server/http.js.map +1 -1
- package/dist/server/public/decision-preview.d.ts +17 -0
- package/dist/server/public/decision-preview.js +119 -0
- package/dist/server/public/decision-preview.js.map +1 -0
- package/dist/server/public/decision.d.ts +32 -0
- package/dist/server/public/decision.js +135 -0
- package/dist/server/public/decision.js.map +1 -0
- package/dist/server/public/embedding.d.ts +31 -0
- package/dist/server/public/embedding.js +126 -0
- package/dist/server/public/embedding.js.map +1 -0
- package/dist/server/public/errors.d.ts +2 -1
- package/dist/server/public/errors.js +5 -2
- package/dist/server/public/errors.js.map +1 -1
- package/dist/server/public/forward.js +75 -3
- package/dist/server/public/forward.js.map +1 -1
- package/dist/server/public/gates.d.ts +13 -0
- package/dist/server/public/gates.js +37 -14
- package/dist/server/public/gates.js.map +1 -1
- package/dist/server/public/index.d.ts +5 -2
- package/dist/server/public/index.js +14 -1
- package/dist/server/public/index.js.map +1 -1
- package/dist/server/public/listing.d.ts +13 -2
- package/dist/server/public/listing.js +33 -9
- package/dist/server/public/listing.js.map +1 -1
- package/dist/server/public/policy.d.ts +9 -0
- package/dist/server/public/policy.js +68 -0
- package/dist/server/public/policy.js.map +1 -0
- package/dist/server/public/responses.js +10 -0
- package/dist/server/public/responses.js.map +1 -1
- package/dist/server/public/trace.d.ts +2 -2
- package/dist/server/public/trace.js +6 -2
- package/dist/server/public/trace.js.map +1 -1
- package/dist/server/public/types.d.ts +84 -1
- package/dist/settings/decision.d.ts +15 -0
- package/dist/settings/decision.js +88 -0
- package/dist/settings/decision.js.map +1 -0
- package/dist/settings/embedding.d.ts +12 -0
- package/dist/settings/embedding.js +82 -0
- package/dist/settings/embedding.js.map +1 -0
- package/dist/settings/index.d.ts +2 -0
- package/dist/settings/index.js +2 -0
- package/dist/settings/index.js.map +1 -1
- package/dist/settings/schema/atomic-prism.json +433 -0
- package/dist/settings/schema/tensorrt-llm.json +253 -0
- package/dist/settings/schema/vllm.json +273 -0
- package/dist/settings/schema.js +58 -0
- package/dist/settings/schema.js.map +1 -1
- package/dist/settings/store.d.ts +13 -2
- package/dist/settings/store.js +44 -0
- package/dist/settings/store.js.map +1 -1
- package/dist/util/index.d.ts +1 -0
- package/dist/util/index.js +1 -0
- package/dist/util/index.js.map +1 -1
- package/dist/util/result.d.ts +19 -0
- package/dist/util/result.js +15 -0
- package/dist/util/result.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/src/settings/schema/atomic-prism.json +433 -0
- package/src/settings/schema/tensorrt-llm.json +253 -0
- package/src/settings/schema/vllm.json +273 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two conf manifests the engine-builds module installs from: `backends/sdcpp-manifest.json`
|
|
3
|
+
* (stable-diffusion.cpp, which the desktop used to read itself) and `backends/mlx-manifest.json`
|
|
4
|
+
* (the mlx-vlm fork's `mlx-server`). Openspec change `move-sdcpp-mlx-install-to-core`, design D6.
|
|
5
|
+
*
|
|
6
|
+
* The source follows the house pattern of `PrismCatalogService` and `cached-document.ts`: conf main
|
|
7
|
+
* over `fetch` with an 8 s budget and the request's proxy, an `ATOMIC_*_MANIFEST_URL` override that
|
|
8
|
+
* may be `https://` or `file://` (anything else is refused, never guessed at), memory for an hour,
|
|
9
|
+
* then the last accepted document on disk. Unlike the PrismML catalog there is no bundled baseline:
|
|
10
|
+
* without a network nothing can be installed anyway, and a baked-in copy goes stale with every conf
|
|
11
|
+
* release. No document at all is an answer (`manifest: null` with the reason), not an error.
|
|
12
|
+
*
|
|
13
|
+
* Parsing checks the fields of the conf schemas and drops keys it does not know, so an additive conf
|
|
14
|
+
* change never makes a released core fall back to its cache. An asset without `sha256` or `size` is
|
|
15
|
+
* kept — the catalog shows it — but `assetInstallable` says no: nothing unverified is executed.
|
|
16
|
+
*/
|
|
17
|
+
import type { DataLayout } from '../config/index.js';
|
|
18
|
+
import type { ProxyConfig } from '../contracts/index.js';
|
|
19
|
+
export declare const SDCPP_MANIFEST_URL = "https://raw.githubusercontent.com/AtomicBot-ai/atomic-chat-conf/main/backends/sdcpp-manifest.json";
|
|
20
|
+
export declare const MLX_MANIFEST_URL = "https://raw.githubusercontent.com/AtomicBot-ai/atomic-chat-conf/main/backends/mlx-manifest.json";
|
|
21
|
+
export declare const ENGINE_MANIFEST_TIMEOUT_MS = 8000;
|
|
22
|
+
/** A fetched manifest is reused for this long unless the caller forces a re-read. */
|
|
23
|
+
export declare const ENGINE_MANIFEST_TTL_MS: number;
|
|
24
|
+
export declare const SDCPP_UPSTREAM_REPO = "leejet/stable-diffusion.cpp";
|
|
25
|
+
export interface SdcppAsset {
|
|
26
|
+
backend: string;
|
|
27
|
+
name: string;
|
|
28
|
+
sha256?: string;
|
|
29
|
+
size?: number;
|
|
30
|
+
/** The Windows CUDA runtime archive, unpacked beside the CUDA build. */
|
|
31
|
+
companion?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface SdcppManifest {
|
|
34
|
+
updated_at?: string;
|
|
35
|
+
upstream_repo?: string;
|
|
36
|
+
/** `master-<n>-<sha>`, `-a<sha>` for a rebuild by the Atomic fork. */
|
|
37
|
+
tag_name: string;
|
|
38
|
+
/** The signed mirror; absent, archives come from the upstream release. */
|
|
39
|
+
download_base?: string;
|
|
40
|
+
assets: SdcppAsset[];
|
|
41
|
+
}
|
|
42
|
+
export interface MlxAsset {
|
|
43
|
+
backend: string;
|
|
44
|
+
name: string;
|
|
45
|
+
sha256?: string;
|
|
46
|
+
size?: number;
|
|
47
|
+
}
|
|
48
|
+
export interface MlxManifest {
|
|
49
|
+
upstream_repo: string;
|
|
50
|
+
tag_name: string;
|
|
51
|
+
/** `publishedAt` of the GitHub release: the only order MLX builds have. */
|
|
52
|
+
published_at: string;
|
|
53
|
+
assets: MlxAsset[];
|
|
54
|
+
}
|
|
55
|
+
/** A conf date-time this core can order by: RFC 3339 shape and a real calendar date. */
|
|
56
|
+
export declare function isDateTime(value: unknown): value is string;
|
|
57
|
+
/** `backends/sdcpp-manifest.json`, or throw why it is not one. */
|
|
58
|
+
export declare function parseSdcppManifest(data: unknown): SdcppManifest;
|
|
59
|
+
/** `backends/mlx-manifest.json`, or throw why it is not one. */
|
|
60
|
+
export declare function parseMlxManifest(data: unknown): MlxManifest;
|
|
61
|
+
/** An asset core may download and run: pinned by both `sha256` and `size`. */
|
|
62
|
+
export declare function assetInstallable(asset: {
|
|
63
|
+
sha256?: string;
|
|
64
|
+
size?: number;
|
|
65
|
+
}): boolean;
|
|
66
|
+
/** The mirror when the manifest names one, else the upstream release (which never carries `-a<sha>`). */
|
|
67
|
+
export declare function sdcppAssetUrl(manifest: SdcppManifest, asset: SdcppAsset): string;
|
|
68
|
+
export declare function mlxAssetUrl(manifest: MlxManifest, asset: MlxAsset): string;
|
|
69
|
+
/** Which manifest: everything that differs between the two engines. */
|
|
70
|
+
export interface ManifestKind<T> {
|
|
71
|
+
label: string;
|
|
72
|
+
url: string;
|
|
73
|
+
urlEnv: string;
|
|
74
|
+
parse(data: unknown): T;
|
|
75
|
+
cacheFile: string;
|
|
76
|
+
}
|
|
77
|
+
export declare function manifestKinds(layout: DataLayout): {
|
|
78
|
+
'sd-cpp': ManifestKind<SdcppManifest>;
|
|
79
|
+
'mlx': ManifestKind<MlxManifest>;
|
|
80
|
+
};
|
|
81
|
+
/** What a read found. `source` is `null` exactly when `manifest` is. */
|
|
82
|
+
export interface ManifestRead<T> {
|
|
83
|
+
manifest: T | null;
|
|
84
|
+
source: 'remote' | 'cache' | null;
|
|
85
|
+
/** Milliseconds since the epoch at which the document in hand was fetched. */
|
|
86
|
+
fetched_at: number | null;
|
|
87
|
+
/** Why the configured source gave nothing acceptable this time; `null` on a fresh read. */
|
|
88
|
+
error: string | null;
|
|
89
|
+
}
|
|
90
|
+
export interface EngineManifestSourceDeps {
|
|
91
|
+
env: Record<string, string | undefined>;
|
|
92
|
+
/** A `fetch` honouring the request's proxy policy. */
|
|
93
|
+
fetchFor: (proxy?: ProxyConfig | null) => typeof fetch;
|
|
94
|
+
/** Reads a `file://` override. */
|
|
95
|
+
readFile?: (path: string) => Promise<string>;
|
|
96
|
+
now?: () => number;
|
|
97
|
+
timeoutMs?: number;
|
|
98
|
+
log?: (level: 'info' | 'warn', message: string) => void;
|
|
99
|
+
}
|
|
100
|
+
export interface ManifestReadOptions {
|
|
101
|
+
/** Re-read the source even when memory holds a fresh copy. */
|
|
102
|
+
force?: boolean;
|
|
103
|
+
proxy?: ProxyConfig | null;
|
|
104
|
+
}
|
|
105
|
+
export declare class EngineManifestSource<T> {
|
|
106
|
+
private readonly kind;
|
|
107
|
+
private readonly deps;
|
|
108
|
+
/** Only a document the source itself gave; a cache fallback is retried on the next read. */
|
|
109
|
+
private memory;
|
|
110
|
+
private inFlight;
|
|
111
|
+
constructor(kind: ManifestKind<T>, deps: EngineManifestSourceDeps);
|
|
112
|
+
read(options?: ManifestReadOptions): Promise<ManifestRead<T>>;
|
|
113
|
+
/** The last accepted document on disk, without touching the source. */
|
|
114
|
+
cached(): Promise<T | null>;
|
|
115
|
+
private sourceUrl;
|
|
116
|
+
private resolve;
|
|
117
|
+
private fetchText;
|
|
118
|
+
private readCache;
|
|
119
|
+
/** Write-then-rename; a failure only costs the offline fallback, so it is logged, not thrown. */
|
|
120
|
+
private writeCache;
|
|
121
|
+
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two conf manifests the engine-builds module installs from: `backends/sdcpp-manifest.json`
|
|
3
|
+
* (stable-diffusion.cpp, which the desktop used to read itself) and `backends/mlx-manifest.json`
|
|
4
|
+
* (the mlx-vlm fork's `mlx-server`). Openspec change `move-sdcpp-mlx-install-to-core`, design D6.
|
|
5
|
+
*
|
|
6
|
+
* The source follows the house pattern of `PrismCatalogService` and `cached-document.ts`: conf main
|
|
7
|
+
* over `fetch` with an 8 s budget and the request's proxy, an `ATOMIC_*_MANIFEST_URL` override that
|
|
8
|
+
* may be `https://` or `file://` (anything else is refused, never guessed at), memory for an hour,
|
|
9
|
+
* then the last accepted document on disk. Unlike the PrismML catalog there is no bundled baseline:
|
|
10
|
+
* without a network nothing can be installed anyway, and a baked-in copy goes stale with every conf
|
|
11
|
+
* release. No document at all is an answer (`manifest: null` with the reason), not an error.
|
|
12
|
+
*
|
|
13
|
+
* Parsing checks the fields of the conf schemas and drops keys it does not know, so an additive conf
|
|
14
|
+
* change never makes a released core fall back to its cache. An asset without `sha256` or `size` is
|
|
15
|
+
* kept — the catalog shows it — but `assetInstallable` says no: nothing unverified is executed.
|
|
16
|
+
*/
|
|
17
|
+
import { mkdir, readFile as nodeReadFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
18
|
+
import { join } from 'node:path';
|
|
19
|
+
import { fileURLToPath } from 'node:url';
|
|
20
|
+
import { withHardTimeout } from '../backend/index.js';
|
|
21
|
+
export const SDCPP_MANIFEST_URL = 'https://raw.githubusercontent.com/AtomicBot-ai/atomic-chat-conf/main/backends/sdcpp-manifest.json';
|
|
22
|
+
export const MLX_MANIFEST_URL = 'https://raw.githubusercontent.com/AtomicBot-ai/atomic-chat-conf/main/backends/mlx-manifest.json';
|
|
23
|
+
export const ENGINE_MANIFEST_TIMEOUT_MS = 8_000;
|
|
24
|
+
/** A fetched manifest is reused for this long unless the caller forces a re-read. */
|
|
25
|
+
export const ENGINE_MANIFEST_TTL_MS = 60 * 60 * 1000;
|
|
26
|
+
export const SDCPP_UPSTREAM_REPO = 'leejet/stable-diffusion.cpp';
|
|
27
|
+
const SDCPP_TAG_RE = /^master-[0-9]+-[0-9a-f]{7}(-a[0-9a-f]{7})?$/;
|
|
28
|
+
const MLX_TAG_RE = /^mlxvlm-macos-arm64-[0-9a-f]{7,40}$/;
|
|
29
|
+
const BACKEND_ID_RE = /^[a-z0-9.-]+$/;
|
|
30
|
+
/** A bare file name: it lands in a download path and a URL. */
|
|
31
|
+
const ASSET_NAME_RE = /^[A-Za-z0-9._-]+\.(zip|tar\.gz)$/;
|
|
32
|
+
const REPO_RE = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/;
|
|
33
|
+
const SHA256_RE = /^[0-9a-f]{64}$/;
|
|
34
|
+
/** RFC 3339 with a zone; `Date.parse` alone accepts far more. */
|
|
35
|
+
const DATE_TIME_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/;
|
|
36
|
+
const ATOMIC_TAG_SUFFIX_RE = /-a[0-9a-f]{7}$/;
|
|
37
|
+
const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
38
|
+
/** A conf date-time this core can order by: RFC 3339 shape and a real calendar date. */
|
|
39
|
+
export function isDateTime(value) {
|
|
40
|
+
if (typeof value !== 'string' || !DATE_TIME_RE.test(value))
|
|
41
|
+
return false;
|
|
42
|
+
const ms = Date.parse(value);
|
|
43
|
+
if (!Number.isFinite(ms))
|
|
44
|
+
return false;
|
|
45
|
+
// `Date.parse('2026-02-30T00:00:00Z')` rolls over to March instead of failing.
|
|
46
|
+
const [y, m, d] = value.slice(0, 10).split('-').map(Number);
|
|
47
|
+
const day = new Date(Date.UTC(y, m - 1, d));
|
|
48
|
+
return day.getUTCFullYear() === y && day.getUTCMonth() === m - 1 && day.getUTCDate() === d;
|
|
49
|
+
}
|
|
50
|
+
function sanitizeAsset(raw) {
|
|
51
|
+
if (!isRecord(raw))
|
|
52
|
+
return null;
|
|
53
|
+
if (typeof raw['backend'] !== 'string' || !BACKEND_ID_RE.test(raw['backend']))
|
|
54
|
+
return null;
|
|
55
|
+
if (typeof raw['name'] !== 'string' || !ASSET_NAME_RE.test(raw['name']))
|
|
56
|
+
return null;
|
|
57
|
+
const sha256 = raw['sha256'];
|
|
58
|
+
const size = raw['size'];
|
|
59
|
+
return {
|
|
60
|
+
backend: raw['backend'],
|
|
61
|
+
name: raw['name'],
|
|
62
|
+
...(typeof sha256 === 'string' && SHA256_RE.test(sha256) ? { sha256 } : {}),
|
|
63
|
+
...(typeof size === 'number' && Number.isSafeInteger(size) && size > 0 ? { size } : {}),
|
|
64
|
+
...(raw['companion'] === true ? { companion: true } : {}),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/** Assets that parse, one per backend id; `null` when none is usable. */
|
|
68
|
+
function sanitizeAssets(raw) {
|
|
69
|
+
if (!Array.isArray(raw))
|
|
70
|
+
throw new Error('the manifest has no assets array');
|
|
71
|
+
const out = [];
|
|
72
|
+
const seen = new Set();
|
|
73
|
+
for (const item of raw) {
|
|
74
|
+
const asset = sanitizeAsset(item);
|
|
75
|
+
if (!asset || seen.has(asset.backend))
|
|
76
|
+
continue;
|
|
77
|
+
seen.add(asset.backend);
|
|
78
|
+
out.push(asset);
|
|
79
|
+
}
|
|
80
|
+
if (out.length === 0)
|
|
81
|
+
throw new Error('the manifest lists no usable asset');
|
|
82
|
+
return out;
|
|
83
|
+
}
|
|
84
|
+
/** `backends/sdcpp-manifest.json`, or throw why it is not one. */
|
|
85
|
+
export function parseSdcppManifest(data) {
|
|
86
|
+
if (!isRecord(data))
|
|
87
|
+
throw new Error('the sd.cpp manifest is not an object');
|
|
88
|
+
const tag = data['tag_name'];
|
|
89
|
+
if (typeof tag !== 'string' || !SDCPP_TAG_RE.test(tag))
|
|
90
|
+
throw new Error(`the sd.cpp manifest has no valid tag_name (${JSON.stringify(tag)})`);
|
|
91
|
+
const assets = sanitizeAssets(data['assets']);
|
|
92
|
+
const repo = data['upstream_repo'];
|
|
93
|
+
const base = data['download_base'];
|
|
94
|
+
const updated = data['updated_at'];
|
|
95
|
+
return {
|
|
96
|
+
...(typeof updated === 'string' ? { updated_at: updated } : {}),
|
|
97
|
+
...(typeof repo === 'string' && REPO_RE.test(repo) ? { upstream_repo: repo } : {}),
|
|
98
|
+
tag_name: tag,
|
|
99
|
+
...(typeof base === 'string' && /^https:\/\/\S+$/.test(base)
|
|
100
|
+
? { download_base: base.replace(/\/+$/, '') }
|
|
101
|
+
: {}),
|
|
102
|
+
assets,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** `backends/mlx-manifest.json`, or throw why it is not one. */
|
|
106
|
+
export function parseMlxManifest(data) {
|
|
107
|
+
if (!isRecord(data))
|
|
108
|
+
throw new Error('the MLX manifest is not an object');
|
|
109
|
+
const tag = data['tag_name'];
|
|
110
|
+
if (typeof tag !== 'string' || !MLX_TAG_RE.test(tag))
|
|
111
|
+
throw new Error(`the MLX manifest has no valid tag_name (${JSON.stringify(tag)})`);
|
|
112
|
+
const repo = data['upstream_repo'];
|
|
113
|
+
if (typeof repo !== 'string' || !REPO_RE.test(repo))
|
|
114
|
+
throw new Error(`the MLX manifest has no valid upstream_repo (${JSON.stringify(repo)})`);
|
|
115
|
+
const published = data['published_at'];
|
|
116
|
+
// conf's ajv runs without formats (conf ruling 1.2): the date is checked here.
|
|
117
|
+
if (!isDateTime(published))
|
|
118
|
+
throw new Error(`the MLX manifest has no valid published_at (${JSON.stringify(published)})`);
|
|
119
|
+
const assets = sanitizeAssets(data['assets']).map(({ companion: _companion, ...asset }) => asset);
|
|
120
|
+
return { upstream_repo: repo, tag_name: tag, published_at: published, assets };
|
|
121
|
+
}
|
|
122
|
+
/** An asset core may download and run: pinned by both `sha256` and `size`. */
|
|
123
|
+
export function assetInstallable(asset) {
|
|
124
|
+
return typeof asset.sha256 === 'string' && typeof asset.size === 'number';
|
|
125
|
+
}
|
|
126
|
+
/** The mirror when the manifest names one, else the upstream release (which never carries `-a<sha>`). */
|
|
127
|
+
export function sdcppAssetUrl(manifest, asset) {
|
|
128
|
+
if (manifest.download_base)
|
|
129
|
+
return `${manifest.download_base}/${manifest.tag_name}/${asset.name}`;
|
|
130
|
+
const repo = manifest.upstream_repo ?? SDCPP_UPSTREAM_REPO;
|
|
131
|
+
return `https://github.com/${repo}/releases/download/${manifest.tag_name.replace(ATOMIC_TAG_SUFFIX_RE, '')}/${asset.name}`;
|
|
132
|
+
}
|
|
133
|
+
export function mlxAssetUrl(manifest, asset) {
|
|
134
|
+
return `https://github.com/${manifest.upstream_repo}/releases/download/${manifest.tag_name}/${asset.name}`;
|
|
135
|
+
}
|
|
136
|
+
export function manifestKinds(layout) {
|
|
137
|
+
return {
|
|
138
|
+
'sd-cpp': {
|
|
139
|
+
label: 'sd.cpp manifest',
|
|
140
|
+
url: SDCPP_MANIFEST_URL,
|
|
141
|
+
urlEnv: 'ATOMIC_SDCPP_MANIFEST_URL',
|
|
142
|
+
parse: parseSdcppManifest,
|
|
143
|
+
cacheFile: join(layout.diffusion.root, 'sdcpp-manifest.cache.json'),
|
|
144
|
+
},
|
|
145
|
+
'mlx': {
|
|
146
|
+
label: 'MLX manifest',
|
|
147
|
+
url: MLX_MANIFEST_URL,
|
|
148
|
+
urlEnv: 'ATOMIC_MLX_MANIFEST_URL',
|
|
149
|
+
parse: parseMlxManifest,
|
|
150
|
+
cacheFile: join(layout.provider('mlx').root, 'mlx-manifest.cache.json'),
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
export class EngineManifestSource {
|
|
155
|
+
kind;
|
|
156
|
+
deps;
|
|
157
|
+
/** Only a document the source itself gave; a cache fallback is retried on the next read. */
|
|
158
|
+
memory = null;
|
|
159
|
+
inFlight = null;
|
|
160
|
+
constructor(kind, deps) {
|
|
161
|
+
this.kind = kind;
|
|
162
|
+
this.deps = deps;
|
|
163
|
+
}
|
|
164
|
+
async read(options = {}) {
|
|
165
|
+
const now = this.deps.now ?? Date.now;
|
|
166
|
+
if (!options.force && this.memory && now() - this.memory.fetchedAt < ENGINE_MANIFEST_TTL_MS)
|
|
167
|
+
return {
|
|
168
|
+
manifest: this.memory.manifest,
|
|
169
|
+
source: 'remote',
|
|
170
|
+
fetched_at: this.memory.fetchedAt,
|
|
171
|
+
error: null,
|
|
172
|
+
};
|
|
173
|
+
if (this.inFlight)
|
|
174
|
+
return this.inFlight;
|
|
175
|
+
this.inFlight = this.resolve(options.proxy ?? null).finally(() => {
|
|
176
|
+
this.inFlight = null;
|
|
177
|
+
});
|
|
178
|
+
return this.inFlight;
|
|
179
|
+
}
|
|
180
|
+
/** The last accepted document on disk, without touching the source. */
|
|
181
|
+
async cached() {
|
|
182
|
+
return (await this.readCache())?.manifest ?? null;
|
|
183
|
+
}
|
|
184
|
+
sourceUrl() {
|
|
185
|
+
const override = this.deps.env[this.kind.urlEnv]?.trim();
|
|
186
|
+
return override ? override : this.kind.url;
|
|
187
|
+
}
|
|
188
|
+
async resolve(proxy) {
|
|
189
|
+
const now = this.deps.now ?? Date.now;
|
|
190
|
+
const url = this.sourceUrl();
|
|
191
|
+
let error;
|
|
192
|
+
try {
|
|
193
|
+
const manifest = this.kind.parse(JSON.parse(await this.fetchText(url, proxy)));
|
|
194
|
+
const fetchedAt = now();
|
|
195
|
+
this.memory = { fetchedAt, manifest };
|
|
196
|
+
await this.writeCache(manifest, fetchedAt);
|
|
197
|
+
return { manifest, source: 'remote', fetched_at: fetchedAt, error: null };
|
|
198
|
+
}
|
|
199
|
+
catch (e) {
|
|
200
|
+
error = `${this.kind.label} from ${url}: ${e instanceof Error ? e.message : String(e)}`;
|
|
201
|
+
}
|
|
202
|
+
const cached = await this.readCache();
|
|
203
|
+
this.deps.log?.('warn', `${error}; ${cached ? `using the copy fetched at ${new Date(cached.fetchedAt).toISOString()}` : 'none is cached'}`);
|
|
204
|
+
if (!cached)
|
|
205
|
+
return { manifest: null, source: null, fetched_at: null, error };
|
|
206
|
+
return { manifest: cached.manifest, source: 'cache', fetched_at: cached.fetchedAt, error };
|
|
207
|
+
}
|
|
208
|
+
async fetchText(url, proxy) {
|
|
209
|
+
if (url.startsWith('file://'))
|
|
210
|
+
return (this.deps.readFile ?? defaultReadFile)(fileURLToPath(url));
|
|
211
|
+
if (!url.startsWith('https://'))
|
|
212
|
+
throw new Error('the source is neither file:// nor https://');
|
|
213
|
+
const timeoutMs = this.deps.timeoutMs ?? ENGINE_MANIFEST_TIMEOUT_MS;
|
|
214
|
+
const controller = new AbortController();
|
|
215
|
+
const request = this.deps.fetchFor(proxy)(url, {
|
|
216
|
+
headers: { 'Accept': 'application/json', 'User-Agent': 'atomic-chat' },
|
|
217
|
+
signal: controller.signal,
|
|
218
|
+
});
|
|
219
|
+
const response = await withHardTimeout(request, timeoutMs, `timed out after ${timeoutMs}ms`).catch((e) => {
|
|
220
|
+
controller.abort();
|
|
221
|
+
throw e;
|
|
222
|
+
});
|
|
223
|
+
if (!response.ok)
|
|
224
|
+
throw new Error(`HTTP ${response.status}`);
|
|
225
|
+
return response.text();
|
|
226
|
+
}
|
|
227
|
+
async readCache() {
|
|
228
|
+
try {
|
|
229
|
+
const raw = JSON.parse(await (this.deps.readFile ?? defaultReadFile)(this.kind.cacheFile));
|
|
230
|
+
if (!isRecord(raw) || typeof raw['fetched_at'] !== 'number')
|
|
231
|
+
return null;
|
|
232
|
+
return { fetchedAt: raw['fetched_at'], manifest: this.kind.parse(raw['manifest']) };
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/** Write-then-rename; a failure only costs the offline fallback, so it is logged, not thrown. */
|
|
239
|
+
async writeCache(manifest, fetchedAt) {
|
|
240
|
+
const path = this.kind.cacheFile;
|
|
241
|
+
const temporary = `${path}.tmp-${process.pid}-${fetchedAt}`;
|
|
242
|
+
try {
|
|
243
|
+
await mkdir(join(path, '..'), { recursive: true });
|
|
244
|
+
await writeFile(temporary, JSON.stringify({ fetched_at: fetchedAt, manifest }), 'utf8');
|
|
245
|
+
await rename(temporary, path);
|
|
246
|
+
}
|
|
247
|
+
catch (e) {
|
|
248
|
+
await rm(temporary, { force: true }).catch(() => { });
|
|
249
|
+
this.deps.log?.('warn', `Could not cache the ${this.kind.label}: ${String(e)}`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
const defaultReadFile = (path) => nodeReadFile(path, 'utf8');
|
|
254
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/engine-builds/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which of two builds of one engine is newer (design D4). An "update" is only ever a strictly newer
|
|
3
|
+
* build, so a conf manifest rolled back to an older tag is never offered and never installed over a
|
|
4
|
+
* newer one.
|
|
5
|
+
*
|
|
6
|
+
* - sd.cpp: the build number `<n>` of `master-<n>-<sha>[-a<sha>]` (what `buildOf` in
|
|
7
|
+
* `diffusion/compat.ts` reads); at an equal number the Atomic rebuild (`-a<sha>`) is newer. Two
|
|
8
|
+
* rebuilds of one tag are equal: their shas carry no order.
|
|
9
|
+
* - MLX: `published_at` of the GitHub release. The tags are commit hashes.
|
|
10
|
+
*
|
|
11
|
+
* A build whose order cannot be read (a dev stub, an installer without `mlx-server.json`) is older
|
|
12
|
+
* than every build whose order can, so any verified build replaces it.
|
|
13
|
+
*/
|
|
14
|
+
import type { EngineBuildId } from '../contracts/index.js';
|
|
15
|
+
export interface OrderedBuild {
|
|
16
|
+
tag: string;
|
|
17
|
+
/** MLX only. */
|
|
18
|
+
published_at?: string | null;
|
|
19
|
+
}
|
|
20
|
+
/** `[build number, 1 for an Atomic rebuild]`, or `null` for a tag without a build number. */
|
|
21
|
+
export declare function sdcppBuildKey(tag: string): [number, number] | null;
|
|
22
|
+
/** Negative when `a` is older, positive when newer, zero when neither is. */
|
|
23
|
+
export declare function compareBuilds(engine: EngineBuildId, a: OrderedBuild, b: OrderedBuild): number;
|
|
24
|
+
export declare function isNewerBuild(engine: EngineBuildId, candidate: OrderedBuild, than: OrderedBuild): boolean;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which of two builds of one engine is newer (design D4). An "update" is only ever a strictly newer
|
|
3
|
+
* build, so a conf manifest rolled back to an older tag is never offered and never installed over a
|
|
4
|
+
* newer one.
|
|
5
|
+
*
|
|
6
|
+
* - sd.cpp: the build number `<n>` of `master-<n>-<sha>[-a<sha>]` (what `buildOf` in
|
|
7
|
+
* `diffusion/compat.ts` reads); at an equal number the Atomic rebuild (`-a<sha>`) is newer. Two
|
|
8
|
+
* rebuilds of one tag are equal: their shas carry no order.
|
|
9
|
+
* - MLX: `published_at` of the GitHub release. The tags are commit hashes.
|
|
10
|
+
*
|
|
11
|
+
* A build whose order cannot be read (a dev stub, an installer without `mlx-server.json`) is older
|
|
12
|
+
* than every build whose order can, so any verified build replaces it.
|
|
13
|
+
*/
|
|
14
|
+
import { isDateTime } from './manifest.js';
|
|
15
|
+
/** `[build number, 1 for an Atomic rebuild]`, or `null` for a tag without a build number. */
|
|
16
|
+
export function sdcppBuildKey(tag) {
|
|
17
|
+
const match = /^master-(\d+)-[0-9a-z]+(-a[0-9a-f]+)?$/.exec(tag);
|
|
18
|
+
if (!match)
|
|
19
|
+
return null;
|
|
20
|
+
return [Number(match[1]), match[2] ? 1 : 0];
|
|
21
|
+
}
|
|
22
|
+
function mlxKey(build) {
|
|
23
|
+
return isDateTime(build.published_at) ? [Date.parse(build.published_at)] : null;
|
|
24
|
+
}
|
|
25
|
+
function compareKeys(a, b) {
|
|
26
|
+
if (a === null || b === null)
|
|
27
|
+
return (a === null ? 0 : 1) - (b === null ? 0 : 1);
|
|
28
|
+
for (let i = 0; i < Math.max(a.length, b.length); i++) {
|
|
29
|
+
const diff = (a[i] ?? 0) - (b[i] ?? 0);
|
|
30
|
+
if (diff !== 0)
|
|
31
|
+
return diff;
|
|
32
|
+
}
|
|
33
|
+
return 0;
|
|
34
|
+
}
|
|
35
|
+
/** Negative when `a` is older, positive when newer, zero when neither is. */
|
|
36
|
+
export function compareBuilds(engine, a, b) {
|
|
37
|
+
return engine === 'sd-cpp'
|
|
38
|
+
? compareKeys(sdcppBuildKey(a.tag), sdcppBuildKey(b.tag))
|
|
39
|
+
: compareKeys(mlxKey(a), mlxKey(b));
|
|
40
|
+
}
|
|
41
|
+
export function isNewerBuild(engine, candidate, than) {
|
|
42
|
+
return compareBuilds(engine, candidate, than) > 0;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../src/engine-builds/order.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAQ1C,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,wCAAwC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,MAAM,CAAC,KAAmB;IACjC,OAAO,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,CAA2B,EAAE,CAA2B;IAC3E,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACtC,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;IAC7B,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,aAAa,CAAC,MAAqB,EAAE,CAAe,EAAE,CAAe;IACnF,OAAO,MAAM,KAAK,QAAQ;QACxB,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzD,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAqB,EAAE,SAAuB,EAAE,IAAkB;IAC7F,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;AACnD,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which build of an engine this host should install. Openspec change `move-sdcpp-mlx-install-to-core`,
|
|
3
|
+
* design D7.
|
|
4
|
+
*
|
|
5
|
+
* The sd.cpp ladder below, from `LINUX_VULKAN_MIN_VRAM_MIB` to `backendKindOf`, is
|
|
6
|
+
* `web-app/src/services/diffusion/backendMatrix.ts` of the app's `change/add-vllm-runtime` branch,
|
|
7
|
+
* verbatim but for one cast core's `noUncheckedIndexedAccess` needs (rulings/core.md 2.4: that branch, not app main, because it carries the arm64 builds and
|
|
8
|
+
* the walk down the ladder). The app fed it the deprecated Rust `get_supported_features`; the core
|
|
9
|
+
* feeds it `getSupportedFeatures`, which that function was ported from, through `sdcppHostOf`.
|
|
10
|
+
*
|
|
11
|
+
* What the app kept in `localStorage` — the `<tag>/<backend_id>` builds that unpacked but failed their
|
|
12
|
+
* probe here — lives in `<data>/diffusion/failed-backends.json`, so the desktop and `atc` skip the
|
|
13
|
+
* same ones.
|
|
14
|
+
*
|
|
15
|
+
* Original header:
|
|
16
|
+
*
|
|
17
|
+
* Which stable-diffusion.cpp prebuilt this host should run.
|
|
18
|
+
*
|
|
19
|
+
* Pure: the caller gathers the OS, arch, the feature probe from
|
|
20
|
+
* `plugin:llamacpp-upstream|get_supported_features` and the GPU list, and
|
|
21
|
+
* hands over the backend ids the manifest actually lists. The ladder mirrors
|
|
22
|
+
* the llama.cpp providers' policy in AGENTS.md §3 — a backend is a property of
|
|
23
|
+
* the pinned release, so an id the manifest does not carry is skipped rather
|
|
24
|
+
* than guessed at.
|
|
25
|
+
*
|
|
26
|
+
* Linux x64 has no CUDA prebuilt from leejet (nor from ggml-org), so NVIDIA
|
|
27
|
+
* hosts there run Vulkan until the diffusers sidecar (phase 1b) lands. Windows
|
|
28
|
+
* ROCm is not in every tag; when absent the host falls through to Vulkan.
|
|
29
|
+
*
|
|
30
|
+
* arm64 Linux and Windows on Arm get no upstream archive at all; their CUDA 13
|
|
31
|
+
* and CPU builds come from AtomicBot-ai/stable-diffusion.cpp, mirrored under
|
|
32
|
+
* the same tag (ADR 2026-10-06). CUDA 13 is the only accelerated tier there:
|
|
33
|
+
* those builds target sm_121 (GB10 / N1X) with a Hopper PTX floor.
|
|
34
|
+
*/
|
|
35
|
+
import type { DiffusionBackend } from '../contracts/index.js';
|
|
36
|
+
import type { HardwareFacts } from '../hardware/index.js';
|
|
37
|
+
/**
|
|
38
|
+
* Smallest Vulkan device worth moving a Linux host off the CPU build for.
|
|
39
|
+
* Mirrors `LINUX_VULKAN_MIN_VRAM_MIB` in
|
|
40
|
+
* `extensions/llamacpp-upstream-extension/src/index.ts` (the web app cannot
|
|
41
|
+
* import extension source); keep the two in step.
|
|
42
|
+
*/
|
|
43
|
+
export declare const LINUX_VULKAN_MIN_VRAM_MIB: number;
|
|
44
|
+
export type DiffusionHostOs = 'macos' | 'windows' | 'linux';
|
|
45
|
+
export type DiffusionHostArch = 'arm64' | 'x64';
|
|
46
|
+
export type DiffusionBackendSelectionInput = {
|
|
47
|
+
os: DiffusionHostOs;
|
|
48
|
+
arch: DiffusionHostArch;
|
|
49
|
+
features: {
|
|
50
|
+
cuda12?: boolean;
|
|
51
|
+
cuda13?: boolean;
|
|
52
|
+
vulkan?: boolean;
|
|
53
|
+
rocm?: boolean;
|
|
54
|
+
};
|
|
55
|
+
gpus: {
|
|
56
|
+
vendor?: string;
|
|
57
|
+
totalMemoryMib?: number;
|
|
58
|
+
}[];
|
|
59
|
+
/** Backend ids the manifest lists (companions included or not; they never match). */
|
|
60
|
+
available: string[];
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Every build this host can run that the manifest ships, best first; empty
|
|
64
|
+
* when there is none (Intel Macs, an arm64 host on a manifest without arm64
|
|
65
|
+
* builds, an empty manifest). The installer walks down it when a build
|
|
66
|
+
* unpacks but fails the core's probe — upstream's Windows ROCm archive on a
|
|
67
|
+
* host without the HIP SDK it links against — instead of stopping there.
|
|
68
|
+
*/
|
|
69
|
+
export declare function diffusionBackendLadder(input: DiffusionBackendSelectionInput): string[];
|
|
70
|
+
/**
|
|
71
|
+
* The backend id to install, or `null` when this host cannot run any build
|
|
72
|
+
* the manifest ships: the top of `diffusionBackendLadder`.
|
|
73
|
+
*/
|
|
74
|
+
export declare function selectDiffusionBackend(input: DiffusionBackendSelectionInput): string | null;
|
|
75
|
+
/** The companion archive a backend needs unpacked beside it, if any. */
|
|
76
|
+
export declare function companionFor(backendId: string): 'win-cudart-cu12' | null;
|
|
77
|
+
/** The compute backend a manifest id was built for, for the install record. */
|
|
78
|
+
export declare function backendKindOf(backendId: string): DiffusionBackend;
|
|
79
|
+
/** What the ladder reads, from the core's own facts (the override applied). */
|
|
80
|
+
export declare function sdcppHostOf(facts: Pick<HardwareFacts, 'osType' | 'arch' | 'cpuExtensions' | 'gpus'>): Omit<DiffusionBackendSelectionInput, 'available' | 'os'> & {
|
|
81
|
+
os: string;
|
|
82
|
+
};
|
|
83
|
+
/** The key a failed probe is remembered under: a new tag gets a fresh try. */
|
|
84
|
+
export declare const failedBackendKey: (tag: string, backendId: string) => string;
|
|
85
|
+
export interface SdcppHostChoice {
|
|
86
|
+
/** What this host would install, best first, without the builds that already failed on this tag. */
|
|
87
|
+
ladder: string[];
|
|
88
|
+
backend_id: string | null;
|
|
89
|
+
/** Why `backend_id` is `null`. */
|
|
90
|
+
reason: string | null;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The ladder for `manifest`, leaving out the builds that failed here on this tag; when that leaves
|
|
94
|
+
* nothing, the last build is offered again, so a retry ends on its own error rather than on "no build
|
|
95
|
+
* for this computer" (the app's `backendLadderForHost`).
|
|
96
|
+
*/
|
|
97
|
+
export declare function sdcppHostChoice(host: Omit<DiffusionBackendSelectionInput, 'available' | 'os'> & {
|
|
98
|
+
os: string;
|
|
99
|
+
}, manifest: {
|
|
100
|
+
tag_name: string;
|
|
101
|
+
assets: readonly {
|
|
102
|
+
backend: string;
|
|
103
|
+
companion?: boolean;
|
|
104
|
+
}[];
|
|
105
|
+
}, failed: ReadonlySet<string>): SdcppHostChoice;
|
|
106
|
+
/** The app kept "a few tags' worth of rungs"; older entries name tags no manifest serves. */
|
|
107
|
+
export declare const FAILED_BACKENDS_LIMIT = 16;
|
|
108
|
+
/** `<tag>/<backend_id>` pairs that failed their probe on this machine; empty when unreadable. */
|
|
109
|
+
export declare function readFailedBackends(file: string): Promise<Set<string>>;
|
|
110
|
+
/** Remember one more failed pair, newest last; a failed write only costs a repeated download. */
|
|
111
|
+
export declare function rememberFailedBackend(file: string, tag: string, backendId: string): Promise<void>;
|
|
112
|
+
/** MLX ships one build, for Apple Silicon; the manifest only has to list it. */
|
|
113
|
+
export declare function mlxHostChoice(host: {
|
|
114
|
+
os: string;
|
|
115
|
+
arch: string;
|
|
116
|
+
}, manifest: {
|
|
117
|
+
assets: readonly {
|
|
118
|
+
backend: string;
|
|
119
|
+
}[];
|
|
120
|
+
} | null): {
|
|
121
|
+
backend_id: string | null;
|
|
122
|
+
reason: string | null;
|
|
123
|
+
};
|