@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,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finding a stock llama.cpp `llama-server` new enough for the embedding model: the I/O half of the
|
|
3
|
+
* engine gate, the upstream half of the decision module's (`DecisionEngineResolver.resolveUpstream`).
|
|
4
|
+
*
|
|
5
|
+
* The installed packs of `llamacpp-upstream` are read from its folder directly: any of them may run
|
|
6
|
+
* the embedding model. The release tag is the gate (`orderUpstreamCandidates`): only packs at or above
|
|
7
|
+
* the model's floor, the build the user picked for chat first (it is known to run on this machine),
|
|
8
|
+
* then newest first, GPU before CPU. Readiness has the last word; a pack it refuses, or one that dies
|
|
9
|
+
* while loading, is handed back through `reject` and skipped until the file changes or the owner calls
|
|
10
|
+
* `forgetRejected` (a build was installed, the user asked for a load, the launch settings changed).
|
|
11
|
+
*/
|
|
12
|
+
import { stat } from 'node:fs/promises';
|
|
13
|
+
import { AtomicCoreError } from '../contracts/index.js';
|
|
14
|
+
import { resolveBackendExe, scanInstalledBackends } from '../backend/index.js';
|
|
15
|
+
import { orderUpstreamCandidates } from '../decision/index.js';
|
|
16
|
+
/** The provider whose builds run embedding models. */
|
|
17
|
+
export const EMBEDDING_ENGINE_PROVIDER = 'llamacpp-upstream';
|
|
18
|
+
const REFUSED_AT_READINESS = 'refused at readiness';
|
|
19
|
+
const defaultMtime = (path) => stat(path).then((s) => (s.isFile() ? s.mtimeMs : undefined), () => undefined);
|
|
20
|
+
export class EmbeddingEngineResolver {
|
|
21
|
+
deps;
|
|
22
|
+
/** `exe\0mtime` → why readiness refused it. A replaced file has a new mtime and is tried again. */
|
|
23
|
+
rejected = new Map();
|
|
24
|
+
platform;
|
|
25
|
+
constructor(deps) {
|
|
26
|
+
this.deps = deps;
|
|
27
|
+
this.platform = deps.platform ?? process.platform;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* `enginePath` when given (it only has to exist and not be refused at readiness), otherwise the
|
|
31
|
+
* newest installed pack at or above `minBuild`. `EMBEDDING_ENGINE_UNSUPPORTED` names every pack it
|
|
32
|
+
* tried, and the build to update to.
|
|
33
|
+
*/
|
|
34
|
+
async resolve(enginePath, minBuild) {
|
|
35
|
+
if (enginePath !== '') {
|
|
36
|
+
const reason = await this.check(enginePath);
|
|
37
|
+
if (reason === undefined)
|
|
38
|
+
return { path: enginePath, version_backend: null, provider: null };
|
|
39
|
+
throw new AtomicCoreError('EMBEDDING_ENGINE_UNSUPPORTED', 'The configured engine cannot run the embedding model.', `${enginePath}: ${reason}`);
|
|
40
|
+
}
|
|
41
|
+
const { eligible, tooOld } = orderUpstreamCandidates(await this.packs(), minBuild, this.deps.preferredUpstream?.() ?? '');
|
|
42
|
+
const tried = [];
|
|
43
|
+
for (const candidate of eligible) {
|
|
44
|
+
const reason = await this.check(candidate.path);
|
|
45
|
+
if (reason === undefined)
|
|
46
|
+
return {
|
|
47
|
+
path: candidate.path,
|
|
48
|
+
version_backend: candidate.info.version_backend,
|
|
49
|
+
provider: EMBEDDING_ENGINE_PROVIDER,
|
|
50
|
+
};
|
|
51
|
+
tried.push(`${candidate.info.version_backend}: ${reason}`);
|
|
52
|
+
}
|
|
53
|
+
for (const pack of tooOld)
|
|
54
|
+
tried.push(`${pack.version}/${pack.backend}: older than b${minBuild}`);
|
|
55
|
+
const message = eligible.length > 0
|
|
56
|
+
? `No installed llama.cpp build can run the embedding model: every build at b${minBuild} or newer was ${REFUSED_AT_READINESS}.`
|
|
57
|
+
: minBuild > 0
|
|
58
|
+
? `No installed llama.cpp build can run the embedding model. Update llama.cpp to b${minBuild} or newer.`
|
|
59
|
+
: 'No llama.cpp build is installed. Install llama.cpp to run the embedding model.';
|
|
60
|
+
throw new AtomicCoreError('EMBEDDING_ENGINE_UNSUPPORTED', message, tried.length > 0
|
|
61
|
+
? tried.join('\n')
|
|
62
|
+
: `no llama.cpp build in ${this.deps.layout.provider(EMBEDDING_ENGINE_PROVIDER).backendsDir}`);
|
|
63
|
+
}
|
|
64
|
+
/** `exe` started but readiness refused it: skip it in every later `resolve` until the file changes. */
|
|
65
|
+
async reject(exe, why) {
|
|
66
|
+
const mtime = await (this.deps.mtime ?? defaultMtime)(exe);
|
|
67
|
+
if (mtime === undefined)
|
|
68
|
+
return;
|
|
69
|
+
this.rejected.set(`${exe}\u0000${mtime}`, why);
|
|
70
|
+
this.deps.log?.('debug', `embedding engine ${exe} rejected at readiness: ${why}`);
|
|
71
|
+
}
|
|
72
|
+
/** Every build refused at readiness is tried again by the next `resolve`. */
|
|
73
|
+
forgetRejected() {
|
|
74
|
+
if (this.rejected.size === 0)
|
|
75
|
+
return;
|
|
76
|
+
this.rejected.clear();
|
|
77
|
+
this.deps.log?.('debug', 'embedding engines refused at readiness will be tried again');
|
|
78
|
+
}
|
|
79
|
+
/** `undefined` when `exe` may be tried, otherwise why not. */
|
|
80
|
+
async check(exe) {
|
|
81
|
+
const mtime = await (this.deps.mtime ?? defaultMtime)(exe);
|
|
82
|
+
if (mtime === undefined)
|
|
83
|
+
return 'no such file';
|
|
84
|
+
const refused = this.rejected.get(`${exe}\u0000${mtime}`);
|
|
85
|
+
return refused === undefined ? undefined : `${REFUSED_AT_READINESS}: ${refused}`;
|
|
86
|
+
}
|
|
87
|
+
async packs() {
|
|
88
|
+
if (this.deps.listPacks)
|
|
89
|
+
return this.deps.listPacks();
|
|
90
|
+
const { layout } = this.deps;
|
|
91
|
+
const packs = [];
|
|
92
|
+
for (const pack of await scanInstalledBackends(layout, EMBEDDING_ENGINE_PROVIDER, this.platform)) {
|
|
93
|
+
const path = await resolveBackendExe(layout, EMBEDDING_ENGINE_PROVIDER, pack.version, pack.backend, this.platform);
|
|
94
|
+
if (path)
|
|
95
|
+
packs.push({ version: pack.version, backend: pack.backend, path });
|
|
96
|
+
}
|
|
97
|
+
return packs;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/embedding/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Video input needs `ffmpeg`: llama.cpp's mtmd helper decodes a clip by starting `ffmpeg` from PATH
|
|
3
|
+
* (`mtmd_helper_video_init`). Nothing bundles it, so the embedding process gets it only when the
|
|
4
|
+
* user has one. An app started from the Finder inherits a bare PATH (`/usr/bin:/bin:/usr/sbin:/sbin`)
|
|
5
|
+
* that misses Homebrew's, so the usual install folders are searched as well and the one holding
|
|
6
|
+
* `ffmpeg` is put on the process's PATH. Without it the module does not offer video at all
|
|
7
|
+
* (`EmbeddingStatus.modalities`), and a clip is refused with a 400 that says why.
|
|
8
|
+
*/
|
|
9
|
+
/** Where installers put `ffmpeg` outside a login shell's PATH, per platform. */
|
|
10
|
+
export declare const FFMPEG_EXTRA_DIRS: Readonly<Partial<Record<NodeJS.Platform, readonly string[]>>>;
|
|
11
|
+
/** The PATH variable of `env`, whatever its case (Windows spells it `Path`). */
|
|
12
|
+
export declare function pathOf(env: NodeJS.ProcessEnv): string;
|
|
13
|
+
/** The folders to look for `ffmpeg` in: PATH first, then the platform's usual ones, once each. Pure. */
|
|
14
|
+
export declare function ffmpegSearchDirs(platform: NodeJS.Platform, pathValue: string): string[];
|
|
15
|
+
/** `env` with `dir` in front of its PATH (in the key the environment already uses). Pure. */
|
|
16
|
+
export declare function withPathDir(env: NodeJS.ProcessEnv, dir: string, platform: NodeJS.Platform): NodeJS.ProcessEnv;
|
|
17
|
+
/** The folder holding `ffmpeg`, or `undefined` when there is none to be found. */
|
|
18
|
+
export declare function findFfmpegDir(platform: NodeJS.Platform, env: NodeJS.ProcessEnv, isFile?: (path: string) => Promise<boolean>): Promise<string | undefined>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Video input needs `ffmpeg`: llama.cpp's mtmd helper decodes a clip by starting `ffmpeg` from PATH
|
|
3
|
+
* (`mtmd_helper_video_init`). Nothing bundles it, so the embedding process gets it only when the
|
|
4
|
+
* user has one. An app started from the Finder inherits a bare PATH (`/usr/bin:/bin:/usr/sbin:/sbin`)
|
|
5
|
+
* that misses Homebrew's, so the usual install folders are searched as well and the one holding
|
|
6
|
+
* `ffmpeg` is put on the process's PATH. Without it the module does not offer video at all
|
|
7
|
+
* (`EmbeddingStatus.modalities`), and a clip is refused with a 400 that says why.
|
|
8
|
+
*/
|
|
9
|
+
import { stat } from 'node:fs/promises';
|
|
10
|
+
import { posix, win32 } from 'node:path';
|
|
11
|
+
/** Where installers put `ffmpeg` outside a login shell's PATH, per platform. */
|
|
12
|
+
export const FFMPEG_EXTRA_DIRS = {
|
|
13
|
+
darwin: ['/opt/homebrew/bin', '/usr/local/bin', '/opt/local/bin'],
|
|
14
|
+
linux: ['/usr/local/bin', '/usr/bin', '/snap/bin'],
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* The key of `env`'s PATH: `PATH` itself when there is one (as `buildProcessEnv` reads it on
|
|
18
|
+
* Windows too), else the first spelling of it (Windows keeps `Path`).
|
|
19
|
+
*/
|
|
20
|
+
function pathKey(env) {
|
|
21
|
+
if (env['PATH'] !== undefined)
|
|
22
|
+
return 'PATH';
|
|
23
|
+
return Object.keys(env).find((k) => k.toUpperCase() === 'PATH');
|
|
24
|
+
}
|
|
25
|
+
/** The PATH variable of `env`, whatever its case (Windows spells it `Path`). */
|
|
26
|
+
export function pathOf(env) {
|
|
27
|
+
const key = pathKey(env);
|
|
28
|
+
return (key !== undefined ? env[key] : undefined) ?? '';
|
|
29
|
+
}
|
|
30
|
+
/** The folders to look for `ffmpeg` in: PATH first, then the platform's usual ones, once each. Pure. */
|
|
31
|
+
export function ffmpegSearchDirs(platform, pathValue) {
|
|
32
|
+
const separator = platform === 'win32' ? ';' : ':';
|
|
33
|
+
const dirs = [...pathValue.split(separator), ...(FFMPEG_EXTRA_DIRS[platform] ?? [])];
|
|
34
|
+
const seen = new Set();
|
|
35
|
+
return dirs.filter((dir) => {
|
|
36
|
+
const key = platform === 'win32' ? dir.toLowerCase() : dir;
|
|
37
|
+
if (dir.trim() === '' || seen.has(key))
|
|
38
|
+
return false;
|
|
39
|
+
seen.add(key);
|
|
40
|
+
return true;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/** `env` with `dir` in front of its PATH (in the key the environment already uses). Pure. */
|
|
44
|
+
export function withPathDir(env, dir, platform) {
|
|
45
|
+
const separator = platform === 'win32' ? ';' : ':';
|
|
46
|
+
const key = pathKey(env) ?? 'PATH';
|
|
47
|
+
const current = env[key] ?? '';
|
|
48
|
+
if (current.split(separator).includes(dir))
|
|
49
|
+
return env;
|
|
50
|
+
return { ...env, [key]: current === '' ? dir : `${dir}${separator}${current}` };
|
|
51
|
+
}
|
|
52
|
+
const defaultIsFile = (path) => stat(path).then((s) => s.isFile(), () => false);
|
|
53
|
+
/** The folder holding `ffmpeg`, or `undefined` when there is none to be found. */
|
|
54
|
+
export async function findFfmpegDir(platform, env, isFile = defaultIsFile) {
|
|
55
|
+
const exe = platform === 'win32' ? 'ffmpeg.exe' : 'ffmpeg';
|
|
56
|
+
// The platform's own separator, not the host's: a Linux path checked on a Windows host stays `/`.
|
|
57
|
+
const joinIn = platform === 'win32' ? win32.join : posix.join;
|
|
58
|
+
for (const dir of ffmpegSearchDirs(platform, pathOf(env)))
|
|
59
|
+
if (await isFile(joinIn(dir, exe)))
|
|
60
|
+
return dir;
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=ffmpeg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ffmpeg.js","sourceRoot":"","sources":["../../src/embedding/ffmpeg.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The embedding model: one stock llama.cpp `llama-server --embedding` that the public server's
|
|
3
|
+
* `/v1/embeddings` forwards to when a client names it, with a projector for one that reads images or
|
|
4
|
+
* audio. A module of its own, outside the sessions registry, like the decision model
|
|
5
|
+
* (ADR 2026-10-07-embedding-models-are-their-own-core-module). Wire types in
|
|
6
|
+
* `src/contracts/embedding.ts`; the catalog the app downloads from is `atomic-chat-conf/models/embedding.json`.
|
|
7
|
+
*/
|
|
8
|
+
export * from './args.js';
|
|
9
|
+
export * from './engine.js';
|
|
10
|
+
export * from './ffmpeg.js';
|
|
11
|
+
export * from './model-facts.js';
|
|
12
|
+
export * from './process.js';
|
|
13
|
+
export * from './readiness.js';
|
|
14
|
+
export * from './request.js';
|
|
15
|
+
export * from './service.js';
|
|
16
|
+
export * from './wiring.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The embedding model: one stock llama.cpp `llama-server --embedding` that the public server's
|
|
3
|
+
* `/v1/embeddings` forwards to when a client names it, with a projector for one that reads images or
|
|
4
|
+
* audio. A module of its own, outside the sessions registry, like the decision model
|
|
5
|
+
* (ADR 2026-10-07-embedding-models-are-their-own-core-module). Wire types in
|
|
6
|
+
* `src/contracts/embedding.ts`; the catalog the app downloads from is `atomic-chat-conf/models/embedding.json`.
|
|
7
|
+
*/
|
|
8
|
+
export * from './args.js';
|
|
9
|
+
export * from './engine.js';
|
|
10
|
+
export * from './ffmpeg.js';
|
|
11
|
+
export * from './model-facts.js';
|
|
12
|
+
export * from './process.js';
|
|
13
|
+
export * from './readiness.js';
|
|
14
|
+
export * from './request.js';
|
|
15
|
+
export * from './service.js';
|
|
16
|
+
export * from './wiring.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What an embedding GGUF says about how to run it, read from its header before a start: whether it is
|
|
3
|
+
* an embedding model at all, its pooling, its trained context, and the oldest upstream build that
|
|
4
|
+
* runs it. Pure but for `readEmbeddingModelFacts`.
|
|
5
|
+
*
|
|
6
|
+
* The build floors (ggml-org/llama.cpp, by the merge of each change):
|
|
7
|
+
* - b11240: typed `content` parts (`image_url`, `input_audio`) in `/v1/embeddings` (#29556), which a
|
|
8
|
+
* model with a projector needs to be given anything but text;
|
|
9
|
+
* - b11454: the `gemma-embedding2` architecture, EmbeddingGemma 2 (#30054). b11452 and b11453 were
|
|
10
|
+
* never released.
|
|
11
|
+
*/
|
|
12
|
+
import type { EmbeddingPooling } from '../contracts/index.js';
|
|
13
|
+
/** `-c` when the settings leave it to the core: a long passage, an image or half a minute of audio. */
|
|
14
|
+
export declare const EMBEDDING_DEFAULT_CTX = 2048;
|
|
15
|
+
/** The first upstream build with typed `content` parts in `/v1/embeddings`. */
|
|
16
|
+
export declare const EMBEDDING_CONTENT_PARTS_MIN_BUILD = 11240;
|
|
17
|
+
/** The first upstream build that runs EmbeddingGemma 2. */
|
|
18
|
+
export declare const EMBEDDING_GEMMA2_MIN_BUILD = 11454;
|
|
19
|
+
export interface EmbeddingModelFacts {
|
|
20
|
+
/** `general.architecture`, lower case; `''` when the header has none. */
|
|
21
|
+
arch: string;
|
|
22
|
+
/** The header says embeddings (`isEmbeddingGguf`), not text, a decision or nothing. */
|
|
23
|
+
embedding: boolean;
|
|
24
|
+
/** A decision model: it runs in the decision module, never here. */
|
|
25
|
+
decision: boolean;
|
|
26
|
+
/** `<arch>.pooling_type`; `undefined` when the header has none. `rank` is a reranker. */
|
|
27
|
+
pooling?: 'none' | EmbeddingPooling | 'rank';
|
|
28
|
+
/** `<arch>.context_length`, when the file has one. */
|
|
29
|
+
contextTrain?: number;
|
|
30
|
+
}
|
|
31
|
+
/** The facts from parsed metadata (string values, as the GGUF reader returns them). Pure. */
|
|
32
|
+
export declare function embeddingFactsOf(metadata: Record<string, unknown> | undefined): EmbeddingModelFacts;
|
|
33
|
+
/** The facts of a GGUF file; `undefined` when its header cannot be read. */
|
|
34
|
+
export declare function readEmbeddingModelFacts(path: string, read?: (path: string) => Promise<{
|
|
35
|
+
metadata: Record<string, unknown>;
|
|
36
|
+
}>): Promise<EmbeddingModelFacts | undefined>;
|
|
37
|
+
/**
|
|
38
|
+
* Why the file cannot run as an embedding model, or `undefined` when it can. A reranker (pooling
|
|
39
|
+
* `rank`) answers scores, not vectors, and `/v1/embeddings` refuses it.
|
|
40
|
+
*/
|
|
41
|
+
export declare function notAnEmbeddingModel(facts: EmbeddingModelFacts): string | undefined;
|
|
42
|
+
/** The oldest upstream build that serves the model; 0 when any build does. */
|
|
43
|
+
export declare function embeddingMinBuild(arch: string, projector: boolean): number;
|
|
44
|
+
/** `-c`: the setting when given, else the default, never past the trained context. */
|
|
45
|
+
export declare function embeddingCtxSize(setting: number, contextTrain: number | undefined): number;
|
|
46
|
+
/**
|
|
47
|
+
* `--pooling`: the setting when given; else nothing, so the server reads the GGUF's own, unless the
|
|
48
|
+
* file names none at all (an old conversion), where `/v1/embeddings` would refuse every request:
|
|
49
|
+
* then `mean`, which is what such sentence-transformer models were trained with.
|
|
50
|
+
*/
|
|
51
|
+
export declare function embeddingPooling(setting: '' | EmbeddingPooling, facts: Pick<EmbeddingModelFacts, 'pooling'>): EmbeddingPooling | undefined;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What an embedding GGUF says about how to run it, read from its header before a start: whether it is
|
|
3
|
+
* an embedding model at all, its pooling, its trained context, and the oldest upstream build that
|
|
4
|
+
* runs it. Pure but for `readEmbeddingModelFacts`.
|
|
5
|
+
*
|
|
6
|
+
* The build floors (ggml-org/llama.cpp, by the merge of each change):
|
|
7
|
+
* - b11240: typed `content` parts (`image_url`, `input_audio`) in `/v1/embeddings` (#29556), which a
|
|
8
|
+
* model with a projector needs to be given anything but text;
|
|
9
|
+
* - b11454: the `gemma-embedding2` architecture, EmbeddingGemma 2 (#30054). b11452 and b11453 were
|
|
10
|
+
* never released.
|
|
11
|
+
*/
|
|
12
|
+
import { isDecisionGguf, isEmbeddingGguf, readGgufMetadataFromFile } from '../models/index.js';
|
|
13
|
+
/** `-c` when the settings leave it to the core: a long passage, an image or half a minute of audio. */
|
|
14
|
+
export const EMBEDDING_DEFAULT_CTX = 2048;
|
|
15
|
+
/** The first upstream build with typed `content` parts in `/v1/embeddings`. */
|
|
16
|
+
export const EMBEDDING_CONTENT_PARTS_MIN_BUILD = 11240;
|
|
17
|
+
/** The first upstream build that runs EmbeddingGemma 2. */
|
|
18
|
+
export const EMBEDDING_GEMMA2_MIN_BUILD = 11454;
|
|
19
|
+
/** Architectures newer than the oldest upstream build the core may find, by the build that added them. */
|
|
20
|
+
const ARCH_MIN_BUILD = {
|
|
21
|
+
'gemma-embedding2': EMBEDDING_GEMMA2_MIN_BUILD,
|
|
22
|
+
};
|
|
23
|
+
/** `<arch>.pooling_type` as llama.cpp numbers it. */
|
|
24
|
+
const POOLING_NAMES = {
|
|
25
|
+
'0': 'none',
|
|
26
|
+
'1': 'mean',
|
|
27
|
+
'2': 'cls',
|
|
28
|
+
'3': 'last',
|
|
29
|
+
'4': 'rank',
|
|
30
|
+
};
|
|
31
|
+
/** The facts from parsed metadata (string values, as the GGUF reader returns them). Pure. */
|
|
32
|
+
export function embeddingFactsOf(metadata) {
|
|
33
|
+
const meta = (metadata ?? {});
|
|
34
|
+
const arch = String(meta['general.architecture'] ?? '')
|
|
35
|
+
.trim()
|
|
36
|
+
.toLowerCase();
|
|
37
|
+
const pooling = POOLING_NAMES[String(meta[`${arch}.pooling_type`] ?? '').trim()];
|
|
38
|
+
const context = Number(meta[`${arch}.context_length`]);
|
|
39
|
+
return {
|
|
40
|
+
arch,
|
|
41
|
+
embedding: isEmbeddingGguf(meta),
|
|
42
|
+
decision: isDecisionGguf(meta),
|
|
43
|
+
...(pooling !== undefined ? { pooling } : {}),
|
|
44
|
+
...(Number.isInteger(context) && context > 0 ? { contextTrain: context } : {}),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/** The facts of a GGUF file; `undefined` when its header cannot be read. */
|
|
48
|
+
export async function readEmbeddingModelFacts(path, read = readGgufMetadataFromFile) {
|
|
49
|
+
const parsed = await read(path).catch(() => undefined);
|
|
50
|
+
return parsed ? embeddingFactsOf(parsed.metadata) : undefined;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Why the file cannot run as an embedding model, or `undefined` when it can. A reranker (pooling
|
|
54
|
+
* `rank`) answers scores, not vectors, and `/v1/embeddings` refuses it.
|
|
55
|
+
*/
|
|
56
|
+
export function notAnEmbeddingModel(facts) {
|
|
57
|
+
if (facts.decision)
|
|
58
|
+
return 'It is a decision model; turn it on as a decision model instead.';
|
|
59
|
+
if (facts.pooling === 'rank')
|
|
60
|
+
return 'It is a reranker, which answers scores rather than vectors.';
|
|
61
|
+
if (!facts.embedding)
|
|
62
|
+
return 'It is a text generation model, not an embedding model.';
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
/** The oldest upstream build that serves the model; 0 when any build does. */
|
|
66
|
+
export function embeddingMinBuild(arch, projector) {
|
|
67
|
+
return Math.max(ARCH_MIN_BUILD[arch] ?? 0, projector ? EMBEDDING_CONTENT_PARTS_MIN_BUILD : 0);
|
|
68
|
+
}
|
|
69
|
+
/** `-c`: the setting when given, else the default, never past the trained context. */
|
|
70
|
+
export function embeddingCtxSize(setting, contextTrain) {
|
|
71
|
+
const wanted = Number.isInteger(setting) && setting > 0 ? setting : EMBEDDING_DEFAULT_CTX;
|
|
72
|
+
return contextTrain !== undefined && contextTrain > 0 ? Math.min(wanted, contextTrain) : wanted;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* `--pooling`: the setting when given; else nothing, so the server reads the GGUF's own, unless the
|
|
76
|
+
* file names none at all (an old conversion), where `/v1/embeddings` would refuse every request:
|
|
77
|
+
* then `mean`, which is what such sentence-transformer models were trained with.
|
|
78
|
+
*/
|
|
79
|
+
export function embeddingPooling(setting, facts) {
|
|
80
|
+
if (setting !== '')
|
|
81
|
+
return setting;
|
|
82
|
+
return facts.pooling === undefined || facts.pooling === 'none' ? 'mean' : undefined;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=model-facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-facts.js","sourceRoot":"","sources":["../../src/embedding/model-facts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spawning one embedding `llama-server` and waiting until it answers vectors.
|
|
3
|
+
*
|
|
4
|
+
* The same process mechanics the decision module borrows from the runtimes: `spawnManaged`,
|
|
5
|
+
* `randomFreePort`, `buildProcessEnv`, the backend-output sink, and the journal hooks (the caller
|
|
6
|
+
* writes the record right after the spawn under `provider: 'embedding'`, so a crashed owner's
|
|
7
|
+
* successor reaps it). Readiness is `readiness.ts`, polled until the startup deadline; an exit before
|
|
8
|
+
* it is reported with the last lines the process printed. On any failure the child is dead when this
|
|
9
|
+
* rejects.
|
|
10
|
+
*/
|
|
11
|
+
import { AtomicCoreError } from '../contracts/index.js';
|
|
12
|
+
import type { EmbeddingEngineInfo, EmbeddingModality } from '../contracts/index.js';
|
|
13
|
+
import type { DecisionHttp } from '../decision/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 { EmbeddingLaunchSpec } from './args.js';
|
|
17
|
+
/** SIGTERM → this long → SIGKILL. */
|
|
18
|
+
export declare const EMBEDDING_TERMINATE_GRACE_MS = 5000;
|
|
19
|
+
export declare const READY_POLL_INTERVAL_MS = 200;
|
|
20
|
+
/** Lines of output kept for a post-mortem. */
|
|
21
|
+
export declare const EMBEDDING_TAIL_CAPACITY = 100;
|
|
22
|
+
export interface EmbeddingServerSpec extends Omit<EmbeddingLaunchSpec, 'port'> {
|
|
23
|
+
engine: EmbeddingEngineInfo;
|
|
24
|
+
startupTimeoutMs: number;
|
|
25
|
+
}
|
|
26
|
+
/** A running embedding process that answered a vector. */
|
|
27
|
+
export interface EmbeddingProcessHandle {
|
|
28
|
+
pid: number;
|
|
29
|
+
port: number;
|
|
30
|
+
apiKey: string;
|
|
31
|
+
exe: string;
|
|
32
|
+
baseUrl: string;
|
|
33
|
+
/** The `-a` the process answers with. */
|
|
34
|
+
modelId: string;
|
|
35
|
+
dims: number;
|
|
36
|
+
modalities: EmbeddingModality[];
|
|
37
|
+
tail(): string[];
|
|
38
|
+
exitStatus(): ExitInfo | undefined;
|
|
39
|
+
exited: Promise<ExitInfo>;
|
|
40
|
+
terminate(graceMs?: number): Promise<ExitInfo>;
|
|
41
|
+
}
|
|
42
|
+
export interface SpawnEmbeddingDeps {
|
|
43
|
+
http: DecisionHttp;
|
|
44
|
+
platform?: NodeJS.Platform;
|
|
45
|
+
env?: NodeJS.ProcessEnv;
|
|
46
|
+
log?: (level: 'info' | 'warn' | 'debug', msg: string) => void;
|
|
47
|
+
backendOutput?: BackendOutputSink;
|
|
48
|
+
/** Right after the child started, before readiness: the journal entry goes here. */
|
|
49
|
+
onSpawned?: (pid: number, port: number, exe: string) => Promise<void>;
|
|
50
|
+
/** A child `onSpawned` saw is dead and will never be used. */
|
|
51
|
+
onGone?: (pid: number) => Promise<void>;
|
|
52
|
+
/** An unload or a shutdown while the process is still starting; the child is killed. */
|
|
53
|
+
signal?: AbortSignal;
|
|
54
|
+
freePort?: () => Promise<number>;
|
|
55
|
+
apiKey?: () => string;
|
|
56
|
+
/** Test seam: start the child (the fake engine in tests). */
|
|
57
|
+
spawn?: (spec: SpawnSpec, onData: (stream: 'stdout' | 'stderr', line: string) => void) => ManagedProcess;
|
|
58
|
+
/** The folder holding `ffmpeg` (`findFfmpegDir`); without one the process is offered no video. */
|
|
59
|
+
findFfmpeg?: (platform: NodeJS.Platform, env: NodeJS.ProcessEnv) => Promise<string | undefined>;
|
|
60
|
+
pollIntervalMs?: number;
|
|
61
|
+
sleep?: (ms: number) => Promise<void>;
|
|
62
|
+
now?: () => number;
|
|
63
|
+
}
|
|
64
|
+
/** The error for a process that died before it was ready: the engine's own last lines in the details. */
|
|
65
|
+
export declare function embeddingEarlyExitError(exit: ExitInfo, tail: readonly string[]): AtomicCoreError;
|
|
66
|
+
export declare function spawnEmbeddingServer(spec: EmbeddingServerSpec, deps: SpawnEmbeddingDeps): Promise<EmbeddingProcessHandle>;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spawning one embedding `llama-server` and waiting until it answers vectors.
|
|
3
|
+
*
|
|
4
|
+
* The same process mechanics the decision module borrows from the runtimes: `spawnManaged`,
|
|
5
|
+
* `randomFreePort`, `buildProcessEnv`, the backend-output sink, and the journal hooks (the caller
|
|
6
|
+
* writes the record right after the spawn under `provider: 'embedding'`, so a crashed owner's
|
|
7
|
+
* successor reaps it). Readiness is `readiness.ts`, polled until the startup deadline; an exit before
|
|
8
|
+
* it is reported with the last lines the process printed. On any failure the child is dead when this
|
|
9
|
+
* rejects.
|
|
10
|
+
*/
|
|
11
|
+
import { randomBytes } from 'node:crypto';
|
|
12
|
+
import { dirname } from 'node:path';
|
|
13
|
+
import { AtomicCoreError } from '../contracts/index.js';
|
|
14
|
+
import { commandSummary } from '../decision/index.js';
|
|
15
|
+
import { backendOutputReporter, buildProcessEnv, discoverCudaPaths, nodeCudaProbeEnv, randomFreePort, spawnManaged, } from '../runtime/shared/index.js';
|
|
16
|
+
import { buildEmbeddingArgs, embeddingEnv, EMBEDDING_HOST } from './args.js';
|
|
17
|
+
import { findFfmpegDir, withPathDir } from './ffmpeg.js';
|
|
18
|
+
import { checkEmbeddingReadiness, READINESS_REQUEST_TIMEOUT_MS } from './readiness.js';
|
|
19
|
+
/** SIGTERM → this long → SIGKILL. */
|
|
20
|
+
export const EMBEDDING_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 EMBEDDING_TAIL_CAPACITY = 100;
|
|
24
|
+
const defaultSleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
25
|
+
function describeExit(exit) {
|
|
26
|
+
if (exit.code !== null)
|
|
27
|
+
return `code ${exit.code}`;
|
|
28
|
+
if (exit.signal !== null)
|
|
29
|
+
return `signal ${exit.signal}`;
|
|
30
|
+
return 'an unknown status';
|
|
31
|
+
}
|
|
32
|
+
/** The error for a process that died before it was ready: the engine's own last lines in the details. */
|
|
33
|
+
export function embeddingEarlyExitError(exit, tail) {
|
|
34
|
+
return new AtomicCoreError('MODEL_LOAD_FAILED', `The embedding model exited with ${describeExit(exit)} while loading.`, tail.slice(-20).join('\n') || undefined);
|
|
35
|
+
}
|
|
36
|
+
export async function spawnEmbeddingServer(spec, deps) {
|
|
37
|
+
const platform = deps.platform ?? process.platform;
|
|
38
|
+
const inherited = deps.env ?? process.env;
|
|
39
|
+
// Video decodes through `ffmpeg` on the process's PATH (see `ffmpeg.ts`).
|
|
40
|
+
const ffmpegDir = await (deps.findFfmpeg ?? findFfmpegDir)(platform, inherited).catch(() => undefined);
|
|
41
|
+
const baseEnv = ffmpegDir !== undefined ? withPathDir(inherited, ffmpegDir, platform) : inherited;
|
|
42
|
+
const log = deps.log ?? (() => { });
|
|
43
|
+
const sleep = deps.sleep ?? defaultSleep;
|
|
44
|
+
const now = deps.now ?? Date.now;
|
|
45
|
+
const exe = spec.engine.path;
|
|
46
|
+
const port = await (deps.freePort ?? (() => randomFreePort([])))().catch((error) => {
|
|
47
|
+
throw new AtomicCoreError('MODEL_LOAD_FAILED', 'No free port for the embedding model.', error instanceof Error ? error.message : String(error));
|
|
48
|
+
});
|
|
49
|
+
const apiKey = (deps.apiKey ?? (() => randomBytes(24).toString('base64url')))();
|
|
50
|
+
const args = buildEmbeddingArgs({ ...spec, port });
|
|
51
|
+
log('info', `starting the embedding model: ${commandSummary(exe, args)}`);
|
|
52
|
+
const { env, cwd } = buildProcessEnv({
|
|
53
|
+
platform,
|
|
54
|
+
baseEnv,
|
|
55
|
+
exeDir: dirname(exe),
|
|
56
|
+
cuda: discoverCudaPaths(nodeCudaProbeEnv(platform, baseEnv)),
|
|
57
|
+
userEnv: embeddingEnv(apiKey),
|
|
58
|
+
});
|
|
59
|
+
const tail = [];
|
|
60
|
+
const reportOutput = backendOutputReporter(deps.backendOutput, deps.log);
|
|
61
|
+
const onLine = (stream, line) => {
|
|
62
|
+
reportOutput({ provider: 'embedding', model: spec.modelId, stream, line });
|
|
63
|
+
if (tail.length >= EMBEDDING_TAIL_CAPACITY)
|
|
64
|
+
tail.shift();
|
|
65
|
+
tail.push(line);
|
|
66
|
+
};
|
|
67
|
+
const proc = (deps.spawn ?? ((s, cb) => spawnManaged(s, cb, { captureOutput: false })))({ exe, args, env, cwd }, onLine);
|
|
68
|
+
let exit;
|
|
69
|
+
void proc.exited.then((e) => (exit = e));
|
|
70
|
+
const baseUrl = `http://${EMBEDDING_HOST}:${port}`;
|
|
71
|
+
const terminate = (graceMs = EMBEDDING_TERMINATE_GRACE_MS) => proc.terminate(graceMs);
|
|
72
|
+
try {
|
|
73
|
+
await deps.onSpawned?.(proc.pid, port, exe);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
await terminate(0);
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
const fail = async (graceMs, error) => {
|
|
80
|
+
await terminate(graceMs);
|
|
81
|
+
await deps.onGone?.(proc.pid);
|
|
82
|
+
throw error;
|
|
83
|
+
};
|
|
84
|
+
const deadline = now() + spec.startupTimeoutMs;
|
|
85
|
+
let lastDetail = '';
|
|
86
|
+
for (;;) {
|
|
87
|
+
if (deps.signal?.aborted)
|
|
88
|
+
return fail(0, new AtomicCoreError('EMBEDDING_UNAVAILABLE', 'The embedding model start was stopped.'));
|
|
89
|
+
const spawnFailure = proc.spawnFailure();
|
|
90
|
+
if (spawnFailure) {
|
|
91
|
+
await deps.onGone?.(proc.pid);
|
|
92
|
+
throw new AtomicCoreError('MODEL_LOAD_FAILED', 'The embedding engine could not be started.', `${exe}: ${spawnFailure.message}`);
|
|
93
|
+
}
|
|
94
|
+
if (exit !== undefined) {
|
|
95
|
+
// Give the pipes a moment to deliver the final lines.
|
|
96
|
+
await sleep(50);
|
|
97
|
+
await deps.onGone?.(proc.pid);
|
|
98
|
+
log('warn', `the embedding model exited while loading (${describeExit(exit)})`);
|
|
99
|
+
throw embeddingEarlyExitError(exit, tail);
|
|
100
|
+
}
|
|
101
|
+
if (now() >= deadline)
|
|
102
|
+
return fail(EMBEDDING_TERMINATE_GRACE_MS, new AtomicCoreError('MODEL_LOAD_TIMED_OUT', `The embedding model did not become ready within ${Math.round(spec.startupTimeoutMs / 1000)} seconds.`, [lastDetail, ...tail.slice(-10)].filter(Boolean).join('\n') || undefined));
|
|
103
|
+
const result = await checkEmbeddingReadiness(deps.http, baseUrl, apiKey, spec.modelId, READINESS_REQUEST_TIMEOUT_MS);
|
|
104
|
+
if (result.kind === 'ready') {
|
|
105
|
+
// The projector may read clips, but without `ffmpeg` the engine cannot decode one.
|
|
106
|
+
const modalities = ffmpegDir === undefined ? result.modalities.filter((m) => m !== 'video') : result.modalities;
|
|
107
|
+
log('info', `the embedding model ${spec.modelId} is ready on port ${port} (${result.dims} dimensions, ${modalities.join(', ')})`);
|
|
108
|
+
return {
|
|
109
|
+
pid: proc.pid,
|
|
110
|
+
port,
|
|
111
|
+
apiKey,
|
|
112
|
+
exe,
|
|
113
|
+
baseUrl,
|
|
114
|
+
modelId: spec.modelId,
|
|
115
|
+
dims: result.dims,
|
|
116
|
+
modalities,
|
|
117
|
+
tail: () => [...tail],
|
|
118
|
+
exitStatus: () => exit,
|
|
119
|
+
exited: proc.exited,
|
|
120
|
+
terminate,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
if (result.kind === 'unsupported')
|
|
124
|
+
return fail(EMBEDDING_TERMINATE_GRACE_MS, new AtomicCoreError('EMBEDDING_ENGINE_UNSUPPORTED', 'The engine started but does not serve embeddings.', `${exe}: ${result.detail}`));
|
|
125
|
+
if (result.kind === 'refused')
|
|
126
|
+
return fail(EMBEDDING_TERMINATE_GRACE_MS, new AtomicCoreError('MODEL_LOAD_FAILED', 'The embedding model started but refuses to produce vectors.', `${exe}: ${result.detail}`));
|
|
127
|
+
lastDetail = result.detail;
|
|
128
|
+
await sleep(deps.pollIntervalMs ?? READY_POLL_INTERVAL_MS);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/embedding/process.ts"],"names":[],"mappings":"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"}
|