@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,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Windows GPUs, CPU and OS from one PowerShell run: `Win32_VideoController` for the adapters, the
|
|
3
|
+
* display class registry for the driver's own VRAM figure (`HardwareInformation.qwMemorySize`, which
|
|
4
|
+
* `AdapterRAM` cannot hold above 4 GiB) and its Vulkan ICD, `Win32_Processor` / `Win32_OperatingSystem`
|
|
5
|
+
* for names and cores, `vulkan-1.dll` + the Khronos driver registrations for the loader, and
|
|
6
|
+
* `IsProcessorFeaturePresent` for the CPU flags. One process, one JSON document, because PowerShell
|
|
7
|
+
* takes seconds to start and five runs would take five times as long.
|
|
8
|
+
*
|
|
9
|
+
* Pure: the script text, its arguments, and the parse of what comes back. `probe-windows.ts` runs it.
|
|
10
|
+
*/
|
|
11
|
+
import { icdVendorOf } from './vulkan.js';
|
|
12
|
+
const DISPLAY_CLASS_KEY = 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Class\\{4d36e968-e325-11ce-bfc1-08002be10318}';
|
|
13
|
+
/**
|
|
14
|
+
* One line, `;`-separated, no double quotes (the C# attribute builds its quotes from `[char]34`): what
|
|
15
|
+
* `-Command` receives has been through Node's Windows argument quoting and PowerShell's own parser,
|
|
16
|
+
* and a script that never needs escaping cannot be mangled by either. Every list is wrapped in `@()`
|
|
17
|
+
* and the parser still accepts a bare object, because PowerShell 5.1 collapses single-element
|
|
18
|
+
* collections on the way to JSON. `Add-Type` fails in Constrained Language Mode; `pf` is then `null`.
|
|
19
|
+
*/
|
|
20
|
+
export const WINDOWS_PROBE_SCRIPT = [
|
|
21
|
+
"$ErrorActionPreference = 'SilentlyContinue'",
|
|
22
|
+
'$video = @(Get-CimInstance Win32_VideoController | Select-Object Name, AdapterRAM, PNPDeviceID, DriverVersion)',
|
|
23
|
+
`$classKeys = @(Get-ChildItem '${DISPLAY_CLASS_KEY}' | Where-Object { $_.PSChildName -match '^\\d{4}$' } | ForEach-Object { $p = Get-ItemProperty $_.PSPath; [pscustomobject]@{ key = $_.PSChildName; MatchingDeviceId = $p.MatchingDeviceId; DriverDesc = $p.DriverDesc; qwMemorySize = $p.'HardwareInformation.qwMemorySize'; VulkanDriverName = @($p.VulkanDriverName | Where-Object { $_ }) } })`,
|
|
24
|
+
'$cpu = @(Get-CimInstance Win32_Processor | Select-Object Name, NumberOfCores)',
|
|
25
|
+
'$os = Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber',
|
|
26
|
+
"$drivers = @((Get-Item 'HKLM:\\SOFTWARE\\Khronos\\Vulkan\\Drivers').Property | Where-Object { $_ })",
|
|
27
|
+
"$vulkan = @{ dll = [bool](Test-Path (Join-Path $env:SystemRoot 'System32\\vulkan-1.dll')); drivers = $drivers }",
|
|
28
|
+
'$pf = $null',
|
|
29
|
+
"try { Add-Type -Namespace AtomicProbe -Name Native -MemberDefinition ('[DllImport(' + [char]34 + 'kernel32.dll' + [char]34 + ')] public static extern bool IsProcessorFeaturePresent(int f);'); $pf = @{}; foreach ($f in 3,6,10,13,36,37,38,39,40,41) { $pf[[string]$f] = [bool][AtomicProbe.Native]::IsProcessorFeaturePresent($f) } } catch { $pf = $null }",
|
|
30
|
+
'$build = [Environment]::OSVersion.Version.Build',
|
|
31
|
+
'[pscustomobject]@{ video = $video; classKeys = $classKeys; cpu = $cpu; os = $os; vulkan = $vulkan; pf = $pf; build = $build } | ConvertTo-Json -Depth 5 -Compress',
|
|
32
|
+
].join('; ');
|
|
33
|
+
export function windowsProbeArgs() {
|
|
34
|
+
return ['-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-Command', WINDOWS_PROBE_SCRIPT];
|
|
35
|
+
}
|
|
36
|
+
function asArray(value) {
|
|
37
|
+
if (value === null || value === undefined)
|
|
38
|
+
return [];
|
|
39
|
+
return Array.isArray(value) ? value : [value];
|
|
40
|
+
}
|
|
41
|
+
function asObject(value) {
|
|
42
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
|
|
43
|
+
}
|
|
44
|
+
function asString(value) {
|
|
45
|
+
if (typeof value === 'string')
|
|
46
|
+
return value;
|
|
47
|
+
if (typeof value === 'number')
|
|
48
|
+
return String(value);
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
function asNumber(value) {
|
|
52
|
+
if (typeof value === 'number' && Number.isFinite(value))
|
|
53
|
+
return value;
|
|
54
|
+
if (typeof value === 'string' && /^\d+$/.test(value.trim()))
|
|
55
|
+
return Number(value);
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
/** Parse the script's JSON. Tolerates a UTF-8 BOM and single-element collapse; throws on anything that is not the document. */
|
|
59
|
+
export function parseWindowsProbe(json) {
|
|
60
|
+
const root = asObject(JSON.parse(json.replace(/^\uFEFF/, '')));
|
|
61
|
+
if (!root)
|
|
62
|
+
throw new Error('the PowerShell probe did not answer with a JSON object');
|
|
63
|
+
const video = [];
|
|
64
|
+
for (const entry of asArray(root['video'])) {
|
|
65
|
+
const o = asObject(entry);
|
|
66
|
+
if (!o)
|
|
67
|
+
continue;
|
|
68
|
+
video.push(compact({
|
|
69
|
+
Name: asString(o['Name']),
|
|
70
|
+
AdapterRAM: asNumber(o['AdapterRAM']),
|
|
71
|
+
PNPDeviceID: asString(o['PNPDeviceID']),
|
|
72
|
+
DriverVersion: asString(o['DriverVersion']),
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
const classKeys = [];
|
|
76
|
+
for (const entry of asArray(root['classKeys'])) {
|
|
77
|
+
const o = asObject(entry);
|
|
78
|
+
const key = o ? asString(o['key']) : undefined;
|
|
79
|
+
if (!o || key === undefined)
|
|
80
|
+
continue;
|
|
81
|
+
classKeys.push({
|
|
82
|
+
key,
|
|
83
|
+
...compact({
|
|
84
|
+
MatchingDeviceId: asString(o['MatchingDeviceId']),
|
|
85
|
+
DriverDesc: asString(o['DriverDesc']),
|
|
86
|
+
qwMemorySize: asNumber(o['qwMemorySize']),
|
|
87
|
+
}),
|
|
88
|
+
VulkanDriverName: asArray(o['VulkanDriverName']).flatMap((v) => (typeof v === 'string' ? [v] : [])),
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
const cpu = [];
|
|
92
|
+
for (const entry of asArray(root['cpu'])) {
|
|
93
|
+
const o = asObject(entry);
|
|
94
|
+
if (o)
|
|
95
|
+
cpu.push(compact({
|
|
96
|
+
Name: asString(o['Name']),
|
|
97
|
+
NumberOfCores: asNumber(o['NumberOfCores']),
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
const osObject = asObject(root['os']);
|
|
101
|
+
const os = osObject
|
|
102
|
+
? compact({
|
|
103
|
+
Caption: asString(osObject['Caption']),
|
|
104
|
+
Version: asString(osObject['Version']),
|
|
105
|
+
BuildNumber: asString(osObject['BuildNumber']),
|
|
106
|
+
})
|
|
107
|
+
: undefined;
|
|
108
|
+
const vulkanObject = asObject(root['vulkan']);
|
|
109
|
+
const vulkan = {
|
|
110
|
+
dll: vulkanObject?.['dll'] === true,
|
|
111
|
+
drivers: asArray(vulkanObject?.['drivers']).flatMap((v) => (typeof v === 'string' ? [v] : [])),
|
|
112
|
+
};
|
|
113
|
+
const pfObject = asObject(root['pf']);
|
|
114
|
+
const pf = pfObject ? Object.fromEntries(Object.entries(pfObject).map(([k, v]) => [k, v === true])) : null;
|
|
115
|
+
const build = asNumber(root['build']) ?? asNumber(os?.BuildNumber) ?? 0;
|
|
116
|
+
return { video, classKeys, cpu, os, vulkan, pf, build };
|
|
117
|
+
}
|
|
118
|
+
/** Drop the `undefined` entries, so an absent field is absent (`exactOptionalPropertyTypes`). */
|
|
119
|
+
function compact(value) {
|
|
120
|
+
return Object.fromEntries(Object.entries(value).filter(([, v]) => v !== undefined));
|
|
121
|
+
}
|
|
122
|
+
const QUALCOMM_VENDOR_ID = 0x5143;
|
|
123
|
+
/**
|
|
124
|
+
* `PCI\VEN_10DE&DEV_2684&…` → the two ids. Snapdragon's Adreno is not on PCI: its instance id is
|
|
125
|
+
* `ACPI\QCOM0C36\…` (or `ACPI\VEN_QCOM&DEV_0C36…`), read as Qualcomm's Vulkan vendor id and the
|
|
126
|
+
* ACPI device number. `undefined` for anything else.
|
|
127
|
+
*/
|
|
128
|
+
export function parsePnpDeviceId(id) {
|
|
129
|
+
const m = /PCI\\VEN_([0-9A-F]{4})&DEV_([0-9A-F]{4})/i.exec(id);
|
|
130
|
+
if (m)
|
|
131
|
+
return { vendorId: Number.parseInt(m[1] ?? '', 16), deviceId: Number.parseInt(m[2] ?? '', 16) };
|
|
132
|
+
const qcomDevice = /ACPI\\(?:VEN_)?QCOM(?:&DEV_)?([0-9A-F]{4})/i.exec(id)?.[1];
|
|
133
|
+
if (qcomDevice)
|
|
134
|
+
return { vendorId: QUALCOMM_VENDOR_ID, deviceId: Number.parseInt(qcomDevice, 16) };
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
/** The display class keys registered for an adapter: PCI keys by `ven_xxxx&dev_xxxx`, Adreno by `qcom` + device. */
|
|
138
|
+
function classKeysFor(classKeys, ids) {
|
|
139
|
+
const dev = hex4(ids.deviceId);
|
|
140
|
+
if (ids.vendorId === QUALCOMM_VENDOR_ID) {
|
|
141
|
+
return classKeys.filter((key) => {
|
|
142
|
+
const id = (key.MatchingDeviceId ?? '').toLowerCase();
|
|
143
|
+
return id.includes('qcom') && id.includes(dev);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
const needle = `ven_${hex4(ids.vendorId)}&dev_${dev}`;
|
|
147
|
+
return classKeys.filter((key) => (key.MatchingDeviceId ?? '').toLowerCase().includes(needle));
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* The PCI GPUs of the machine, plus Snapdragon's ACPI-enumerated Adreno. Software adapters (`ROOT\BasicDisplay`, the `SWD\` RDP mirror) are not
|
|
151
|
+
* GPUs and are skipped. VRAM comes from the class key matched by vendor and device id — `AdapterRAM`
|
|
152
|
+
* is a 32-bit field that reports 4 GiB for every larger card, so falling back to it is warned about.
|
|
153
|
+
*/
|
|
154
|
+
export function windowsGpus(probe) {
|
|
155
|
+
const adapters = [];
|
|
156
|
+
const warnings = [];
|
|
157
|
+
const icdVendors = new Set();
|
|
158
|
+
for (const driver of probe.vulkan.drivers) {
|
|
159
|
+
const vendor = icdVendorOf(driver);
|
|
160
|
+
if (vendor)
|
|
161
|
+
icdVendors.add(vendor);
|
|
162
|
+
}
|
|
163
|
+
for (const key of probe.classKeys)
|
|
164
|
+
for (const manifest of key.VulkanDriverName) {
|
|
165
|
+
const vendor = icdVendorOf(manifest);
|
|
166
|
+
if (vendor)
|
|
167
|
+
icdVendors.add(vendor);
|
|
168
|
+
}
|
|
169
|
+
for (const controller of probe.video) {
|
|
170
|
+
const pnp = controller.PNPDeviceID;
|
|
171
|
+
if (!pnp || /^(ROOT|SWD)\\/i.test(pnp))
|
|
172
|
+
continue;
|
|
173
|
+
const ids = parsePnpDeviceId(pnp);
|
|
174
|
+
if (!ids)
|
|
175
|
+
continue;
|
|
176
|
+
const name = controller.Name?.trim() || `GPU ${pnp}`;
|
|
177
|
+
const matching = classKeysFor(probe.classKeys, ids);
|
|
178
|
+
const classKey = matching.find((key) => key.qwMemorySize !== undefined) ?? matching[0];
|
|
179
|
+
let vramTotalMiB;
|
|
180
|
+
if (classKey?.qwMemorySize !== undefined && classKey.qwMemorySize > 0)
|
|
181
|
+
vramTotalMiB = Math.floor(classKey.qwMemorySize / 2 ** 20);
|
|
182
|
+
else if (controller.AdapterRAM !== undefined && controller.AdapterRAM > 0) {
|
|
183
|
+
vramTotalMiB = Math.floor(controller.AdapterRAM / 2 ** 20);
|
|
184
|
+
warnings.push(`${name}: VRAM read from Win32_VideoController.AdapterRAM, which caps at 4 GiB`);
|
|
185
|
+
}
|
|
186
|
+
adapters.push({
|
|
187
|
+
name,
|
|
188
|
+
vendorId: ids.vendorId,
|
|
189
|
+
deviceId: ids.deviceId,
|
|
190
|
+
pnpDeviceId: pnp,
|
|
191
|
+
driverVersion: controller.DriverVersion ?? '',
|
|
192
|
+
...(vramTotalMiB !== undefined ? { vramTotalMiB } : {}),
|
|
193
|
+
vulkanDriver: matching.some((key) => key.VulkanDriverName.length > 0),
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
return { adapters, icdVendors, warnings };
|
|
197
|
+
}
|
|
198
|
+
function hex4(value) {
|
|
199
|
+
return value.toString(16).padStart(4, '0');
|
|
200
|
+
}
|
|
201
|
+
/** Physical cores across sockets; `undefined` when CIM did not answer. */
|
|
202
|
+
export function coreCount(probe) {
|
|
203
|
+
let total = 0;
|
|
204
|
+
for (const cpu of probe.cpu)
|
|
205
|
+
if (cpu.NumberOfCores !== undefined && cpu.NumberOfCores > 0)
|
|
206
|
+
total += cpu.NumberOfCores;
|
|
207
|
+
return total > 0 ? total : undefined;
|
|
208
|
+
}
|
|
209
|
+
/** `Microsoft Windows 11 Pro`, as CIM spells it; `undefined` when it did not answer. */
|
|
210
|
+
export function osName(probe) {
|
|
211
|
+
const caption = probe.os?.Caption?.trim();
|
|
212
|
+
return caption ? caption : undefined;
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=windows-video.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windows-video.js","sourceRoot":"","sources":["../../src/hardware/windows-video.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `atomic-chat-app-core` binary behind its thin entry (`src/app-daemon.ts`): parse the app's
|
|
3
|
+
* arguments, open `<data>/atomic-core/logs/core.log`, and run the core until something stops it.
|
|
4
|
+
* Internal to the host layer — not exported from `src/host/index.ts` or the package.
|
|
5
|
+
*
|
|
6
|
+
* Every line this binary writes to stderr (the app keeps it as `core-start.log`) carries the
|
|
7
|
+
* `formatLogLine` header with target `core`: the core's logger, the error reporter's warnings, the
|
|
8
|
+
* fatal handlers and the log file's own "disabled" warning (design D3/D6 of `add-unified-logs`).
|
|
9
|
+
* The same entries go to `core.log`, together with every engine's stdout/stderr, which goes to the
|
|
10
|
+
* file only. The CLI's `daemon` command (`src/cli/commands/daemon.ts`) writes no log file and keeps
|
|
11
|
+
* its `[level] message` stderr. The stdout handshake is the same one JSON ready line as before.
|
|
12
|
+
*/
|
|
13
|
+
import type { CliIo } from '../cli/index.js';
|
|
14
|
+
import type { AtomicCore, AtomicCoreOptions } from '../core/index.js';
|
|
15
|
+
import type { CoreReporterInput, ErrorReporter, ProcessEvents } from '../telemetry/index.js';
|
|
16
|
+
/** What the daemon uses of the core it starts; `AtomicCore` in the binary, a fake in tests. */
|
|
17
|
+
export type AppDaemonCore = Pick<AtomicCore, 'readyLine' | 'shutdown' | 'stopped'>;
|
|
18
|
+
/**
|
|
19
|
+
* Everything outside the daemon's own logic; the entry passes the real process, clock, reporter and
|
|
20
|
+
* core. `core.log` itself is written with the real `node:fs` under `<data>/atomic-core/logs`.
|
|
21
|
+
*/
|
|
22
|
+
export interface AppDaemonDeps {
|
|
23
|
+
/** The arguments after the executable: `process.argv.slice(2)`. */
|
|
24
|
+
argv: string[];
|
|
25
|
+
io: Pick<CliIo, 'stdout' | 'stderr' | 'env' | 'waitForShutdown'>;
|
|
26
|
+
/** Where uncaught exceptions and unhandled rejections are heard: `process`. */
|
|
27
|
+
processEvents: ProcessEvents;
|
|
28
|
+
exit: (code: number) => unknown;
|
|
29
|
+
pid: number;
|
|
30
|
+
platform: NodeJS.Platform;
|
|
31
|
+
arch: string;
|
|
32
|
+
homeDir: string;
|
|
33
|
+
/** The clock of every log header, on stderr and in `core.log`. */
|
|
34
|
+
now: () => Date;
|
|
35
|
+
createReporter: (input: CoreReporterInput) => Promise<ErrorReporter>;
|
|
36
|
+
createCore: (options: AtomicCoreOptions) => Promise<AppDaemonCore>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Run `atomic-chat-app-core --version` or `atomic-chat-app-core daemon --data-folder <data> …`.
|
|
40
|
+
*
|
|
41
|
+
* No error escapes to the runtime, whose own crash output would reach stderr without a header.
|
|
42
|
+
* Every failure ends the process through `deps.exit(1)` after exactly one `ERROR` entry:
|
|
43
|
+
* - a usage error, before any data folder is known: its message, on stderr only;
|
|
44
|
+
* - a start-up failure of the core: `failFatally`'s text, reported, on stderr and in `core.log`;
|
|
45
|
+
* - anything else: `inspect(error)`, the way the fatal path renders it, on stderr and in `core.log`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function runAppDaemon(deps: AppDaemonDeps): Promise<void>;
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `atomic-chat-app-core` binary behind its thin entry (`src/app-daemon.ts`): parse the app's
|
|
3
|
+
* arguments, open `<data>/atomic-core/logs/core.log`, and run the core until something stops it.
|
|
4
|
+
* Internal to the host layer — not exported from `src/host/index.ts` or the package.
|
|
5
|
+
*
|
|
6
|
+
* Every line this binary writes to stderr (the app keeps it as `core-start.log`) carries the
|
|
7
|
+
* `formatLogLine` header with target `core`: the core's logger, the error reporter's warnings, the
|
|
8
|
+
* fatal handlers and the log file's own "disabled" warning (design D3/D6 of `add-unified-logs`).
|
|
9
|
+
* The same entries go to `core.log`, together with every engine's stdout/stderr, which goes to the
|
|
10
|
+
* file only. The CLI's `daemon` command (`src/cli/commands/daemon.ts`) writes no log file and keeps
|
|
11
|
+
* its `[level] message` stderr. The stdout handshake is the same one JSON ready line as before.
|
|
12
|
+
*/
|
|
13
|
+
import { inspect, parseArgs } from 'node:util';
|
|
14
|
+
import { dataLayout } from '../config/index.js';
|
|
15
|
+
import { breadcrumbLogger, failFatally, installProcessHandlers, parseTelemetryFlag, } from '../telemetry/index.js';
|
|
16
|
+
import { CORE_VERSION } from '../version.js';
|
|
17
|
+
import { formatLogLine, openLogFile } from './log-file.js';
|
|
18
|
+
const LEVELS = { info: 'INFO', warn: 'WARN', error: 'ERROR' };
|
|
19
|
+
/**
|
|
20
|
+
* The app's arguments, or `'version'` for `--version`. Every error thrown here is a usage error
|
|
21
|
+
* whose message says all there is to say (the parser's own included).
|
|
22
|
+
*/
|
|
23
|
+
function parseAppDaemonArgs(argv) {
|
|
24
|
+
const args = [...argv];
|
|
25
|
+
if (args.length === 1 && args[0] === '--version')
|
|
26
|
+
return 'version';
|
|
27
|
+
const command = args.shift();
|
|
28
|
+
if (command !== 'daemon')
|
|
29
|
+
throw new Error('The app core only accepts the daemon command.');
|
|
30
|
+
const { values } = parseArgs({
|
|
31
|
+
args,
|
|
32
|
+
options: {
|
|
33
|
+
'data-folder': { type: 'string' },
|
|
34
|
+
'control-port': { type: 'string' },
|
|
35
|
+
'resources-dir': { type: 'string' },
|
|
36
|
+
'cloudflared-bin': { type: 'string' },
|
|
37
|
+
// The app's `productAnalytic` consent at launch; it updates it later over PUT /telemetry.
|
|
38
|
+
// Absent, the core decides for itself (docs/decisions/*-the-core-owns-its-error-reporting.md).
|
|
39
|
+
'telemetry': { type: 'string' },
|
|
40
|
+
},
|
|
41
|
+
strict: true,
|
|
42
|
+
});
|
|
43
|
+
const dataFolder = values['data-folder'];
|
|
44
|
+
if (!dataFolder)
|
|
45
|
+
throw new Error('The app must supply its data folder.');
|
|
46
|
+
return {
|
|
47
|
+
dataFolder,
|
|
48
|
+
controlPort: Number(values['control-port'] ?? 0),
|
|
49
|
+
resourcesDir: values['resources-dir'],
|
|
50
|
+
// The app bundles the tunnel binary next to its own executable, not under its resources.
|
|
51
|
+
cloudflaredPath: values['cloudflared-bin'],
|
|
52
|
+
telemetry: parseTelemetryFlag(values['telemetry']),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Run `atomic-chat-app-core --version` or `atomic-chat-app-core daemon --data-folder <data> …`.
|
|
57
|
+
*
|
|
58
|
+
* No error escapes to the runtime, whose own crash output would reach stderr without a header.
|
|
59
|
+
* Every failure ends the process through `deps.exit(1)` after exactly one `ERROR` entry:
|
|
60
|
+
* - a usage error, before any data folder is known: its message, on stderr only;
|
|
61
|
+
* - a start-up failure of the core: `failFatally`'s text, reported, on stderr and in `core.log`;
|
|
62
|
+
* - anything else: `inspect(error)`, the way the fatal path renders it, on stderr and in `core.log`.
|
|
63
|
+
*/
|
|
64
|
+
export async function runAppDaemon(deps) {
|
|
65
|
+
const { io } = deps;
|
|
66
|
+
let args;
|
|
67
|
+
try {
|
|
68
|
+
args = parseAppDaemonArgs(deps.argv);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
const message = error instanceof Error ? error.message : inspect(error);
|
|
72
|
+
io.stderr(formatLogLine(deps.now(), 'core', 'ERROR', message));
|
|
73
|
+
deps.exit(1);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (args === 'version') {
|
|
77
|
+
io.stdout(`${CORE_VERSION}\n`);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const { dataFolder } = args;
|
|
81
|
+
const layout = dataLayout(dataFolder);
|
|
82
|
+
// Never throws: a folder it cannot write leaves one WARN line on stderr and a no-op writer.
|
|
83
|
+
const logFile = openLogFile(layout.core.logsDir, 'core', { now: deps.now, stderr: io.stderr });
|
|
84
|
+
/** One entry of the core's own: the same header on stderr and in `core.log`. */
|
|
85
|
+
const log = (level, message) => {
|
|
86
|
+
io.stderr(formatLogLine(deps.now(), 'core', level, message));
|
|
87
|
+
logFile.write('core', level, message);
|
|
88
|
+
};
|
|
89
|
+
/** Ends the process early; `core.log` is closed first so its last entry is on disk. */
|
|
90
|
+
const exit = (code) => {
|
|
91
|
+
logFile.close();
|
|
92
|
+
return deps.exit(code);
|
|
93
|
+
};
|
|
94
|
+
log('INFO', `atomic-chat-app-core ${CORE_VERSION} starting (pid ${deps.pid}, ${deps.platform}/${deps.arch})`);
|
|
95
|
+
try {
|
|
96
|
+
const reporter = await deps.createReporter({
|
|
97
|
+
host: 'atomic-chat',
|
|
98
|
+
ownerScope: 'app',
|
|
99
|
+
enabled: args.telemetry,
|
|
100
|
+
dataFolder,
|
|
101
|
+
telemetryFile: layout.core.telemetry,
|
|
102
|
+
homeDir: deps.homeDir,
|
|
103
|
+
env: io.env,
|
|
104
|
+
platform: deps.platform,
|
|
105
|
+
arch: deps.arch,
|
|
106
|
+
version: CORE_VERSION,
|
|
107
|
+
warn: (message) => log('WARN', message),
|
|
108
|
+
});
|
|
109
|
+
const fatal = {
|
|
110
|
+
reporter,
|
|
111
|
+
// `failFatally` ends its text with a newline; the entry brings its own.
|
|
112
|
+
writeStderr: (text) => log('ERROR', text.replace(/\n$/, '')),
|
|
113
|
+
exit,
|
|
114
|
+
};
|
|
115
|
+
installProcessHandlers(deps.processEvents, fatal);
|
|
116
|
+
let core;
|
|
117
|
+
try {
|
|
118
|
+
core = await deps.createCore({
|
|
119
|
+
ownerScope: 'app',
|
|
120
|
+
dataFolder,
|
|
121
|
+
controlPort: args.controlPort,
|
|
122
|
+
...(args.resourcesDir ? { resourcesDir: args.resourcesDir } : {}),
|
|
123
|
+
...(args.cloudflaredPath ? { cloudflaredPath: args.cloudflaredPath } : {}),
|
|
124
|
+
env: io.env,
|
|
125
|
+
errorReporter: reporter,
|
|
126
|
+
logger: breadcrumbLogger(reporter, (level, message) => log(LEVELS[level], message)),
|
|
127
|
+
backendOutput: ({ provider, model, stream, line }) => logFile.write(`engine:${provider}/${model}`, 'INFO', `[${stream}] ${line}`),
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
// Writes the ERROR entry, reports it and exits; there is nothing left to throw.
|
|
132
|
+
await failFatally('startup', error, fatal);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
io.stdout(`${JSON.stringify(core.readyLine())}\n`);
|
|
136
|
+
await Promise.race([io.waitForShutdown(() => core.shutdown()), core.stopped]);
|
|
137
|
+
await reporter.flush();
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
log('ERROR', inspect(error));
|
|
141
|
+
exit(1);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
logFile.close();
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=app-daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-daemon.js","sourceRoot":"","sources":["../../src/host/app-daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AA2B1D,MAAM,MAAM,GAAgD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAW1G;;;GAGG;AACH,SAAS,kBAAkB,CAAC,IAAc;IACxC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW;QAAE,OAAO,SAAS,CAAA;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;IAC5B,IAAI,OAAO,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAC1F,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC3B,IAAI;QACJ,OAAO,EAAE;YACP,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrC,0FAA0F;YAC1F,+FAA+F;YAC/F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAChC;QACD,MAAM,EAAE,IAAI;KACb,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;IACxC,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACxE,OAAO;QACL,UAAU;QACV,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChD,YAAY,EAAE,MAAM,CAAC,eAAe,CAAC;QACrC,yFAAyF;QACzF,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;QAC1C,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;KACnD,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAmB;IACpD,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAA;IACnB,IAAI,IAA+B,CAAA;IACnC,IAAI,CAAC;QACH,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACvE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC9D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACZ,OAAM;IACR,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,IAAI,CAAC,CAAA;QAC9B,OAAM;IACR,CAAC;IACD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IAErC,4FAA4F;IAC5F,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9F,gFAAgF;IAChF,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,OAAe,EAAQ,EAAE;QACrD,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QAC5D,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC,CAAA;IACD,uFAAuF;IACvF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAW,EAAE;QACrC,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC,CAAA;IACD,GAAG,CACD,MAAM,EACN,wBAAwB,YAAY,kBAAkB,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,CACjG,CAAA;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,UAAU;YACV,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,EAAE,CAAC,GAAG;YACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;SACxC,CAAC,CAAA;QACF,MAAM,KAAK,GAAc;YACvB,QAAQ;YACR,wEAAwE;YACxE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC5D,IAAI;SACL,CAAA;QACD,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QACjD,IAAI,IAAmB,CAAA;QACvB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;gBAC3B,UAAU,EAAE,KAAK;gBACjB,UAAU;gBACV,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1E,GAAG,EAAE,EAAE,CAAC,GAAG;gBACX,aAAa,EAAE,QAAQ;gBACvB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;gBACnF,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CACnD,OAAO,CAAC,KAAK,CAAC,UAAU,QAAQ,IAAI,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;aAC9E,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gFAAgF;YAChF,MAAM,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;YAC1C,OAAM;QACR,CAAC;QACD,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAC7E,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5B,IAAI,CAAC,CAAC,CAAC,CAAA;QACP,OAAM;IACR,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,CAAA;AACjB,CAAC"}
|
package/dist/host/index.d.ts
CHANGED
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
* and an external host (the `atc` server CLI) must do it the same way rather than re-implement the
|
|
6
6
|
* lock semantics.
|
|
7
7
|
*
|
|
8
|
-
* Node-only, unlike `./client` and `./contracts`.
|
|
9
|
-
*
|
|
10
|
-
* the
|
|
8
|
+
* Node-only, unlike `./client` and `./contracts`. Every symbol is the public API of a module; this
|
|
9
|
+
* file only makes it reachable from outside the package. `./recipes` is the privileged host-step
|
|
10
|
+
* executor (`executeHostStep`) that `atc host-step exec` runs as root, so the app and the CLI
|
|
11
|
+
* execute one copy of the install recipe (design D3).
|
|
11
12
|
*/
|
|
12
13
|
export * from '../config/index.js';
|
|
13
14
|
export * from '../lock/index.js';
|
|
14
15
|
export * from '../cli/index.js';
|
|
15
16
|
export * from '../telemetry/index.js';
|
|
17
|
+
export * from './recipes/index.js';
|
package/dist/host/index.js
CHANGED
|
@@ -5,12 +5,14 @@
|
|
|
5
5
|
* and an external host (the `atc` server CLI) must do it the same way rather than re-implement the
|
|
6
6
|
* lock semantics.
|
|
7
7
|
*
|
|
8
|
-
* Node-only, unlike `./client` and `./contracts`.
|
|
9
|
-
*
|
|
10
|
-
* the
|
|
8
|
+
* Node-only, unlike `./client` and `./contracts`. Every symbol is the public API of a module; this
|
|
9
|
+
* file only makes it reachable from outside the package. `./recipes` is the privileged host-step
|
|
10
|
+
* executor (`executeHostStep`) that `atc host-step exec` runs as root, so the app and the CLI
|
|
11
|
+
* execute one copy of the install recipe (design D3).
|
|
11
12
|
*/
|
|
12
13
|
export * from '../config/index.js';
|
|
13
14
|
export * from '../lock/index.js';
|
|
14
15
|
export * from '../cli/index.js';
|
|
15
16
|
export * from '../telemetry/index.js';
|
|
17
|
+
export * from './recipes/index.js';
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
package/dist/host/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `<dir>/<stem>.log`: a synchronously-written, rotating log file. Internal to the core host layer —
|
|
3
|
+
* not exported from `src/host/index.ts` or the package. Used for `core.log` (task 3.1 wires the
|
|
4
|
+
* daemon's own logger and stderr into it); `<stem>` is parameterised so the same code could serve
|
|
5
|
+
* another rotating file later.
|
|
6
|
+
*
|
|
7
|
+
* `formatLogLine` is the single place that builds the `[YYYY-MM-DD][HH:MM:SS][target][LEVEL]`
|
|
8
|
+
* header (design D3): both this file's entries and every stderr line the core writes go through it,
|
|
9
|
+
* so a person reading either sees the same format.
|
|
10
|
+
*/
|
|
11
|
+
export type LogLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
|
|
12
|
+
/** The size at which `core.log` (and `app.log`) rotate, matching tauri-plugin-log. */
|
|
13
|
+
export declare const MAX_LOG_BYTES: number;
|
|
14
|
+
/** How many rotated `<stem>_*.log` archives are kept; the oldest beyond this is deleted. */
|
|
15
|
+
export declare const MAX_LOG_ARCHIVES = 4;
|
|
16
|
+
/**
|
|
17
|
+
* Builds one log entry: UTC, to the second, regardless of the process timezone. A multi-line
|
|
18
|
+
* `message` carries the header on its first line only; the rest is written verbatim, and one `\n`
|
|
19
|
+
* is appended, so a caller passes its message without a trailing newline of its own (one that
|
|
20
|
+
* ends in `\n` leaves an empty line after the entry).
|
|
21
|
+
*
|
|
22
|
+
* Each `[`, `]` and control character in `target` becomes `_`: a target comes partly from a model
|
|
23
|
+
* id, which is a folder name with no character rules (`model [Q4]`), and any of those would break
|
|
24
|
+
* the header the app splits entries on (`\[[^\]]*\]`, design D7) or split the header line itself.
|
|
25
|
+
*/
|
|
26
|
+
export declare function formatLogLine(date: Date, target: string, level: LogLevel, message: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* The subset of `node:fs`'s synchronous API the writer needs, injected so tests can simulate a
|
|
29
|
+
* broken disk without touching real IO error conditions.
|
|
30
|
+
*/
|
|
31
|
+
export interface LogFileFs {
|
|
32
|
+
mkdirSync(path: string, options: {
|
|
33
|
+
recursive: true;
|
|
34
|
+
}): void;
|
|
35
|
+
existsSync(path: string): boolean;
|
|
36
|
+
statSync(path: string): {
|
|
37
|
+
size: number;
|
|
38
|
+
};
|
|
39
|
+
openSync(path: string, flags: string): number;
|
|
40
|
+
writeSync(fd: number, data: string): number;
|
|
41
|
+
closeSync(fd: number): void;
|
|
42
|
+
renameSync(from: string, to: string): void;
|
|
43
|
+
unlinkSync(path: string): void;
|
|
44
|
+
readdirSync(path: string): string[];
|
|
45
|
+
}
|
|
46
|
+
export interface LogFileOptions {
|
|
47
|
+
/** Clock injected for tests; defaults to the real time. */
|
|
48
|
+
now?: () => Date;
|
|
49
|
+
/** Filesystem injected for tests; defaults to real `node:fs`. */
|
|
50
|
+
fs?: LogFileFs;
|
|
51
|
+
/** Where the single "log file disabled" warning goes; defaults to `process.stderr`. */
|
|
52
|
+
stderr?: (text: string) => void;
|
|
53
|
+
/** Size at which the file rotates; defaults to {@link MAX_LOG_BYTES}. Tests may lower it. */
|
|
54
|
+
maxBytes?: number;
|
|
55
|
+
/** Archives kept after rotation; defaults to {@link MAX_LOG_ARCHIVES}. Tests may lower it. */
|
|
56
|
+
maxArchives?: number;
|
|
57
|
+
}
|
|
58
|
+
export interface LogFile {
|
|
59
|
+
write(target: string, level: LogLevel, message: string): void;
|
|
60
|
+
close(): void;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Opens `<dir>/<stem>.log` for append, creating `dir` if needed, and returns a writer that rotates
|
|
64
|
+
* the file once an incoming entry would push it past `maxBytes` (default 10 MiB), keeping
|
|
65
|
+
* `maxArchives` (default 4) archives named `<stem>_YYYY-MM-DD_HH-MM-SS.log`.
|
|
66
|
+
*
|
|
67
|
+
* Never throws. An open or write failure, a rotation failure that leaves no writable file open, or
|
|
68
|
+
* any other error while writing an entry (a close that fails mid-rotation, say) writes one `WARN`
|
|
69
|
+
* line built by {@link formatLogLine} to `stderr` and disables the writer for good: every
|
|
70
|
+
* `write`/`close` call afterwards is a silent no-op. A failed rename that still leaves the
|
|
71
|
+
* *current* file writable is not one of these: the writer keeps appending to it and retries
|
|
72
|
+
* rotation on the next write; see {@link rotate}.
|
|
73
|
+
*/
|
|
74
|
+
export declare function openLogFile(dir: string, stem: string, options?: LogFileOptions): LogFile;
|