@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,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The fail-open outcome of a decision call, from the module's state or the engine's answer. Pure.
|
|
3
|
+
*
|
|
4
|
+
* A call never throws into its caller: the chat path asks the router before it picks a model, and a
|
|
5
|
+
* router that cannot answer must cost at most its budget, never the turn. Every way of not answering
|
|
6
|
+
* becomes `{unavailable: true, reason}`, and the caller applies its default policy.
|
|
7
|
+
*/
|
|
8
|
+
import type { DecisionEngineError, DecisionOutcome, DecisionState, DecisionUnavailableReason, RouterScoreResponse, SystemoneResponse } from '../contracts/index.js';
|
|
9
|
+
export declare function unavailable<T>(reason: DecisionUnavailableReason, message: string, elapsedMs: number, extra?: {
|
|
10
|
+
status?: number;
|
|
11
|
+
error?: DecisionEngineError;
|
|
12
|
+
}): DecisionOutcome<T>;
|
|
13
|
+
/** Why a call cannot even be sent in `state`; `undefined` when the process is ready. */
|
|
14
|
+
export declare function refusalForState(state: DecisionState, configured: boolean): {
|
|
15
|
+
reason: DecisionUnavailableReason;
|
|
16
|
+
message: string;
|
|
17
|
+
} | undefined;
|
|
18
|
+
/** The engine's `{"error": {...}}`, or a synthetic one around a body that is not an envelope. */
|
|
19
|
+
export declare function engineErrorOf(status: number, text: string): DecisionEngineError;
|
|
20
|
+
/**
|
|
21
|
+
* An engine answer as an outcome. `check` says whether a parsed 200 body is the expected shape: a
|
|
22
|
+
* 200 that is not JSON or not that shape is `invalid_response`, never a result the caller trusts.
|
|
23
|
+
*/
|
|
24
|
+
export declare function outcomeFromAnswer<T>(status: number, text: string, elapsedMs: number, check: (body: unknown) => body is T): DecisionOutcome<T>;
|
|
25
|
+
export declare const NOT_CALIBRATED_MESSAGE = "The decision model has no router calibration, and allow_uncalibrated is off; the router cannot score.";
|
|
26
|
+
/** A `/v1/router/score` answer: `scores` is a list of objects with an `id` and a numeric `p_success`. */
|
|
27
|
+
export declare function isRouterScoreBody(body: unknown): body is RouterScoreResponse;
|
|
28
|
+
/**
|
|
29
|
+
* Whether a router answer scores exactly the candidates that were asked about, in their order. The
|
|
30
|
+
* engine promises request order; a caller that zips scores with its candidates by index would credit
|
|
31
|
+
* the wrong executor if an answer broke that, so such an answer is not trusted.
|
|
32
|
+
*/
|
|
33
|
+
export declare function scoresMatchCandidates(body: RouterScoreResponse, ids: readonly string[]): boolean;
|
|
34
|
+
/** A `/v1/systemone` answer: `answers` is an object of objects. */
|
|
35
|
+
export declare function isSystemoneBody(body: unknown): body is SystemoneResponse;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The fail-open outcome of a decision call, from the module's state or the engine's answer. Pure.
|
|
3
|
+
*
|
|
4
|
+
* A call never throws into its caller: the chat path asks the router before it picks a model, and a
|
|
5
|
+
* router that cannot answer must cost at most its budget, never the turn. Every way of not answering
|
|
6
|
+
* becomes `{unavailable: true, reason}`, and the caller applies its default policy.
|
|
7
|
+
*/
|
|
8
|
+
export function unavailable(reason, message, elapsedMs, extra = {}) {
|
|
9
|
+
return { unavailable: true, reason, message, elapsed_ms: elapsedMs, ...extra };
|
|
10
|
+
}
|
|
11
|
+
/** Why a call cannot even be sent in `state`; `undefined` when the process is ready. */
|
|
12
|
+
export function refusalForState(state, configured) {
|
|
13
|
+
switch (state) {
|
|
14
|
+
case 'ready':
|
|
15
|
+
return undefined;
|
|
16
|
+
case 'disabled':
|
|
17
|
+
return { reason: 'disabled', message: 'The decision model is turned off.' };
|
|
18
|
+
case 'unsupported':
|
|
19
|
+
return { reason: 'unsupported', message: 'No installed engine build can run the decision model.' };
|
|
20
|
+
case 'failed':
|
|
21
|
+
return { reason: 'failed', message: 'The decision model failed to start; see its status.' };
|
|
22
|
+
case 'starting':
|
|
23
|
+
case 'restarting':
|
|
24
|
+
return { reason: 'starting', message: 'The decision model is starting.' };
|
|
25
|
+
case 'idle':
|
|
26
|
+
return configured
|
|
27
|
+
? { reason: 'starting', message: 'The decision model was not running; it is being started.' }
|
|
28
|
+
: { reason: 'not_configured', message: 'No decision model file is configured.' };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const isRecord = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
32
|
+
/** The engine's `{"error": {...}}`, or a synthetic one around a body that is not an envelope. */
|
|
33
|
+
export function engineErrorOf(status, text) {
|
|
34
|
+
try {
|
|
35
|
+
const body = JSON.parse(text);
|
|
36
|
+
const error = isRecord(body) ? body['error'] : undefined;
|
|
37
|
+
if (isRecord(error) && typeof error['message'] === 'string')
|
|
38
|
+
return error;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// not JSON: fall through
|
|
42
|
+
}
|
|
43
|
+
return { code: status, message: text.slice(0, 500) || `HTTP ${status}` };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* An engine answer as an outcome. `check` says whether a parsed 200 body is the expected shape: a
|
|
47
|
+
* 200 that is not JSON or not that shape is `invalid_response`, never a result the caller trusts.
|
|
48
|
+
*/
|
|
49
|
+
export function outcomeFromAnswer(status, text, elapsedMs, check) {
|
|
50
|
+
if (status === 200) {
|
|
51
|
+
let body;
|
|
52
|
+
try {
|
|
53
|
+
body = JSON.parse(text);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return unavailable('invalid_response', 'The decision model answered with something that is not JSON.', elapsedMs, {
|
|
57
|
+
status,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if (!check(body))
|
|
61
|
+
return unavailable('invalid_response', 'The decision model answered in an unexpected shape.', elapsedMs, {
|
|
62
|
+
status,
|
|
63
|
+
});
|
|
64
|
+
return { unavailable: false, result: body, elapsed_ms: elapsedMs };
|
|
65
|
+
}
|
|
66
|
+
const error = engineErrorOf(status, text);
|
|
67
|
+
if (status === 429)
|
|
68
|
+
return unavailable('overloaded', 'The decision model is busy; its queue is full.', elapsedMs, {
|
|
69
|
+
status,
|
|
70
|
+
error,
|
|
71
|
+
});
|
|
72
|
+
if (status === 503)
|
|
73
|
+
return unavailable('not_running', 'The decision model is loading or stopping.', elapsedMs, {
|
|
74
|
+
status,
|
|
75
|
+
error,
|
|
76
|
+
});
|
|
77
|
+
// 501 is only ever `ROUTER_NOT_CALIBRATED` in DECISION.md; the reason is checked too, for a proxy
|
|
78
|
+
// that rewrote the status.
|
|
79
|
+
if (status === 501 || error.reason === 'ROUTER_NOT_CALIBRATED')
|
|
80
|
+
return unavailable('not_calibrated', NOT_CALIBRATED_MESSAGE, elapsedMs, { status, error });
|
|
81
|
+
return unavailable('rejected', `The decision model refused the request: ${error.message}`, elapsedMs, {
|
|
82
|
+
status,
|
|
83
|
+
error,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
export const NOT_CALIBRATED_MESSAGE = 'The decision model has no router calibration, and allow_uncalibrated is off; the router cannot score.';
|
|
87
|
+
/** A `/v1/router/score` answer: `scores` is a list of objects with an `id` and a numeric `p_success`. */
|
|
88
|
+
export function isRouterScoreBody(body) {
|
|
89
|
+
if (!isRecord(body) || !Array.isArray(body['scores']))
|
|
90
|
+
return false;
|
|
91
|
+
return body['scores'].every((s) => isRecord(s) && typeof s['id'] === 'string' && typeof s['p_success'] === 'number');
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Whether a router answer scores exactly the candidates that were asked about, in their order. The
|
|
95
|
+
* engine promises request order; a caller that zips scores with its candidates by index would credit
|
|
96
|
+
* the wrong executor if an answer broke that, so such an answer is not trusted.
|
|
97
|
+
*/
|
|
98
|
+
export function scoresMatchCandidates(body, ids) {
|
|
99
|
+
return body.scores.length === ids.length && body.scores.every((s, i) => s.id === ids[i]);
|
|
100
|
+
}
|
|
101
|
+
/** A `/v1/systemone` answer: `answers` is an object of objects. */
|
|
102
|
+
export function isSystemoneBody(body) {
|
|
103
|
+
return isRecord(body) && isRecord(body['answers']) && Object.values(body['answers']).every(isRecord);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=outcome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outcome.js","sourceRoot":"","sources":["../../src/decision/outcome.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spawning one decision `llama-server` (the fork's `--decision`, or stock llama.cpp for an upstream
|
|
3
|
+
* decision GGUF) and waiting until it is a decision model this core can use.
|
|
4
|
+
*
|
|
5
|
+
* Borrowed from the runtimes, as the image engine does: `spawnManaged`, `randomFreePort`,
|
|
6
|
+
* `buildProcessEnv`, the backend-output sink, and the journal hooks (the caller writes the record
|
|
7
|
+
* right after the spawn under `provider: 'decision'`, so a crashed owner's successor reaps it).
|
|
8
|
+
* Readiness is the chain of `readiness.ts`, polled until the startup deadline; an exit before it is
|
|
9
|
+
* reported with the last lines the process printed. On any failure the child is dead when this
|
|
10
|
+
* rejects.
|
|
11
|
+
*/
|
|
12
|
+
import { AtomicCoreError } from '../contracts/index.js';
|
|
13
|
+
import type { DecisionCapability, DecisionEngineInfo, DecisionProps } from '../contracts/index.js';
|
|
14
|
+
import type { ExitInfo } from '../runtime/llamacpp/index.js';
|
|
15
|
+
import type { BackendOutputSink, ManagedProcess, SpawnSpec } from '../runtime/shared/index.js';
|
|
16
|
+
import type { DecisionLaunchSpec, UpstreamDecisionLaunch } from './args.js';
|
|
17
|
+
import type { DecisionHttp } from './http.js';
|
|
18
|
+
/** SIGTERM → this long → SIGKILL. The engine cancels its queue on SIGTERM, so this is rarely used. */
|
|
19
|
+
export declare const DECISION_TERMINATE_GRACE_MS = 5000;
|
|
20
|
+
export declare const READY_POLL_INTERVAL_MS = 200;
|
|
21
|
+
/** Lines of output kept for a post-mortem. */
|
|
22
|
+
export declare const DECISION_TAIL_CAPACITY = 100;
|
|
23
|
+
export interface DecisionServerSpec extends Omit<DecisionLaunchSpec, 'port'> {
|
|
24
|
+
engine: DecisionEngineInfo;
|
|
25
|
+
startupTimeoutMs: number;
|
|
26
|
+
/** How an upstream engine (`engine.dialect === 'upstream'`) runs the model; ignored by the fork. */
|
|
27
|
+
upstream?: UpstreamDecisionLaunch;
|
|
28
|
+
}
|
|
29
|
+
/** The argv for `spec` on `port`: the fork's `--decision`, or stock llama.cpp for an upstream GGUF. */
|
|
30
|
+
export declare function decisionArgsFor(spec: DecisionServerSpec, port: number): string[];
|
|
31
|
+
/** A running decision process that passed the readiness chain. */
|
|
32
|
+
export interface DecisionProcessHandle {
|
|
33
|
+
pid: number;
|
|
34
|
+
port: number;
|
|
35
|
+
apiKey: string;
|
|
36
|
+
exe: string;
|
|
37
|
+
baseUrl: string;
|
|
38
|
+
props: DecisionProps;
|
|
39
|
+
capabilities: DecisionCapability[];
|
|
40
|
+
tail(): string[];
|
|
41
|
+
exitStatus(): ExitInfo | undefined;
|
|
42
|
+
exited: Promise<ExitInfo>;
|
|
43
|
+
terminate(graceMs?: number): Promise<ExitInfo>;
|
|
44
|
+
}
|
|
45
|
+
export interface SpawnDecisionDeps {
|
|
46
|
+
http: DecisionHttp;
|
|
47
|
+
platform?: NodeJS.Platform;
|
|
48
|
+
env?: NodeJS.ProcessEnv;
|
|
49
|
+
log?: (level: 'info' | 'warn' | 'debug', msg: string) => void;
|
|
50
|
+
backendOutput?: BackendOutputSink;
|
|
51
|
+
/** Right after the child started, before readiness: the journal entry goes here. */
|
|
52
|
+
onSpawned?: (pid: number, port: number, exe: string) => Promise<void>;
|
|
53
|
+
/** A child `onSpawned` saw is dead and will never be used. */
|
|
54
|
+
onGone?: (pid: number) => Promise<void>;
|
|
55
|
+
/** An unload or a shutdown while the process is still starting; the child is killed. */
|
|
56
|
+
signal?: AbortSignal;
|
|
57
|
+
freePort?: () => Promise<number>;
|
|
58
|
+
apiKey?: () => string;
|
|
59
|
+
/** Test seam: start the child (the fake engine in tests). */
|
|
60
|
+
spawn?: (spec: SpawnSpec, onData: (stream: 'stdout' | 'stderr', line: string) => void) => ManagedProcess;
|
|
61
|
+
pollIntervalMs?: number;
|
|
62
|
+
sleep?: (ms: number) => Promise<void>;
|
|
63
|
+
now?: () => number;
|
|
64
|
+
}
|
|
65
|
+
/** The error for a process that died before it was ready: the engine's own last lines in the details. */
|
|
66
|
+
export declare function earlyExitError(exit: ExitInfo, tail: readonly string[]): AtomicCoreError;
|
|
67
|
+
export declare function spawnDecisionServer(spec: DecisionServerSpec, deps: SpawnDecisionDeps): Promise<DecisionProcessHandle>;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spawning one decision `llama-server` (the fork's `--decision`, or stock llama.cpp for an upstream
|
|
3
|
+
* decision GGUF) and waiting until it is a decision model this core can use.
|
|
4
|
+
*
|
|
5
|
+
* Borrowed from the runtimes, as the image engine does: `spawnManaged`, `randomFreePort`,
|
|
6
|
+
* `buildProcessEnv`, the backend-output sink, and the journal hooks (the caller writes the record
|
|
7
|
+
* right after the spawn under `provider: 'decision'`, so a crashed owner's successor reaps it).
|
|
8
|
+
* Readiness is the chain of `readiness.ts`, polled until the startup deadline; an exit before it is
|
|
9
|
+
* reported with the last lines the process printed. On any failure the child is dead when this
|
|
10
|
+
* rejects.
|
|
11
|
+
*/
|
|
12
|
+
import { randomBytes } from 'node:crypto';
|
|
13
|
+
import { dirname } from 'node:path';
|
|
14
|
+
import { AtomicCoreError } from '../contracts/index.js';
|
|
15
|
+
import { backendOutputReporter, buildProcessEnv, discoverCudaPaths, nodeCudaProbeEnv, randomFreePort, spawnManaged, } from '../runtime/shared/index.js';
|
|
16
|
+
import { buildDecisionArgs, buildUpstreamDecisionArgs, commandSummary, decisionEnv, DECISION_HOST, withoutDecisionEnv, } from './args.js';
|
|
17
|
+
import { UPSTREAM_DECISION_DEFAULT_CTX } from './model-facts.js';
|
|
18
|
+
import { checkReadiness, READINESS_REQUEST_TIMEOUT_MS } from './readiness.js';
|
|
19
|
+
/** SIGTERM → this long → SIGKILL. The engine cancels its queue on SIGTERM, so this is rarely used. */
|
|
20
|
+
export const DECISION_TERMINATE_GRACE_MS = 5_000;
|
|
21
|
+
export const READY_POLL_INTERVAL_MS = 200;
|
|
22
|
+
/** Lines of output kept for a post-mortem. */
|
|
23
|
+
export const DECISION_TAIL_CAPACITY = 100;
|
|
24
|
+
/** The argv for `spec` on `port`: the fork's `--decision`, or stock llama.cpp for an upstream GGUF. */
|
|
25
|
+
export function decisionArgsFor(spec, port) {
|
|
26
|
+
if (spec.engine.dialect !== 'upstream')
|
|
27
|
+
return buildDecisionArgs({ ...spec, port });
|
|
28
|
+
return buildUpstreamDecisionArgs({ ...spec, port }, spec.upstream ?? { ctxSize: UPSTREAM_DECISION_DEFAULT_CTX, wholePromptUbatch: false });
|
|
29
|
+
}
|
|
30
|
+
const defaultSleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
31
|
+
function describeExit(exit) {
|
|
32
|
+
if (exit.code !== null)
|
|
33
|
+
return `code ${exit.code}`;
|
|
34
|
+
if (exit.signal !== null)
|
|
35
|
+
return `signal ${exit.signal}`;
|
|
36
|
+
return 'an unknown status';
|
|
37
|
+
}
|
|
38
|
+
/** The error for a process that died before it was ready: the engine's own last lines in the details. */
|
|
39
|
+
export function earlyExitError(exit, tail) {
|
|
40
|
+
return new AtomicCoreError('MODEL_LOAD_FAILED', `The decision model exited with ${describeExit(exit)} while loading.`, tail.slice(-20).join('\n') || undefined);
|
|
41
|
+
}
|
|
42
|
+
export async function spawnDecisionServer(spec, deps) {
|
|
43
|
+
const platform = deps.platform ?? process.platform;
|
|
44
|
+
const baseEnv = withoutDecisionEnv(deps.env ?? process.env);
|
|
45
|
+
const log = deps.log ?? (() => { });
|
|
46
|
+
const sleep = deps.sleep ?? defaultSleep;
|
|
47
|
+
const now = deps.now ?? Date.now;
|
|
48
|
+
const exe = spec.engine.path;
|
|
49
|
+
const port = await (deps.freePort ?? (() => randomFreePort([])))().catch((error) => {
|
|
50
|
+
throw new AtomicCoreError('MODEL_LOAD_FAILED', 'No free port for the decision model.', error instanceof Error ? error.message : String(error));
|
|
51
|
+
});
|
|
52
|
+
const apiKey = (deps.apiKey ?? (() => randomBytes(24).toString('base64url')))();
|
|
53
|
+
const args = decisionArgsFor(spec, port);
|
|
54
|
+
log('info', `starting the decision model: ${commandSummary(exe, args)}`);
|
|
55
|
+
const { env, cwd } = buildProcessEnv({
|
|
56
|
+
platform,
|
|
57
|
+
baseEnv,
|
|
58
|
+
exeDir: dirname(exe),
|
|
59
|
+
cuda: discoverCudaPaths(nodeCudaProbeEnv(platform, baseEnv)),
|
|
60
|
+
userEnv: decisionEnv(apiKey),
|
|
61
|
+
});
|
|
62
|
+
const tail = [];
|
|
63
|
+
const reportOutput = backendOutputReporter(deps.backendOutput, deps.log);
|
|
64
|
+
const modelLabel = spec.modelId || 'decision';
|
|
65
|
+
const onLine = (stream, line) => {
|
|
66
|
+
reportOutput({ provider: 'decision', model: modelLabel, stream, line });
|
|
67
|
+
if (tail.length >= DECISION_TAIL_CAPACITY)
|
|
68
|
+
tail.shift();
|
|
69
|
+
tail.push(line);
|
|
70
|
+
};
|
|
71
|
+
const proc = (deps.spawn ?? ((s, cb) => spawnManaged(s, cb, { captureOutput: false })))({ exe, args, env, cwd }, onLine);
|
|
72
|
+
let exit;
|
|
73
|
+
void proc.exited.then((e) => (exit = e));
|
|
74
|
+
const baseUrl = `http://${DECISION_HOST}:${port}`;
|
|
75
|
+
const terminate = (graceMs = DECISION_TERMINATE_GRACE_MS) => proc.terminate(graceMs);
|
|
76
|
+
try {
|
|
77
|
+
await deps.onSpawned?.(proc.pid, port, exe);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
await terminate(0);
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
const fail = async (graceMs, error) => {
|
|
84
|
+
await terminate(graceMs);
|
|
85
|
+
await deps.onGone?.(proc.pid);
|
|
86
|
+
throw error;
|
|
87
|
+
};
|
|
88
|
+
const deadline = now() + spec.startupTimeoutMs;
|
|
89
|
+
let lastDetail = '';
|
|
90
|
+
for (;;) {
|
|
91
|
+
if (deps.signal?.aborted)
|
|
92
|
+
return fail(0, new AtomicCoreError('DECISION_UNAVAILABLE', 'The decision model start was stopped.'));
|
|
93
|
+
const spawnFailure = proc.spawnFailure();
|
|
94
|
+
if (spawnFailure) {
|
|
95
|
+
await deps.onGone?.(proc.pid);
|
|
96
|
+
throw new AtomicCoreError('MODEL_LOAD_FAILED', 'The decision engine could not be started.', `${exe}: ${spawnFailure.message}`);
|
|
97
|
+
}
|
|
98
|
+
if (exit !== undefined) {
|
|
99
|
+
// Give the pipes a moment to deliver the final lines.
|
|
100
|
+
await sleep(50);
|
|
101
|
+
await deps.onGone?.(proc.pid);
|
|
102
|
+
const error = earlyExitError(exit, tail);
|
|
103
|
+
log('warn', `the decision model exited while loading (${describeExit(exit)})`);
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
if (now() >= deadline)
|
|
107
|
+
return fail(DECISION_TERMINATE_GRACE_MS, new AtomicCoreError('MODEL_LOAD_TIMED_OUT', `The decision model did not become ready within ${Math.round(spec.startupTimeoutMs / 1000)} seconds.`, [lastDetail, ...tail.slice(-10)].filter(Boolean).join('\n') || undefined));
|
|
108
|
+
const result = await checkReadiness(deps.http, baseUrl, apiKey, READINESS_REQUEST_TIMEOUT_MS, spec.engine.dialect);
|
|
109
|
+
if (result.kind === 'ready') {
|
|
110
|
+
log('info', `the decision model is ready on port ${port} (${result.props.layout ?? 'unknown layout'}, ${result.props.model_id ?? 'unnamed'})`);
|
|
111
|
+
return {
|
|
112
|
+
pid: proc.pid,
|
|
113
|
+
port,
|
|
114
|
+
apiKey,
|
|
115
|
+
exe,
|
|
116
|
+
baseUrl,
|
|
117
|
+
props: result.props,
|
|
118
|
+
capabilities: result.capabilities,
|
|
119
|
+
tail: () => [...tail],
|
|
120
|
+
exitStatus: () => exit,
|
|
121
|
+
exited: proc.exited,
|
|
122
|
+
terminate,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
if (result.kind === 'unsupported')
|
|
126
|
+
return fail(DECISION_TERMINATE_GRACE_MS, new AtomicCoreError('DECISION_ENGINE_UNSUPPORTED', spec.engine.dialect === 'upstream'
|
|
127
|
+
? 'The engine started but does not serve the model as a decision model.'
|
|
128
|
+
: 'The engine started but does not serve decision API version 1.', `${exe}: ${result.detail}`));
|
|
129
|
+
lastDetail = result.detail;
|
|
130
|
+
await sleep(deps.pollIntervalMs ?? READY_POLL_INTERVAL_MS);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/decision/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* "Is this a decision model I can talk to?", the check DECISION.md prescribes for a client:
|
|
3
|
+
* `GET /health` answers 200, then `GET /v1/models` lists the `decision` capability, then
|
|
4
|
+
* `GET /props` has `decision.api_version == 1`.
|
|
5
|
+
*
|
|
6
|
+
* `/health` answers 503 while the engine loads (the HTTP server starts first), so the chain is polled
|
|
7
|
+
* until the startup deadline. Only a clear verdict from a 200 answer refuses the build: `/v1/models`
|
|
8
|
+
* without the `decision` capability, `/props` without a decision block, or another `api_version`.
|
|
9
|
+
* That is some other `llama-server` (a build that ignored `--decision`, a stranger on the port) or a
|
|
10
|
+
* future API version. Anything else on the two later requests (a transport error, a request timeout
|
|
11
|
+
* on a busy machine, a 5xx or any other non-200, a 200 that is not JSON) says nothing about the build
|
|
12
|
+
* and counts as still loading: the refusal is remembered (`DecisionEngineResolver.reject`), so it
|
|
13
|
+
* must not come from a slow answer. The parsers are pure; `checkReadiness` does one round of the
|
|
14
|
+
* chain over the injected HTTP.
|
|
15
|
+
*
|
|
16
|
+
* Upstream llama.cpp has no `/props.decision` and no `decision` capability: its `/v1/models` entry
|
|
17
|
+
* carries `architecture.output_modalities`, `["decisions"]` for a decision model and `["text"]` for
|
|
18
|
+
* anything else. So an upstream process is ready once `/v1/models` lists `decisions`, and its props
|
|
19
|
+
* are filled in by the core (`upstreamProps`): the request contract it shares with the fork, the one
|
|
20
|
+
* endpoint it serves, and whether it reads images.
|
|
21
|
+
*/
|
|
22
|
+
import type { DecisionCapability, DecisionDialect, DecisionProps } from '../contracts/index.js';
|
|
23
|
+
import type { DecisionHttp } from './http.js';
|
|
24
|
+
export declare const HEALTH_PATH = "/health";
|
|
25
|
+
export declare const MODELS_PATH = "/v1/models";
|
|
26
|
+
export declare const PROPS_PATH = "/props";
|
|
27
|
+
/** Each readiness request on its own; the startup deadline bounds the whole wait. */
|
|
28
|
+
export declare const READINESS_REQUEST_TIMEOUT_MS = 2000;
|
|
29
|
+
/**
|
|
30
|
+
* Every capability the model list names. Real servers answer `{data: [...]}` (OpenAI) and newer
|
|
31
|
+
* builds also `{models: [...]}`; both are read, and the union is kept.
|
|
32
|
+
*/
|
|
33
|
+
export declare function capabilitiesOf(body: unknown): DecisionCapability[];
|
|
34
|
+
/** The `decision` block of `/props`, when it has a numeric `api_version`. Unknown fields are kept. */
|
|
35
|
+
export declare function decisionPropsOf(body: unknown): DecisionProps | undefined;
|
|
36
|
+
export type ReadinessResult = {
|
|
37
|
+
kind: 'loading';
|
|
38
|
+
detail: string;
|
|
39
|
+
} | {
|
|
40
|
+
kind: 'ready';
|
|
41
|
+
props: DecisionProps;
|
|
42
|
+
capabilities: DecisionCapability[];
|
|
43
|
+
} | {
|
|
44
|
+
kind: 'unsupported';
|
|
45
|
+
detail: string;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* The verdict on the two answers after health: pure, so every refusal is tested without a server.
|
|
49
|
+
* `status: 0` is a transport error (its `text` the message). Only a 200 that parses as JSON can
|
|
50
|
+
* refuse; every other answer is `loading`.
|
|
51
|
+
*/
|
|
52
|
+
export declare function judgeDecisionEndpoint(models: {
|
|
53
|
+
status: number;
|
|
54
|
+
text: string;
|
|
55
|
+
}, props: {
|
|
56
|
+
status: number;
|
|
57
|
+
text: string;
|
|
58
|
+
}): ReadinessResult;
|
|
59
|
+
/** What an upstream decision process serves: `/v1/systemone` only, no router. */
|
|
60
|
+
export declare const UPSTREAM_DECISION_ENDPOINTS: readonly string[];
|
|
61
|
+
/** The first `data` entry's `architecture.<key>` (upstream b11370 on); `[]` when there is none. */
|
|
62
|
+
export declare function modalitiesOf(body: unknown, key: 'input_modalities' | 'output_modalities'): string[];
|
|
63
|
+
/** The props the core stands in for an upstream process, which has no `/props.decision`. */
|
|
64
|
+
export declare function upstreamProps(body: unknown): DecisionProps;
|
|
65
|
+
/** The verdict on an upstream `/v1/models` answer after health. Pure, like `judgeDecisionEndpoint`. */
|
|
66
|
+
export declare function judgeUpstreamDecisionEndpoint(models: {
|
|
67
|
+
status: number;
|
|
68
|
+
text: string;
|
|
69
|
+
}): ReadinessResult;
|
|
70
|
+
/**
|
|
71
|
+
* One round of the chain against `baseUrl`. A transport error or a request timeout is "still
|
|
72
|
+
* loading": the port may not be bound yet, or the engine is too busy loading to answer in time.
|
|
73
|
+
*/
|
|
74
|
+
export declare function checkReadiness(http: DecisionHttp, baseUrl: string, apiKey: string, timeoutMs?: number, dialect?: DecisionDialect): Promise<ReadinessResult>;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* "Is this a decision model I can talk to?", the check DECISION.md prescribes for a client:
|
|
3
|
+
* `GET /health` answers 200, then `GET /v1/models` lists the `decision` capability, then
|
|
4
|
+
* `GET /props` has `decision.api_version == 1`.
|
|
5
|
+
*
|
|
6
|
+
* `/health` answers 503 while the engine loads (the HTTP server starts first), so the chain is polled
|
|
7
|
+
* until the startup deadline. Only a clear verdict from a 200 answer refuses the build: `/v1/models`
|
|
8
|
+
* without the `decision` capability, `/props` without a decision block, or another `api_version`.
|
|
9
|
+
* That is some other `llama-server` (a build that ignored `--decision`, a stranger on the port) or a
|
|
10
|
+
* future API version. Anything else on the two later requests (a transport error, a request timeout
|
|
11
|
+
* on a busy machine, a 5xx or any other non-200, a 200 that is not JSON) says nothing about the build
|
|
12
|
+
* and counts as still loading: the refusal is remembered (`DecisionEngineResolver.reject`), so it
|
|
13
|
+
* must not come from a slow answer. The parsers are pure; `checkReadiness` does one round of the
|
|
14
|
+
* chain over the injected HTTP.
|
|
15
|
+
*
|
|
16
|
+
* Upstream llama.cpp has no `/props.decision` and no `decision` capability: its `/v1/models` entry
|
|
17
|
+
* carries `architecture.output_modalities`, `["decisions"]` for a decision model and `["text"]` for
|
|
18
|
+
* anything else. So an upstream process is ready once `/v1/models` lists `decisions`, and its props
|
|
19
|
+
* are filled in by the core (`upstreamProps`): the request contract it shares with the fork, the one
|
|
20
|
+
* endpoint it serves, and whether it reads images.
|
|
21
|
+
*/
|
|
22
|
+
import { DECISION_API_VERSION } from '../contracts/index.js';
|
|
23
|
+
export const HEALTH_PATH = '/health';
|
|
24
|
+
export const MODELS_PATH = '/v1/models';
|
|
25
|
+
export const PROPS_PATH = '/props';
|
|
26
|
+
/** Each readiness request on its own; the startup deadline bounds the whole wait. */
|
|
27
|
+
export const READINESS_REQUEST_TIMEOUT_MS = 2_000;
|
|
28
|
+
const isRecord = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
29
|
+
function parseJson(text) {
|
|
30
|
+
try {
|
|
31
|
+
return JSON.parse(text);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Every capability the model list names. Real servers answer `{data: [...]}` (OpenAI) and newer
|
|
39
|
+
* builds also `{models: [...]}`; both are read, and the union is kept.
|
|
40
|
+
*/
|
|
41
|
+
export function capabilitiesOf(body) {
|
|
42
|
+
if (!isRecord(body))
|
|
43
|
+
return [];
|
|
44
|
+
const found = new Set();
|
|
45
|
+
for (const key of ['data', 'models']) {
|
|
46
|
+
const list = body[key];
|
|
47
|
+
if (!Array.isArray(list))
|
|
48
|
+
continue;
|
|
49
|
+
for (const entry of list) {
|
|
50
|
+
const caps = isRecord(entry) ? entry['capabilities'] : undefined;
|
|
51
|
+
if (Array.isArray(caps))
|
|
52
|
+
for (const cap of caps)
|
|
53
|
+
if (typeof cap === 'string')
|
|
54
|
+
found.add(cap);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return [...found];
|
|
58
|
+
}
|
|
59
|
+
/** The `decision` block of `/props`, when it has a numeric `api_version`. Unknown fields are kept. */
|
|
60
|
+
export function decisionPropsOf(body) {
|
|
61
|
+
if (!isRecord(body))
|
|
62
|
+
return undefined;
|
|
63
|
+
const block = body['decision'];
|
|
64
|
+
if (!isRecord(block) || typeof block['api_version'] !== 'number')
|
|
65
|
+
return undefined;
|
|
66
|
+
return block;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The verdict on the two answers after health: pure, so every refusal is tested without a server.
|
|
70
|
+
* `status: 0` is a transport error (its `text` the message). Only a 200 that parses as JSON can
|
|
71
|
+
* refuse; every other answer is `loading`.
|
|
72
|
+
*/
|
|
73
|
+
export function judgeDecisionEndpoint(models, props) {
|
|
74
|
+
const modelsBody = models.status === 200 ? parseJson(models.text) : undefined;
|
|
75
|
+
if (modelsBody === undefined)
|
|
76
|
+
return { kind: 'loading', detail: notAVerdict(MODELS_PATH, models) };
|
|
77
|
+
const capabilities = capabilitiesOf(modelsBody);
|
|
78
|
+
if (!capabilities.includes('decision'))
|
|
79
|
+
return {
|
|
80
|
+
kind: 'unsupported',
|
|
81
|
+
detail: `${MODELS_PATH} does not list the "decision" capability (got ${JSON.stringify(capabilities)})`,
|
|
82
|
+
};
|
|
83
|
+
const propsBody = props.status === 200 ? parseJson(props.text) : undefined;
|
|
84
|
+
if (propsBody === undefined)
|
|
85
|
+
return { kind: 'loading', detail: notAVerdict(PROPS_PATH, props) };
|
|
86
|
+
const decision = decisionPropsOf(propsBody);
|
|
87
|
+
if (!decision)
|
|
88
|
+
return { kind: 'unsupported', detail: `${PROPS_PATH} has no decision block` };
|
|
89
|
+
if (decision.api_version !== DECISION_API_VERSION)
|
|
90
|
+
return {
|
|
91
|
+
kind: 'unsupported',
|
|
92
|
+
detail: `${PROPS_PATH} reports decision api_version ${decision.api_version}, this core speaks ${DECISION_API_VERSION}`,
|
|
93
|
+
};
|
|
94
|
+
return { kind: 'ready', props: decision, capabilities };
|
|
95
|
+
}
|
|
96
|
+
/** What an upstream decision process serves: `/v1/systemone` only, no router. */
|
|
97
|
+
export const UPSTREAM_DECISION_ENDPOINTS = ['/v1/systemone'];
|
|
98
|
+
/** The first `data` entry's `architecture.<key>` (upstream b11370 on); `[]` when there is none. */
|
|
99
|
+
export function modalitiesOf(body, key) {
|
|
100
|
+
const list = isRecord(body) ? body['data'] : undefined;
|
|
101
|
+
if (!Array.isArray(list))
|
|
102
|
+
return [];
|
|
103
|
+
for (const entry of list) {
|
|
104
|
+
const arch = isRecord(entry) ? entry['architecture'] : undefined;
|
|
105
|
+
const values = isRecord(arch) ? arch[key] : undefined;
|
|
106
|
+
if (Array.isArray(values))
|
|
107
|
+
return values.filter((v) => typeof v === 'string');
|
|
108
|
+
}
|
|
109
|
+
return [];
|
|
110
|
+
}
|
|
111
|
+
/** The props the core stands in for an upstream process, which has no `/props.decision`. */
|
|
112
|
+
export function upstreamProps(body) {
|
|
113
|
+
const list = isRecord(body) ? body['data'] : undefined;
|
|
114
|
+
const first = Array.isArray(list) && isRecord(list[0]) ? list[0] : undefined;
|
|
115
|
+
const id = typeof first?.['id'] === 'string' ? first['id'] : undefined;
|
|
116
|
+
return {
|
|
117
|
+
api_version: DECISION_API_VERSION,
|
|
118
|
+
endpoints: [...UPSTREAM_DECISION_ENDPOINTS],
|
|
119
|
+
source: 'gguf',
|
|
120
|
+
...(id !== undefined ? { model_id: id } : {}),
|
|
121
|
+
input_modalities: modalitiesOf(body, 'input_modalities'),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/** The verdict on an upstream `/v1/models` answer after health. Pure, like `judgeDecisionEndpoint`. */
|
|
125
|
+
export function judgeUpstreamDecisionEndpoint(models) {
|
|
126
|
+
const body = models.status === 200 ? parseJson(models.text) : undefined;
|
|
127
|
+
if (body === undefined)
|
|
128
|
+
return { kind: 'loading', detail: notAVerdict(MODELS_PATH, models) };
|
|
129
|
+
const outputs = modalitiesOf(body, 'output_modalities');
|
|
130
|
+
if (!outputs.includes('decisions'))
|
|
131
|
+
return {
|
|
132
|
+
kind: 'unsupported',
|
|
133
|
+
detail: `${MODELS_PATH} does not list the "decisions" output modality (got ${JSON.stringify(outputs)})`,
|
|
134
|
+
};
|
|
135
|
+
return { kind: 'ready', props: upstreamProps(body), capabilities: ['decision', 'systemone'] };
|
|
136
|
+
}
|
|
137
|
+
/** Why an answer is not a verdict, for the timeout's details. */
|
|
138
|
+
function notAVerdict(path, answer) {
|
|
139
|
+
if (answer.status === 0)
|
|
140
|
+
return `${path}: ${answer.text}`;
|
|
141
|
+
if (answer.status !== 200)
|
|
142
|
+
return `${path} answered ${answer.status}`;
|
|
143
|
+
return `${path} answered 200 with a body that is not JSON`;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* One round of the chain against `baseUrl`. A transport error or a request timeout is "still
|
|
147
|
+
* loading": the port may not be bound yet, or the engine is too busy loading to answer in time.
|
|
148
|
+
*/
|
|
149
|
+
export async function checkReadiness(http, baseUrl, apiKey, timeoutMs = READINESS_REQUEST_TIMEOUT_MS, dialect = 'turboquant') {
|
|
150
|
+
const get = (path) => http.request(`${baseUrl}${path}`, { method: 'GET', apiKey, timeoutMs }).catch((error) => ({
|
|
151
|
+
status: 0,
|
|
152
|
+
text: error instanceof Error ? error.message : String(error),
|
|
153
|
+
}));
|
|
154
|
+
const health = await get(HEALTH_PATH);
|
|
155
|
+
if (health.status !== 200)
|
|
156
|
+
return {
|
|
157
|
+
kind: 'loading',
|
|
158
|
+
detail: health.status === 0 ? health.text : `${HEALTH_PATH} answered ${health.status}`,
|
|
159
|
+
};
|
|
160
|
+
if (dialect === 'upstream')
|
|
161
|
+
return judgeUpstreamDecisionEndpoint(await get(MODELS_PATH));
|
|
162
|
+
const [models, props] = [await get(MODELS_PATH), await get(PROPS_PATH)];
|
|
163
|
+
return judgeDecisionEndpoint(models, props);
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=readiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/decision/readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The control API's decision bodies, checked just enough to build an engine request. Pure.
|
|
3
|
+
*
|
|
4
|
+
* Only the shape the core itself relies on is checked here (strings, a list, an object). The rules of
|
|
5
|
+
* the engine (card schema, candidate ids, option counts) stay the engine's: it answers them with a
|
|
6
|
+
* precise reason and JSON path, which the caller gets back in the outcome's `error`. Duplicating them
|
|
7
|
+
* would only give two answers that can drift apart.
|
|
8
|
+
*/
|
|
9
|
+
import type { DecisionDecideRequest, DecisionScoreRequest } from '../contracts/index.js';
|
|
10
|
+
export declare function parseScoreRequest(body: unknown): DecisionScoreRequest;
|
|
11
|
+
export declare function parseDecideRequest(body: unknown): DecisionDecideRequest;
|