@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,342 @@
|
|
|
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
|
+
const ABSENT = {
|
|
38
|
+
daemon_reachable: false,
|
|
39
|
+
engine_identity: null,
|
|
40
|
+
version: null,
|
|
41
|
+
gpu_runtime: false,
|
|
42
|
+
nvidia_runtime: false,
|
|
43
|
+
selinux: false,
|
|
44
|
+
docker_root_dir: null,
|
|
45
|
+
containers_running: 0,
|
|
46
|
+
rootless: false,
|
|
47
|
+
desktop: false,
|
|
48
|
+
server_errors: [],
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* `nvidia-ctk cdi list`: read-only, and the only way this probe confirms an NVIDIA CDI device actually
|
|
52
|
+
* exists — the one readiness signal for the GPU runtime (F-5). It reads the spec directories
|
|
53
|
+
* (`/etc/cdi`, `/var/run/cdi`) itself, so it answers whether or not the daemon does.
|
|
54
|
+
*/
|
|
55
|
+
export function cdiListsNvidiaGpu(cdiList) {
|
|
56
|
+
return cdiList !== null && cdiList.code === 0 && /nvidia\.com\/gpu/i.test(cdiList.stdout);
|
|
57
|
+
}
|
|
58
|
+
export function daemonJsonNvidiaRuntimeEvidence(read) {
|
|
59
|
+
if (read.unreadable)
|
|
60
|
+
return 'unreadable';
|
|
61
|
+
if (read.text === null)
|
|
62
|
+
return 'not-configured';
|
|
63
|
+
try {
|
|
64
|
+
const parsed = JSON.parse(read.text);
|
|
65
|
+
return Object.keys(parsed.runtimes ?? {}).includes('nvidia') ? 'configured' : 'not-configured';
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return 'unreadable';
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/** First `X.Y.Z` substring, ignoring any epoch prefix (`5:`) or distro suffix (`-1~noble1`, `.fc41`). */
|
|
72
|
+
function firstSemverLike(text) {
|
|
73
|
+
const match = /(\d+\.\d+\.\d+)/.exec(text);
|
|
74
|
+
return match === null ? null : match[1];
|
|
75
|
+
}
|
|
76
|
+
const ENGINE_PACKAGE_NAMES = ['docker-ce', 'docker.io', 'moby-engine'];
|
|
77
|
+
/** `dpkg-query -W -f '${db:Status-Abbrev} ${Package} ${Version}\n' <candidates>`'s third column, for
|
|
78
|
+
* whichever recognised engine package is `ii` (installed). */
|
|
79
|
+
export function dpkgEngineVersion(output) {
|
|
80
|
+
if (output === null)
|
|
81
|
+
return null;
|
|
82
|
+
for (const raw of output.stdout.split('\n')) {
|
|
83
|
+
const match = /^ii\s+(\S+)\s+(.+)$/.exec(raw.trim());
|
|
84
|
+
if (match === null)
|
|
85
|
+
continue;
|
|
86
|
+
if (!ENGINE_PACKAGE_NAMES.includes(match[1]))
|
|
87
|
+
continue;
|
|
88
|
+
const version = firstSemverLike(match[2]);
|
|
89
|
+
if (version !== null)
|
|
90
|
+
return version;
|
|
91
|
+
}
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
/** `rpm -q <candidates>`'s name-version-release line for whichever recognised engine package hit. */
|
|
95
|
+
export function rpmEngineVersion(output) {
|
|
96
|
+
if (output === null)
|
|
97
|
+
return null;
|
|
98
|
+
for (const raw of output.stdout.split('\n')) {
|
|
99
|
+
const line = raw.trim();
|
|
100
|
+
if (line === '' || line.includes('is not installed'))
|
|
101
|
+
continue;
|
|
102
|
+
if (!ENGINE_PACKAGE_NAMES.some((name) => line.startsWith(`${name}-`)))
|
|
103
|
+
continue;
|
|
104
|
+
const version = firstSemverLike(line);
|
|
105
|
+
if (version !== null)
|
|
106
|
+
return version;
|
|
107
|
+
}
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* `pacman -Q docker docker-desktop`: a `name version` line on stdout per installed name (`docker
|
|
112
|
+
* 1:28.3.3-1`, with Arch's epoch), an `error: package '...' was not found` line on stderr per
|
|
113
|
+
* missing one, and exit `1` whenever any name is missing — so the exit code says nothing about
|
|
114
|
+
* whether `docker` itself is installed; only stdout does (round 4, item E).
|
|
115
|
+
*/
|
|
116
|
+
export function pacmanEngineVersion(output) {
|
|
117
|
+
if (output === null || output.code === null)
|
|
118
|
+
return null;
|
|
119
|
+
const match = /^docker\s+(\S+)/m.exec(output.stdout);
|
|
120
|
+
return match === null ? null : firstSemverLike(match[1]);
|
|
121
|
+
}
|
|
122
|
+
/** The first engine version any of the three package managers can confirm, or null (round 3, ruling 5). */
|
|
123
|
+
export function detectEngineVersion(dpkgQuery, rpmQuery, pacmanQuery) {
|
|
124
|
+
return dpkgEngineVersion(dpkgQuery) ?? rpmEngineVersion(rpmQuery) ?? pacmanEngineVersion(pacmanQuery);
|
|
125
|
+
}
|
|
126
|
+
const isNonEmptyString = (value) => typeof value === 'string' && value !== '';
|
|
127
|
+
function stringEntries(value) {
|
|
128
|
+
return Array.isArray(value) ? value.filter((entry) => typeof entry === 'string') : [];
|
|
129
|
+
}
|
|
130
|
+
/** `ServerErrors` from whatever JSON document a failed call still printed; `[]` when there is none. */
|
|
131
|
+
function serverErrorsOf(stdout) {
|
|
132
|
+
try {
|
|
133
|
+
return stringEntries(JSON.parse(stdout).ServerErrors);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return [];
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* `docker -H unix:///var/run/docker.sock info --format '{{json .}}'`. The `-H` flag pins the
|
|
141
|
+
* query to the system socket under the current user and overrides both `DOCKER_HOST` and an
|
|
142
|
+
* active `DOCKER_CONTEXT`, so this reads the same daemon a `docker` group member would reach —
|
|
143
|
+
* never a user's own rootless daemon or a context pointed elsewhere (spec: "Доступ к Docker MUST
|
|
144
|
+
* определяться фактическим вызовом daemon по системному сокету... а не пользовательским Docker
|
|
145
|
+
* context").
|
|
146
|
+
*
|
|
147
|
+
* `cdiList` is {@link cdiListsNvidiaGpu}'s source command.
|
|
148
|
+
*/
|
|
149
|
+
export function parseDockerInfo(output, cdiList) {
|
|
150
|
+
if (output === null || output.code === null)
|
|
151
|
+
return ABSENT;
|
|
152
|
+
// docker CLI ≥28.3 exits non-zero on a failed Info() but still prints the templated document, real
|
|
153
|
+
// error in ServerErrors. Never reachable; the errors are kept for diagnostics the same way the
|
|
154
|
+
// ≤28.2 exit-0 shape below keeps them (round 4, item 2).
|
|
155
|
+
if (output.code !== 0)
|
|
156
|
+
return { ...ABSENT, server_errors: serverErrorsOf(output.stdout) };
|
|
157
|
+
try {
|
|
158
|
+
const info = JSON.parse(output.stdout);
|
|
159
|
+
const serverErrors = stringEntries(info.ServerErrors);
|
|
160
|
+
const serverVersion = isNonEmptyString(info.ServerVersion) ? info.ServerVersion : null;
|
|
161
|
+
// docker CLI ≤28.2 (docker.io, moby-engine, and older docker-ce — all on the recipe list) exits
|
|
162
|
+
// 0 and prints a fully-templated JSON document even when Info() itself failed: ServerErrors
|
|
163
|
+
// carries the real error, and every other field is the Go zero value. That is a failed call,
|
|
164
|
+
// not a reachable daemon with an empty version string (round 2, item 1).
|
|
165
|
+
if (serverErrors.length > 0 && serverVersion === null) {
|
|
166
|
+
return { ...ABSENT, server_errors: serverErrors };
|
|
167
|
+
}
|
|
168
|
+
const runtimes = Object.keys(info.Runtimes ?? {});
|
|
169
|
+
const securityOptions = stringEntries(info.SecurityOptions);
|
|
170
|
+
const nameAndOs = `${typeof info.Name === 'string' ? info.Name : ''} ${typeof info.OperatingSystem === 'string' ? info.OperatingSystem : ''}`.toLowerCase();
|
|
171
|
+
return {
|
|
172
|
+
daemon_reachable: true,
|
|
173
|
+
engine_identity: isNonEmptyString(info.ID) ? info.ID : null,
|
|
174
|
+
version: serverVersion,
|
|
175
|
+
// CDI alone decides (F-5): a registered `nvidia` runtime without a spec left the card outside
|
|
176
|
+
// the container on Docker 29. `CDISpecDirs` is not required either — an older daemon with CDI
|
|
177
|
+
// off serves `--gpus` through the full toolkit's hook, which the recipe installs too.
|
|
178
|
+
gpu_runtime: cdiListsNvidiaGpu(cdiList),
|
|
179
|
+
nvidia_runtime: runtimes.includes('nvidia'),
|
|
180
|
+
selinux: securityOptions.some((option) => option === 'name=selinux' || option.startsWith('name=selinux')),
|
|
181
|
+
// An empty string is not a path (round 2, item 1): a probe that read '' and fell back to it
|
|
182
|
+
// literally, instead of to the default install location, would check free space at "".
|
|
183
|
+
docker_root_dir: isNonEmptyString(info.DockerRootDir) ? info.DockerRootDir : null,
|
|
184
|
+
containers_running: typeof info.ContainersRunning === 'number' ? info.ContainersRunning : 0,
|
|
185
|
+
rootless: securityOptions.some((option) => option === 'rootless' || option.startsWith('name=rootless')),
|
|
186
|
+
desktop: /docker[ -]desktop/.test(nameAndOs),
|
|
187
|
+
server_errors: serverErrors,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
return ABSENT;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* `dpkg-query -W -f '${db:Status-Abbrev} ${Package} ${Version}\n' <candidates>`: one line per
|
|
196
|
+
* package dpkg has ever heard of, prefixed with its status (`ii` installed, `rc` removed with
|
|
197
|
+
* config left behind, `un` unknown/never installed, ...). Only `ii` counts as actually installed —
|
|
198
|
+
* `-W` alone (without the status prefix) would also print a `rc` package's name, which is exactly a
|
|
199
|
+
* package that `apt remove` (not `purge`) took out, and treating that as present would leave a
|
|
200
|
+
* stale install undetected. A package dpkg has never heard of at all prints nothing to stdout (and
|
|
201
|
+
* "no packages found matching ..." to stderr instead), which this simply never matches. The
|
|
202
|
+
* trailing `${Version}` column (round 3, ruling 5) is read by {@link dpkgEngineVersion}; this
|
|
203
|
+
* function only ever reads the first two.
|
|
204
|
+
*/
|
|
205
|
+
export function installedDpkgPackages(output, candidates) {
|
|
206
|
+
if (output === null)
|
|
207
|
+
return [];
|
|
208
|
+
const installed = new Set();
|
|
209
|
+
for (const raw of output.stdout.split('\n')) {
|
|
210
|
+
const match = /^ii\s+(\S+)/.exec(raw.trim());
|
|
211
|
+
if (match !== null)
|
|
212
|
+
installed.add(match[1]);
|
|
213
|
+
}
|
|
214
|
+
return candidates.filter((name) => installed.has(name));
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* `rpm -q <candidates>`: a hit prints the full name-version-release (`docker-ce-3:28.3.0-1.fc41...`)
|
|
218
|
+
* on its own line; a miss prints `package <name> is not installed` (to stdout, with a non-zero exit
|
|
219
|
+
* code this parser does not need to check), which this only has to avoid matching.
|
|
220
|
+
*/
|
|
221
|
+
export function installedRpmPackages(output, candidates) {
|
|
222
|
+
if (output === null)
|
|
223
|
+
return [];
|
|
224
|
+
const found = [];
|
|
225
|
+
for (const raw of output.stdout.split('\n')) {
|
|
226
|
+
const line = raw.trim();
|
|
227
|
+
if (line === '' || line.includes('is not installed'))
|
|
228
|
+
continue;
|
|
229
|
+
const match = candidates.find((name) => line === name || line.startsWith(`${name}-`));
|
|
230
|
+
if (match !== undefined && !found.includes(match))
|
|
231
|
+
found.push(match);
|
|
232
|
+
}
|
|
233
|
+
return found;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* `pacman -Q <candidates>`: one `name version` line on stdout per installed name; a missing name
|
|
237
|
+
* only adds an error line on stderr (and makes the exit code 1, whatever else was found).
|
|
238
|
+
*/
|
|
239
|
+
export function installedPacmanPackages(output, candidates) {
|
|
240
|
+
if (output === null)
|
|
241
|
+
return [];
|
|
242
|
+
const installed = new Set();
|
|
243
|
+
for (const raw of output.stdout.split('\n')) {
|
|
244
|
+
const match = /^(\S+)\s+\S+/.exec(raw.trim());
|
|
245
|
+
if (match !== null)
|
|
246
|
+
installed.add(match[1]);
|
|
247
|
+
}
|
|
248
|
+
return candidates.filter((name) => installed.has(name));
|
|
249
|
+
}
|
|
250
|
+
/** The package the recipe installs, and the only one that counts as the toolkit (F-5). */
|
|
251
|
+
export const TOOLKIT_PACKAGE = 'nvidia-container-toolkit';
|
|
252
|
+
/**
|
|
253
|
+
* Whether the full NVIDIA Container Toolkit is installed — the `nvidia-container-toolkit` package,
|
|
254
|
+
* not `nvidia-container-toolkit-base` alone (F-5). `-base` ships `nvidia-ctk` and
|
|
255
|
+
* `nvidia-container-runtime`, so `nvidia-ctk --version` answers either way; the package database is
|
|
256
|
+
* what tells them apart. `query` is the family's own single-package query (`dpkg-query -W -f
|
|
257
|
+
* '${db:Status-Abbrev} ${Package}\n' nvidia-container-toolkit`, `rpm -q nvidia-container-toolkit` or
|
|
258
|
+
* `pacman -Q nvidia-container-toolkit`), or null on a family without one, where the CLI answering is
|
|
259
|
+
* all there is to go by.
|
|
260
|
+
*/
|
|
261
|
+
export function fullToolkitInstalled(family, ctkVersion, query) {
|
|
262
|
+
if (ctkVersion.code !== 0)
|
|
263
|
+
return false;
|
|
264
|
+
if (family === null || family === 'other')
|
|
265
|
+
return true;
|
|
266
|
+
const candidates = [TOOLKIT_PACKAGE];
|
|
267
|
+
const found = family === 'apt'
|
|
268
|
+
? installedDpkgPackages(query, candidates)
|
|
269
|
+
: family === 'dnf'
|
|
270
|
+
? installedRpmPackages(query, candidates)
|
|
271
|
+
: installedPacmanPackages(query, candidates);
|
|
272
|
+
return found.includes(TOOLKIT_PACKAGE);
|
|
273
|
+
}
|
|
274
|
+
/** Arch's own engine package, and Docker Desktop's package on Arch (round 4, item E). */
|
|
275
|
+
export const PACMAN_PACKAGE_CANDIDATES = ['docker', 'docker-desktop'];
|
|
276
|
+
/** `docker-desktop` is Docker Desktop for Linux's own `.deb`/`.rpm` package name (item 5). */
|
|
277
|
+
export const DOCKER_PACKAGE_CANDIDATES = [
|
|
278
|
+
'docker-ce',
|
|
279
|
+
'docker.io',
|
|
280
|
+
'moby-engine',
|
|
281
|
+
'podman-docker',
|
|
282
|
+
'docker-desktop',
|
|
283
|
+
];
|
|
284
|
+
/**
|
|
285
|
+
* How Docker got onto this machine, or null when none of the signals recognise an install.
|
|
286
|
+
*
|
|
287
|
+
* Order matters: a `podman-docker` shim or a snap package is decided before anything from `docker
|
|
288
|
+
* info` (their `docker` command may not even resolve to a real Engine, so `info`'s own answer is
|
|
289
|
+
* not trusted over the package database for these).
|
|
290
|
+
*
|
|
291
|
+
* Desktop is decided next, but only two ways (round 2, item 4 — the previous order blocked a
|
|
292
|
+
* working Desktop+Engine host that also happened to have the `docker-desktop` package installed
|
|
293
|
+
* alongside a real, reachable `docker-ce`): `info.desktop` when the daemon that actually answered
|
|
294
|
+
* says so directly, or the `docker-desktop` package **only when the system socket did not answer at
|
|
295
|
+
* all and no recognised engine package is also present** — a reachable `docker-ce`/`moby-engine`/
|
|
296
|
+
* `docker.io` always wins over a Desktop package that merely happens to be installed alongside it.
|
|
297
|
+
*
|
|
298
|
+
* `rootlessSocketPresent` (a leftover `$XDG_RUNTIME_DIR/docker.sock`) only counts when the system
|
|
299
|
+
* socket itself did not answer *and* `docker.service` is not active either (round 2, item 8) — a
|
|
300
|
+
* working rootful engine, or one that is simply unreachable for some other reason while the service
|
|
301
|
+
* is confirmed running, takes priority over a stray rootless socket file from an earlier, abandoned
|
|
302
|
+
* setup.
|
|
303
|
+
*
|
|
304
|
+
* Arch's own `docker` package never becomes an install method here (it is not a
|
|
305
|
+
* `LinuxDockerInstallMethod`; `assessLinux` recognises it through `distribution.family === 'pacman'
|
|
306
|
+
* && docker.cli` instead, round 3 item 1). It does count as an installed engine for the Desktop rule
|
|
307
|
+
* above, and `pacman -Q docker-desktop` counts as the Desktop package, so a Desktop-only Arch host is
|
|
308
|
+
* read as Docker Desktop, not as an unrecognised install (round 4, item E).
|
|
309
|
+
*/
|
|
310
|
+
export function detectDockerInstallMethod(info, packages, rootlessSocketPresent, serviceActive) {
|
|
311
|
+
if (packages.dockerVersion !== null &&
|
|
312
|
+
packages.dockerVersion.code === 0 &&
|
|
313
|
+
/podman/i.test(packages.dockerVersion.stdout)) {
|
|
314
|
+
return 'podman-docker';
|
|
315
|
+
}
|
|
316
|
+
const found = new Set([
|
|
317
|
+
...installedDpkgPackages(packages.dpkgQuery, DOCKER_PACKAGE_CANDIDATES),
|
|
318
|
+
...installedRpmPackages(packages.rpmQuery, DOCKER_PACKAGE_CANDIDATES),
|
|
319
|
+
...installedPacmanPackages(packages.pacmanQuery, PACMAN_PACKAGE_CANDIDATES),
|
|
320
|
+
]);
|
|
321
|
+
if (found.has('podman-docker'))
|
|
322
|
+
return 'podman-docker';
|
|
323
|
+
if (packages.snapList !== null && packages.snapList.code === 0 && /docker/.test(packages.snapList.stdout)) {
|
|
324
|
+
return 'snap';
|
|
325
|
+
}
|
|
326
|
+
const engineInstalled = found.has('docker-ce') || found.has('moby-engine') || found.has('docker.io') || found.has('docker');
|
|
327
|
+
if (info.desktop)
|
|
328
|
+
return 'docker-desktop';
|
|
329
|
+
if (found.has('docker-desktop') && !info.daemon_reachable && !engineInstalled)
|
|
330
|
+
return 'docker-desktop';
|
|
331
|
+
if (info.rootless || (!info.daemon_reachable && rootlessSocketPresent && serviceActive !== true)) {
|
|
332
|
+
return 'rootless';
|
|
333
|
+
}
|
|
334
|
+
if (found.has('docker-ce'))
|
|
335
|
+
return 'docker-ce';
|
|
336
|
+
if (found.has('moby-engine'))
|
|
337
|
+
return 'moby-engine';
|
|
338
|
+
if (found.has('docker.io'))
|
|
339
|
+
return 'docker.io';
|
|
340
|
+
return null;
|
|
341
|
+
}
|
|
342
|
+
//# sourceMappingURL=linux-docker-facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linux-docker-facts.js","sourceRoot":"","sources":["../../../src/runtime/environment/linux-docker-facts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether Docker will find an address range for its default bridge on this machine (task 2.23,
|
|
3
|
+
* finding F-4), read before anything is installed or started.
|
|
4
|
+
*
|
|
5
|
+
* When `dockerd` starts it gives the `docker0` bridge the first subnet of its predefined pools that
|
|
6
|
+
* overlaps no route in the host's routing table. A full-tunnel VPN (`0.0.0.0/1` and `128.0.0.0/1`
|
|
7
|
+
* through `tun*`, the 3.10 acceptance host) overlaps all of them, and the daemon exits with "all
|
|
8
|
+
* predefined address pools have been fully subnetted" — the recipe's `docker-service` step fails after
|
|
9
|
+
* the user consented, and systemd parks the unit in `start-limit-hit`. `bip` or `default-address-pools`
|
|
10
|
+
* in `/etc/docker/daemon.json` replace that search, so either one set means the user already chose.
|
|
11
|
+
*
|
|
12
|
+
* The routes come from `/proc/net/route`: the kernel's main IPv4 table, the one Docker's own overlap
|
|
13
|
+
* check reads (netlink `RouteList` without a table filter), always present, no binary on `PATH`
|
|
14
|
+
* needed. The default route has no destination network and never counts; Docker skips it too.
|
|
15
|
+
*
|
|
16
|
+
* The pools are Docker's compiled-in defaults, moby `libnetwork/ipamutils/utils.go`
|
|
17
|
+
* (`localScopeDefaultNetworks`): `172.17.0.0/16`, `172.18.0.0/16`, `172.19.0.0/16`,
|
|
18
|
+
* `172.20.0.0/14`, `172.24.0.0/14` and `172.28.0.0/14` split into /16s, and `192.168.0.0/16` split
|
|
19
|
+
* into /20s — 31 candidate subnets.
|
|
20
|
+
*
|
|
21
|
+
* Pure: the probe reads the file and `daemon.json`, `assessLinux` turns the answer into a plan
|
|
22
|
+
* warning (never a blocker: the VPN may be switched off, and the fix is the user's own
|
|
23
|
+
* configuration, which the recipe never edits).
|
|
24
|
+
*/
|
|
25
|
+
/** An IPv4 network as a 32-bit unsigned address and a prefix length. */
|
|
26
|
+
export interface Ipv4Cidr {
|
|
27
|
+
address: number;
|
|
28
|
+
prefix: number;
|
|
29
|
+
}
|
|
30
|
+
/** `a.b.c.d/n`, or a bare address as a /32. Null for anything else (IPv6, `default`, out of range). */
|
|
31
|
+
export declare function parseIpv4Cidr(text: string): Ipv4Cidr | null;
|
|
32
|
+
/** Every subnet Docker would try for a network, in its own order. */
|
|
33
|
+
export declare const DOCKER_DEFAULT_POOL_SUBNETS: readonly string[];
|
|
34
|
+
/** One route of the main IPv4 table: its destination in CIDR form and the interface it goes out of. */
|
|
35
|
+
export interface LinuxRoute {
|
|
36
|
+
destination: string;
|
|
37
|
+
device: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The routes of `/proc/net/route` (main IPv4 table), the default route left out. Null when the file
|
|
41
|
+
* could not be read — an unread table is no evidence either way.
|
|
42
|
+
*/
|
|
43
|
+
export declare function parseProcNetRoute(text: string | null): LinuxRoute[] | null;
|
|
44
|
+
/**
|
|
45
|
+
* The routes that leave Docker no default subnet, or null when some default subnet is still free —
|
|
46
|
+
* Docker then just takes that one.
|
|
47
|
+
*
|
|
48
|
+
* Only the routes that cause it are returned (task 2.23, review round 1): the smallest set, chosen
|
|
49
|
+
* greedily, that covers every pool — the route covering the most pools still uncovered first, a
|
|
50
|
+
* wider one first on a tie — returned in the table's order. A full-tunnel VPN's `128.0.0.0/1` alone covers all 31, so the home LAN
|
|
51
|
+
* inside `192.168.0.0/20` beside it is not named: it is not what a person has to change.
|
|
52
|
+
*/
|
|
53
|
+
export declare function routesCoveringDockerPools(routes: readonly LinuxRoute[]): LinuxRoute[] | null;
|
|
54
|
+
/**
|
|
55
|
+
* Whether `/etc/docker/daemon.json` sets `bip` or `default-address-pools`, either of which replaces
|
|
56
|
+
* Docker's default pool search. `'unknown'` when the file exists but could not be read or parsed.
|
|
57
|
+
*/
|
|
58
|
+
export declare function daemonJsonSetsAddressPools(read: {
|
|
59
|
+
text: string | null;
|
|
60
|
+
unreadable: boolean;
|
|
61
|
+
}): boolean | 'unknown';
|
|
62
|
+
/** A plan warning: shown before consent, never blocks it, and never part of `plan_digest`. */
|
|
63
|
+
export interface LinuxPlanWarning {
|
|
64
|
+
code: 'docker-address-pools-overlap-routes';
|
|
65
|
+
text: string;
|
|
66
|
+
params?: Record<string, string>;
|
|
67
|
+
}
|
|
68
|
+
/** What a person does about it; the same words in the plan warning and in the failed step's error. */
|
|
69
|
+
export declare const DOCKER_ADDRESS_POOLS_INSTRUCTION: string;
|
|
70
|
+
/**
|
|
71
|
+
* The F-4 warning: Docker is not running yet (not installed, or its service inactive), every default
|
|
72
|
+
* subnet overlaps a non-default route, and `daemon.json` sets neither `bip` nor
|
|
73
|
+
* `default-address-pools`. Anything this probe could not read suppresses it rather than guessing.
|
|
74
|
+
* `params.routes` and `params.devices` name only the routes that cause it (`routesCoveringDockerPools`).
|
|
75
|
+
*/
|
|
76
|
+
export declare function dockerAddressPoolWarning(input: {
|
|
77
|
+
dockerRunning: boolean;
|
|
78
|
+
addressPoolsConfigured: boolean | 'unknown';
|
|
79
|
+
routes: readonly LinuxRoute[] | null;
|
|
80
|
+
}): LinuxPlanWarning | null;
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether Docker will find an address range for its default bridge on this machine (task 2.23,
|
|
3
|
+
* finding F-4), read before anything is installed or started.
|
|
4
|
+
*
|
|
5
|
+
* When `dockerd` starts it gives the `docker0` bridge the first subnet of its predefined pools that
|
|
6
|
+
* overlaps no route in the host's routing table. A full-tunnel VPN (`0.0.0.0/1` and `128.0.0.0/1`
|
|
7
|
+
* through `tun*`, the 3.10 acceptance host) overlaps all of them, and the daemon exits with "all
|
|
8
|
+
* predefined address pools have been fully subnetted" — the recipe's `docker-service` step fails after
|
|
9
|
+
* the user consented, and systemd parks the unit in `start-limit-hit`. `bip` or `default-address-pools`
|
|
10
|
+
* in `/etc/docker/daemon.json` replace that search, so either one set means the user already chose.
|
|
11
|
+
*
|
|
12
|
+
* The routes come from `/proc/net/route`: the kernel's main IPv4 table, the one Docker's own overlap
|
|
13
|
+
* check reads (netlink `RouteList` without a table filter), always present, no binary on `PATH`
|
|
14
|
+
* needed. The default route has no destination network and never counts; Docker skips it too.
|
|
15
|
+
*
|
|
16
|
+
* The pools are Docker's compiled-in defaults, moby `libnetwork/ipamutils/utils.go`
|
|
17
|
+
* (`localScopeDefaultNetworks`): `172.17.0.0/16`, `172.18.0.0/16`, `172.19.0.0/16`,
|
|
18
|
+
* `172.20.0.0/14`, `172.24.0.0/14` and `172.28.0.0/14` split into /16s, and `192.168.0.0/16` split
|
|
19
|
+
* into /20s — 31 candidate subnets.
|
|
20
|
+
*
|
|
21
|
+
* Pure: the probe reads the file and `daemon.json`, `assessLinux` turns the answer into a plan
|
|
22
|
+
* warning (never a blocker: the VPN may be switched off, and the fix is the user's own
|
|
23
|
+
* configuration, which the recipe never edits).
|
|
24
|
+
*/
|
|
25
|
+
/** Docker's default local pools: each `base` is split into subnets of `/size` (see the header). */
|
|
26
|
+
const DOCKER_DEFAULT_POOLS = [
|
|
27
|
+
{ base: '172.17.0.0/16', size: 16 },
|
|
28
|
+
{ base: '172.18.0.0/16', size: 16 },
|
|
29
|
+
{ base: '172.19.0.0/16', size: 16 },
|
|
30
|
+
{ base: '172.20.0.0/14', size: 16 },
|
|
31
|
+
{ base: '172.24.0.0/14', size: 16 },
|
|
32
|
+
{ base: '172.28.0.0/14', size: 16 },
|
|
33
|
+
{ base: '192.168.0.0/16', size: 20 },
|
|
34
|
+
];
|
|
35
|
+
const toDotted = (address) => [address >>> 24, (address >>> 16) & 0xff, (address >>> 8) & 0xff, address & 0xff].join('.');
|
|
36
|
+
const format = (cidr) => `${toDotted(cidr.address)}/${cidr.prefix}`;
|
|
37
|
+
const maskOf = (prefix) => (prefix === 0 ? 0 : (0xffffffff << (32 - prefix)) >>> 0);
|
|
38
|
+
/** `a.b.c.d/n`, or a bare address as a /32. Null for anything else (IPv6, `default`, out of range). */
|
|
39
|
+
export function parseIpv4Cidr(text) {
|
|
40
|
+
const match = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})(?:\/(\d{1,2}))?$/.exec(text.trim());
|
|
41
|
+
if (match === null)
|
|
42
|
+
return null;
|
|
43
|
+
const octets = match.slice(1, 5).map(Number);
|
|
44
|
+
const prefix = match[5] === undefined ? 32 : Number(match[5]);
|
|
45
|
+
if (octets.some((octet) => octet > 255) || prefix > 32)
|
|
46
|
+
return null;
|
|
47
|
+
const address = ((octets[0] << 24) |
|
|
48
|
+
(octets[1] << 16) |
|
|
49
|
+
(octets[2] << 8) |
|
|
50
|
+
octets[3]) >>>
|
|
51
|
+
0;
|
|
52
|
+
return { address: (address & maskOf(prefix)) >>> 0, prefix };
|
|
53
|
+
}
|
|
54
|
+
/** Every subnet Docker would try for a network, in its own order. */
|
|
55
|
+
export const DOCKER_DEFAULT_POOL_SUBNETS = DOCKER_DEFAULT_POOLS.flatMap(({ base, size }) => {
|
|
56
|
+
const pool = parseIpv4Cidr(base);
|
|
57
|
+
const count = 2 ** (size - pool.prefix);
|
|
58
|
+
const step = 2 ** (32 - size);
|
|
59
|
+
return Array.from({ length: count }, (_, index) => format({ address: pool.address + index * step, prefix: size }));
|
|
60
|
+
});
|
|
61
|
+
/** Two networks overlap when the wider one contains the other's network address. */
|
|
62
|
+
function overlaps(a, b) {
|
|
63
|
+
const mask = maskOf(Math.min(a.prefix, b.prefix));
|
|
64
|
+
return (a.address & mask) >>> 0 === (b.address & mask) >>> 0;
|
|
65
|
+
}
|
|
66
|
+
/** One `/proc/net/route` hex field (the kernel prints the network-order word as a host-order number). */
|
|
67
|
+
function hexWord(field) {
|
|
68
|
+
if (field === undefined || !/^[0-9A-Fa-f]{8}$/.test(field))
|
|
69
|
+
return null;
|
|
70
|
+
const value = Number.parseInt(field, 16);
|
|
71
|
+
// Both supported architectures (x86_64, aarch64) are little-endian: the first octet is the low byte.
|
|
72
|
+
return ((((value & 0xff) << 24) |
|
|
73
|
+
(((value >>> 8) & 0xff) << 16) |
|
|
74
|
+
(((value >>> 16) & 0xff) << 8) |
|
|
75
|
+
(value >>> 24)) >>>
|
|
76
|
+
0);
|
|
77
|
+
}
|
|
78
|
+
const prefixOf = (mask) => {
|
|
79
|
+
let bits = 0;
|
|
80
|
+
while (bits < 32 && ((mask << bits) & 0x80000000) !== 0)
|
|
81
|
+
bits += 1;
|
|
82
|
+
return bits;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* The routes of `/proc/net/route` (main IPv4 table), the default route left out. Null when the file
|
|
86
|
+
* could not be read — an unread table is no evidence either way.
|
|
87
|
+
*/
|
|
88
|
+
export function parseProcNetRoute(text) {
|
|
89
|
+
if (text === null)
|
|
90
|
+
return null;
|
|
91
|
+
const routes = [];
|
|
92
|
+
for (const raw of text.split('\n').slice(1)) {
|
|
93
|
+
const fields = raw.trim().split(/\s+/);
|
|
94
|
+
const destination = hexWord(fields[1]);
|
|
95
|
+
const mask = hexWord(fields[7]);
|
|
96
|
+
if (destination === null || mask === null)
|
|
97
|
+
continue;
|
|
98
|
+
const prefix = prefixOf(mask);
|
|
99
|
+
if (prefix === 0)
|
|
100
|
+
continue; // the default route
|
|
101
|
+
routes.push({
|
|
102
|
+
destination: format({ address: (destination & maskOf(prefix)) >>> 0, prefix }),
|
|
103
|
+
device: fields[0],
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return routes;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The routes that leave Docker no default subnet, or null when some default subnet is still free —
|
|
110
|
+
* Docker then just takes that one.
|
|
111
|
+
*
|
|
112
|
+
* Only the routes that cause it are returned (task 2.23, review round 1): the smallest set, chosen
|
|
113
|
+
* greedily, that covers every pool — the route covering the most pools still uncovered first, a
|
|
114
|
+
* wider one first on a tie — returned in the table's order. A full-tunnel VPN's `128.0.0.0/1` alone covers all 31, so the home LAN
|
|
115
|
+
* inside `192.168.0.0/20` beside it is not named: it is not what a person has to change.
|
|
116
|
+
*/
|
|
117
|
+
export function routesCoveringDockerPools(routes) {
|
|
118
|
+
const pools = DOCKER_DEFAULT_POOL_SUBNETS.map((subnet) => parseIpv4Cidr(subnet));
|
|
119
|
+
const candidates = routes.flatMap((route) => {
|
|
120
|
+
const cidr = parseIpv4Cidr(route.destination);
|
|
121
|
+
if (cidr === null || cidr.prefix === 0)
|
|
122
|
+
return [];
|
|
123
|
+
const covers = pools.filter((pool) => overlaps(cidr, pool));
|
|
124
|
+
return covers.length === 0 ? [] : [{ route, cidr, covers }];
|
|
125
|
+
});
|
|
126
|
+
const uncovered = new Set(pools);
|
|
127
|
+
const chosen = [];
|
|
128
|
+
while (uncovered.size > 0) {
|
|
129
|
+
let best = null;
|
|
130
|
+
let bestCount = 0;
|
|
131
|
+
for (const candidate of candidates) {
|
|
132
|
+
const count = candidate.covers.filter((pool) => uncovered.has(pool)).length;
|
|
133
|
+
if (count > bestCount ||
|
|
134
|
+
(count === bestCount && count > 0 && best !== null && candidate.cidr.prefix < best.cidr.prefix)) {
|
|
135
|
+
best = candidate;
|
|
136
|
+
bestCount = count;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (best === null)
|
|
140
|
+
return null;
|
|
141
|
+
chosen.push(best.route);
|
|
142
|
+
for (const pool of best.covers)
|
|
143
|
+
uncovered.delete(pool);
|
|
144
|
+
}
|
|
145
|
+
// In the table's own order, whichever order they were picked in.
|
|
146
|
+
return routes.filter((route) => chosen.includes(route));
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Whether `/etc/docker/daemon.json` sets `bip` or `default-address-pools`, either of which replaces
|
|
150
|
+
* Docker's default pool search. `'unknown'` when the file exists but could not be read or parsed.
|
|
151
|
+
*/
|
|
152
|
+
export function daemonJsonSetsAddressPools(read) {
|
|
153
|
+
if (read.unreadable)
|
|
154
|
+
return 'unknown';
|
|
155
|
+
if (read.text === null)
|
|
156
|
+
return false;
|
|
157
|
+
try {
|
|
158
|
+
const parsed = JSON.parse(read.text);
|
|
159
|
+
const bip = typeof parsed.bip === 'string' && parsed.bip.trim() !== '';
|
|
160
|
+
const pools = Array.isArray(parsed['default-address-pools']) && parsed['default-address-pools'].length > 0;
|
|
161
|
+
return bip || pools;
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return 'unknown';
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/** What a person does about it; the same words in the plan warning and in the failed step's error. */
|
|
168
|
+
export const DOCKER_ADDRESS_POOLS_INSTRUCTION = "Exclude Docker's ranges (172.17.0.0/16 to 172.31.0.0/16 and 192.168.0.0/16) from the VPN, or set " +
|
|
169
|
+
'"default-address-pools" (or "bip") in /etc/docker/daemon.json to a range no route uses, before continuing.';
|
|
170
|
+
/**
|
|
171
|
+
* The F-4 warning: Docker is not running yet (not installed, or its service inactive), every default
|
|
172
|
+
* subnet overlaps a non-default route, and `daemon.json` sets neither `bip` nor
|
|
173
|
+
* `default-address-pools`. Anything this probe could not read suppresses it rather than guessing.
|
|
174
|
+
* `params.routes` and `params.devices` name only the routes that cause it (`routesCoveringDockerPools`).
|
|
175
|
+
*/
|
|
176
|
+
export function dockerAddressPoolWarning(input) {
|
|
177
|
+
if (input.dockerRunning || input.addressPoolsConfigured !== false || input.routes === null)
|
|
178
|
+
return null;
|
|
179
|
+
const covering = routesCoveringDockerPools(input.routes);
|
|
180
|
+
if (covering === null)
|
|
181
|
+
return null;
|
|
182
|
+
const named = covering.map((route) => `${route.destination} via ${route.device}`).join(', ');
|
|
183
|
+
const devices = [...new Set(covering.map((route) => route.device))];
|
|
184
|
+
return {
|
|
185
|
+
code: 'docker-address-pools-overlap-routes',
|
|
186
|
+
text: `Docker will not be able to start: the route${covering.length > 1 ? 's' : ''} ${named} ` +
|
|
187
|
+
`(often a full-tunnel VPN) cover${covering.length > 1 ? '' : 's'} every address range Docker uses ` +
|
|
188
|
+
`for its networks by default. ${DOCKER_ADDRESS_POOLS_INSTRUCTION}`,
|
|
189
|
+
params: {
|
|
190
|
+
routes: covering.map((route) => route.destination).join(','),
|
|
191
|
+
devices: devices.join(','),
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=linux-docker-network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linux-docker-network.js","sourceRoot":"","sources":["../../../src/runtime/environment/linux-docker-network.ts"],"names":[],"mappings":"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"}
|