@atomic-chat/core 0.5.1 → 0.13.6
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 +46 -5
- package/dist/core/atomic-core.js +25 -0
- package/dist/core/atomic-core.js.map +1 -1
- package/dist/core/create.js +523 -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 +38 -0
- package/dist/core/prism.js +43 -0
- package/dist/core/prism.js.map +1 -0
- package/dist/core/public-server.d.ts +7 -0
- package/dist/core/public-server.js +5 -2
- 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/tensorrt-llm.d.ts +169 -0
- package/dist/core/tensorrt-llm.js +428 -0
- package/dist/core/tensorrt-llm.js.map +1 -0
- package/dist/core/types.d.ts +43 -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 +71 -0
- package/dist/decision/process.js +142 -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 +7 -4
- package/dist/diffusion/args.js +31 -7
- package/dist/diffusion/args.js.map +1 -1
- package/dist/diffusion/compat.d.ts +1 -1
- package/dist/diffusion/compat.js +6 -2
- package/dist/diffusion/compat.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 +64 -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 +21 -1
- package/dist/diffusion/tracker.js +43 -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/validate.js +2 -2
- package/dist/diffusion/validate.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/diffusion/workflow.d.ts +8 -2
- package/dist/diffusion/workflow.js +13 -5
- package/dist/diffusion/workflow.js.map +1 -1
- package/dist/downloads/downloader.d.ts +22 -0
- package/dist/downloads/downloader.js +57 -2
- package/dist/downloads/downloader.js.map +1 -1
- package/dist/downloads/protocol.d.ts +3 -8
- package/dist/downloads/protocol.js.map +1 -1
- package/dist/downloads/segmented.d.ts +40 -0
- package/dist/downloads/segmented.js +170 -0
- package/dist/downloads/segmented.js.map +1 -0
- 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 +70 -0
- package/dist/embedding/process.js +140 -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 +28 -0
- package/dist/models/compatibility/inspect.js +90 -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 +62 -0
- package/dist/models/compatibility/service.js +138 -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 +57 -0
- package/dist/models/gguf/tensors.js +239 -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 +283 -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 +284 -0
- package/dist/runtime/managed-text/lifecycle.js +896 -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 +33 -0
- package/dist/runtime/managed-text/readiness.js +88 -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 +16 -0
- package/dist/runtime/shared/ports.js +42 -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 +247 -0
- package/dist/runtime/tensorrt-llm/adapter.js +1028 -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 +22 -0
- package/dist/runtime/tensorrt-llm/check.js.map +1 -0
- package/dist/runtime/tensorrt-llm/compatibility.d.ts +124 -0
- package/dist/runtime/tensorrt-llm/compatibility.js +213 -0
- package/dist/runtime/tensorrt-llm/compatibility.js.map +1 -0
- package/dist/runtime/tensorrt-llm/cuda-graphs.d.ts +32 -0
- package/dist/runtime/tensorrt-llm/cuda-graphs.js +33 -0
- package/dist/runtime/tensorrt-llm/cuda-graphs.js.map +1 -0
- package/dist/runtime/tensorrt-llm/delete.d.ts +15 -0
- package/dist/runtime/tensorrt-llm/delete.js +60 -0
- package/dist/runtime/tensorrt-llm/delete.js.map +1 -0
- package/dist/runtime/tensorrt-llm/engine.d.ts +3 -0
- package/dist/runtime/tensorrt-llm/engine.js +30 -0
- package/dist/runtime/tensorrt-llm/engine.js.map +1 -0
- package/dist/runtime/tensorrt-llm/guest-files.d.ts +8 -0
- package/dist/runtime/tensorrt-llm/guest-files.js +49 -0
- package/dist/runtime/tensorrt-llm/guest-files.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 +41 -0
- package/dist/runtime/tensorrt-llm/kv-cache.js +48 -0
- package/dist/runtime/tensorrt-llm/kv-cache.js.map +1 -0
- package/dist/runtime/tensorrt-llm/location.d.ts +20 -0
- package/dist/runtime/tensorrt-llm/location.js +48 -0
- package/dist/runtime/tensorrt-llm/location.js.map +1 -0
- package/dist/runtime/tensorrt-llm/model-dir.d.ts +38 -0
- package/dist/runtime/tensorrt-llm/model-dir.js +137 -0
- package/dist/runtime/tensorrt-llm/model-dir.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/quant-format.d.ts +65 -0
- package/dist/runtime/tensorrt-llm/quant-format.js +189 -0
- package/dist/runtime/tensorrt-llm/quant-format.js.map +1 -0
- package/dist/runtime/tensorrt-llm/registry.d.ts +26 -0
- package/dist/runtime/tensorrt-llm/registry.js +68 -0
- package/dist/runtime/tensorrt-llm/registry.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/runtime.d.ts +130 -0
- package/dist/runtime/tensorrt-llm/runtime.js +395 -0
- package/dist/runtime/tensorrt-llm/runtime.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 +16 -1
- 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 +172 -10
- 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 +18 -0
- package/dist/server/public/gates.js +41 -14
- package/dist/server/public/gates.js.map +1 -1
- package/dist/server/public/index.d.ts +6 -2
- package/dist/server/public/index.js +23 -7
- 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 +91 -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 +2 -2
- 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 @@
|
|
|
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":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAG9F,uGAAuG;AACvG,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAA;AACzC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAA;AACtD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAA;AAE/C,0GAA0G;AAC1G,MAAM,cAAc,GAAqC;IACvD,kBAAkB,EAAE,0BAA0B;CAC/C,CAAA;AAED,qDAAqD;AACrD,MAAM,aAAa,GAAiE;IAClF,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;CACZ,CAAA;AAeD,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB,CAAC,QAA6C;IAC5E,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAA2B,CAAA;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;SACpD,IAAI,EAAE;SACN,WAAW,EAAE,CAAA;IAChB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAChF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAA;IACtD,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC;QAChC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC;QAC9B,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/E,CAAA;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAY,EACZ,OAAyE,wBAAwB;IAEjG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IACtD,OAAO,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA0B;IAC5D,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,iEAAiE,CAAA;IAC5F,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM;QAAE,OAAO,6DAA6D,CAAA;IAClG,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,wDAAwD,CAAA;IACrF,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAkB;IAChE,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/F,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,YAAgC;IAChF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAA;IACzF,OAAO,YAAY,KAAK,SAAS,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACjG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA8B,EAC9B,KAA2C;IAE3C,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,OAAO,CAAA;IAClC,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AACrF,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
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
|
+
/**
|
|
67
|
+
* Start the embedding model, on another port when the one picked was taken before the engine could
|
|
68
|
+
* bind it (`retryOnTakenPort`): an exit while loading that says so is that race, not the model.
|
|
69
|
+
*/
|
|
70
|
+
export declare function spawnEmbeddingServer(spec: EmbeddingServerSpec, deps: SpawnEmbeddingDeps): Promise<EmbeddingProcessHandle>;
|
|
@@ -0,0 +1,140 @@
|
|
|
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, exitedOnTakenPort, nodeCudaProbeEnv, randomFreePort, retryOnTakenPort, 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
|
+
/**
|
|
37
|
+
* Start the embedding model, on another port when the one picked was taken before the engine could
|
|
38
|
+
* bind it (`retryOnTakenPort`): an exit while loading that says so is that race, not the model.
|
|
39
|
+
*/
|
|
40
|
+
export async function spawnEmbeddingServer(spec, deps) {
|
|
41
|
+
return retryOnTakenPort(() => spawnEmbeddingServerOnce(spec, deps), (error) => error instanceof AtomicCoreError &&
|
|
42
|
+
error.code === 'MODEL_LOAD_FAILED' &&
|
|
43
|
+
exitedOnTakenPort(error.details), (attempt) => deps.log?.('warn', `the embedding model's port was taken while it started; retrying (${attempt})`));
|
|
44
|
+
}
|
|
45
|
+
async function spawnEmbeddingServerOnce(spec, deps) {
|
|
46
|
+
const platform = deps.platform ?? process.platform;
|
|
47
|
+
const inherited = deps.env ?? process.env;
|
|
48
|
+
// Video decodes through `ffmpeg` on the process's PATH (see `ffmpeg.ts`).
|
|
49
|
+
const ffmpegDir = await (deps.findFfmpeg ?? findFfmpegDir)(platform, inherited).catch(() => undefined);
|
|
50
|
+
const baseEnv = ffmpegDir !== undefined ? withPathDir(inherited, ffmpegDir, platform) : inherited;
|
|
51
|
+
const log = deps.log ?? (() => { });
|
|
52
|
+
const sleep = deps.sleep ?? defaultSleep;
|
|
53
|
+
const now = deps.now ?? Date.now;
|
|
54
|
+
const exe = spec.engine.path;
|
|
55
|
+
const port = await (deps.freePort ?? (() => randomFreePort([])))().catch((error) => {
|
|
56
|
+
throw new AtomicCoreError('MODEL_LOAD_FAILED', 'No free port for the embedding model.', error instanceof Error ? error.message : String(error));
|
|
57
|
+
});
|
|
58
|
+
const apiKey = (deps.apiKey ?? (() => randomBytes(24).toString('base64url')))();
|
|
59
|
+
const args = buildEmbeddingArgs({ ...spec, port });
|
|
60
|
+
log('info', `starting the embedding model: ${commandSummary(exe, args)}`);
|
|
61
|
+
const { env, cwd } = buildProcessEnv({
|
|
62
|
+
platform,
|
|
63
|
+
baseEnv,
|
|
64
|
+
exeDir: dirname(exe),
|
|
65
|
+
cuda: discoverCudaPaths(nodeCudaProbeEnv(platform, baseEnv)),
|
|
66
|
+
userEnv: embeddingEnv(apiKey),
|
|
67
|
+
});
|
|
68
|
+
const tail = [];
|
|
69
|
+
const reportOutput = backendOutputReporter(deps.backendOutput, deps.log);
|
|
70
|
+
const onLine = (stream, line) => {
|
|
71
|
+
reportOutput({ provider: 'embedding', model: spec.modelId, stream, line });
|
|
72
|
+
if (tail.length >= EMBEDDING_TAIL_CAPACITY)
|
|
73
|
+
tail.shift();
|
|
74
|
+
tail.push(line);
|
|
75
|
+
};
|
|
76
|
+
const proc = (deps.spawn ?? ((s, cb) => spawnManaged(s, cb, { captureOutput: false })))({ exe, args, env, cwd }, onLine);
|
|
77
|
+
let exit;
|
|
78
|
+
void proc.exited.then((e) => (exit = e));
|
|
79
|
+
const baseUrl = `http://${EMBEDDING_HOST}:${port}`;
|
|
80
|
+
const terminate = (graceMs = EMBEDDING_TERMINATE_GRACE_MS) => proc.terminate(graceMs);
|
|
81
|
+
try {
|
|
82
|
+
await deps.onSpawned?.(proc.pid, port, exe);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
await terminate(0);
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
const fail = async (graceMs, error) => {
|
|
89
|
+
await terminate(graceMs);
|
|
90
|
+
await deps.onGone?.(proc.pid);
|
|
91
|
+
throw error;
|
|
92
|
+
};
|
|
93
|
+
const deadline = now() + spec.startupTimeoutMs;
|
|
94
|
+
let lastDetail = '';
|
|
95
|
+
for (;;) {
|
|
96
|
+
if (deps.signal?.aborted)
|
|
97
|
+
return fail(0, new AtomicCoreError('EMBEDDING_UNAVAILABLE', 'The embedding model start was stopped.'));
|
|
98
|
+
const spawnFailure = proc.spawnFailure();
|
|
99
|
+
if (spawnFailure) {
|
|
100
|
+
await deps.onGone?.(proc.pid);
|
|
101
|
+
throw new AtomicCoreError('MODEL_LOAD_FAILED', 'The embedding engine could not be started.', `${exe}: ${spawnFailure.message}`);
|
|
102
|
+
}
|
|
103
|
+
if (exit !== undefined) {
|
|
104
|
+
// Give the pipes a moment to deliver the final lines.
|
|
105
|
+
await sleep(50);
|
|
106
|
+
await deps.onGone?.(proc.pid);
|
|
107
|
+
log('warn', `the embedding model exited while loading (${describeExit(exit)})`);
|
|
108
|
+
throw embeddingEarlyExitError(exit, tail);
|
|
109
|
+
}
|
|
110
|
+
if (now() >= deadline)
|
|
111
|
+
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));
|
|
112
|
+
const result = await checkEmbeddingReadiness(deps.http, baseUrl, apiKey, spec.modelId, READINESS_REQUEST_TIMEOUT_MS);
|
|
113
|
+
if (result.kind === 'ready') {
|
|
114
|
+
// The projector may read clips, but without `ffmpeg` the engine cannot decode one.
|
|
115
|
+
const modalities = ffmpegDir === undefined ? result.modalities.filter((m) => m !== 'video') : result.modalities;
|
|
116
|
+
log('info', `the embedding model ${spec.modelId} is ready on port ${port} (${result.dims} dimensions, ${modalities.join(', ')})`);
|
|
117
|
+
return {
|
|
118
|
+
pid: proc.pid,
|
|
119
|
+
port,
|
|
120
|
+
apiKey,
|
|
121
|
+
exe,
|
|
122
|
+
baseUrl,
|
|
123
|
+
modelId: spec.modelId,
|
|
124
|
+
dims: result.dims,
|
|
125
|
+
modalities,
|
|
126
|
+
tail: () => [...tail],
|
|
127
|
+
exitStatus: () => exit,
|
|
128
|
+
exited: proc.exited,
|
|
129
|
+
terminate,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
if (result.kind === 'unsupported')
|
|
133
|
+
return fail(EMBEDDING_TERMINATE_GRACE_MS, new AtomicCoreError('EMBEDDING_ENGINE_UNSUPPORTED', 'The engine started but does not serve embeddings.', `${exe}: ${result.detail}`));
|
|
134
|
+
if (result.kind === 'refused')
|
|
135
|
+
return fail(EMBEDDING_TERMINATE_GRACE_MS, new AtomicCoreError('MODEL_LOAD_FAILED', 'The embedding model started but refuses to produce vectors.', `${exe}: ${result.detail}`));
|
|
136
|
+
lastDetail = result.detail;
|
|
137
|
+
await sleep(deps.pollIntervalMs ?? READY_POLL_INTERVAL_MS);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# 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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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* "Is this an embedding model I can serve?": `GET /health` answers 200, then one real
|
|
3
|
+
* `POST /v1/embeddings` of a single word answers vectors, then `GET /props` says what an input may
|
|
4
|
+
* hold. The vector's length is the model's (EmbeddingGemma 2's header says 512 where it answers 768),
|
|
5
|
+
* and the probe also warms the graph, so the first client request does not pay for it.
|
|
6
|
+
*
|
|
7
|
+
* `/health` answers 503 while the engine loads, so the chain is polled until the startup deadline.
|
|
8
|
+
* Only a clear verdict refuses: 501 on the probe is a server without `--embedding` (a stranger on the
|
|
9
|
+
* port, a build that ignored the flag), any other 4xx is the model itself refusing (a pooling the
|
|
10
|
+
* OpenAI endpoint cannot serve). A transport error, a timeout or a 5xx says nothing and counts as
|
|
11
|
+
* still loading. The parsers are pure; `checkEmbeddingReadiness` does one round over the injected HTTP.
|
|
12
|
+
*/
|
|
13
|
+
import type { EmbeddingModality } from '../contracts/index.js';
|
|
14
|
+
import type { DecisionHttp } from '../decision/index.js';
|
|
15
|
+
export declare const HEALTH_PATH = "/health";
|
|
16
|
+
export declare const EMBEDDINGS_PATH = "/v1/embeddings";
|
|
17
|
+
export declare const PROPS_PATH = "/props";
|
|
18
|
+
/** Each readiness request on its own; the startup deadline bounds the whole wait. */
|
|
19
|
+
export declare const READINESS_REQUEST_TIMEOUT_MS = 2000;
|
|
20
|
+
/** The probe runs the model once: the first pass compiles kernels on some GPUs. */
|
|
21
|
+
export declare const PROBE_REQUEST_TIMEOUT_MS = 60000;
|
|
22
|
+
export type ReadinessResult = {
|
|
23
|
+
kind: 'loading';
|
|
24
|
+
detail: string;
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'ready';
|
|
27
|
+
dims: number;
|
|
28
|
+
modalities: EmbeddingModality[];
|
|
29
|
+
}
|
|
30
|
+
/** Not an embedding server at all: the build or the flags are wrong. */
|
|
31
|
+
| {
|
|
32
|
+
kind: 'unsupported';
|
|
33
|
+
detail: string;
|
|
34
|
+
}
|
|
35
|
+
/** An embedding server that refuses the model's vectors (its pooling, its input). */
|
|
36
|
+
| {
|
|
37
|
+
kind: 'refused';
|
|
38
|
+
detail: string;
|
|
39
|
+
};
|
|
40
|
+
/** The length of the first vector of an OpenAI embeddings answer; `undefined` when there is none. */
|
|
41
|
+
export declare function dimsOf(body: unknown): number | undefined;
|
|
42
|
+
/** What one input may hold, from `/props.modalities`; text always. */
|
|
43
|
+
export declare function modalitiesOf(props: unknown): EmbeddingModality[];
|
|
44
|
+
/** The verdict on the probe and `/props` after health. Pure. `status: 0` is a transport error. */
|
|
45
|
+
export declare function judgeEmbeddingProbe(probe: {
|
|
46
|
+
status: number;
|
|
47
|
+
text: string;
|
|
48
|
+
}, props: {
|
|
49
|
+
status: number;
|
|
50
|
+
text: string;
|
|
51
|
+
}): ReadinessResult;
|
|
52
|
+
/**
|
|
53
|
+
* One round of the chain against `baseUrl`. A transport error or a request timeout is "still
|
|
54
|
+
* loading": the port may not be bound yet, or the engine is too busy loading to answer in time.
|
|
55
|
+
*/
|
|
56
|
+
export declare function checkEmbeddingReadiness(http: DecisionHttp, baseUrl: string, apiKey: string, modelId: string, timeoutMs?: number, probeTimeoutMs?: number): Promise<ReadinessResult>;
|