@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,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which PrismML build fits this host — the `atomic-prism` provider's half of `select/`, pure.
|
|
3
|
+
*
|
|
4
|
+
* Backend ids are the stable ones of `atomic-chat-conf/backends/atomic-prism-manifest.json`
|
|
5
|
+
* (`macos-arm64`, `linux-cuda-13.3-x64`, `win-hip-radeon-x64`, …). The order is the plan's:
|
|
6
|
+
* - macOS arm64: Metal (the `macos-arm64` pack); macOS x64: its single CPU pack;
|
|
7
|
+
* - Windows/Linux with NVIDIA: CUDA 13.3 / 12.x by driver and architecture → Vulkan → CPU;
|
|
8
|
+
* - AMD: ROCm (Linux, amdkfd + runtime) / HIP (Windows, PCI table) → Vulkan → CPU;
|
|
9
|
+
* - Windows/Linux arm64: deferred, nothing offered.
|
|
10
|
+
* Driver floors and the CUDA 13 architecture floor are the other providers' (`features.ts`); Linux
|
|
11
|
+
* ROCm uses the fork's host probe. Which assets are offered at all (`approved` vs `candidate`,
|
|
12
|
+
* `min_core_version`, `withdrawn`) is the catalog's decision, not this module's.
|
|
13
|
+
*/
|
|
14
|
+
import type { RocmHostProbe } from '../turboquant.js';
|
|
15
|
+
import type { BackendFeatures, BackendVersion, GpuProbeInfo, IdealBackendResult, SupportedFeatures, UpdateCheckResult } from '../types.js';
|
|
16
|
+
/** Below this much VRAM a Vulkan or ROCm offload is not worth it; CUDA is always preferred. */
|
|
17
|
+
export declare const PRISM_GPU_MIN_VRAM_MIB: number;
|
|
18
|
+
/**
|
|
19
|
+
* Supported features: the shared CUDA/Vulkan/Windows-ROCm rules, plus Linux ROCm from the host
|
|
20
|
+
* probe (PrismML publishes a Linux ROCm 7.2 build, ggml-org does not).
|
|
21
|
+
*/
|
|
22
|
+
export declare function getPrismSupportedFeatures(osType: string, cpuExtensions: readonly string[], gpus: readonly GpuProbeInfo[], rocm?: RocmHostProbe): SupportedFeatures;
|
|
23
|
+
/** Backend ids PrismML publishes for `<osType>-<arch>` that this host's features allow. */
|
|
24
|
+
export declare function determinePrismSupportedBackends(osType: string, arch: string, features: BackendFeatures): string[];
|
|
25
|
+
/** Category of a Prism backend id, for the optimal record and the priority table. */
|
|
26
|
+
export declare function getPrismBackendCategory(backend: string): string | null;
|
|
27
|
+
/** Newest build first, then the newer CUDA minor, then install order, then the id. */
|
|
28
|
+
export declare function comparePrismBackendsForSort(left: BackendVersion, right: BackendVersion): number;
|
|
29
|
+
/** Remote + installed, de-duplicated by `<tag>/<id>`, newest first. */
|
|
30
|
+
export declare function mergePrismBackends(remote: readonly BackendVersion[], local: readonly BackendVersion[]): BackendVersion[];
|
|
31
|
+
export declare function filterPrismBackendsBySupport(backends: readonly BackendVersion[], supported: readonly string[]): BackendVersion[];
|
|
32
|
+
/** The newest build of the first category present; `''` for an empty list. */
|
|
33
|
+
export declare function determineBestPrismBackend(backends: readonly BackendVersion[], gpus: readonly GpuProbeInfo[]): string;
|
|
34
|
+
export declare function findLatestPrismVersionForBackend(list: readonly BackendVersion[], backendType: string): string | null;
|
|
35
|
+
/**
|
|
36
|
+
* A newer build of the same backend id. Builds compare by the number in `prism-b<build>-…`; a
|
|
37
|
+
* current tag that is not a Prism tag is treated as older than any listed one.
|
|
38
|
+
*/
|
|
39
|
+
export declare function checkPrismBackendForUpdates(current: string, list: readonly BackendVersion[]): UpdateCheckResult;
|
|
40
|
+
/**
|
|
41
|
+
* The ideal Prism backend type. macOS has nothing to detect (the advisor answers `mac` first); on
|
|
42
|
+
* Windows/Linux the first runnable GPU family in the plan's order wins. A GPU-capable host with no
|
|
43
|
+
* GPU build offered is `cpu-optimal`, not a failure: the catalog always has the bundled baseline, so
|
|
44
|
+
* "nothing offered" means "nothing approved for this GPU yet", and a later recheck will recommend it.
|
|
45
|
+
*/
|
|
46
|
+
export declare function detectIdealPrismBackendType(input: {
|
|
47
|
+
osType: string;
|
|
48
|
+
arch: string;
|
|
49
|
+
cpuExtensions: readonly string[];
|
|
50
|
+
gpus: readonly GpuProbeInfo[];
|
|
51
|
+
rocm?: RocmHostProbe;
|
|
52
|
+
listAvailableBackends: () => Promise<BackendVersion[]>;
|
|
53
|
+
onWarn?: (message: string) => void;
|
|
54
|
+
}): Promise<IdealBackendResult>;
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which PrismML build fits this host — the `atomic-prism` provider's half of `select/`, pure.
|
|
3
|
+
*
|
|
4
|
+
* Backend ids are the stable ones of `atomic-chat-conf/backends/atomic-prism-manifest.json`
|
|
5
|
+
* (`macos-arm64`, `linux-cuda-13.3-x64`, `win-hip-radeon-x64`, …). The order is the plan's:
|
|
6
|
+
* - macOS arm64: Metal (the `macos-arm64` pack); macOS x64: its single CPU pack;
|
|
7
|
+
* - Windows/Linux with NVIDIA: CUDA 13.3 / 12.x by driver and architecture → Vulkan → CPU;
|
|
8
|
+
* - AMD: ROCm (Linux, amdkfd + runtime) / HIP (Windows, PCI table) → Vulkan → CPU;
|
|
9
|
+
* - Windows/Linux arm64: deferred, nothing offered.
|
|
10
|
+
* Driver floors and the CUDA 13 architecture floor are the other providers' (`features.ts`); Linux
|
|
11
|
+
* ROCm uses the fork's host probe. Which assets are offered at all (`approved` vs `candidate`,
|
|
12
|
+
* `min_core_version`, `withdrawn`) is the catalog's decision, not this module's.
|
|
13
|
+
*/
|
|
14
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
15
|
+
import { rocmSupportedLinux } from '../turboquant.js';
|
|
16
|
+
import { stripBom } from '../version.js';
|
|
17
|
+
import { prismTagBuild } from '../catalog/index.js';
|
|
18
|
+
import { getSupportedFeatures, isAmdGpu, normalizeFeatures } from './features.js';
|
|
19
|
+
import { integratedGpuOnly } from './tiers.js';
|
|
20
|
+
/** Below this much VRAM a Vulkan or ROCm offload is not worth it; CUDA is always preferred. */
|
|
21
|
+
export const PRISM_GPU_MIN_VRAM_MIB = 2 * 1024;
|
|
22
|
+
/**
|
|
23
|
+
* Supported features: the shared CUDA/Vulkan/Windows-ROCm rules, plus Linux ROCm from the host
|
|
24
|
+
* probe (PrismML publishes a Linux ROCm 7.2 build, ggml-org does not).
|
|
25
|
+
*/
|
|
26
|
+
export function getPrismSupportedFeatures(osType, cpuExtensions, gpus, rocm = { gfxTargetVersions: [], hasRuntime: false }) {
|
|
27
|
+
const features = getSupportedFeatures(osType, cpuExtensions, gpus);
|
|
28
|
+
delete features.opencl;
|
|
29
|
+
if (osType === 'linux')
|
|
30
|
+
features.rocm = rocmSupportedLinux(gpus.some(isAmdGpu), rocm);
|
|
31
|
+
return features;
|
|
32
|
+
}
|
|
33
|
+
/** Backend ids PrismML publishes for `<osType>-<arch>` that this host's features allow. */
|
|
34
|
+
export function determinePrismSupportedBackends(osType, arch, features) {
|
|
35
|
+
const sysType = `${osType}-${arch}`;
|
|
36
|
+
switch (sysType) {
|
|
37
|
+
case 'macos-aarch64':
|
|
38
|
+
case 'macos-arm64':
|
|
39
|
+
return ['macos-arm64'];
|
|
40
|
+
case 'macos-x86_64':
|
|
41
|
+
case 'macos-x86':
|
|
42
|
+
return ['macos-x64'];
|
|
43
|
+
case 'linux-x86_64':
|
|
44
|
+
case 'linux-x86': {
|
|
45
|
+
const out = ['linux-cpu-x64'];
|
|
46
|
+
if (features.cuda12)
|
|
47
|
+
out.push('linux-cuda-12.4-x64', 'linux-cuda-12.8-x64');
|
|
48
|
+
if (features.cuda13)
|
|
49
|
+
out.push('linux-cuda-13.3-x64');
|
|
50
|
+
if (features.rocm)
|
|
51
|
+
out.push('linux-rocm-7.2-x64');
|
|
52
|
+
if (features.vulkan)
|
|
53
|
+
out.push('linux-vulkan-x64');
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
case 'windows-x86_64':
|
|
57
|
+
case 'windows-x86': {
|
|
58
|
+
const out = ['win-cpu-x64'];
|
|
59
|
+
if (features.cuda12)
|
|
60
|
+
out.push('win-cuda-12.4-x64');
|
|
61
|
+
if (features.cuda13)
|
|
62
|
+
out.push('win-cuda-13.3-x64');
|
|
63
|
+
if (features.rocm)
|
|
64
|
+
out.push('win-hip-radeon-x64');
|
|
65
|
+
if (features.vulkan)
|
|
66
|
+
out.push('win-vulkan-x64');
|
|
67
|
+
return out;
|
|
68
|
+
}
|
|
69
|
+
case 'linux-aarch64':
|
|
70
|
+
case 'linux-arm64':
|
|
71
|
+
case 'windows-aarch64':
|
|
72
|
+
case 'windows-arm64':
|
|
73
|
+
return [];
|
|
74
|
+
default:
|
|
75
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', `Unsupported system type: ${sysType}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** Category of a Prism backend id, for the optimal record and the priority table. */
|
|
79
|
+
export function getPrismBackendCategory(backend) {
|
|
80
|
+
const id = stripBom(backend);
|
|
81
|
+
if (/-cuda-13(\.\d+)?-/.test(id))
|
|
82
|
+
return 'cuda-cu13.0';
|
|
83
|
+
if (/-cuda-12(\.\d+)?-/.test(id))
|
|
84
|
+
return 'cuda-cu12.0';
|
|
85
|
+
if (id.includes('-rocm-') || id.includes('-hip-'))
|
|
86
|
+
return 'rocm';
|
|
87
|
+
if (id.includes('-vulkan-'))
|
|
88
|
+
return 'vulkan';
|
|
89
|
+
if (id.includes('-cpu-'))
|
|
90
|
+
return 'common_cpus';
|
|
91
|
+
if (id === 'macos-arm64')
|
|
92
|
+
return 'arm64';
|
|
93
|
+
if (id === 'macos-x64')
|
|
94
|
+
return 'x64';
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
/** CUDA minor version of an id (`12.8` → 8), so the newer toolkit wins inside one family. */
|
|
98
|
+
function cudaMinor(backend) {
|
|
99
|
+
const match = /-cuda-\d+\.(\d+)-/.exec(backend);
|
|
100
|
+
return match ? Number(match[1]) : 0;
|
|
101
|
+
}
|
|
102
|
+
/** Newest build first, then the newer CUDA minor, then install order, then the id. */
|
|
103
|
+
export function comparePrismBackendsForSort(left, right) {
|
|
104
|
+
const l = prismTagBuild(stripBom(left.version));
|
|
105
|
+
const r = prismTagBuild(stripBom(right.version));
|
|
106
|
+
if (l !== null && r !== null && l !== r)
|
|
107
|
+
return r - l;
|
|
108
|
+
if (l !== null && r === null)
|
|
109
|
+
return -1;
|
|
110
|
+
if (l === null && r !== null)
|
|
111
|
+
return 1;
|
|
112
|
+
const minor = cudaMinor(right.backend) - cudaMinor(left.backend);
|
|
113
|
+
if (minor !== 0)
|
|
114
|
+
return minor;
|
|
115
|
+
const order = (right.order ?? 0) - (left.order ?? 0);
|
|
116
|
+
if (order !== 0)
|
|
117
|
+
return order;
|
|
118
|
+
return left.backend < right.backend ? -1 : left.backend > right.backend ? 1 : 0;
|
|
119
|
+
}
|
|
120
|
+
/** Remote + installed, de-duplicated by `<tag>/<id>`, newest first. */
|
|
121
|
+
export function mergePrismBackends(remote, local) {
|
|
122
|
+
const byKey = new Map();
|
|
123
|
+
for (const entry of [...local, ...remote]) {
|
|
124
|
+
const key = `${stripBom(entry.version)}/${stripBom(entry.backend)}`;
|
|
125
|
+
if (!byKey.has(key))
|
|
126
|
+
byKey.set(key, entry);
|
|
127
|
+
}
|
|
128
|
+
return [...byKey.values()].sort(comparePrismBackendsForSort);
|
|
129
|
+
}
|
|
130
|
+
export function filterPrismBackendsBySupport(backends, supported) {
|
|
131
|
+
const set = new Set(supported);
|
|
132
|
+
return backends.filter((b) => set.has(stripBom(b.backend)));
|
|
133
|
+
}
|
|
134
|
+
const PRIORITY_ENOUGH_VRAM = ['cuda-cu13.0', 'cuda-cu12.0', 'rocm', 'vulkan', 'arm64', 'common_cpus', 'x64'];
|
|
135
|
+
const PRIORITY_LOW_VRAM = ['cuda-cu13.0', 'cuda-cu12.0', 'arm64', 'common_cpus', 'x64', 'rocm', 'vulkan'];
|
|
136
|
+
/** The newest build of the first category present; `''` for an empty list. */
|
|
137
|
+
export function determineBestPrismBackend(backends, gpus) {
|
|
138
|
+
if (backends.length === 0)
|
|
139
|
+
return '';
|
|
140
|
+
const enough = gpus.some((gpu) => (gpu.total_memory ?? 0) >= PRISM_GPU_MIN_VRAM_MIB) && !integratedGpuOnly(gpus);
|
|
141
|
+
for (const category of enough ? PRIORITY_ENOUGH_VRAM : PRIORITY_LOW_VRAM) {
|
|
142
|
+
const best = backends
|
|
143
|
+
.filter((b) => getPrismBackendCategory(b.backend) === category)
|
|
144
|
+
.sort(comparePrismBackendsForSort)[0];
|
|
145
|
+
if (best)
|
|
146
|
+
return `${stripBom(best.version)}/${stripBom(best.backend)}`;
|
|
147
|
+
}
|
|
148
|
+
const fallback = backends[0];
|
|
149
|
+
return `${stripBom(fallback.version)}/${stripBom(fallback.backend)}`;
|
|
150
|
+
}
|
|
151
|
+
export function findLatestPrismVersionForBackend(list, backendType) {
|
|
152
|
+
const best = list.filter((b) => stripBom(b.backend) === backendType).sort(comparePrismBackendsForSort)[0];
|
|
153
|
+
return best ? `${stripBom(best.version)}/${stripBom(best.backend)}` : null;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* A newer build of the same backend id. Builds compare by the number in `prism-b<build>-…`; a
|
|
157
|
+
* current tag that is not a Prism tag is treated as older than any listed one.
|
|
158
|
+
*/
|
|
159
|
+
export function checkPrismBackendForUpdates(current, list) {
|
|
160
|
+
const parts = stripBom(current).split('/');
|
|
161
|
+
if (parts.length !== 2 || !parts[0] || !parts[1]) {
|
|
162
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', `Invalid current backend format: ${current}`);
|
|
163
|
+
}
|
|
164
|
+
const [tag, backend] = parts;
|
|
165
|
+
const none = { update_needed: false, new_version: '0', target_backend: null };
|
|
166
|
+
const target = findLatestPrismVersionForBackend(list, backend);
|
|
167
|
+
if (!target)
|
|
168
|
+
return none;
|
|
169
|
+
const targetTag = target.split('/')[0] ?? '';
|
|
170
|
+
const currentBuild = prismTagBuild(tag) ?? -1;
|
|
171
|
+
const targetBuild = prismTagBuild(targetTag) ?? -1;
|
|
172
|
+
if (targetBuild <= currentBuild)
|
|
173
|
+
return none;
|
|
174
|
+
return { update_needed: true, new_version: targetTag, target_backend: target };
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* The ideal Prism backend type. macOS has nothing to detect (the advisor answers `mac` first); on
|
|
178
|
+
* Windows/Linux the first runnable GPU family in the plan's order wins. A GPU-capable host with no
|
|
179
|
+
* GPU build offered is `cpu-optimal`, not a failure: the catalog always has the bundled baseline, so
|
|
180
|
+
* "nothing offered" means "nothing approved for this GPU yet", and a later recheck will recommend it.
|
|
181
|
+
*/
|
|
182
|
+
export async function detectIdealPrismBackendType(input) {
|
|
183
|
+
const { osType, gpus } = input;
|
|
184
|
+
if (osType !== 'windows' && osType !== 'linux')
|
|
185
|
+
return { kind: 'cpu-optimal' };
|
|
186
|
+
try {
|
|
187
|
+
const features = normalizeFeatures(getPrismSupportedFeatures(osType, input.cpuExtensions, gpus, input.rocm));
|
|
188
|
+
const catalog = await input.listAvailableBackends();
|
|
189
|
+
const ids = new Set(catalog.map((b) => stripBom(b.backend)));
|
|
190
|
+
const pick = (...candidates) => candidates.find((id) => ids.has(id)) ?? null;
|
|
191
|
+
const worthIt = gpus.some((gpu) => (gpu.total_memory ?? 0) >= PRISM_GPU_MIN_VRAM_MIB) && !integratedGpuOnly(gpus);
|
|
192
|
+
const prefix = osType === 'windows' ? 'win' : 'linux';
|
|
193
|
+
const cuda13 = pick(`${prefix}-cuda-13.3-x64`);
|
|
194
|
+
const cuda12 = osType === 'windows' ? pick('win-cuda-12.4-x64') : pick('linux-cuda-12.8-x64', 'linux-cuda-12.4-x64');
|
|
195
|
+
const amd = pick(osType === 'windows' ? 'win-hip-radeon-x64' : 'linux-rocm-7.2-x64');
|
|
196
|
+
const vulkan = pick(`${prefix}-vulkan-x64`);
|
|
197
|
+
if (features.cuda13 && cuda13)
|
|
198
|
+
return { kind: 'gpu', backend: cuda13 };
|
|
199
|
+
if (features.cuda12 && cuda12)
|
|
200
|
+
return { kind: 'gpu', backend: cuda12 };
|
|
201
|
+
if (features.rocm && worthIt && amd)
|
|
202
|
+
return { kind: 'gpu', backend: amd };
|
|
203
|
+
if (features.vulkan && worthIt && vulkan)
|
|
204
|
+
return { kind: 'gpu', backend: vulkan };
|
|
205
|
+
return { kind: 'cpu-optimal' };
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
input.onWarn?.(`detectIdealPrismBackendType: ${err instanceof Error ? err.message : String(err)}`);
|
|
209
|
+
return { kind: 'detection-failed' };
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=prism.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prism.js","sourceRoot":"","sources":["../../../src/backend/select/prism.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,9 +25,11 @@ export declare function shouldApplyBundledBackend(versionBackendAfterRecovery: s
|
|
|
25
25
|
* Backend ids behind the static "Latest <variant>" dropdown entries, unfiltered by hardware on
|
|
26
26
|
* purpose (a manual override). Windows offers the minor-less CUDA / ROCm family ids; Linux CPU and
|
|
27
27
|
* Vulkan; macOS only `macos-arm64`, and only when the bundled (or current) build is that arch — an
|
|
28
|
-
* Intel host gets no sentinel because `latest/macos-x64` resolves to nothing.
|
|
28
|
+
* Intel host gets no sentinel because `latest/macos-x64` resolves to nothing. On arm64 (by `arch`, or
|
|
29
|
+
* the current build when the caller does not know the arch) Windows offers CPU, OpenCL and CUDA 13,
|
|
30
|
+
* Linux CPU, Vulkan and CUDA 13.
|
|
29
31
|
*/
|
|
30
|
-
export declare function staticLatestVariants(osType: string, macHostVersionBackend?: string | null): string[];
|
|
32
|
+
export declare function staticLatestVariants(osType: string, macHostVersionBackend?: string | null, arch?: string): string[];
|
|
31
33
|
/** `latest/<backend>` sentinels with their "Latest <label>" names. */
|
|
32
34
|
export declare function latestBackendOptions(variants: readonly string[]): BackendOption[];
|
|
33
35
|
/**
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Nothing here reads hardware, disk or network: the persisted values, the installed list, the
|
|
7
7
|
* probe result and the catalog are parameters.
|
|
8
8
|
*/
|
|
9
|
-
import { friendlyBackendLabel, WIN_ROCM_FAMILY_ID } from '../catalog/index.js';
|
|
9
|
+
import { archSuffixFor, friendlyBackendLabel, WIN_ROCM_FAMILY_ID } from '../catalog/index.js';
|
|
10
10
|
import { isConcreteVersionBackend, parseBuildNumber, stripBom } from '../version.js';
|
|
11
11
|
import { determineBestBackend } from './categories.js';
|
|
12
12
|
// ---------------------------------------------------------------------------------------------
|
|
@@ -40,13 +40,25 @@ export function shouldApplyBundledBackend(versionBackendAfterRecovery) {
|
|
|
40
40
|
* Backend ids behind the static "Latest <variant>" dropdown entries, unfiltered by hardware on
|
|
41
41
|
* purpose (a manual override). Windows offers the minor-less CUDA / ROCm family ids; Linux CPU and
|
|
42
42
|
* Vulkan; macOS only `macos-arm64`, and only when the bundled (or current) build is that arch — an
|
|
43
|
-
* Intel host gets no sentinel because `latest/macos-x64` resolves to nothing.
|
|
43
|
+
* Intel host gets no sentinel because `latest/macos-x64` resolves to nothing. On arm64 (by `arch`, or
|
|
44
|
+
* the current build when the caller does not know the arch) Windows offers CPU, OpenCL and CUDA 13,
|
|
45
|
+
* Linux CPU, Vulkan and CUDA 13.
|
|
44
46
|
*/
|
|
45
|
-
export function staticLatestVariants(osType, macHostVersionBackend) {
|
|
46
|
-
|
|
47
|
+
export function staticLatestVariants(osType, macHostVersionBackend, arch) {
|
|
48
|
+
const currentId = stripBom(macHostVersionBackend ?? '')
|
|
49
|
+
.split('/')[1]
|
|
50
|
+
?.trim() ?? '';
|
|
51
|
+
const arm64 = arch ? archSuffixFor(arch) === 'arm64' : currentId.endsWith('-arm64');
|
|
52
|
+
if (osType === 'windows') {
|
|
53
|
+
if (arm64)
|
|
54
|
+
return ['win-cpu-arm64', 'win-opencl-adreno-arm64', 'win-cuda-13-arm64'];
|
|
47
55
|
return ['win-cpu-x64', 'win-cuda-12-x64', 'win-cuda-13-x64', WIN_ROCM_FAMILY_ID, 'win-vulkan-x64'];
|
|
48
|
-
|
|
56
|
+
}
|
|
57
|
+
if (osType === 'linux') {
|
|
58
|
+
if (arm64)
|
|
59
|
+
return ['linux-cpu-arm64', 'linux-vulkan-arm64', 'linux-cuda-13-arm64'];
|
|
49
60
|
return ['linux-cpu-x64', 'linux-vulkan-x64'];
|
|
61
|
+
}
|
|
50
62
|
if (osType === 'macos') {
|
|
51
63
|
const variant = stripBom(macHostVersionBackend ?? '')
|
|
52
64
|
.split('/')[1]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../src/backend/select/recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../src/backend/select/recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,8 @@ export declare function hasDiscreteGpu(gpus: readonly GpuProbeInfo[]): boolean;
|
|
|
16
16
|
export declare function integratedGpuOnly(gpus: readonly GpuProbeInfo[]): boolean;
|
|
17
17
|
/**
|
|
18
18
|
* Whether the hardware probe corroborates that `backendType` could use a GPU here: CUDA needs an
|
|
19
|
-
* NVIDIA GPU, Vulkan any GPU, anything else (CPU) is trivially corroborated so the
|
|
20
|
-
* through. Vendor strings as `tauri-plugin-hardware/src/types.rs` serialises them.
|
|
19
|
+
* NVIDIA GPU, OpenCL an Adreno, Vulkan any GPU, anything else (CPU) is trivially corroborated so the
|
|
20
|
+
* picker can fall through. Vendor strings as `tauri-plugin-hardware/src/types.rs` serialises them.
|
|
21
21
|
*/
|
|
22
22
|
export declare function hasCorroboratingGpu(backendType: string, gpus: readonly GpuProbeInfo[]): boolean;
|
|
23
23
|
/**
|
|
@@ -42,23 +42,30 @@ export declare function pickFirstWorkingTier(tiers: readonly string[], probe: (t
|
|
|
42
42
|
/**
|
|
43
43
|
* App regex for "any GPU backend in the catalog", kept verbatim. Note the `-` required right after
|
|
44
44
|
* the first digit: `win-cuda-13.3-x64` and `win-rocm-10.0-x64` do NOT match, only Vulkan ids do.
|
|
45
|
-
* It still works because ggml-org always publishes a Vulkan Windows asset next to CUDA.
|
|
45
|
+
* It still works because ggml-org always publishes a Vulkan Windows asset next to CUDA. On Windows
|
|
46
|
+
* arm64 there is no Vulkan asset, so the OpenCL id (`win-opencl-adreno-arm64`) is matched as well.
|
|
46
47
|
*/
|
|
47
48
|
export declare function isGpuBackendId(backend: string): boolean;
|
|
48
49
|
/**
|
|
49
|
-
* Windows GPU tiers in preference order: CUDA 13, CUDA 12,
|
|
50
|
-
*
|
|
51
|
-
*
|
|
50
|
+
* Windows GPU tiers in preference order: CUDA 13, CUDA 12, OpenCL (Adreno; not VRAM-gated, the GPU
|
|
51
|
+
* shares system RAM), ROCm (VRAM-gated; `features.rocm` is already PCI-gated), Vulkan (VRAM-gated,
|
|
52
|
+
* never on integrated-only hosts). Each tier is the first catalog entry matching its pattern — the
|
|
53
|
+
* catalog is sorted newest first, so that is the newest tag.
|
|
52
54
|
*/
|
|
53
55
|
export declare function windowsGpuTiers(features: BackendFeatures, available: readonly BackendVersion[], archSuffix: ArchSuffix, gpus: readonly GpuProbeInfo[]): string[];
|
|
56
|
+
/**
|
|
57
|
+
* Linux arm64 GPU tiers in preference order: CUDA 13 (NVIDIA GB10 / Grace; the newest
|
|
58
|
+
* `linux-cuda-13.N-arm64` in the catalog), then Vulkan (VRAM-gated, as on Linux x64).
|
|
59
|
+
*/
|
|
60
|
+
export declare function linuxArm64GpuTiers(features: BackendFeatures, available: readonly BackendVersion[], gpus: readonly GpuProbeInfo[]): string[];
|
|
54
61
|
export interface DetectIdealBackendInput {
|
|
55
62
|
osType: string;
|
|
56
63
|
arch: string;
|
|
57
64
|
cpuExtensions: readonly string[];
|
|
58
65
|
gpus: readonly GpuProbeInfo[];
|
|
59
|
-
/** Windows
|
|
66
|
+
/** Windows and Linux arm64: the hardware-gated catalog (`listSupportedBackends` + `filterBackendsBySupport`). */
|
|
60
67
|
listAvailableBackends: () => Promise<BackendVersion[]>;
|
|
61
|
-
/** Windows
|
|
68
|
+
/** Windows and Linux arm64: `tierEnumeratesDevices` bound to this host. */
|
|
62
69
|
probeTier: (tier: string) => Promise<TierHealth>;
|
|
63
70
|
onWarn?: (message: string) => void;
|
|
64
71
|
}
|
|
@@ -67,10 +74,12 @@ export interface DetectIdealBackendInput {
|
|
|
67
74
|
* a GPU-capable host with no GPU backend in the catalog is `detection-failed` (the manifest was
|
|
68
75
|
* unreachable — ggml-org always publishes CUDA + Vulkan Windows assets), otherwise `cpu-optimal`.
|
|
69
76
|
* Linux x64: Vulkan when the loader enumerates a device with ≥ 2 GiB; a GPU the loader cannot see
|
|
70
|
-
* is `detection-failed` (ask again next launch, ATO-464); no accelerator is `cpu-optimal`.
|
|
77
|
+
* is `detection-failed` (ask again next launch, ATO-464); no accelerator is `cpu-optimal`. Linux
|
|
78
|
+
* arm64: the first of CUDA 13 / Vulkan that survives the probe; a CUDA-capable host with no CUDA
|
|
79
|
+
* build in the catalog, or a GPU neither CUDA nor Vulkan sees, is `detection-failed`. macOS and
|
|
71
80
|
* everything else: `cpu-optimal`. Any thrown error is `detection-failed`.
|
|
72
81
|
*
|
|
73
|
-
* The caller wraps this in its 20 s `withTimeout` (timeout → `detection-failed`) and, on Windows
|
|
74
|
-
* supplies `listAvailableBackends` / `probeTier`.
|
|
82
|
+
* The caller wraps this in its 20 s `withTimeout` (timeout → `detection-failed`) and, on Windows
|
|
83
|
+
* and Linux arm64, supplies `listAvailableBackends` / `probeTier`.
|
|
75
84
|
*/
|
|
76
85
|
export declare function detectIdealBackendType(input: DetectIdealBackendInput): Promise<IdealBackendResult>;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* and the catalog are parameters; `--list-devices` is an injected function.
|
|
8
8
|
*/
|
|
9
9
|
import { hasEnoughGpuMemory } from './categories.js';
|
|
10
|
-
import { getSupportedFeatures, normalizeFeatures } from './features.js';
|
|
10
|
+
import { getSupportedFeatures, isAdrenoGpu, normalizeFeatures } from './features.js';
|
|
11
11
|
// ---------------------------------------------------------------------------------------------
|
|
12
12
|
// Ideal backend detection (determineBestBackend / detectIdealBackendType / tierEnumeratesDevices)
|
|
13
13
|
// ---------------------------------------------------------------------------------------------
|
|
@@ -25,12 +25,14 @@ export function integratedGpuOnly(gpus) {
|
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Whether the hardware probe corroborates that `backendType` could use a GPU here: CUDA needs an
|
|
28
|
-
* NVIDIA GPU, Vulkan any GPU, anything else (CPU) is trivially corroborated so the
|
|
29
|
-
* through. Vendor strings as `tauri-plugin-hardware/src/types.rs` serialises them.
|
|
28
|
+
* NVIDIA GPU, OpenCL an Adreno, Vulkan any GPU, anything else (CPU) is trivially corroborated so the
|
|
29
|
+
* picker can fall through. Vendor strings as `tauri-plugin-hardware/src/types.rs` serialises them.
|
|
30
30
|
*/
|
|
31
31
|
export function hasCorroboratingGpu(backendType, gpus) {
|
|
32
32
|
if (backendType.includes('cuda'))
|
|
33
33
|
return gpus.some((g) => g.vendor === 'NVIDIA');
|
|
34
|
+
if (backendType.includes('opencl'))
|
|
35
|
+
return gpus.some(isAdrenoGpu);
|
|
34
36
|
if (backendType.includes('vulkan'))
|
|
35
37
|
return gpus.length > 0;
|
|
36
38
|
return true;
|
|
@@ -95,20 +97,23 @@ export async function pickFirstWorkingTier(tiers, probe) {
|
|
|
95
97
|
/**
|
|
96
98
|
* App regex for "any GPU backend in the catalog", kept verbatim. Note the `-` required right after
|
|
97
99
|
* the first digit: `win-cuda-13.3-x64` and `win-rocm-10.0-x64` do NOT match, only Vulkan ids do.
|
|
98
|
-
* It still works because ggml-org always publishes a Vulkan Windows asset next to CUDA.
|
|
100
|
+
* It still works because ggml-org always publishes a Vulkan Windows asset next to CUDA. On Windows
|
|
101
|
+
* arm64 there is no Vulkan asset, so the OpenCL id (`win-opencl-adreno-arm64`) is matched as well.
|
|
99
102
|
*/
|
|
100
103
|
export function isGpuBackendId(backend) {
|
|
101
|
-
return /-(cuda-\d|rocm-\d|vulkan)-/.test(backend);
|
|
104
|
+
return /-(cuda-\d|rocm-\d|vulkan|opencl)-/.test(backend);
|
|
102
105
|
}
|
|
103
106
|
/**
|
|
104
|
-
* Windows GPU tiers in preference order: CUDA 13, CUDA 12,
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
+
* Windows GPU tiers in preference order: CUDA 13, CUDA 12, OpenCL (Adreno; not VRAM-gated, the GPU
|
|
108
|
+
* shares system RAM), ROCm (VRAM-gated; `features.rocm` is already PCI-gated), Vulkan (VRAM-gated,
|
|
109
|
+
* never on integrated-only hosts). Each tier is the first catalog entry matching its pattern — the
|
|
110
|
+
* catalog is sorted newest first, so that is the newest tag.
|
|
107
111
|
*/
|
|
108
112
|
export function windowsGpuTiers(features, available, archSuffix, gpus) {
|
|
109
113
|
const pick = (pattern) => available.find((b) => pattern.test(b.backend))?.backend ?? null;
|
|
110
114
|
const cuda13 = pick(new RegExp(`^win-cuda-13\\.\\d+-${archSuffix}$`));
|
|
111
115
|
const cuda12 = pick(new RegExp(`^win-cuda-12\\.\\d+-${archSuffix}$`));
|
|
116
|
+
const opencl = pick(new RegExp(`^win-opencl-adreno-${archSuffix}$`));
|
|
112
117
|
const rocm = pick(new RegExp(`^win-rocm-\\d+\\.\\d+-${archSuffix}$`));
|
|
113
118
|
const vulkan = pick(new RegExp(`^win-vulkan-${archSuffix}$`));
|
|
114
119
|
const enoughVram = hasEnoughGpuMemory(gpus);
|
|
@@ -117,22 +122,40 @@ export function windowsGpuTiers(features, available, archSuffix, gpus) {
|
|
|
117
122
|
tiers.push(cuda13);
|
|
118
123
|
if (features.cuda12 && cuda12)
|
|
119
124
|
tiers.push(cuda12);
|
|
125
|
+
if (features.opencl && opencl)
|
|
126
|
+
tiers.push(opencl);
|
|
120
127
|
if (features.rocm && enoughVram && rocm)
|
|
121
128
|
tiers.push(rocm);
|
|
122
129
|
if (features.vulkan && enoughVram && vulkan && !integratedGpuOnly(gpus))
|
|
123
130
|
tiers.push(vulkan);
|
|
124
131
|
return tiers;
|
|
125
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Linux arm64 GPU tiers in preference order: CUDA 13 (NVIDIA GB10 / Grace; the newest
|
|
135
|
+
* `linux-cuda-13.N-arm64` in the catalog), then Vulkan (VRAM-gated, as on Linux x64).
|
|
136
|
+
*/
|
|
137
|
+
export function linuxArm64GpuTiers(features, available, gpus) {
|
|
138
|
+
const cuda13 = available.find((b) => /^linux-cuda-13\.\d+-arm64$/.test(b.backend))?.backend ?? null;
|
|
139
|
+
const vulkan = available.find((b) => b.backend === 'linux-vulkan-arm64')?.backend ?? null;
|
|
140
|
+
const tiers = [];
|
|
141
|
+
if (features.cuda13 && cuda13)
|
|
142
|
+
tiers.push(cuda13);
|
|
143
|
+
if (features.vulkan && hasEnoughGpuMemory(gpus) && vulkan)
|
|
144
|
+
tiers.push(vulkan);
|
|
145
|
+
return tiers;
|
|
146
|
+
}
|
|
126
147
|
/**
|
|
127
148
|
* Which backend this host should ideally run. Windows: the first GPU tier that survives the probe;
|
|
128
149
|
* a GPU-capable host with no GPU backend in the catalog is `detection-failed` (the manifest was
|
|
129
150
|
* unreachable — ggml-org always publishes CUDA + Vulkan Windows assets), otherwise `cpu-optimal`.
|
|
130
151
|
* Linux x64: Vulkan when the loader enumerates a device with ≥ 2 GiB; a GPU the loader cannot see
|
|
131
|
-
* is `detection-failed` (ask again next launch, ATO-464); no accelerator is `cpu-optimal`.
|
|
152
|
+
* is `detection-failed` (ask again next launch, ATO-464); no accelerator is `cpu-optimal`. Linux
|
|
153
|
+
* arm64: the first of CUDA 13 / Vulkan that survives the probe; a CUDA-capable host with no CUDA
|
|
154
|
+
* build in the catalog, or a GPU neither CUDA nor Vulkan sees, is `detection-failed`. macOS and
|
|
132
155
|
* everything else: `cpu-optimal`. Any thrown error is `detection-failed`.
|
|
133
156
|
*
|
|
134
|
-
* The caller wraps this in its 20 s `withTimeout` (timeout → `detection-failed`) and, on Windows
|
|
135
|
-
* supplies `listAvailableBackends` / `probeTier`.
|
|
157
|
+
* The caller wraps this in its 20 s `withTimeout` (timeout → `detection-failed`) and, on Windows
|
|
158
|
+
* and Linux arm64, supplies `listAvailableBackends` / `probeTier`.
|
|
136
159
|
*/
|
|
137
160
|
export async function detectIdealBackendType(input) {
|
|
138
161
|
const warn = input.onWarn ?? (() => { });
|
|
@@ -150,6 +173,7 @@ export async function detectIdealBackendType(input) {
|
|
|
150
173
|
return { kind: 'gpu', backend: picked };
|
|
151
174
|
const gpuCapable = features.cuda13 ||
|
|
152
175
|
features.cuda12 ||
|
|
176
|
+
features.opencl ||
|
|
153
177
|
(features.rocm && enoughVram) ||
|
|
154
178
|
(features.vulkan && enoughVram && !integratedOnly);
|
|
155
179
|
const anyGpuBackendAvailable = available.some((b) => isGpuBackendId(b.backend));
|
|
@@ -159,6 +183,20 @@ export async function detectIdealBackendType(input) {
|
|
|
159
183
|
}
|
|
160
184
|
return { kind: 'cpu-optimal' };
|
|
161
185
|
}
|
|
186
|
+
if (osType === 'linux' && archSuffix === 'arm64') {
|
|
187
|
+
const available = await input.listAvailableBackends();
|
|
188
|
+
const tiers = linuxArm64GpuTiers(features, available, gpus);
|
|
189
|
+
const picked = await pickFirstWorkingTier(tiers, input.probeTier);
|
|
190
|
+
if (picked)
|
|
191
|
+
return { kind: 'gpu', backend: picked };
|
|
192
|
+
if (features.cuda13 && !available.some((b) => /^linux-cuda-13\.\d+-arm64$/.test(b.backend))) {
|
|
193
|
+
warn('detectIdealBackendType: CUDA-capable Linux arm64 host but no GPU backend in catalog — treating as detection failure (release stream likely unreachable)');
|
|
194
|
+
return { kind: 'detection-failed' };
|
|
195
|
+
}
|
|
196
|
+
if (!features.vulkan && !features.cuda13 && gpus.length > 0)
|
|
197
|
+
return { kind: 'detection-failed' };
|
|
198
|
+
return { kind: 'cpu-optimal' };
|
|
199
|
+
}
|
|
162
200
|
if (osType === 'linux') {
|
|
163
201
|
const anyVulkanDevice = enoughVram;
|
|
164
202
|
if (features.vulkan && archSuffix === 'x64' && anyVulkanDevice) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiers.js","sourceRoot":"","sources":["../../../src/backend/select/tiers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"tiers.js","sourceRoot":"","sources":["../../../src/backend/select/tiers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ideal-backend detection and update check for the TurboQuant fork (`llamacpp` provider). Port of
|
|
3
|
+
* the decision half of `detectIdealBackendType` in `extensions/llamacpp-extension/src/index.ts` and
|
|
4
|
+
* of `find_latest_version_for_backend` / `check_backend_for_updates` in
|
|
5
|
+
* `src-tauri/plugins/tauri-plugin-llamacpp/src/backend.rs`.
|
|
6
|
+
*
|
|
7
|
+
* Why it cannot share `tiers.ts`: the fork names its builds differently, publishes Linux CUDA and
|
|
8
|
+
* ROCm builds upstream does not, keeps a 6 GiB VRAM floor where upstream went to 2 GiB, and runs no
|
|
9
|
+
* `--list-devices` tier probe. Nothing here reads hardware, disk or network: the facts and the
|
|
10
|
+
* catalog are parameters.
|
|
11
|
+
*/
|
|
12
|
+
import type { BackendVersion, GpuProbeInfo, IdealBackendResult, UpdateCheckResult } from '../types.js';
|
|
13
|
+
import type { RocmHostProbe } from '../turboquant.js';
|
|
14
|
+
/** The fork's "any GPU backend in the catalog" test — broader than upstream's, it matches every id. */
|
|
15
|
+
export declare function isTurboquantGpuBackendId(backend: string): boolean;
|
|
16
|
+
export interface DetectIdealTurboquantBackendInput {
|
|
17
|
+
osType: string;
|
|
18
|
+
arch: string;
|
|
19
|
+
cpuExtensions: readonly string[];
|
|
20
|
+
gpus: readonly GpuProbeInfo[];
|
|
21
|
+
/** Linux only: the amdkfd / HIP facts behind `features.rocm`; absent = ROCm unsupported. */
|
|
22
|
+
rocm?: RocmHostProbe;
|
|
23
|
+
/** The hardware-gated catalog (`listSupportedBackends`); only consulted on Windows and Linux. */
|
|
24
|
+
listAvailableBackends: () => Promise<BackendVersion[]>;
|
|
25
|
+
onWarn?: (message: string) => void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Which fork build this host should ideally run. Windows: CUDA 13 → CUDA 12 → Vulkan (6 GiB, not
|
|
29
|
+
* integrated-only). Linux x64: CUDA 13 → CUDA 12 → ROCm → Vulkan (ROCm and Vulkan share the VRAM
|
|
30
|
+
* and integrated guards). Every pick is a catalog entry, so the id is one the release stream carries.
|
|
31
|
+
* A GPU-capable host whose catalog has no GPU build is `detection-failed` (the release index was
|
|
32
|
+
* unreachable); macOS, arm64 and hosts without a usable tier are `cpu-optimal`. Any thrown error is
|
|
33
|
+
* `detection-failed`. The caller wraps this in its 20 s timeout.
|
|
34
|
+
*/
|
|
35
|
+
export declare function detectIdealTurboquantBackendType(input: DetectIdealTurboquantBackendInput): Promise<IdealBackendResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Newest `<version>/<backend>` whose normalised fork id equals `backendType`, or `null`. The
|
|
38
|
+
* original backend spelling is kept in the result (Rust `find_latest_version_for_backend`).
|
|
39
|
+
*/
|
|
40
|
+
export declare function findLatestTurboquantVersionForBackend(versionBackends: readonly BackendVersion[], backendType: string): string | null;
|
|
41
|
+
/**
|
|
42
|
+
* Whether a newer build of the current backend's (normalised) fork type exists. `new_version` is
|
|
43
|
+
* `"0"` and `target_backend` `null` when nothing newer or nothing at all is listed.
|
|
44
|
+
*/
|
|
45
|
+
export declare function checkTurboquantBackendForUpdates(currentBackendString: string, versionBackends: readonly BackendVersion[]): UpdateCheckResult;
|