@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,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The structured reasons `assessLinux` (`linux-plan.ts`) refuses a host — split out of that file
|
|
3
|
+
* once it grew past the ~500-line guidance for this module (task 2.4 fix round 2). Everything here
|
|
4
|
+
* is pure: a reason code, the message a person reads, and the machine-checkable specifics. A few
|
|
5
|
+
* small, self-contained decision helpers moved in alongside them in round 3, for the same reason
|
|
6
|
+
* (`linux-plan.ts` growing past the guidance again): `effectiveGpuRuntime` and the two exact-command
|
|
7
|
+
* builders (`archCommands`, `groupOnlyCommands`) that blockers built here actually use. Round 4 moved
|
|
8
|
+
* the install-gate blockers here too (`gateBlocker`), and added the relogin path's per-component
|
|
9
|
+
* blockers (`missingComponentBlockers`).
|
|
10
|
+
*/
|
|
11
|
+
export function blocker(reason, message, params, commands) {
|
|
12
|
+
return {
|
|
13
|
+
reason,
|
|
14
|
+
message,
|
|
15
|
+
...(params === undefined ? {} : { params }),
|
|
16
|
+
...(commands === undefined ? {} : { commands }),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A Docker install this integration will never adopt or install over, regardless of whether it
|
|
21
|
+
* happens to expose a GPU runtime — there is no safe way to lay `docker-ce` next to or over it.
|
|
22
|
+
*/
|
|
23
|
+
export function installMethodBlocker(method) {
|
|
24
|
+
switch (method) {
|
|
25
|
+
case 'snap':
|
|
26
|
+
return blocker('docker-snap', 'Docker was installed from the snap store, which does not support the NVIDIA Container ' +
|
|
27
|
+
'Toolkit. Switch to the docker-ce package instead; nothing here removes the snap install.');
|
|
28
|
+
case 'rootless':
|
|
29
|
+
return blocker('docker-rootless', 'Rootless Docker is not supported for this runtime. Switch to a standard (rootful) docker-ce ' +
|
|
30
|
+
'installation; nothing here removes the rootless install.');
|
|
31
|
+
case 'docker-desktop':
|
|
32
|
+
return blocker('docker-desktop-only', 'Docker Desktop without a separate system Docker Engine cannot be configured for this runtime. ' +
|
|
33
|
+
'Install docker-ce as the system engine; nothing here changes the Docker Desktop install.');
|
|
34
|
+
case 'podman-docker':
|
|
35
|
+
return blocker('podman-docker', "The docker command here is Podman's compatibility shim, not Docker Engine; Podman is not " +
|
|
36
|
+
'supported by this runtime. podman-docker conflicts with docker-ce at the package level, so ' +
|
|
37
|
+
'it must be removed first; install Docker Engine (docker-ce) afterward. Nothing here removes ' +
|
|
38
|
+
'Podman itself or installs docker-ce over it automatically.');
|
|
39
|
+
default:
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Whether the GPU reaches a container: a listed NVIDIA CDI device (task 2.23, F-5), from `docker
|
|
45
|
+
* info`'s side when the daemon answered, from `nvidia-ctk cdi list` alone when it did not (item 3).
|
|
46
|
+
*/
|
|
47
|
+
export function effectiveGpuRuntime(facts) {
|
|
48
|
+
return facts.docker.daemon_reachable ? facts.docker.gpu_runtime : facts.docker.gpu_runtime_from_config;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The commands a host missing only its `docker` group membership needs — everything else is
|
|
52
|
+
* already ready. An rpm-ostree host (Silverblue/Kinoite/Bazzite) needs one step first: package
|
|
53
|
+
* layering puts the `docker` group's line in `/usr/lib/group` (the vendor/OS-tree database), but
|
|
54
|
+
* `/etc/group` — what `usermod`/`getent` actually consult — does not inherit it automatically, so
|
|
55
|
+
* `usermod -aG docker` alone would fail with "group 'docker' does not exist" (round 3, ruling 6).
|
|
56
|
+
* Never called for root (D4): root needs no group membership, and the caller never reaches here for it.
|
|
57
|
+
*/
|
|
58
|
+
export function groupOnlyCommands(immutableOs, user) {
|
|
59
|
+
const usermod = `sudo usermod -aG docker ${user}`;
|
|
60
|
+
if (!immutableOs)
|
|
61
|
+
return [usermod];
|
|
62
|
+
// Idempotent (round 4, item F): run twice, it must not append a second `docker:` line.
|
|
63
|
+
return [
|
|
64
|
+
`grep -q '^docker:' /etc/group || grep -E '^docker:' /usr/lib/group | sudo tee -a /etc/group`,
|
|
65
|
+
usermod,
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
/** The CDI spec the recipe generates, as a person runs it (task 2.23, F-5; ruling R-core-8). */
|
|
69
|
+
const GENERATE_CDI_COMMAND = 'sudo nvidia-ctk cdi generate --output=/var/run/cdi/nvidia.yaml';
|
|
70
|
+
/**
|
|
71
|
+
* Arch never supports a partial `pacman -S` of just these two packages (design D2): installing a
|
|
72
|
+
* package without syncing the whole system can leave it inconsistent, so the commands run a full
|
|
73
|
+
* `-Syu` instead — which may itself bring in a newer kernel and NVIDIA driver, hence the reboot
|
|
74
|
+
* note. The CDI spec is generated too (task 2.23, F-5: Docker 28.2+ passes `--gpus` through it).
|
|
75
|
+
* `nvidia-ctk runtime configure` changes `/etc/docker/daemon.json`, so Docker is explicitly
|
|
76
|
+
* restarted afterward rather than relying on `enable --now` to notice the new config on its own
|
|
77
|
+
* (item 12). The `usermod` line uses the actual probed account, never the literal `$USER`, and is
|
|
78
|
+
* omitted entirely for root, which needs no group membership at all (round 3, ruling 8), and for an
|
|
79
|
+
* account that is already a member (round 5, item 1: `groupNeeded` false).
|
|
80
|
+
*/
|
|
81
|
+
export function archCommands(user, groupNeeded = user !== 'root') {
|
|
82
|
+
const commands = [
|
|
83
|
+
'sudo pacman -Syu --needed docker nvidia-container-toolkit',
|
|
84
|
+
'sudo nvidia-ctk runtime configure --runtime=docker',
|
|
85
|
+
GENERATE_CDI_COMMAND,
|
|
86
|
+
'sudo systemctl restart docker',
|
|
87
|
+
'sudo systemctl enable --now docker',
|
|
88
|
+
];
|
|
89
|
+
if (groupNeeded && user !== 'root')
|
|
90
|
+
commands.push(`sudo usermod -aG docker ${user}`);
|
|
91
|
+
return commands;
|
|
92
|
+
}
|
|
93
|
+
/** Group membership confirmed, but this login session predates it (round 3, ruling 4). */
|
|
94
|
+
export function reloginRequiredBlocker() {
|
|
95
|
+
return blocker('relogin-required', 'This account is already a member of the docker group, but this login session started before that ' +
|
|
96
|
+
'took effect. Log out and back in (or restart this session) to pick it up.', undefined, []);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Whether the gate's own blocker applies to this host — one decision, read by the relogin path and the
|
|
100
|
+
* full-install path alike (round 5, item 2). Never on a recipe distribution. On an immutable base only
|
|
101
|
+
* when a package (Docker or the toolkit) is missing, since layering packages is what the gate is about
|
|
102
|
+
* (spec: "система неизменяемая … и Docker или toolkit нет"); a missing runtime configuration or a
|
|
103
|
+
* stopped service is an ordinary step there, reported per component. Every other gate always applies.
|
|
104
|
+
*/
|
|
105
|
+
export function gateBlockerApplies(gate, facts) {
|
|
106
|
+
if (gate === 'recipe')
|
|
107
|
+
return false;
|
|
108
|
+
if (gate === 'immutable')
|
|
109
|
+
return !facts.docker.cli || !facts.toolkit_installed;
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
/** `immutable-os`, naming exactly the packages that are missing — never docker-ce over an engine (round 5, item 2). */
|
|
113
|
+
function immutableOsBlocker(facts) {
|
|
114
|
+
const missing = [];
|
|
115
|
+
if (!facts.docker.cli)
|
|
116
|
+
missing.push(['docker', 'Docker Engine']);
|
|
117
|
+
if (!facts.toolkit_installed)
|
|
118
|
+
missing.push(['nvidia-container-toolkit', 'the NVIDIA Container Toolkit']);
|
|
119
|
+
const base = 'This system uses an immutable base (rpm-ostree — Silverblue, Kinoite, Bazzite, or similar)';
|
|
120
|
+
if (missing.length === 0) {
|
|
121
|
+
return blocker('immutable-os', `${base}. Automatic setup is not offered here; finish the remaining Docker setup by hand, then try again.`);
|
|
122
|
+
}
|
|
123
|
+
const names = missing.map(([, label]) => label).join(' and ');
|
|
124
|
+
const plural = missing.length > 1;
|
|
125
|
+
return blocker('immutable-os', `${base}, and ${names} ${plural ? 'are' : 'is'} not installed. Installing a package here means ` +
|
|
126
|
+
'layering it and rebooting, which this integration does not do automatically. ' +
|
|
127
|
+
`Layer ${plural ? 'them' : 'it'} yourself, then try again.`, { missing: missing.map(([key]) => key).join(',') });
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* The exact commands for joining the `docker` group, for a host where automatic setup is not offered.
|
|
131
|
+
* `everythingElseReady` picks the wording: the only step left, or one step among others (round 5).
|
|
132
|
+
*/
|
|
133
|
+
export function dockerGroupManualBlocker(immutableOs, user, everythingElseReady) {
|
|
134
|
+
const commands = groupOnlyCommands(immutableOs, user);
|
|
135
|
+
const run = `run ${commands.map((c) => `\`${c}\``).join(', then ')}, then log out and back in.`;
|
|
136
|
+
return blocker('docker-group-manual', everythingElseReady
|
|
137
|
+
? 'Everything else is ready — Docker, the toolkit and the NVIDIA runtime are all configured. ' +
|
|
138
|
+
"This account just needs to join the docker group, which is not something this distribution's " +
|
|
139
|
+
`automatic install can add for you: ${run}`
|
|
140
|
+
: `This account also needs to join the docker group: ${run}`, { user }, commands);
|
|
141
|
+
}
|
|
142
|
+
/** Why automatic setup is not offered, for every gate but `'recipe'`. */
|
|
143
|
+
export function gateBlocker(gate, facts, distribution, user) {
|
|
144
|
+
switch (gate) {
|
|
145
|
+
case 'immutable':
|
|
146
|
+
return immutableOsBlocker(facts);
|
|
147
|
+
case 'pacman': {
|
|
148
|
+
// An account already in the group (or root) gets no usermod and no "new membership" note.
|
|
149
|
+
const groupNeeded = user !== 'root' && facts.docker_group.configured !== true;
|
|
150
|
+
return blocker('arch-manual-install', "Arch and its derivatives don't support a partial package install: adding just these two " +
|
|
151
|
+
'packages without a full system sync can leave the system inconsistent, so the commands ' +
|
|
152
|
+
'below run a full `pacman -Syu` instead — which may itself update your kernel and NVIDIA ' +
|
|
153
|
+
'driver. Reboot afterward if it does' +
|
|
154
|
+
(groupNeeded
|
|
155
|
+
? ', then log out and back in so the new docker group membership takes effect.'
|
|
156
|
+
: '.') +
|
|
157
|
+
' Automatic install is not offered here.', { family: 'pacman' }, archCommands(user, groupNeeded));
|
|
158
|
+
}
|
|
159
|
+
case 'unrecognised':
|
|
160
|
+
// Never lay docker-ce over an unknown quantity (round 1, item 15).
|
|
161
|
+
return blocker('docker-unrecognised', "This machine's docker command does not match any Docker install this integration " +
|
|
162
|
+
'recognises (not docker-ce, docker.io, moby-engine, snap, rootless, Docker Desktop, or the ' +
|
|
163
|
+
'podman-docker shim). Nothing will be installed over it automatically.');
|
|
164
|
+
case 'manifest-unavailable':
|
|
165
|
+
return environmentManifestUnavailableBlocker();
|
|
166
|
+
case 'unqualified':
|
|
167
|
+
return blocker('distribution-not-in-recipe', 'Setting the runtime up automatically is only qualified on some distributions so far.', { id: distribution.id, version_id: distribution.version_id, arch: facts.architecture ?? 'unknown' });
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* No environment manifest: which distributions the install recipe is qualified for is unknown, so no
|
|
172
|
+
* automatic setup is offered — not because this distribution is unsupported, but because the list
|
|
173
|
+
* could not be had (no network and nothing cached, or none this core accepts). Retrying with a
|
|
174
|
+
* network is the fix; a ready host never sees this (it is adopted before any gate).
|
|
175
|
+
*/
|
|
176
|
+
export function environmentManifestUnavailableBlocker() {
|
|
177
|
+
return blocker('environment-manifest-unavailable', 'The list of systems where setup can install Docker and the NVIDIA Container Toolkit could not be ' +
|
|
178
|
+
'loaded, and none was saved before. Check the internet connection and try again.');
|
|
179
|
+
}
|
|
180
|
+
/** Refuses to write next to a daemon.json this probe could not read or parse (round 2, item 6). */
|
|
181
|
+
/**
|
|
182
|
+
* The recipe installs and starts Docker through systemd (`systemctl enable --now docker`, a restart
|
|
183
|
+
* after `nvidia-ctk runtime configure`), so on a host that does not run it — a container whose PID 1
|
|
184
|
+
* is a shell, as the vast.ai GB10 instance was — every such plan would fail only at the privileged
|
|
185
|
+
* step, after the user consented. Whether systemd runs could not be read is the unread fact
|
|
186
|
+
* `init-system` instead (`unknown-fact`), never this.
|
|
187
|
+
*/
|
|
188
|
+
export function initNotSystemdBlocker() {
|
|
189
|
+
return blocker('init-not-systemd', 'This system does not run systemd, which the Docker install needs.');
|
|
190
|
+
}
|
|
191
|
+
export function daemonJsonUnreadableBlocker() {
|
|
192
|
+
return blocker('daemon-json-unreadable', '/etc/docker/daemon.json exists but could not be read or parsed, so this integration cannot tell ' +
|
|
193
|
+
"whether the NVIDIA runtime is already configured there. Fix the file's permissions or contents " +
|
|
194
|
+
'by hand, then try again — nothing here will overwrite a file it cannot read back.');
|
|
195
|
+
}
|
|
196
|
+
const CONFIGURE_RUNTIME_COMMANDS = [
|
|
197
|
+
'sudo nvidia-ctk runtime configure --runtime=docker',
|
|
198
|
+
GENERATE_CDI_COMMAND,
|
|
199
|
+
'sudo systemctl restart docker',
|
|
200
|
+
];
|
|
201
|
+
const ENABLE_SERVICE_COMMANDS = ['sudo systemctl enable --now docker'];
|
|
202
|
+
/**
|
|
203
|
+
* One blocker per component offline evidence shows missing, for a host that also has to relogin
|
|
204
|
+
* (round 4, item 1 — the refined ruling 4): the Docker CLI, the NVIDIA Container Toolkit, the GPU
|
|
205
|
+
* runtime in Docker (or `daemon-json-unreadable` when that cannot be told), and `docker.service`
|
|
206
|
+
* when `systemctl` says it is not active. An `'unknown'` service state is not evidence of anything and
|
|
207
|
+
* is not reported. Empty when the relogin alone is the fix.
|
|
208
|
+
*
|
|
209
|
+
* What each one tells the person depends on the gate: on a recipe distribution setup will do it after
|
|
210
|
+
* the relogin, so there is nothing to run by hand; on Arch each carries its exact commands (a full
|
|
211
|
+
* `pacman -Syu` for packages, design D2); anywhere else the package steps have no command this
|
|
212
|
+
* integration can vouch for (the caller adds the gate's own blocker), while the runtime and service
|
|
213
|
+
* steps are the same `nvidia-ctk`/`systemctl` commands on every distribution.
|
|
214
|
+
*/
|
|
215
|
+
export function missingComponentBlockers(facts, gate) {
|
|
216
|
+
const recipe = gate === 'recipe';
|
|
217
|
+
const later = (what) => ` After you log back in, setup will offer to ${what}.`;
|
|
218
|
+
const packageStep = (reason, subject, pacmanPackage) => blocker(reason, `${subject} is not installed.` +
|
|
219
|
+
(recipe
|
|
220
|
+
? later('install it')
|
|
221
|
+
: gate === 'pacman'
|
|
222
|
+
? ' Install it with a full system sync (Arch does not support partial upgrades); reboot ' +
|
|
223
|
+
'afterward if the kernel or NVIDIA driver was updated.'
|
|
224
|
+
: gate === 'manifest-unavailable'
|
|
225
|
+
? ' Whether setup can install it for you is not known until the list of supported ' +
|
|
226
|
+
'systems loads; try again with a working internet connection.'
|
|
227
|
+
: ' Automatic install is not offered on this system; install it yourself.'), undefined, gate === 'pacman' ? [`sudo pacman -Syu --needed ${pacmanPackage}`] : []);
|
|
228
|
+
const blockers = [];
|
|
229
|
+
if (!facts.docker.cli)
|
|
230
|
+
blockers.push(packageStep('docker-cli-missing', 'Docker Engine', 'docker'));
|
|
231
|
+
if (!facts.toolkit_installed) {
|
|
232
|
+
blockers.push(packageStep('toolkit-missing', 'The NVIDIA Container Toolkit', 'nvidia-container-toolkit'));
|
|
233
|
+
}
|
|
234
|
+
if (!effectiveGpuRuntime(facts)) {
|
|
235
|
+
// A registered `nvidia` runtime without a CDI spec needs only the spec, and no restart (F-5).
|
|
236
|
+
const specOnly = facts.docker.nvidia_runtime;
|
|
237
|
+
blockers.push(facts.docker.daemon_json_unreadable && !specOnly
|
|
238
|
+
? daemonJsonUnreadableBlocker()
|
|
239
|
+
: blocker('gpu-runtime-not-configured', (specOnly
|
|
240
|
+
? 'Docker has no NVIDIA CDI specification, so it cannot pass the GPU into a container.'
|
|
241
|
+
: 'Docker is not configured with the NVIDIA runtime and has no NVIDIA CDI specification. ' +
|
|
242
|
+
'Configuring it restarts Docker, which stops any running containers.') +
|
|
243
|
+
(recipe ? later('configure it') : ' Configure it yourself with the commands below.'), undefined, recipe ? [] : specOnly ? [GENERATE_CDI_COMMAND] : CONFIGURE_RUNTIME_COMMANDS));
|
|
244
|
+
}
|
|
245
|
+
if (facts.docker.service_active === false) {
|
|
246
|
+
blockers.push(blocker('docker-service-inactive', 'docker.service is not running.' +
|
|
247
|
+
(recipe ? later('enable and start it') : ' Enable and start it with the command below.'), undefined, recipe ? [] : ENABLE_SERVICE_COMMANDS));
|
|
248
|
+
}
|
|
249
|
+
return blockers;
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=linux-blockers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linux-blockers.js","sourceRoot":"","sources":["../../../src/runtime/environment/linux-blockers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What `docker info` and the distribution's package database say about this machine's Docker
|
|
3
|
+
* install, read without running or changing anything.
|
|
4
|
+
*
|
|
5
|
+
* `docker info` alone cannot say *how* Docker got here: a `docker-ce` package and a `moby-engine`
|
|
6
|
+
* package expose the same daemon shape over the same socket. That distinction matters because the
|
|
7
|
+
* install plan must never lay `docker-ce` over a `moby-engine` or `docker.io` install (design D2:
|
|
8
|
+
* they conflict at the package-manager level) and must never touch a snap, rootless, Docker
|
|
9
|
+
* Desktop or Podman-shim install at all. So install-method detection also reads the package
|
|
10
|
+
* database (`dpkg-query`/`rpm -q`, both read-only queries) and `docker --version`'s own banner,
|
|
11
|
+
* which is all `podman-docker`'s `docker` shim actually prints differently.
|
|
12
|
+
*
|
|
13
|
+
* `docker info`'s own exit code cannot be trusted either: the CLI shipped in docker-ce/docker.io/
|
|
14
|
+
* moby-engine through roughly 28.2 (which is what Debian, Ubuntu and Fedora's recipe-qualified
|
|
15
|
+
* releases carry) still exits `0` and prints a fully-formed JSON document when the daemon call
|
|
16
|
+
* itself failed — `ServerErrors` holds the real error and every other field is the Go zero value
|
|
17
|
+
* (`""`/`0`/`null`). 28.3 and later exit non-zero instead. `parseDockerInfo` treats the former the
|
|
18
|
+
* same as the latter (task 2.4 fix round 2, item 1) — the alternative, trusting `code === 0`, was
|
|
19
|
+
* reading a `docker.io`/`moby-engine` host that plainly refused a connection as reachable, which
|
|
20
|
+
* broke both relogin detection and runtime-config planning downstream.
|
|
21
|
+
*
|
|
22
|
+
* The installed *engine version* (round 3, ruling 5) is a separate signal from any of the above: it
|
|
23
|
+
* comes from the package database alone (`dpkg-query`'s `${Version}` field, `rpm -q`'s own
|
|
24
|
+
* name-version-release string, or `pacman -Q docker`), so it is available even when the daemon
|
|
25
|
+
* cannot be reached at all. Since task 2.23 it is diagnostic only: whether the GPU reaches a
|
|
26
|
+
* container no longer depends on Docker's CDI-on-by-default version (see `cdiListsNvidiaGpu`).
|
|
27
|
+
*
|
|
28
|
+
* The GPU runtime counts as ready only when `nvidia-ctk cdi list` names an `nvidia.com/gpu` device
|
|
29
|
+
* (task 2.23, finding F-5, ruling R-core-8). Docker 28.2+ serves `--gpus` through CDI, so without a
|
|
30
|
+
* spec the card never reaches the container — even with a runtime named `nvidia` registered, which
|
|
31
|
+
* is what this probe used to accept (the 3.10 host: `nvidia-container-toolkit-base` only, `--gpus`
|
|
32
|
+
* failed with "unresolvable CDI devices"). An older Docker without CDI serves `--gpus` through the
|
|
33
|
+
* full toolkit's `nvidia-container-runtime-hook` instead; the recipe installs the full toolkit and
|
|
34
|
+
* generates the spec, so a host it set up passes on either path. A runtime named `nvidia` is still
|
|
35
|
+
* read (`nvidia_runtime`), but only to decide whether `nvidia-ctk runtime configure` is needed.
|
|
36
|
+
*/
|
|
37
|
+
import type { CommandOutput } from './linux-probe.js';
|
|
38
|
+
import type { LinuxDockerInstallMethod } from '../../contracts/index.js';
|
|
39
|
+
/**
|
|
40
|
+
* Parsed `docker info --format '{{json .}}'`, plus the signals `docker info` alone cannot settle
|
|
41
|
+
* (`rootless`, `desktop`) that feed into {@link detectDockerInstallMethod}.
|
|
42
|
+
*/
|
|
43
|
+
export interface DockerInfoFacts {
|
|
44
|
+
daemon_reachable: boolean;
|
|
45
|
+
engine_identity: string | null;
|
|
46
|
+
version: string | null;
|
|
47
|
+
/** `nvidia-ctk cdi list` names an `nvidia.com/gpu` device: `--gpus` can reach the card (F-5). */
|
|
48
|
+
gpu_runtime: boolean;
|
|
49
|
+
/** The daemon that answered loaded a runtime named `nvidia` (`Runtimes`). Not readiness on its own. */
|
|
50
|
+
nvidia_runtime: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* `SecurityOptions` names `selinux`. Docker is enforcing for containers, so a mount of our own
|
|
53
|
+
* directories (model, engine cache, entrypoint, heartbeat) needs the shared `:z` label — never
|
|
54
|
+
* `:Z`, which would take exclusive ownership and break the next container of the same model
|
|
55
|
+
* (design D15).
|
|
56
|
+
*/
|
|
57
|
+
selinux: boolean;
|
|
58
|
+
docker_root_dir: string | null;
|
|
59
|
+
containers_running: number;
|
|
60
|
+
/** `SecurityOptions` names `rootless` on the daemon that actually answered this query. */
|
|
61
|
+
rootless: boolean;
|
|
62
|
+
/** `Name`/`OperatingSystem` names Docker Desktop. */
|
|
63
|
+
desktop: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* `ServerErrors`: partial failures (a plugin, a storage-driver problem) the daemon reports even
|
|
66
|
+
* though `info` itself returned successfully. Surfaced for diagnostics; a populated payload next
|
|
67
|
+
* to a real `ServerVersion` is still read as reachable — only an *empty* payload (round 2, item 1)
|
|
68
|
+
* is read as a failed call.
|
|
69
|
+
*/
|
|
70
|
+
server_errors: string[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* `nvidia-ctk cdi list`: read-only, and the only way this probe confirms an NVIDIA CDI device actually
|
|
74
|
+
* exists — the one readiness signal for the GPU runtime (F-5). It reads the spec directories
|
|
75
|
+
* (`/etc/cdi`, `/var/run/cdi`) itself, so it answers whether or not the daemon does.
|
|
76
|
+
*/
|
|
77
|
+
export declare function cdiListsNvidiaGpu(cdiList: CommandOutput | null): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Whether `/etc/docker/daemon.json`'s own `runtimes` map names `nvidia` — read-only evidence the
|
|
80
|
+
* GPU runtime is configured that does not require the daemon to answer at all, used when the system
|
|
81
|
+
* socket could not be reached (item 3: never plan a runtime reconfigure without real evidence).
|
|
82
|
+
*
|
|
83
|
+
* Three-way rather than boolean (round 2, item 6): a file that does not exist yet is a real fact
|
|
84
|
+
* ("not configured"), but one that exists and fails to parse is not — planning `nvidia-ctk runtime
|
|
85
|
+
* configure` against a daemon.json this probe cannot even read risks corrupting it further, so that
|
|
86
|
+
* case is surfaced separately as `'unreadable'` and `assessLinux` blocks instead of guessing.
|
|
87
|
+
*
|
|
88
|
+
* `read` distinguishes the file genuinely not existing (`{ text: null, unreadable: false }`, e.g.
|
|
89
|
+
* `readFile` resolving `null` for `ENOENT`) from a real read failure such as `EACCES` on a `0600`
|
|
90
|
+
* file (`{ text: null, unreadable: true }`, e.g. `readFile` rejecting) — round 3, item 2: a caller
|
|
91
|
+
* that collapsed both into `null` would read "permission denied" as "nothing configured yet" and
|
|
92
|
+
* plan a runtime reconfigure against a file it was never able to look at in the first place.
|
|
93
|
+
*/
|
|
94
|
+
export type DaemonJsonEvidence = 'configured' | 'not-configured' | 'unreadable';
|
|
95
|
+
export declare function daemonJsonNvidiaRuntimeEvidence(read: {
|
|
96
|
+
text: string | null;
|
|
97
|
+
unreadable: boolean;
|
|
98
|
+
}): DaemonJsonEvidence;
|
|
99
|
+
/** `dpkg-query -W -f '${db:Status-Abbrev} ${Package} ${Version}\n' <candidates>`'s third column, for
|
|
100
|
+
* whichever recognised engine package is `ii` (installed). */
|
|
101
|
+
export declare function dpkgEngineVersion(output: CommandOutput | null): string | null;
|
|
102
|
+
/** `rpm -q <candidates>`'s name-version-release line for whichever recognised engine package hit. */
|
|
103
|
+
export declare function rpmEngineVersion(output: CommandOutput | null): string | null;
|
|
104
|
+
/**
|
|
105
|
+
* `pacman -Q docker docker-desktop`: a `name version` line on stdout per installed name (`docker
|
|
106
|
+
* 1:28.3.3-1`, with Arch's epoch), an `error: package '...' was not found` line on stderr per
|
|
107
|
+
* missing one, and exit `1` whenever any name is missing — so the exit code says nothing about
|
|
108
|
+
* whether `docker` itself is installed; only stdout does (round 4, item E).
|
|
109
|
+
*/
|
|
110
|
+
export declare function pacmanEngineVersion(output: CommandOutput | null): string | null;
|
|
111
|
+
/** The first engine version any of the three package managers can confirm, or null (round 3, ruling 5). */
|
|
112
|
+
export declare function detectEngineVersion(dpkgQuery: CommandOutput | null, rpmQuery: CommandOutput | null, pacmanQuery: CommandOutput | null): string | null;
|
|
113
|
+
/**
|
|
114
|
+
* `docker -H unix:///var/run/docker.sock info --format '{{json .}}'`. The `-H` flag pins the
|
|
115
|
+
* query to the system socket under the current user and overrides both `DOCKER_HOST` and an
|
|
116
|
+
* active `DOCKER_CONTEXT`, so this reads the same daemon a `docker` group member would reach —
|
|
117
|
+
* never a user's own rootless daemon or a context pointed elsewhere (spec: "Доступ к Docker MUST
|
|
118
|
+
* определяться фактическим вызовом daemon по системному сокету... а не пользовательским Docker
|
|
119
|
+
* context").
|
|
120
|
+
*
|
|
121
|
+
* `cdiList` is {@link cdiListsNvidiaGpu}'s source command.
|
|
122
|
+
*/
|
|
123
|
+
export declare function parseDockerInfo(output: CommandOutput | null, cdiList: CommandOutput | null): DockerInfoFacts;
|
|
124
|
+
/**
|
|
125
|
+
* `dpkg-query -W -f '${db:Status-Abbrev} ${Package} ${Version}\n' <candidates>`: one line per
|
|
126
|
+
* package dpkg has ever heard of, prefixed with its status (`ii` installed, `rc` removed with
|
|
127
|
+
* config left behind, `un` unknown/never installed, ...). Only `ii` counts as actually installed —
|
|
128
|
+
* `-W` alone (without the status prefix) would also print a `rc` package's name, which is exactly a
|
|
129
|
+
* package that `apt remove` (not `purge`) took out, and treating that as present would leave a
|
|
130
|
+
* stale install undetected. A package dpkg has never heard of at all prints nothing to stdout (and
|
|
131
|
+
* "no packages found matching ..." to stderr instead), which this simply never matches. The
|
|
132
|
+
* trailing `${Version}` column (round 3, ruling 5) is read by {@link dpkgEngineVersion}; this
|
|
133
|
+
* function only ever reads the first two.
|
|
134
|
+
*/
|
|
135
|
+
export declare function installedDpkgPackages(output: CommandOutput | null, candidates: string[]): string[];
|
|
136
|
+
/**
|
|
137
|
+
* `rpm -q <candidates>`: a hit prints the full name-version-release (`docker-ce-3:28.3.0-1.fc41...`)
|
|
138
|
+
* on its own line; a miss prints `package <name> is not installed` (to stdout, with a non-zero exit
|
|
139
|
+
* code this parser does not need to check), which this only has to avoid matching.
|
|
140
|
+
*/
|
|
141
|
+
export declare function installedRpmPackages(output: CommandOutput | null, candidates: string[]): string[];
|
|
142
|
+
/**
|
|
143
|
+
* `pacman -Q <candidates>`: one `name version` line on stdout per installed name; a missing name
|
|
144
|
+
* only adds an error line on stderr (and makes the exit code 1, whatever else was found).
|
|
145
|
+
*/
|
|
146
|
+
export declare function installedPacmanPackages(output: CommandOutput | null, candidates: string[]): string[];
|
|
147
|
+
/** The package the recipe installs, and the only one that counts as the toolkit (F-5). */
|
|
148
|
+
export declare const TOOLKIT_PACKAGE = "nvidia-container-toolkit";
|
|
149
|
+
/**
|
|
150
|
+
* Whether the full NVIDIA Container Toolkit is installed — the `nvidia-container-toolkit` package,
|
|
151
|
+
* not `nvidia-container-toolkit-base` alone (F-5). `-base` ships `nvidia-ctk` and
|
|
152
|
+
* `nvidia-container-runtime`, so `nvidia-ctk --version` answers either way; the package database is
|
|
153
|
+
* what tells them apart. `query` is the family's own single-package query (`dpkg-query -W -f
|
|
154
|
+
* '${db:Status-Abbrev} ${Package}\n' nvidia-container-toolkit`, `rpm -q nvidia-container-toolkit` or
|
|
155
|
+
* `pacman -Q nvidia-container-toolkit`), or null on a family without one, where the CLI answering is
|
|
156
|
+
* all there is to go by.
|
|
157
|
+
*/
|
|
158
|
+
export declare function fullToolkitInstalled(family: 'apt' | 'dnf' | 'pacman' | 'other' | null, ctkVersion: CommandOutput, query: CommandOutput | null): boolean;
|
|
159
|
+
/** Arch's own engine package, and Docker Desktop's package on Arch (round 4, item E). */
|
|
160
|
+
export declare const PACMAN_PACKAGE_CANDIDATES: string[];
|
|
161
|
+
/** The read-only lookups {@link detectDockerInstallMethod} needs beyond `docker info` itself. */
|
|
162
|
+
export interface DockerPackageSignals {
|
|
163
|
+
/** `docker --version`: podman-docker's shim prints Podman's own banner here, not Docker's. */
|
|
164
|
+
dockerVersion: CommandOutput | null;
|
|
165
|
+
dpkgQuery: CommandOutput | null;
|
|
166
|
+
rpmQuery: CommandOutput | null;
|
|
167
|
+
/** `pacman -Q docker docker-desktop` (round 4, item E). */
|
|
168
|
+
pacmanQuery: CommandOutput | null;
|
|
169
|
+
/** `snap list docker`. */
|
|
170
|
+
snapList: CommandOutput | null;
|
|
171
|
+
}
|
|
172
|
+
/** `docker-desktop` is Docker Desktop for Linux's own `.deb`/`.rpm` package name (item 5). */
|
|
173
|
+
export declare const DOCKER_PACKAGE_CANDIDATES: string[];
|
|
174
|
+
/**
|
|
175
|
+
* How Docker got onto this machine, or null when none of the signals recognise an install.
|
|
176
|
+
*
|
|
177
|
+
* Order matters: a `podman-docker` shim or a snap package is decided before anything from `docker
|
|
178
|
+
* info` (their `docker` command may not even resolve to a real Engine, so `info`'s own answer is
|
|
179
|
+
* not trusted over the package database for these).
|
|
180
|
+
*
|
|
181
|
+
* Desktop is decided next, but only two ways (round 2, item 4 — the previous order blocked a
|
|
182
|
+
* working Desktop+Engine host that also happened to have the `docker-desktop` package installed
|
|
183
|
+
* alongside a real, reachable `docker-ce`): `info.desktop` when the daemon that actually answered
|
|
184
|
+
* says so directly, or the `docker-desktop` package **only when the system socket did not answer at
|
|
185
|
+
* all and no recognised engine package is also present** — a reachable `docker-ce`/`moby-engine`/
|
|
186
|
+
* `docker.io` always wins over a Desktop package that merely happens to be installed alongside it.
|
|
187
|
+
*
|
|
188
|
+
* `rootlessSocketPresent` (a leftover `$XDG_RUNTIME_DIR/docker.sock`) only counts when the system
|
|
189
|
+
* socket itself did not answer *and* `docker.service` is not active either (round 2, item 8) — a
|
|
190
|
+
* working rootful engine, or one that is simply unreachable for some other reason while the service
|
|
191
|
+
* is confirmed running, takes priority over a stray rootless socket file from an earlier, abandoned
|
|
192
|
+
* setup.
|
|
193
|
+
*
|
|
194
|
+
* Arch's own `docker` package never becomes an install method here (it is not a
|
|
195
|
+
* `LinuxDockerInstallMethod`; `assessLinux` recognises it through `distribution.family === 'pacman'
|
|
196
|
+
* && docker.cli` instead, round 3 item 1). It does count as an installed engine for the Desktop rule
|
|
197
|
+
* above, and `pacman -Q docker-desktop` counts as the Desktop package, so a Desktop-only Arch host is
|
|
198
|
+
* read as Docker Desktop, not as an unrecognised install (round 4, item E).
|
|
199
|
+
*/
|
|
200
|
+
export declare function detectDockerInstallMethod(info: DockerInfoFacts, packages: DockerPackageSignals, rootlessSocketPresent: boolean, serviceActive: boolean | 'unknown'): LinuxDockerInstallMethod | null;
|