@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,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The files of a deleted `tensorrt-llm` model (task 2.24, design D12a, spec `tensorrt-llm-models`
|
|
3
|
+
* "Модель удаляется через core"): every engine cache of the model, from any descriptor it was ever
|
|
4
|
+
* loaded with, then its own folder. Caches go first: a failure there leaves the model listed, so the
|
|
5
|
+
* deletion can simply be retried, instead of leaving gigabytes of cache no model points at.
|
|
6
|
+
*
|
|
7
|
+
* The caller (`tensorrtLlmModelDeleter` in `src/core/tensorrt-llm.ts`) has already stopped the model
|
|
8
|
+
* with Docker's confirmation and holds its loads off; nothing here asks Docker anything.
|
|
9
|
+
*/
|
|
10
|
+
import { lstat, readdir, rm } from 'node:fs/promises';
|
|
11
|
+
import { join } from 'node:path';
|
|
12
|
+
import { engineCacheDirsOf, removeEngineCaches } from '../managed-text/index.js';
|
|
13
|
+
/**
|
|
14
|
+
* Bytes of the regular files under `path`, symlinks not followed, a hard-linked file counted once
|
|
15
|
+
* across one deletion (`seen`). A missing path is 0.
|
|
16
|
+
*/
|
|
17
|
+
async function bytesUnder(path, seen) {
|
|
18
|
+
const info = await lstat(path).catch(() => undefined);
|
|
19
|
+
if (info === undefined)
|
|
20
|
+
return 0;
|
|
21
|
+
if (info.isFile()) {
|
|
22
|
+
const inode = `${info.dev}:${info.ino}`;
|
|
23
|
+
if (seen.has(inode))
|
|
24
|
+
return 0;
|
|
25
|
+
seen.add(inode);
|
|
26
|
+
return info.size;
|
|
27
|
+
}
|
|
28
|
+
if (!info.isDirectory())
|
|
29
|
+
return 0;
|
|
30
|
+
const children = await readdir(path).catch(() => []);
|
|
31
|
+
let total = 0;
|
|
32
|
+
for (const child of children)
|
|
33
|
+
total += await bytesUnder(join(path, child), seen);
|
|
34
|
+
return total;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* `files` (change `add-tensorrt-llm-windows`, task 2.8): on Windows the model and its caches are in the
|
|
38
|
+
* WSL guest, and are sized and removed by commands there (`guestModelFiles`) — all caches and the model
|
|
39
|
+
* in one call each, the caches listed first. Without it, the walk below, as on Linux.
|
|
40
|
+
*/
|
|
41
|
+
export async function deleteManagedModelFiles(paths, model, files) {
|
|
42
|
+
if (files !== undefined) {
|
|
43
|
+
const caches = await engineCacheDirsOf(paths, model.id);
|
|
44
|
+
const sizes = await files.sizes([...caches, model.dir]);
|
|
45
|
+
await files.remove([...caches, model.dir]);
|
|
46
|
+
const freed = [...sizes.values()].reduce((sum, bytes) => sum + bytes, 0);
|
|
47
|
+
return { freedBytes: freed, engineCachesRemoved: caches.length };
|
|
48
|
+
}
|
|
49
|
+
const seen = new Set();
|
|
50
|
+
const caches = await engineCacheDirsOf(paths, model.id);
|
|
51
|
+
const sizes = new Map();
|
|
52
|
+
for (const dir of caches)
|
|
53
|
+
sizes.set(dir, await bytesUnder(dir, seen));
|
|
54
|
+
const modelBytes = await bytesUnder(model.dir, seen);
|
|
55
|
+
const removed = await removeEngineCaches(paths, { modelId: model.id });
|
|
56
|
+
await rm(model.dir, { recursive: true, force: true });
|
|
57
|
+
const cacheBytes = removed.reduce((sum, dir) => sum + (sizes.get(dir) ?? 0), 0);
|
|
58
|
+
return { freedBytes: cacheBytes + modelBytes, engineCachesRemoved: removed.length };
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/runtime/managed-models/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type GuestMount, type WslDistributionTransport } from '../wsl/index.js';
|
|
2
|
+
/** Sizing and removing model and cache folders; the Linux default walks the file system itself. */
|
|
3
|
+
export interface ModelFileOps {
|
|
4
|
+
/** Bytes under each path; a path that is not there is 0. */
|
|
5
|
+
sizes(paths: string[]): Promise<Map<string, number>>;
|
|
6
|
+
remove(paths: string[]): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export declare function guestModelFiles(transport: WslDistributionTransport, mount?: GuestMount): ModelFileOps;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The files of `tensorrt-llm` models and engine caches on Windows (change `add-tensorrt-llm-windows`,
|
|
3
|
+
* task 2.8, design D5): they live in the WSL guest's ext4, and core sees them through
|
|
4
|
+
* `\\wsl.localhost`. Listing and reading a `model.yml` through that path is fine; sizing or deleting
|
|
5
|
+
* tens of gigabytes through it is not — thousands of 9p round trips for what `du` and `rm` do in the
|
|
6
|
+
* guest at once. So sizes and removals run as commands in the guest, as root, with the guest paths
|
|
7
|
+
* behind the UNC ones (`guestPathFor`, which refuses anything outside the distribution). One `du`
|
|
8
|
+
* call for every path counts a hard-linked file once, as the Linux walk does.
|
|
9
|
+
*/
|
|
10
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
11
|
+
import { WSL_LOCALHOST_MOUNT } from '../wsl/index.js';
|
|
12
|
+
const TIMEOUT_MS = 30 * 60_000;
|
|
13
|
+
export function guestModelFiles(transport, mount = WSL_LOCALHOST_MOUNT) {
|
|
14
|
+
const toGuest = (paths) => paths.map((path) => mount.guestPath(transport.name, path));
|
|
15
|
+
return {
|
|
16
|
+
sizes: async (paths) => {
|
|
17
|
+
const sizes = new Map(paths.map((path) => [path, 0]));
|
|
18
|
+
if (paths.length === 0)
|
|
19
|
+
return sizes;
|
|
20
|
+
const guest = toGuest(paths);
|
|
21
|
+
const answer = await transport.exec(['du', '-s', '-b', '--', ...guest], {
|
|
22
|
+
user: 'root',
|
|
23
|
+
timeoutMs: TIMEOUT_MS,
|
|
24
|
+
});
|
|
25
|
+
// `du` exits 1 when one path is missing, and still prints every other.
|
|
26
|
+
for (const line of answer.stdout.split('\n')) {
|
|
27
|
+
const match = /^(\d+)\t(.+)$/.exec(line);
|
|
28
|
+
if (match === null)
|
|
29
|
+
continue;
|
|
30
|
+
const index = guest.indexOf(match[2]);
|
|
31
|
+
if (index !== -1)
|
|
32
|
+
sizes.set(paths[index], Number(match[1]));
|
|
33
|
+
}
|
|
34
|
+
return sizes;
|
|
35
|
+
},
|
|
36
|
+
remove: async (paths) => {
|
|
37
|
+
if (paths.length === 0)
|
|
38
|
+
return;
|
|
39
|
+
const answer = await transport.exec(['rm', '-rf', '--', ...toGuest(paths)], {
|
|
40
|
+
user: 'root',
|
|
41
|
+
timeoutMs: TIMEOUT_MS,
|
|
42
|
+
});
|
|
43
|
+
if (answer.code !== 0) {
|
|
44
|
+
throw new AtomicCoreError('IO_ERROR', 'The files could not be removed in the Atomic Chat distribution.', answer.stderr.trim());
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=guest-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guest-files.js","sourceRoot":"","sources":["../../../src/runtime/managed-models/guest-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAkD,MAAM,iBAAiB,CAAA;AASrG,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,CAAA;AAE9B,MAAM,UAAU,eAAe,CAC7B,SAAmC,EACnC,QAAoB,mBAAmB;IAEvC,MAAM,OAAO,GAAG,CAAC,KAAe,EAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACzG,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACrE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;YAC5B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE;gBACtE,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,UAAU;aACtB,CAAC,CAAA;YACF,uEAAuE;YACvE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACxC,IAAI,KAAK,KAAK,IAAI;oBAAE,SAAQ;gBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAA;gBAC/C,IAAI,KAAK,KAAK,CAAC,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACvE,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACtB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YAC9B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC1E,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,UAAU;aACtB,CAAC,CAAA;YACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,eAAe,CACvB,UAAU,EACV,iEAAiE,EACjE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CACrB,CAAA;YACH,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What every managed engine shares about the models it runs (change `add-vllm-runtime`): the one
|
|
3
|
+
* quantization naming rule (`quant-format.ts`, design D6), the compatibility check skeleton with
|
|
4
|
+
* each engine's hooks (`compatibility.ts`, D7) and the check route behind
|
|
5
|
+
* `POST /atomic/v1/models/:provider/check` (`check.ts`).
|
|
6
|
+
*
|
|
7
|
+
* Public API of this module is exported from this file only.
|
|
8
|
+
*/
|
|
9
|
+
export * from './quant-format.js';
|
|
10
|
+
export * from './compatibility.js';
|
|
11
|
+
export * from './check.js';
|
|
12
|
+
export * from './model-dir.js';
|
|
13
|
+
export * from './registry.js';
|
|
14
|
+
export * from './delete.js';
|
|
15
|
+
export * from './location.js';
|
|
16
|
+
export * from './guest-files.js';
|
|
17
|
+
export * from './migrate.js';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What every managed engine shares about the models it runs (change `add-vllm-runtime`): the one
|
|
3
|
+
* quantization naming rule (`quant-format.ts`, design D6), the compatibility check skeleton with
|
|
4
|
+
* each engine's hooks (`compatibility.ts`, D7) and the check route behind
|
|
5
|
+
* `POST /atomic/v1/models/:provider/check` (`check.ts`).
|
|
6
|
+
*
|
|
7
|
+
* Public API of this module is exported from this file only.
|
|
8
|
+
*/
|
|
9
|
+
export * from './quant-format.js';
|
|
10
|
+
export * from './compatibility.js';
|
|
11
|
+
export * from './check.js';
|
|
12
|
+
export * from './model-dir.js';
|
|
13
|
+
export * from './registry.js';
|
|
14
|
+
export * from './delete.js';
|
|
15
|
+
export * from './location.js';
|
|
16
|
+
export * from './guest-files.js';
|
|
17
|
+
export * from './migrate.js';
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/managed-models/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ManagedModelLocation } from '../../contracts/index.js';
|
|
2
|
+
import type { WindowsEnvironmentRecord } from '../environment/index.js';
|
|
3
|
+
import { type GuestMount, type WslDistributionTransport } from '../wsl/index.js';
|
|
4
|
+
/** Linux: `<data>/managed-models`, with the free space of the volume it is (or will be) on. */
|
|
5
|
+
export declare function linuxModelLocation(root: string, freeBytes?: (path: string) => Promise<number | null>): Promise<ManagedModelLocation>;
|
|
6
|
+
export interface WindowsModelLocationDeps {
|
|
7
|
+
records: {
|
|
8
|
+
read(): Promise<WindowsEnvironmentRecord | null>;
|
|
9
|
+
};
|
|
10
|
+
/** This scope's `scope_key` (`readOrCreateGuestScopeKey`). */
|
|
11
|
+
scopeKey: () => Promise<string>;
|
|
12
|
+
transport: (distribution: string) => WslDistributionTransport;
|
|
13
|
+
/** Free bytes on the Windows volume holding `path` (`WindowsHost.freeDiskBytes`). */
|
|
14
|
+
volumeFreeBytes: (path: string) => Promise<number | null>;
|
|
15
|
+
/** How core reaches the guest's files; `\\wsl.localhost` unless a test says otherwise. */
|
|
16
|
+
mount?: GuestMount;
|
|
17
|
+
}
|
|
18
|
+
/** The guest folder of this scope's model store, every managed engine's. */
|
|
19
|
+
export declare function guestModelsRoot(scopeKey: string): string;
|
|
20
|
+
/** Where this scope's TensorRT-LLM models lived in the guest before the store (design D5). */
|
|
21
|
+
export declare function legacyGuestModelsRoot(scopeKey: string): string;
|
|
22
|
+
export declare function windowsModelLocation(deps: WindowsModelLocationDeps): Promise<ManagedModelLocation>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the managed engines' models live, as clients must use it (spec `managed-model-store`, "Core
|
|
3
|
+
* сообщает расположение хранилища"; change `add-vllm-runtime`, design D4 — before it, `tensorrt-llm`'s
|
|
4
|
+
* own folder, change `add-tensorrt-llm-windows`, task 2.8). One answer, from core, on every platform,
|
|
5
|
+
* so a client never derives the folder itself: on Linux the data folder's `<data>/managed-models`; on
|
|
6
|
+
* Windows the scope's folder in Atomic Chat's WSL distribution,
|
|
7
|
+
* `\\wsl.localhost\<distribution>\var\lib\atomic-chat\scopes\<scope_key>\managed-models`, created
|
|
8
|
+
* (and handed to uid 1000) before a client writes into it. The free space on Windows is the smaller of
|
|
9
|
+
* the guest's own and the Windows volume's that holds the distribution's disk image: the guest's disk
|
|
10
|
+
* can grow only as far as that volume lets it. Before the distribution exists there is no such
|
|
11
|
+
* folder: `MANAGED_ADAPTER_UNAVAILABLE`, and no download starts.
|
|
12
|
+
*/
|
|
13
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
14
|
+
import { freeBytesAtNearest, parseDfAvail } from '../environment/index.js';
|
|
15
|
+
import { ensureGuestScope, guestScopeRoot, WSL_LOCALHOST_MOUNT, } from '../wsl/index.js';
|
|
16
|
+
/** Linux: `<data>/managed-models`, with the free space of the volume it is (or will be) on. */
|
|
17
|
+
export async function linuxModelLocation(root, freeBytes = freeBytesAtNearest) {
|
|
18
|
+
return { root, free_bytes: await freeBytes(root).catch(() => null) };
|
|
19
|
+
}
|
|
20
|
+
/** The guest folder of this scope's model store, every managed engine's. */
|
|
21
|
+
export function guestModelsRoot(scopeKey) {
|
|
22
|
+
return `${guestScopeRoot(scopeKey)}/managed-models`;
|
|
23
|
+
}
|
|
24
|
+
/** Where this scope's TensorRT-LLM models lived in the guest before the store (design D5). */
|
|
25
|
+
export function legacyGuestModelsRoot(scopeKey) {
|
|
26
|
+
return `${guestScopeRoot(scopeKey)}/models/tensorrt-llm`;
|
|
27
|
+
}
|
|
28
|
+
export async function windowsModelLocation(deps) {
|
|
29
|
+
const record = await deps.records.read();
|
|
30
|
+
if (record === null) {
|
|
31
|
+
throw new AtomicCoreError('MANAGED_ADAPTER_UNAVAILABLE', 'TensorRT-LLM models live in Atomic Chat’s WSL distribution, which is not set up yet.');
|
|
32
|
+
}
|
|
33
|
+
const key = await deps.scopeKey();
|
|
34
|
+
const transport = deps.transport(record.distribution.name);
|
|
35
|
+
const guestRoot = guestModelsRoot(key);
|
|
36
|
+
// A distribution unregistered behind the app's back is no environment at all for a client.
|
|
37
|
+
await ensureGuestScope(transport, key).catch((error) => {
|
|
38
|
+
throw new AtomicCoreError('MANAGED_ADAPTER_UNAVAILABLE', 'Atomic Chat’s WSL distribution does not answer; set the environment up again.', error instanceof Error ? error.message : String(error));
|
|
39
|
+
});
|
|
40
|
+
const [guest, volume] = await Promise.all([
|
|
41
|
+
transport
|
|
42
|
+
.exec(['df', '--output=avail', '-B1', guestRoot], { user: 'root', timeoutMs: 120_000 })
|
|
43
|
+
.then(parseDfAvail)
|
|
44
|
+
.catch(() => null),
|
|
45
|
+
deps.volumeFreeBytes(record.distribution.path).catch(() => null),
|
|
46
|
+
]);
|
|
47
|
+
const known = [guest, volume].filter((value) => value !== null);
|
|
48
|
+
return {
|
|
49
|
+
root: (deps.mount ?? WSL_LOCALHOST_MOUNT).hostPath(record.distribution.name, guestRoot),
|
|
50
|
+
free_bytes: known.length === 0 ? null : Math.min(...known),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=location.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"location.js","sourceRoot":"","sources":["../../../src/runtime/managed-models/location.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE1E,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,mBAAmB,GAGpB,MAAM,iBAAiB,CAAA;AAExB,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,YAAsD,kBAAkB;IAExE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAA;AACtE,CAAC;AAaD,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAA;AACrD,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAA;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAA8B;IACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IACxC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CACvB,6BAA6B,EAC7B,sFAAsF,CACvF,CAAA;IACH,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IACtC,2FAA2F;IAC3F,MAAM,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC9D,MAAM,IAAI,eAAe,CACvB,6BAA6B,EAC7B,+EAA+E,EAC/E,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxC,SAAS;aACN,IAAI,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;aACtF,IAAI,CAAC,YAAY,CAAC;aAClB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KACjE,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;IAChF,OAAO;QACL,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC;QACvF,UAAU,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KAC3D,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ManagedStoreMigration } from '../../contracts/index.js';
|
|
2
|
+
import type { WslDistributionTransport } from '../wsl/index.js';
|
|
3
|
+
/** The file operations a migration needs, on the host's file system or in the WSL guest. */
|
|
4
|
+
export interface StoreMigrationFs {
|
|
5
|
+
/** Ids (`/`-separated, relative to `root`) of the folders under it that hold `model.yml`, sorted. */
|
|
6
|
+
modelIds(root: string): Promise<string[]>;
|
|
7
|
+
exists(path: string): Promise<boolean>;
|
|
8
|
+
/** Renames `from` to `to` on the same file system, creating `to`'s parent first. */
|
|
9
|
+
move(from: string, to: string): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Removes `dir` when it is empty, then its parent, and so on up to and including `root`, stopping at
|
|
12
|
+
* the first that is not empty — never a file, and never a folder no move emptied.
|
|
13
|
+
*/
|
|
14
|
+
pruneEmptyUpTo(root: string, dir: string): Promise<void>;
|
|
15
|
+
/** How a model path is joined: the host's separator, or `/` in the guest. */
|
|
16
|
+
join(root: string, id: string): string;
|
|
17
|
+
}
|
|
18
|
+
/** Moves every model folder of `from` into `to`; see the file banner. */
|
|
19
|
+
export declare function migrateTensorrtLlmModels(options: {
|
|
20
|
+
from: string;
|
|
21
|
+
to: string;
|
|
22
|
+
fs: StoreMigrationFs;
|
|
23
|
+
}): Promise<ManagedStoreMigration>;
|
|
24
|
+
/** The host's own file system: Linux (and the data folder of any platform). */
|
|
25
|
+
export declare const nodeStoreMigrationFs: StoreMigrationFs;
|
|
26
|
+
/**
|
|
27
|
+
* The WSL guest's file system (Windows): every step a command in the guest, as root, as an argv —
|
|
28
|
+
* never a shell — over the guest's own paths, so nothing crosses `\\wsl.localhost`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function guestStoreMigrationFs(transport: WslDistributionTransport): StoreMigrationFs;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Moving TensorRT-LLM's models into the managed model store (change `add-vllm-runtime`, design D5;
|
|
3
|
+
* spec `managed-model-store`, "Модели TensorRT-LLM переезжают в общий корень"). Before the store, a
|
|
4
|
+
* model of `tensorrt-llm` lived in `<data>/tensorrt-llm/models/<id>` (in the WSL guest,
|
|
5
|
+
* `…/scopes/<key>/models/tensorrt-llm/<id>`); now every managed engine reads `managed-models/<id>`.
|
|
6
|
+
*
|
|
7
|
+
* Core does the move, at startup, before anything lists or loads a model: the layout is its own, and
|
|
8
|
+
* it starts before the app lists anything. Each folder holding `model.yml` is renamed to the same id
|
|
9
|
+
* under the store — one rename on one file system, so it is cheap and atomic per folder, and an engine
|
|
10
|
+
* cache (`caches/<descriptor_id>/<model id>`) stays valid since the id does not change. A folder
|
|
11
|
+
* without `model.yml` is a download still in progress and stays where it is: the client that started
|
|
12
|
+
* it cleans it up. An id already in the store is a conflict: neither folder is touched, and the
|
|
13
|
+
* conflict is reported (environment diagnostics). The folders a move emptied go — the moved model's
|
|
14
|
+
* parents, the old root once nothing is in it; a folder left in place is never touched. Every step is idempotent: on the next start there is nothing to move.
|
|
15
|
+
*
|
|
16
|
+
* What runs it is the core's own lock on its data folder (one owner per canonical data folder): the
|
|
17
|
+
* old root and the store are both in that folder, or in that scope's guest folder.
|
|
18
|
+
*/
|
|
19
|
+
import { mkdir, readdir, readFile, rename, rmdir, stat } from 'node:fs/promises';
|
|
20
|
+
import { dirname, join } from 'node:path';
|
|
21
|
+
import { MODEL_YML, modelIdFromDir } from '../../config/index.js';
|
|
22
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
23
|
+
/** Moves every model folder of `from` into `to`; see the file banner. */
|
|
24
|
+
export async function migrateTensorrtLlmModels(options) {
|
|
25
|
+
const { from, to, fs } = options;
|
|
26
|
+
const result = { from, to, moved: [], conflicts: [] };
|
|
27
|
+
if (!(await fs.exists(from)))
|
|
28
|
+
return result;
|
|
29
|
+
for (const id of await fs.modelIds(from)) {
|
|
30
|
+
const source = fs.join(from, id);
|
|
31
|
+
const target = fs.join(to, id);
|
|
32
|
+
if (await fs.exists(target)) {
|
|
33
|
+
result.conflicts.push({ model_id: id, source, target });
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
await fs.move(source, target);
|
|
37
|
+
result.moved.push(id);
|
|
38
|
+
// Only what this move emptied: the moved folder's parents, never a folder left in place.
|
|
39
|
+
await fs.pruneEmptyUpTo(from, parentOf(source));
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
/** The parent of a path, by either separator (host paths or the guest's `/`). */
|
|
44
|
+
const parentOf = (path) => path.slice(0, Math.max(path.lastIndexOf('/'), path.lastIndexOf('\\')));
|
|
45
|
+
const exists = (path) => stat(path).then(() => true, () => false);
|
|
46
|
+
/** The host's own file system: Linux (and the data folder of any platform). */
|
|
47
|
+
export const nodeStoreMigrationFs = {
|
|
48
|
+
async modelIds(root) {
|
|
49
|
+
const ids = [];
|
|
50
|
+
const stack = [root];
|
|
51
|
+
while (stack.length > 0) {
|
|
52
|
+
const dir = stack.pop();
|
|
53
|
+
if (await readFile(join(dir, MODEL_YML)).then(() => true, () => false)) {
|
|
54
|
+
if (dir !== root)
|
|
55
|
+
ids.push(modelIdFromDir(root, dir));
|
|
56
|
+
continue; // a model folder is a leaf
|
|
57
|
+
}
|
|
58
|
+
const children = await readdir(dir, { withFileTypes: true }).catch(() => []);
|
|
59
|
+
for (const child of children)
|
|
60
|
+
if (child.isDirectory())
|
|
61
|
+
stack.push(join(dir, child.name));
|
|
62
|
+
}
|
|
63
|
+
return ids.sort();
|
|
64
|
+
},
|
|
65
|
+
exists,
|
|
66
|
+
async move(from, to) {
|
|
67
|
+
await mkdir(dirname(to), { recursive: true });
|
|
68
|
+
await rename(from, to);
|
|
69
|
+
},
|
|
70
|
+
async pruneEmptyUpTo(root, dir) {
|
|
71
|
+
for (let current = dir; current.length >= root.length; current = dirname(current)) {
|
|
72
|
+
if (!(await rmdir(current).then(() => true, () => false)))
|
|
73
|
+
return;
|
|
74
|
+
if (current === root)
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
join: (root, id) => join(root, ...id.split('/')),
|
|
79
|
+
};
|
|
80
|
+
const GUEST_TIMEOUT_MS = 5 * 60_000;
|
|
81
|
+
/**
|
|
82
|
+
* The WSL guest's file system (Windows): every step a command in the guest, as root, as an argv —
|
|
83
|
+
* never a shell — over the guest's own paths, so nothing crosses `\\wsl.localhost`.
|
|
84
|
+
*/
|
|
85
|
+
export function guestStoreMigrationFs(transport) {
|
|
86
|
+
const run = async (argv) => transport.exec(argv, { user: 'root', timeoutMs: GUEST_TIMEOUT_MS });
|
|
87
|
+
return {
|
|
88
|
+
async modelIds(root) {
|
|
89
|
+
const answer = await run(['find', root, '-name', MODEL_YML, '-type', 'f', '-printf', '%h\n']);
|
|
90
|
+
const dirs = answer.stdout
|
|
91
|
+
.split('\n')
|
|
92
|
+
.map((line) => line.trim())
|
|
93
|
+
.filter((line) => line.startsWith(`${root}/`))
|
|
94
|
+
.sort();
|
|
95
|
+
// A model folder is a leaf: a model.yml inside another model's folder is that model's file.
|
|
96
|
+
const leaves = dirs.filter((dir) => !dirs.some((other) => other !== dir && dir.startsWith(`${other}/`)));
|
|
97
|
+
return leaves.map((dir) => dir.slice(root.length + 1));
|
|
98
|
+
},
|
|
99
|
+
exists: async (path) => (await run(['test', '-e', path])).code === 0,
|
|
100
|
+
async move(from, to) {
|
|
101
|
+
const parent = to.slice(0, to.lastIndexOf('/'));
|
|
102
|
+
await run(['mkdir', '-p', parent]);
|
|
103
|
+
const answer = await run(['mv', '-T', '--', from, to]);
|
|
104
|
+
if (answer.code !== 0) {
|
|
105
|
+
throw new AtomicCoreError('IO_ERROR', 'A model could not be moved into the model store in the Atomic Chat distribution.', answer.stderr.trim());
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
async pruneEmptyUpTo(root, dir) {
|
|
109
|
+
for (let current = dir; current.length >= root.length; current = current.slice(0, current.lastIndexOf('/'))) {
|
|
110
|
+
if ((await run(['rmdir', '--', current])).code !== 0)
|
|
111
|
+
return;
|
|
112
|
+
if (current === root)
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
join: (root, id) => `${root}/${id}`,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/runtime/managed-models/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { CheckpointFile } from './compatibility.js';
|
|
2
|
+
/** `model.yml`'s own fields, parsed and typed; nothing here is derived. */
|
|
3
|
+
export interface ManagedModelYmlDocument {
|
|
4
|
+
/** `null` when `model.yml` does not carry one (tolerated: `readManagedModel`'s own contract). */
|
|
5
|
+
repository: string | null;
|
|
6
|
+
revision: string | null;
|
|
7
|
+
architectures: string[];
|
|
8
|
+
files: CheckpointFile[];
|
|
9
|
+
}
|
|
10
|
+
export interface ManagedModel {
|
|
11
|
+
id: string;
|
|
12
|
+
/** The checkpoint directory as core sees it; mounted read-only into the container. */
|
|
13
|
+
dir: string;
|
|
14
|
+
repository: string | null;
|
|
15
|
+
revision: string | null;
|
|
16
|
+
/** `architectures[0]`: the Hugging Face class name the descriptor's `model_families` is keyed by. */
|
|
17
|
+
architecture: string | null;
|
|
18
|
+
/** The revision's file listing exactly as `model.yml` recorded it (the pre-launch check's input). */
|
|
19
|
+
files: CheckpointFile[];
|
|
20
|
+
/** Weight bytes of `files` (`weightBytes`), 0 when `model.yml` lists none. */
|
|
21
|
+
weightBytes: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* `model.yml`'s codec (`parse` only — the app and the CLI write it, core never does, spec
|
|
25
|
+
* `tensorrt-llm-models`): `MANAGED_METADATA_INVALID` when `text` is not valid YAML or not a mapping.
|
|
26
|
+
* `repository`/`revision`/`architectures` tolerate absence or the wrong type by
|
|
27
|
+
* reading as `null`/`[]`, the same way `readManagedModel`'s own tests already expect for a bare
|
|
28
|
+
* `model.yml` — a model missing optional metadata is still a model, not a broken one. `files` is the
|
|
29
|
+
* one field held to a stricter rule (task 2.16w round 1, finding 4): the array itself may be absent
|
|
30
|
+
* (`[]`), but once present every entry must be well-formed (`fileList`/`parseFileEntry`) —
|
|
31
|
+
* silently dropping a malformed entry would leave a shard unverified, a checkpoint's weight bytes
|
|
32
|
+
* under-counted, or an `hf_quant_config.json` entry quietly lost.
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseManagedModelYml(text: string, path: string): ManagedModelYmlDocument;
|
|
35
|
+
/** `MODEL_NOT_FOUND` without a readable `model.yml`; `MANAGED_METADATA_INVALID` when it is not a mapping. */
|
|
36
|
+
export declare function readManagedModel(modelsDir: string, modelId: string): Promise<ManagedModel>;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading a model of the managed engines' store (`<data>/managed-models/`, spec `managed-model-store`):
|
|
3
|
+
* its `model.yml` (`parseManagedModelYml` — `repository`, `revision`, `architectures`, `files` with
|
|
4
|
+
* `path`/`size`/`sha256`, documented in `docs/contracts.md`) and the few derived facts a load needs —
|
|
5
|
+
* the first architecture (for the descriptor's `model_families` entry) and the weight bytes (for the
|
|
6
|
+
* readiness timeout). `model.yml` names nothing that depends on an engine: a `quantization` an older
|
|
7
|
+
* app wrote is read past and ignored, since every engine names the format itself from the files on
|
|
8
|
+
* disk (spec "model.yml не зависит от движка"). The app and the CLI write the directory and its
|
|
9
|
+
* `model.yml` last; a directory without one is a download still in progress and is not a model.
|
|
10
|
+
*
|
|
11
|
+
* `readManagedModel` is the single-id lookup `ManagedTextRuntime.load` uses; the full scan across
|
|
12
|
+
* every model (`registry.ts`) shares `parseManagedModelYml` with it, so both agree about what
|
|
13
|
+
* `model.yml` means.
|
|
14
|
+
*/
|
|
15
|
+
import { readFile } from 'node:fs/promises';
|
|
16
|
+
import { join, relative, isAbsolute } from 'node:path';
|
|
17
|
+
import { parse } from 'yaml';
|
|
18
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
19
|
+
import { MODEL_YML, modelDirFromId } from '../../config/index.js';
|
|
20
|
+
import { weightBytes } from './compatibility.js';
|
|
21
|
+
/** An id is one or more `/`-separated path segments inside the models directory, never out of it. */
|
|
22
|
+
function assertModelId(modelsDir, modelId) {
|
|
23
|
+
const segments = modelId.split('/');
|
|
24
|
+
if (modelId === '' || segments.some((s) => s === '' || s === '.' || s === '..' || s.includes('\\'))) {
|
|
25
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', 'Not a managed model id.', modelId);
|
|
26
|
+
}
|
|
27
|
+
const dir = modelDirFromId(modelsDir, modelId);
|
|
28
|
+
const inside = relative(modelsDir, dir);
|
|
29
|
+
if (inside === '' || inside.startsWith('..') || isAbsolute(inside)) {
|
|
30
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', 'Not a managed model id.', modelId);
|
|
31
|
+
}
|
|
32
|
+
return dir;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A relative file path safe to join onto the model directory and mount read-only into a container:
|
|
36
|
+
* forward-slash separated, never absolute, no empty/`.`/`..` segment and no backslash (which some
|
|
37
|
+
* shells would treat as an escape on the file's own leaf name).
|
|
38
|
+
*/
|
|
39
|
+
function isSafeRelativePath(path) {
|
|
40
|
+
if (path === '' || path.startsWith('/') || path.includes('\\'))
|
|
41
|
+
return false;
|
|
42
|
+
return path.split('/').every((segment) => segment !== '' && segment !== '.' && segment !== '..');
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* One `model.yml` `files[]` entry, strictly: `MANAGED_METADATA_INVALID` for anything malformed
|
|
46
|
+
* (task 2.16w round 1, finding 4) — a non-string or unsafe `path`, a `size` that is not a finite
|
|
47
|
+
* non-negative integer, a `sha256` that is neither a string nor `null`. The previous, lenient
|
|
48
|
+
* parsing silently dropped a malformed entry instead: an unverified shard the pre-launch check would
|
|
49
|
+
* never even look for, a checkpoint's weight bytes under-counted, or an `hf_quant_config.json` entry
|
|
50
|
+
* quietly lost — every one of those is worse than refusing the model outright and naming why.
|
|
51
|
+
*/
|
|
52
|
+
function parseFileEntry(raw, index, path) {
|
|
53
|
+
if (raw === null || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
54
|
+
throw new AtomicCoreError('MANAGED_METADATA_INVALID', `${path}: files[${index}] is not a mapping.`, JSON.stringify(raw));
|
|
55
|
+
}
|
|
56
|
+
const entry = raw;
|
|
57
|
+
if (typeof entry.path !== 'string' || !isSafeRelativePath(entry.path)) {
|
|
58
|
+
throw new AtomicCoreError('MANAGED_METADATA_INVALID', `${path}: files[${index}].path is not a safe relative path.`, String(entry.path));
|
|
59
|
+
}
|
|
60
|
+
if (typeof entry.size !== 'number' || !Number.isInteger(entry.size) || entry.size < 0) {
|
|
61
|
+
throw new AtomicCoreError('MANAGED_METADATA_INVALID', `${path}: files[${index}].size must be a non-negative integer.`, String(entry.size));
|
|
62
|
+
}
|
|
63
|
+
if (entry.sha256 !== undefined && entry.sha256 !== null && typeof entry.sha256 !== 'string') {
|
|
64
|
+
throw new AtomicCoreError('MANAGED_METADATA_INVALID', `${path}: files[${index}].sha256 must be a string or null.`, String(entry.sha256));
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
path: entry.path,
|
|
68
|
+
size: entry.size,
|
|
69
|
+
sha256: typeof entry.sha256 === 'string' ? entry.sha256 : null,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/** `files` absent entirely is tolerated as `[]` (a bare `model.yml` is still a model); once present, every entry must be well-formed. */
|
|
73
|
+
function fileList(raw, path) {
|
|
74
|
+
if (raw === undefined)
|
|
75
|
+
return [];
|
|
76
|
+
if (!Array.isArray(raw)) {
|
|
77
|
+
throw new AtomicCoreError('MANAGED_METADATA_INVALID', `${path}: files must be an array.`, JSON.stringify(raw));
|
|
78
|
+
}
|
|
79
|
+
return raw.map((entry, index) => parseFileEntry(entry, index, path));
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* `model.yml`'s codec (`parse` only — the app and the CLI write it, core never does, spec
|
|
83
|
+
* `tensorrt-llm-models`): `MANAGED_METADATA_INVALID` when `text` is not valid YAML or not a mapping.
|
|
84
|
+
* `repository`/`revision`/`architectures` tolerate absence or the wrong type by
|
|
85
|
+
* reading as `null`/`[]`, the same way `readManagedModel`'s own tests already expect for a bare
|
|
86
|
+
* `model.yml` — a model missing optional metadata is still a model, not a broken one. `files` is the
|
|
87
|
+
* one field held to a stricter rule (task 2.16w round 1, finding 4): the array itself may be absent
|
|
88
|
+
* (`[]`), but once present every entry must be well-formed (`fileList`/`parseFileEntry`) —
|
|
89
|
+
* silently dropping a malformed entry would leave a shard unverified, a checkpoint's weight bytes
|
|
90
|
+
* under-counted, or an `hf_quant_config.json` entry quietly lost.
|
|
91
|
+
*/
|
|
92
|
+
export function parseManagedModelYml(text, path) {
|
|
93
|
+
let yml;
|
|
94
|
+
try {
|
|
95
|
+
yml = parse(text);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
throw new AtomicCoreError('MANAGED_METADATA_INVALID', `${path} is not valid YAML.`, String(error));
|
|
99
|
+
}
|
|
100
|
+
if (yml === null || typeof yml !== 'object' || Array.isArray(yml)) {
|
|
101
|
+
throw new AtomicCoreError('MANAGED_METADATA_INVALID', `${path} does not describe a model.`, path);
|
|
102
|
+
}
|
|
103
|
+
const doc = yml;
|
|
104
|
+
const architectures = Array.isArray(doc['architectures'])
|
|
105
|
+
? doc['architectures'].filter((entry) => typeof entry === 'string' && entry !== '')
|
|
106
|
+
: [];
|
|
107
|
+
return {
|
|
108
|
+
repository: typeof doc['repository'] === 'string' ? doc['repository'] : null,
|
|
109
|
+
revision: typeof doc['revision'] === 'string' ? doc['revision'] : null,
|
|
110
|
+
architectures,
|
|
111
|
+
files: fileList(doc['files'], path),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/** `MODEL_NOT_FOUND` without a readable `model.yml`; `MANAGED_METADATA_INVALID` when it is not a mapping. */
|
|
115
|
+
export async function readManagedModel(modelsDir, modelId) {
|
|
116
|
+
const dir = assertModelId(modelsDir, modelId);
|
|
117
|
+
const path = join(dir, MODEL_YML);
|
|
118
|
+
let text;
|
|
119
|
+
try {
|
|
120
|
+
text = await readFile(path, 'utf8');
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
throw new AtomicCoreError('MODEL_NOT_FOUND', `The model '${modelId}' is not in the managed model store.`, path);
|
|
124
|
+
}
|
|
125
|
+
const yml = parseManagedModelYml(text, path);
|
|
126
|
+
return {
|
|
127
|
+
id: modelId,
|
|
128
|
+
dir,
|
|
129
|
+
repository: yml.repository,
|
|
130
|
+
revision: yml.revision,
|
|
131
|
+
architecture: yml.architectures[0] ?? null,
|
|
132
|
+
files: yml.files,
|
|
133
|
+
weightBytes: weightBytes(yml.files),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=model-dir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-dir.js","sourceRoot":"","sources":["../../../src/runtime/managed-models/model-dir.ts"],"names":[],"mappings":"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"}
|