@atomic-chat/core 0.5.1
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 +46 -0
- package/dist/app-daemon.d.ts +2 -0
- package/dist/app-daemon.js +72 -0
- package/dist/app-daemon.js.map +1 -0
- package/dist/backend/catalog/archive.d.ts +70 -0
- package/dist/backend/catalog/archive.js +138 -0
- package/dist/backend/catalog/archive.js.map +1 -0
- package/dist/backend/catalog/bundled-manifest-baseline.d.ts +2 -0
- package/dist/backend/catalog/bundled-manifest-baseline.js +49 -0
- package/dist/backend/catalog/bundled-manifest-baseline.js.map +1 -0
- package/dist/backend/catalog/cuda-family.d.ts +54 -0
- package/dist/backend/catalog/cuda-family.js +93 -0
- package/dist/backend/catalog/cuda-family.js.map +1 -0
- package/dist/backend/catalog/index.d.ts +6 -0
- package/dist/backend/catalog/index.js +7 -0
- package/dist/backend/catalog/index.js.map +1 -0
- package/dist/backend/catalog/manifest.d.ts +102 -0
- package/dist/backend/catalog/manifest.js +233 -0
- package/dist/backend/catalog/manifest.js.map +1 -0
- package/dist/backend/catalog/migrate.d.ts +40 -0
- package/dist/backend/catalog/migrate.js +135 -0
- package/dist/backend/catalog/migrate.js.map +1 -0
- package/dist/backend/index.d.ts +18 -0
- package/dist/backend/index.js +19 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/install/index.d.ts +3 -0
- package/dist/backend/install/index.js +4 -0
- package/dist/backend/install/index.js.map +1 -0
- package/dist/backend/install/runtime-backend.d.ts +22 -0
- package/dist/backend/install/runtime-backend.js +95 -0
- package/dist/backend/install/runtime-backend.js.map +1 -0
- package/dist/backend/install/service.d.ts +119 -0
- package/dist/backend/install/service.js +218 -0
- package/dist/backend/install/service.js.map +1 -0
- package/dist/backend/installed/index.d.ts +3 -0
- package/dist/backend/installed/index.js +4 -0
- package/dist/backend/installed/index.js.map +1 -0
- package/dist/backend/installed/installed.d.ts +93 -0
- package/dist/backend/installed/installed.js +209 -0
- package/dist/backend/installed/installed.js.map +1 -0
- package/dist/backend/installed/scan.d.ts +39 -0
- package/dist/backend/installed/scan.js +105 -0
- package/dist/backend/installed/scan.js.map +1 -0
- package/dist/backend/optimal/index.d.ts +3 -0
- package/dist/backend/optimal/index.js +4 -0
- package/dist/backend/optimal/index.js.map +1 -0
- package/dist/backend/optimal/optimal-cache.d.ts +90 -0
- package/dist/backend/optimal/optimal-cache.js +198 -0
- package/dist/backend/optimal/optimal-cache.js.map +1 -0
- package/dist/backend/optimal/optimal-store.d.ts +24 -0
- package/dist/backend/optimal/optimal-store.js +103 -0
- package/dist/backend/optimal/optimal-store.js.map +1 -0
- package/dist/backend/select/amd-rocm-pci-ids.d.ts +3 -0
- package/dist/backend/select/amd-rocm-pci-ids.js +57 -0
- package/dist/backend/select/amd-rocm-pci-ids.js.map +1 -0
- package/dist/backend/select/categories.d.ts +49 -0
- package/dist/backend/select/categories.js +178 -0
- package/dist/backend/select/categories.js.map +1 -0
- package/dist/backend/select/features.d.ts +81 -0
- package/dist/backend/select/features.js +221 -0
- package/dist/backend/select/features.js.map +1 -0
- package/dist/backend/select/index.d.ts +9 -0
- package/dist/backend/select/index.js +10 -0
- package/dist/backend/select/index.js.map +1 -0
- package/dist/backend/select/recovery.d.ts +51 -0
- package/dist/backend/select/recovery.js +108 -0
- package/dist/backend/select/recovery.js.map +1 -0
- package/dist/backend/select/tiers.d.ts +76 -0
- package/dist/backend/select/tiers.js +179 -0
- package/dist/backend/select/tiers.js.map +1 -0
- package/dist/backend/turboquant.d.ts +134 -0
- package/dist/backend/turboquant.js +587 -0
- package/dist/backend/turboquant.js.map +1 -0
- package/dist/backend/types.d.ts +139 -0
- package/dist/backend/types.js +13 -0
- package/dist/backend/types.js.map +1 -0
- package/dist/backend/version.d.ts +59 -0
- package/dist/backend/version.js +168 -0
- package/dist/backend/version.js.map +1 -0
- package/dist/cli/bin.d.ts +2 -0
- package/dist/cli/bin.js +10 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/cloud.d.ts +13 -0
- package/dist/cli/cloud.js +146 -0
- package/dist/cli/cloud.js.map +1 -0
- package/dist/cli/commands/daemon.d.ts +4 -0
- package/dist/cli/commands/daemon.js +88 -0
- package/dist/cli/commands/daemon.js.map +1 -0
- package/dist/cli/commands/index.d.ts +16 -0
- package/dist/cli/commands/index.js +17 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/models.d.ts +4 -0
- package/dist/cli/commands/models.js +52 -0
- package/dist/cli/commands/models.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +16 -0
- package/dist/cli/commands/serve.js +263 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/server.d.ts +4 -0
- package/dist/cli/commands/server.js +126 -0
- package/dist/cli/commands/server.js.map +1 -0
- package/dist/cli/commands/shared.d.ts +10 -0
- package/dist/cli/commands/shared.js +34 -0
- package/dist/cli/commands/shared.js.map +1 -0
- package/dist/cli/commands/shutdown.d.ts +4 -0
- package/dist/cli/commands/shutdown.js +32 -0
- package/dist/cli/commands/shutdown.js.map +1 -0
- package/dist/cli/commands/telemetry.d.ts +8 -0
- package/dist/cli/commands/telemetry.js +50 -0
- package/dist/cli/commands/telemetry.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/io.d.ts +46 -0
- package/dist/cli/io.js +101 -0
- package/dist/cli/io.js.map +1 -0
- package/dist/cli/launch.d.ts +50 -0
- package/dist/cli/launch.js +327 -0
- package/dist/cli/launch.js.map +1 -0
- package/dist/cli/main.d.ts +10 -0
- package/dist/cli/main.js +109 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/owner.d.ts +39 -0
- package/dist/cli/owner.js +179 -0
- package/dist/cli/owner.js.map +1 -0
- package/dist/client/control-client.d.ts +213 -0
- package/dist/client/control-client.js +368 -0
- package/dist/client/control-client.js.map +1 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.js +8 -0
- package/dist/client/index.js.map +1 -0
- package/dist/cloud/chatgpt.d.ts +63 -0
- package/dist/cloud/chatgpt.js +233 -0
- package/dist/cloud/chatgpt.js.map +1 -0
- package/dist/cloud/index.d.ts +8 -0
- package/dist/cloud/index.js +9 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/cloud/registry.d.ts +51 -0
- package/dist/cloud/registry.js +148 -0
- package/dist/cloud/registry.js.map +1 -0
- package/dist/config/data-folder.d.ts +57 -0
- package/dist/config/data-folder.js +150 -0
- package/dist/config/data-folder.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.js +10 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/paths.d.ts +98 -0
- package/dist/config/paths.js +109 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/contracts/control-api.d.ts +61 -0
- package/dist/contracts/control-api.js +7 -0
- package/dist/contracts/control-api.js.map +1 -0
- package/dist/contracts/diffusion.d.ts +477 -0
- package/dist/contracts/diffusion.js +10 -0
- package/dist/contracts/diffusion.js.map +1 -0
- package/dist/contracts/errors.d.ts +61 -0
- package/dist/contracts/errors.js +70 -0
- package/dist/contracts/errors.js.map +1 -0
- package/dist/contracts/events.d.ts +270 -0
- package/dist/contracts/events.js +7 -0
- package/dist/contracts/events.js.map +1 -0
- package/dist/contracts/hardware.d.ts +53 -0
- package/dist/contracts/hardware.js +12 -0
- package/dist/contracts/hardware.js.map +1 -0
- package/dist/contracts/index.d.ts +12 -0
- package/dist/contracts/index.js +13 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/model-yml.d.ts +28 -0
- package/dist/contracts/model-yml.js +23 -0
- package/dist/contracts/model-yml.js.map +1 -0
- package/dist/contracts/remote-access.d.ts +43 -0
- package/dist/contracts/remote-access.js +12 -0
- package/dist/contracts/remote-access.js.map +1 -0
- package/dist/contracts/session.d.ts +39 -0
- package/dist/contracts/session.js +7 -0
- package/dist/contracts/session.js.map +1 -0
- package/dist/contracts/settings.d.ts +106 -0
- package/dist/contracts/settings.js +17 -0
- package/dist/contracts/settings.js.map +1 -0
- package/dist/core/atomic-core.d.ts +149 -0
- package/dist/core/atomic-core.js +289 -0
- package/dist/core/atomic-core.js.map +1 -0
- package/dist/core/create.d.ts +12 -0
- package/dist/core/create.js +393 -0
- package/dist/core/create.js.map +1 -0
- package/dist/core/index.d.ts +10 -0
- package/dist/core/index.js +9 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/public-server.d.ts +76 -0
- package/dist/core/public-server.js +143 -0
- package/dist/core/public-server.js.map +1 -0
- package/dist/core/reap-orphans.d.ts +7 -0
- package/dist/core/reap-orphans.js +40 -0
- package/dist/core/reap-orphans.js.map +1 -0
- package/dist/core/sessions.d.ts +60 -0
- package/dist/core/sessions.js +180 -0
- package/dist/core/sessions.js.map +1 -0
- package/dist/core/types.d.ts +61 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/credentials/api-keys.d.ts +41 -0
- package/dist/credentials/api-keys.js +156 -0
- package/dist/credentials/api-keys.js.map +1 -0
- package/dist/credentials/chatgpt-auth.d.ts +73 -0
- package/dist/credentials/chatgpt-auth.js +167 -0
- package/dist/credentials/chatgpt-auth.js.map +1 -0
- package/dist/credentials/chatgpt-oauth.d.ts +97 -0
- package/dist/credentials/chatgpt-oauth.js +329 -0
- package/dist/credentials/chatgpt-oauth.js.map +1 -0
- package/dist/credentials/chatgpt-store.d.ts +33 -0
- package/dist/credentials/chatgpt-store.js +110 -0
- package/dist/credentials/chatgpt-store.js.map +1 -0
- package/dist/credentials/index.d.ts +11 -0
- package/dist/credentials/index.js +12 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/diffusion/args.d.ts +102 -0
- package/dist/diffusion/args.js +291 -0
- package/dist/diffusion/args.js.map +1 -0
- package/dist/diffusion/compat.d.ts +20 -0
- package/dist/diffusion/compat.js +58 -0
- package/dist/diffusion/compat.js.map +1 -0
- package/dist/diffusion/containment.d.ts +15 -0
- package/dist/diffusion/containment.js +32 -0
- package/dist/diffusion/containment.js.map +1 -0
- package/dist/diffusion/errors.d.ts +28 -0
- package/dist/diffusion/errors.js +63 -0
- package/dist/diffusion/errors.js.map +1 -0
- package/dist/diffusion/gallery.d.ts +76 -0
- package/dist/diffusion/gallery.js +307 -0
- package/dist/diffusion/gallery.js.map +1 -0
- package/dist/diffusion/http.d.ts +16 -0
- package/dist/diffusion/http.js +41 -0
- package/dist/diffusion/http.js.map +1 -0
- package/dist/diffusion/idle.d.ts +23 -0
- package/dist/diffusion/idle.js +45 -0
- package/dist/diffusion/idle.js.map +1 -0
- package/dist/diffusion/image-job.d.ts +25 -0
- package/dist/diffusion/image-job.js +176 -0
- package/dist/diffusion/image-job.js.map +1 -0
- package/dist/diffusion/index.d.ts +35 -0
- package/dist/diffusion/index.js +36 -0
- package/dist/diffusion/index.js.map +1 -0
- package/dist/diffusion/install.d.ts +61 -0
- package/dist/diffusion/install.js +287 -0
- package/dist/diffusion/install.js.map +1 -0
- package/dist/diffusion/job-kind.d.ts +74 -0
- package/dist/diffusion/job-kind.js +7 -0
- package/dist/diffusion/job-kind.js.map +1 -0
- package/dist/diffusion/jobs.d.ts +90 -0
- package/dist/diffusion/jobs.js +433 -0
- package/dist/diffusion/jobs.js.map +1 -0
- package/dist/diffusion/mutex.d.ts +16 -0
- package/dist/diffusion/mutex.js +46 -0
- package/dist/diffusion/mutex.js.map +1 -0
- package/dist/diffusion/parse.d.ts +19 -0
- package/dist/diffusion/parse.js +274 -0
- package/dist/diffusion/parse.js.map +1 -0
- package/dist/diffusion/png.d.ts +77 -0
- package/dist/diffusion/png.js +335 -0
- package/dist/diffusion/png.js.map +1 -0
- package/dist/diffusion/progress.d.ts +74 -0
- package/dist/diffusion/progress.js +223 -0
- package/dist/diffusion/progress.js.map +1 -0
- package/dist/diffusion/recipe.d.ts +26 -0
- package/dist/diffusion/recipe.js +206 -0
- package/dist/diffusion/recipe.js.map +1 -0
- package/dist/diffusion/server-process.d.ts +59 -0
- package/dist/diffusion/server-process.js +235 -0
- package/dist/diffusion/server-process.js.map +1 -0
- package/dist/diffusion/service.d.ts +107 -0
- package/dist/diffusion/service.js +431 -0
- package/dist/diffusion/service.js.map +1 -0
- package/dist/diffusion/session.d.ts +58 -0
- package/dist/diffusion/session.js +226 -0
- package/dist/diffusion/session.js.map +1 -0
- package/dist/diffusion/state.d.ts +90 -0
- package/dist/diffusion/state.js +122 -0
- package/dist/diffusion/state.js.map +1 -0
- package/dist/diffusion/tracker.d.ts +46 -0
- package/dist/diffusion/tracker.js +153 -0
- package/dist/diffusion/tracker.js.map +1 -0
- package/dist/diffusion/types.d.ts +62 -0
- package/dist/diffusion/types.js +10 -0
- package/dist/diffusion/types.js.map +1 -0
- package/dist/diffusion/validate.d.ts +36 -0
- package/dist/diffusion/validate.js +166 -0
- package/dist/diffusion/validate.js.map +1 -0
- package/dist/diffusion/video-gallery.d.ts +56 -0
- package/dist/diffusion/video-gallery.js +252 -0
- package/dist/diffusion/video-gallery.js.map +1 -0
- package/dist/diffusion/video-job.d.ts +33 -0
- package/dist/diffusion/video-job.js +150 -0
- package/dist/diffusion/video-job.js.map +1 -0
- package/dist/diffusion/video-recipe.d.ts +12 -0
- package/dist/diffusion/video-recipe.js +141 -0
- package/dist/diffusion/video-recipe.js.map +1 -0
- package/dist/diffusion/wiring.d.ts +24 -0
- package/dist/diffusion/wiring.js +38 -0
- package/dist/diffusion/wiring.js.map +1 -0
- package/dist/diffusion/workflow.d.ts +33 -0
- package/dist/diffusion/workflow.js +78 -0
- package/dist/diffusion/workflow.js.map +1 -0
- package/dist/downloads/archive.d.ts +15 -0
- package/dist/downloads/archive.js +121 -0
- package/dist/downloads/archive.js.map +1 -0
- package/dist/downloads/disk-space.d.ts +18 -0
- package/dist/downloads/disk-space.js +32 -0
- package/dist/downloads/disk-space.js.map +1 -0
- package/dist/downloads/disk.d.ts +38 -0
- package/dist/downloads/disk.js +88 -0
- package/dist/downloads/disk.js.map +1 -0
- package/dist/downloads/downloader.d.ts +75 -0
- package/dist/downloads/downloader.js +479 -0
- package/dist/downloads/downloader.js.map +1 -0
- package/dist/downloads/index.d.ts +14 -0
- package/dist/downloads/index.js +15 -0
- package/dist/downloads/index.js.map +1 -0
- package/dist/downloads/protocol.d.ts +52 -0
- package/dist/downloads/protocol.js +153 -0
- package/dist/downloads/protocol.js.map +1 -0
- package/dist/downloads/proxy-fetch.d.ts +45 -0
- package/dist/downloads/proxy-fetch.js +571 -0
- package/dist/downloads/proxy-fetch.js.map +1 -0
- package/dist/downloads/verify.d.ts +22 -0
- package/dist/downloads/verify.js +74 -0
- package/dist/downloads/verify.js.map +1 -0
- package/dist/events/emitter.d.ts +44 -0
- package/dist/events/emitter.js +104 -0
- package/dist/events/emitter.js.map +1 -0
- package/dist/events/index.d.ts +5 -0
- package/dist/events/index.js +6 -0
- package/dist/events/index.js.map +1 -0
- package/dist/hardware/index.d.ts +7 -0
- package/dist/hardware/index.js +8 -0
- package/dist/hardware/index.js.map +1 -0
- package/dist/hardware/override.d.ts +46 -0
- package/dist/hardware/override.js +81 -0
- package/dist/hardware/override.js.map +1 -0
- package/dist/host/index.d.ts +15 -0
- package/dist/host/index.js +16 -0
- package/dist/host/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/catalog.d.ts +67 -0
- package/dist/integrations/catalog.js +385 -0
- package/dist/integrations/catalog.js.map +1 -0
- package/dist/integrations/config-io.d.ts +86 -0
- package/dist/integrations/config-io.js +229 -0
- package/dist/integrations/config-io.js.map +1 -0
- package/dist/integrations/configure/atomic-agent.d.ts +33 -0
- package/dist/integrations/configure/atomic-agent.js +127 -0
- package/dist/integrations/configure/atomic-agent.js.map +1 -0
- package/dist/integrations/configure/claude-code.d.ts +16 -0
- package/dist/integrations/configure/claude-code.js +45 -0
- package/dist/integrations/configure/claude-code.js.map +1 -0
- package/dist/integrations/configure/cline.d.ts +28 -0
- package/dist/integrations/configure/cline.js +70 -0
- package/dist/integrations/configure/cline.js.map +1 -0
- package/dist/integrations/configure/codex.d.ts +17 -0
- package/dist/integrations/configure/codex.js +43 -0
- package/dist/integrations/configure/codex.js.map +1 -0
- package/dist/integrations/configure/copilot.d.ts +10 -0
- package/dist/integrations/configure/copilot.js +14 -0
- package/dist/integrations/configure/copilot.js.map +1 -0
- package/dist/integrations/configure/droid.d.ts +12 -0
- package/dist/integrations/configure/droid.js +47 -0
- package/dist/integrations/configure/droid.js.map +1 -0
- package/dist/integrations/configure/dsh.d.ts +34 -0
- package/dist/integrations/configure/dsh.js +146 -0
- package/dist/integrations/configure/dsh.js.map +1 -0
- package/dist/integrations/configure/env-agent.d.ts +26 -0
- package/dist/integrations/configure/env-agent.js +41 -0
- package/dist/integrations/configure/env-agent.js.map +1 -0
- package/dist/integrations/configure/goose.d.ts +12 -0
- package/dist/integrations/configure/goose.js +16 -0
- package/dist/integrations/configure/goose.js.map +1 -0
- package/dist/integrations/configure/hermes.d.ts +41 -0
- package/dist/integrations/configure/hermes.js +247 -0
- package/dist/integrations/configure/hermes.js.map +1 -0
- package/dist/integrations/configure/index.d.ts +25 -0
- package/dist/integrations/configure/index.js +26 -0
- package/dist/integrations/configure/index.js.map +1 -0
- package/dist/integrations/configure/json-tree.d.ts +16 -0
- package/dist/integrations/configure/json-tree.js +19 -0
- package/dist/integrations/configure/json-tree.js.map +1 -0
- package/dist/integrations/configure/kilo.d.ts +9 -0
- package/dist/integrations/configure/kilo.js +19 -0
- package/dist/integrations/configure/kilo.js.map +1 -0
- package/dist/integrations/configure/mimo.d.ts +9 -0
- package/dist/integrations/configure/mimo.js +19 -0
- package/dist/integrations/configure/mimo.js.map +1 -0
- package/dist/integrations/configure/muse.d.ts +9 -0
- package/dist/integrations/configure/muse.js +13 -0
- package/dist/integrations/configure/muse.js.map +1 -0
- package/dist/integrations/configure/openclaude.d.ts +13 -0
- package/dist/integrations/configure/openclaude.js +56 -0
- package/dist/integrations/configure/openclaude.js.map +1 -0
- package/dist/integrations/configure/openclaw.d.ts +24 -0
- package/dist/integrations/configure/openclaw.js +99 -0
- package/dist/integrations/configure/openclaw.js.map +1 -0
- package/dist/integrations/configure/opencode-style.d.ts +25 -0
- package/dist/integrations/configure/opencode-style.js +43 -0
- package/dist/integrations/configure/opencode-style.js.map +1 -0
- package/dist/integrations/configure/opencode.d.ts +9 -0
- package/dist/integrations/configure/opencode.js +19 -0
- package/dist/integrations/configure/opencode.js.map +1 -0
- package/dist/integrations/configure/openhands.d.ts +8 -0
- package/dist/integrations/configure/openhands.js +12 -0
- package/dist/integrations/configure/openhands.js.map +1 -0
- package/dist/integrations/configure/pi.d.ts +14 -0
- package/dist/integrations/configure/pi.js +49 -0
- package/dist/integrations/configure/pi.js.map +1 -0
- package/dist/integrations/configure/poolside.d.ts +8 -0
- package/dist/integrations/configure/poolside.js +12 -0
- package/dist/integrations/configure/poolside.js.map +1 -0
- package/dist/integrations/configure/registry.d.ts +41 -0
- package/dist/integrations/configure/registry.js +50 -0
- package/dist/integrations/configure/registry.js.map +1 -0
- package/dist/integrations/configure/zcode.d.ts +59 -0
- package/dist/integrations/configure/zcode.js +260 -0
- package/dist/integrations/configure/zcode.js.map +1 -0
- package/dist/integrations/configure/zed.d.ts +16 -0
- package/dist/integrations/configure/zed.js +61 -0
- package/dist/integrations/configure/zed.js.map +1 -0
- package/dist/integrations/detect.d.ts +29 -0
- package/dist/integrations/detect.js +43 -0
- package/dist/integrations/detect.js.map +1 -0
- package/dist/integrations/index.d.ts +9 -0
- package/dist/integrations/index.js +10 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/lock/control-token.d.ts +19 -0
- package/dist/lock/control-token.js +58 -0
- package/dist/lock/control-token.js.map +1 -0
- package/dist/lock/index.d.ts +10 -0
- package/dist/lock/index.js +11 -0
- package/dist/lock/index.js.map +1 -0
- package/dist/lock/instance-lock.d.ts +93 -0
- package/dist/lock/instance-lock.js +244 -0
- package/dist/lock/instance-lock.js.map +1 -0
- package/dist/lock/legacy-guard.d.ts +46 -0
- package/dist/lock/legacy-guard.js +87 -0
- package/dist/lock/legacy-guard.js.map +1 -0
- package/dist/lock/model-claim.d.ts +20 -0
- package/dist/lock/model-claim.js +84 -0
- package/dist/lock/model-claim.js.map +1 -0
- package/dist/lock/process-identity.d.ts +48 -0
- package/dist/lock/process-identity.js +180 -0
- package/dist/lock/process-identity.js.map +1 -0
- package/dist/lock/process-journal.d.ts +56 -0
- package/dist/lock/process-journal.js +113 -0
- package/dist/lock/process-journal.js.map +1 -0
- package/dist/models/capabilities.d.ts +73 -0
- package/dist/models/capabilities.js +123 -0
- package/dist/models/capabilities.js.map +1 -0
- package/dist/models/embed.d.ts +30 -0
- package/dist/models/embed.js +83 -0
- package/dist/models/embed.js.map +1 -0
- package/dist/models/gguf/classify.d.ts +29 -0
- package/dist/models/gguf/classify.js +89 -0
- package/dist/models/gguf/classify.js.map +1 -0
- package/dist/models/gguf/index.d.ts +5 -0
- package/dist/models/gguf/index.js +6 -0
- package/dist/models/gguf/index.js.map +1 -0
- package/dist/models/gguf/kv-cache.d.ts +27 -0
- package/dist/models/gguf/kv-cache.js +101 -0
- package/dist/models/gguf/kv-cache.js.map +1 -0
- package/dist/models/gguf/read-file.d.ts +11 -0
- package/dist/models/gguf/read-file.js +21 -0
- package/dist/models/gguf/read-file.js.map +1 -0
- package/dist/models/gguf/reader.d.ts +40 -0
- package/dist/models/gguf/reader.js +271 -0
- package/dist/models/gguf/reader.js.map +1 -0
- package/dist/models/gguf/support.d.ts +47 -0
- package/dist/models/gguf/support.js +48 -0
- package/dist/models/gguf/support.js.map +1 -0
- package/dist/models/hf.d.ts +35 -0
- package/dist/models/hf.js +140 -0
- package/dist/models/hf.js.map +1 -0
- package/dist/models/index.d.ts +14 -0
- package/dist/models/index.js +15 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/model-yml.d.ts +22 -0
- package/dist/models/model-yml.js +63 -0
- package/dist/models/model-yml.js.map +1 -0
- package/dist/models/registry.d.ts +51 -0
- package/dist/models/registry.js +102 -0
- package/dist/models/registry.js.map +1 -0
- package/dist/models/shards.d.ts +20 -0
- package/dist/models/shards.js +46 -0
- package/dist/models/shards.js.map +1 -0
- package/dist/remote-access/cloudflared-args.d.ts +41 -0
- package/dist/remote-access/cloudflared-args.js +59 -0
- package/dist/remote-access/cloudflared-args.js.map +1 -0
- package/dist/remote-access/cloudflared-output.d.ts +26 -0
- package/dist/remote-access/cloudflared-output.js +51 -0
- package/dist/remote-access/cloudflared-output.js.map +1 -0
- package/dist/remote-access/index.d.ts +16 -0
- package/dist/remote-access/index.js +17 -0
- package/dist/remote-access/index.js.map +1 -0
- package/dist/remote-access/journal.d.ts +63 -0
- package/dist/remote-access/journal.js +140 -0
- package/dist/remote-access/journal.js.map +1 -0
- package/dist/remote-access/lan-probe.d.ts +28 -0
- package/dist/remote-access/lan-probe.js +63 -0
- package/dist/remote-access/lan-probe.js.map +1 -0
- package/dist/remote-access/lan.d.ts +31 -0
- package/dist/remote-access/lan.js +90 -0
- package/dist/remote-access/lan.js.map +1 -0
- package/dist/remote-access/manager.d.ts +111 -0
- package/dist/remote-access/manager.js +316 -0
- package/dist/remote-access/manager.js.map +1 -0
- package/dist/remote-access/probe.d.ts +92 -0
- package/dist/remote-access/probe.js +186 -0
- package/dist/remote-access/probe.js.map +1 -0
- package/dist/remote-access/process.d.ts +66 -0
- package/dist/remote-access/process.js +160 -0
- package/dist/remote-access/process.js.map +1 -0
- package/dist/remote-access/spawner.d.ts +25 -0
- package/dist/remote-access/spawner.js +49 -0
- package/dist/remote-access/spawner.js.map +1 -0
- package/dist/remote-access/status.d.ts +39 -0
- package/dist/remote-access/status.js +49 -0
- package/dist/remote-access/status.js.map +1 -0
- package/dist/remote-access/wiring.d.ts +34 -0
- package/dist/remote-access/wiring.js +47 -0
- package/dist/remote-access/wiring.js.map +1 -0
- package/dist/router/index.d.ts +7 -0
- package/dist/router/index.js +8 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/resolve.d.ts +41 -0
- package/dist/router/resolve.js +53 -0
- package/dist/router/resolve.js.map +1 -0
- package/dist/runtime/foundation-models/errors.d.ts +28 -0
- package/dist/runtime/foundation-models/errors.js +48 -0
- package/dist/runtime/foundation-models/errors.js.map +1 -0
- package/dist/runtime/foundation-models/index.d.ts +8 -0
- package/dist/runtime/foundation-models/index.js +9 -0
- package/dist/runtime/foundation-models/index.js.map +1 -0
- package/dist/runtime/foundation-models/runtime.d.ts +73 -0
- package/dist/runtime/foundation-models/runtime.js +186 -0
- package/dist/runtime/foundation-models/runtime.js.map +1 -0
- package/dist/runtime/index.d.ts +5 -0
- package/dist/runtime/index.js +6 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/llamacpp/args.d.ts +90 -0
- package/dist/runtime/llamacpp/args.js +379 -0
- package/dist/runtime/llamacpp/args.js.map +1 -0
- package/dist/runtime/llamacpp/ctx-ladder.d.ts +16 -0
- package/dist/runtime/llamacpp/ctx-ladder.js +28 -0
- package/dist/runtime/llamacpp/ctx-ladder.js.map +1 -0
- package/dist/runtime/llamacpp/devices.d.ts +26 -0
- package/dist/runtime/llamacpp/devices.js +86 -0
- package/dist/runtime/llamacpp/devices.js.map +1 -0
- package/dist/runtime/llamacpp/errors.d.ts +34 -0
- package/dist/runtime/llamacpp/errors.js +137 -0
- package/dist/runtime/llamacpp/errors.js.map +1 -0
- package/dist/runtime/llamacpp/index.d.ts +14 -0
- package/dist/runtime/llamacpp/index.js +15 -0
- package/dist/runtime/llamacpp/index.js.map +1 -0
- package/dist/runtime/llamacpp/load-plan.d.ts +113 -0
- package/dist/runtime/llamacpp/load-plan.js +259 -0
- package/dist/runtime/llamacpp/load-plan.js.map +1 -0
- package/dist/runtime/llamacpp/policy.d.ts +70 -0
- package/dist/runtime/llamacpp/policy.js +191 -0
- package/dist/runtime/llamacpp/policy.js.map +1 -0
- package/dist/runtime/llamacpp/probe.d.ts +13 -0
- package/dist/runtime/llamacpp/probe.js +35 -0
- package/dist/runtime/llamacpp/probe.js.map +1 -0
- package/dist/runtime/llamacpp/runtime-device.d.ts +33 -0
- package/dist/runtime/llamacpp/runtime-device.js +169 -0
- package/dist/runtime/llamacpp/runtime-device.js.map +1 -0
- package/dist/runtime/llamacpp/runtime.d.ts +151 -0
- package/dist/runtime/llamacpp/runtime.js +535 -0
- package/dist/runtime/llamacpp/runtime.js.map +1 -0
- package/dist/runtime/mlx/args.d.ts +10 -0
- package/dist/runtime/mlx/args.js +44 -0
- package/dist/runtime/mlx/args.js.map +1 -0
- package/dist/runtime/mlx/config.d.ts +71 -0
- package/dist/runtime/mlx/config.js +91 -0
- package/dist/runtime/mlx/config.js.map +1 -0
- package/dist/runtime/mlx/errors.d.ts +21 -0
- package/dist/runtime/mlx/errors.js +73 -0
- package/dist/runtime/mlx/errors.js.map +1 -0
- package/dist/runtime/mlx/index.d.ts +12 -0
- package/dist/runtime/mlx/index.js +13 -0
- package/dist/runtime/mlx/index.js.map +1 -0
- package/dist/runtime/mlx/model-files.d.ts +29 -0
- package/dist/runtime/mlx/model-files.js +82 -0
- package/dist/runtime/mlx/model-files.js.map +1 -0
- package/dist/runtime/mlx/runtime.d.ts +77 -0
- package/dist/runtime/mlx/runtime.js +223 -0
- package/dist/runtime/mlx/runtime.js.map +1 -0
- package/dist/runtime/mlx/shard-repair.d.ts +25 -0
- package/dist/runtime/mlx/shard-repair.js +44 -0
- package/dist/runtime/mlx/shard-repair.js.map +1 -0
- package/dist/runtime/shared/env.d.ts +49 -0
- package/dist/runtime/shared/env.js +155 -0
- package/dist/runtime/shared/env.js.map +1 -0
- package/dist/runtime/shared/external-sessions.d.ts +67 -0
- package/dist/runtime/shared/external-sessions.js +155 -0
- package/dist/runtime/shared/external-sessions.js.map +1 -0
- package/dist/runtime/shared/index.d.ts +17 -0
- package/dist/runtime/shared/index.js +18 -0
- package/dist/runtime/shared/index.js.map +1 -0
- package/dist/runtime/shared/load-cancel.d.ts +45 -0
- package/dist/runtime/shared/load-cancel.js +95 -0
- package/dist/runtime/shared/load-cancel.js.map +1 -0
- package/dist/runtime/shared/local-runtime.d.ts +68 -0
- package/dist/runtime/shared/local-runtime.js +12 -0
- package/dist/runtime/shared/local-runtime.js.map +1 -0
- package/dist/runtime/shared/log-stream.d.ts +4 -0
- package/dist/runtime/shared/log-stream.js +28 -0
- package/dist/runtime/shared/log-stream.js.map +1 -0
- package/dist/runtime/shared/paths.d.ts +21 -0
- package/dist/runtime/shared/paths.js +63 -0
- package/dist/runtime/shared/paths.js.map +1 -0
- package/dist/runtime/shared/ports.d.ts +26 -0
- package/dist/runtime/shared/ports.js +45 -0
- package/dist/runtime/shared/ports.js.map +1 -0
- package/dist/runtime/shared/process.d.ts +95 -0
- package/dist/runtime/shared/process.js +224 -0
- package/dist/runtime/shared/process.js.map +1 -0
- package/dist/runtime/shared/sidecar.d.ts +86 -0
- package/dist/runtime/shared/sidecar.js +214 -0
- package/dist/runtime/shared/sidecar.js.map +1 -0
- package/dist/server/clients.d.ts +40 -0
- package/dist/server/clients.js +74 -0
- package/dist/server/clients.js.map +1 -0
- package/dist/server/control/index.d.ts +12 -0
- package/dist/server/control/index.js +12 -0
- package/dist/server/control/index.js.map +1 -0
- package/dist/server/control/router.d.ts +9 -0
- package/dist/server/control/router.js +61 -0
- package/dist/server/control/router.js.map +1 -0
- package/dist/server/control/routes/backends.d.ts +4 -0
- package/dist/server/control/routes/backends.js +47 -0
- package/dist/server/control/routes/backends.js.map +1 -0
- package/dist/server/control/routes/clients.d.ts +4 -0
- package/dist/server/control/routes/clients.js +30 -0
- package/dist/server/control/routes/clients.js.map +1 -0
- package/dist/server/control/routes/cloud.d.ts +4 -0
- package/dist/server/control/routes/cloud.js +32 -0
- package/dist/server/control/routes/cloud.js.map +1 -0
- package/dist/server/control/routes/diffusion-video.d.ts +10 -0
- package/dist/server/control/routes/diffusion-video.js +33 -0
- package/dist/server/control/routes/diffusion-video.js.map +1 -0
- package/dist/server/control/routes/diffusion.d.ts +15 -0
- package/dist/server/control/routes/diffusion.js +71 -0
- package/dist/server/control/routes/diffusion.js.map +1 -0
- package/dist/server/control/routes/disk.d.ts +4 -0
- package/dist/server/control/routes/disk.js +11 -0
- package/dist/server/control/routes/disk.js.map +1 -0
- package/dist/server/control/routes/external-sessions.d.ts +4 -0
- package/dist/server/control/routes/external-sessions.js +27 -0
- package/dist/server/control/routes/external-sessions.js.map +1 -0
- package/dist/server/control/routes/hardware.d.ts +4 -0
- package/dist/server/control/routes/hardware.js +14 -0
- package/dist/server/control/routes/hardware.js.map +1 -0
- package/dist/server/control/routes/lifecycle.d.ts +12 -0
- package/dist/server/control/routes/lifecycle.js +67 -0
- package/dist/server/control/routes/lifecycle.js.map +1 -0
- package/dist/server/control/routes/models.d.ts +7 -0
- package/dist/server/control/routes/models.js +59 -0
- package/dist/server/control/routes/models.js.map +1 -0
- package/dist/server/control/routes/public-server.d.ts +4 -0
- package/dist/server/control/routes/public-server.js +30 -0
- package/dist/server/control/routes/public-server.js.map +1 -0
- package/dist/server/control/routes/remote-access.d.ts +7 -0
- package/dist/server/control/routes/remote-access.js +16 -0
- package/dist/server/control/routes/remote-access.js.map +1 -0
- package/dist/server/control/routes/settings.d.ts +4 -0
- package/dist/server/control/routes/settings.js +58 -0
- package/dist/server/control/routes/settings.js.map +1 -0
- package/dist/server/control/routes/telemetry.d.ts +7 -0
- package/dist/server/control/routes/telemetry.js +46 -0
- package/dist/server/control/routes/telemetry.js.map +1 -0
- package/dist/server/control/server.d.ts +26 -0
- package/dist/server/control/server.js +111 -0
- package/dist/server/control/server.js.map +1 -0
- package/dist/server/control/types.d.ts +271 -0
- package/dist/server/control/types.js +6 -0
- package/dist/server/control/types.js.map +1 -0
- package/dist/server/http.d.ts +62 -0
- package/dist/server/http.js +220 -0
- package/dist/server/http.js.map +1 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.js +10 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/public/ctx.d.ts +23 -0
- package/dist/server/public/ctx.js +42 -0
- package/dist/server/public/ctx.js.map +1 -0
- package/dist/server/public/dynamic-hosts.d.ts +40 -0
- package/dist/server/public/dynamic-hosts.js +117 -0
- package/dist/server/public/dynamic-hosts.js.map +1 -0
- package/dist/server/public/errors.d.ts +36 -0
- package/dist/server/public/errors.js +120 -0
- package/dist/server/public/errors.js.map +1 -0
- package/dist/server/public/exchange.d.ts +42 -0
- package/dist/server/public/exchange.js +85 -0
- package/dist/server/public/exchange.js.map +1 -0
- package/dist/server/public/forward.d.ts +53 -0
- package/dist/server/public/forward.js +448 -0
- package/dist/server/public/forward.js.map +1 -0
- package/dist/server/public/gates.d.ts +49 -0
- package/dist/server/public/gates.js +181 -0
- package/dist/server/public/gates.js.map +1 -0
- package/dist/server/public/images-params.d.ts +50 -0
- package/dist/server/public/images-params.js +162 -0
- package/dist/server/public/images-params.js.map +1 -0
- package/dist/server/public/images.d.ts +12 -0
- package/dist/server/public/images.js +96 -0
- package/dist/server/public/images.js.map +1 -0
- package/dist/server/public/index.d.ts +58 -0
- package/dist/server/public/index.js +253 -0
- package/dist/server/public/index.js.map +1 -0
- package/dist/server/public/listing.d.ts +27 -0
- package/dist/server/public/listing.js +116 -0
- package/dist/server/public/listing.js.map +1 -0
- package/dist/server/public/responses.d.ts +11 -0
- package/dist/server/public/responses.js +158 -0
- package/dist/server/public/responses.js.map +1 -0
- package/dist/server/public/sse.d.ts +33 -0
- package/dist/server/public/sse.js +48 -0
- package/dist/server/public/sse.js.map +1 -0
- package/dist/server/public/static-assets.generated.d.ts +3 -0
- package/dist/server/public/static-assets.generated.js +6 -0
- package/dist/server/public/static-assets.generated.js.map +1 -0
- package/dist/server/public/static.d.ts +13 -0
- package/dist/server/public/static.js +75 -0
- package/dist/server/public/static.js.map +1 -0
- package/dist/server/public/subscription.d.ts +14 -0
- package/dist/server/public/subscription.js +56 -0
- package/dist/server/public/subscription.js.map +1 -0
- package/dist/server/public/telemetry.d.ts +65 -0
- package/dist/server/public/telemetry.js +284 -0
- package/dist/server/public/telemetry.js.map +1 -0
- package/dist/server/public/trace.d.ts +66 -0
- package/dist/server/public/trace.js +223 -0
- package/dist/server/public/trace.js.map +1 -0
- package/dist/server/public/types.d.ts +131 -0
- package/dist/server/public/types.js +9 -0
- package/dist/server/public/types.js.map +1 -0
- package/dist/server/public/videos-params.d.ts +95 -0
- package/dist/server/public/videos-params.js +220 -0
- package/dist/server/public/videos-params.js.map +1 -0
- package/dist/server/public/videos.d.ts +16 -0
- package/dist/server/public/videos.js +188 -0
- package/dist/server/public/videos.js.map +1 -0
- package/dist/server/public/wire.d.ts +53 -0
- package/dist/server/public/wire.js +174 -0
- package/dist/server/public/wire.js.map +1 -0
- package/dist/server/shims/anthropic.d.ts +52 -0
- package/dist/server/shims/anthropic.js +519 -0
- package/dist/server/shims/anthropic.js.map +1 -0
- package/dist/server/shims/chat-to-responses.d.ts +113 -0
- package/dist/server/shims/chat-to-responses.js +557 -0
- package/dist/server/shims/chat-to-responses.js.map +1 -0
- package/dist/server/shims/index.d.ts +8 -0
- package/dist/server/shims/index.js +9 -0
- package/dist/server/shims/index.js.map +1 -0
- package/dist/server/shims/json.d.ts +10 -0
- package/dist/server/shims/json.js +78 -0
- package/dist/server/shims/json.js.map +1 -0
- package/dist/server/shims/responses.d.ts +79 -0
- package/dist/server/shims/responses.js +543 -0
- package/dist/server/shims/responses.js.map +1 -0
- package/dist/server/state-file.d.ts +44 -0
- package/dist/server/state-file.js +107 -0
- package/dist/server/state-file.js.map +1 -0
- package/dist/settings/import.d.ts +61 -0
- package/dist/settings/import.js +104 -0
- package/dist/settings/import.js.map +1 -0
- package/dist/settings/index.d.ts +11 -0
- package/dist/settings/index.js +12 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/schema/foundation-models.json +1 -0
- package/dist/settings/schema/llamacpp-upstream.json +489 -0
- package/dist/settings/schema/llamacpp.json +475 -0
- package/dist/settings/schema/mlx.json +136 -0
- package/dist/settings/schema.d.ts +35 -0
- package/dist/settings/schema.js +196 -0
- package/dist/settings/schema.js.map +1 -0
- package/dist/settings/store.d.ts +168 -0
- package/dist/settings/store.js +350 -0
- package/dist/settings/store.js.map +1 -0
- package/dist/speculative/chat-template-overrides.d.ts +35 -0
- package/dist/speculative/chat-template-overrides.js +142 -0
- package/dist/speculative/chat-template-overrides.js.map +1 -0
- package/dist/speculative/dflash-registry.d.ts +50 -0
- package/dist/speculative/dflash-registry.js +258 -0
- package/dist/speculative/dflash-registry.js.map +1 -0
- package/dist/speculative/gemma-mtp-registry.d.ts +48 -0
- package/dist/speculative/gemma-mtp-registry.js +79 -0
- package/dist/speculative/gemma-mtp-registry.js.map +1 -0
- package/dist/speculative/index.d.ts +18 -0
- package/dist/speculative/index.js +19 -0
- package/dist/speculative/index.js.map +1 -0
- package/dist/speculative/mlx-dflash-registry.d.ts +39 -0
- package/dist/speculative/mlx-dflash-registry.js +230 -0
- package/dist/speculative/mlx-dflash-registry.js.map +1 -0
- package/dist/speculative/mlx-eagle3-registry.d.ts +24 -0
- package/dist/speculative/mlx-eagle3-registry.js +81 -0
- package/dist/speculative/mlx-eagle3-registry.js.map +1 -0
- package/dist/speculative/mlx-mtp-registry.d.ts +31 -0
- package/dist/speculative/mlx-mtp-registry.js +139 -0
- package/dist/speculative/mlx-mtp-registry.js.map +1 -0
- package/dist/speculative/transcription-registry.d.ts +72 -0
- package/dist/speculative/transcription-registry.js +94 -0
- package/dist/speculative/transcription-registry.js.map +1 -0
- package/dist/telemetry/config.d.ts +38 -0
- package/dist/telemetry/config.js +44 -0
- package/dist/telemetry/config.js.map +1 -0
- package/dist/telemetry/consent.d.ts +21 -0
- package/dist/telemetry/consent.js +35 -0
- package/dist/telemetry/consent.js.map +1 -0
- package/dist/telemetry/core-reporter.d.ts +47 -0
- package/dist/telemetry/core-reporter.js +72 -0
- package/dist/telemetry/core-reporter.js.map +1 -0
- package/dist/telemetry/daemon.d.ts +40 -0
- package/dist/telemetry/daemon.js +67 -0
- package/dist/telemetry/daemon.js.map +1 -0
- package/dist/telemetry/dsn.d.ts +15 -0
- package/dist/telemetry/dsn.js +32 -0
- package/dist/telemetry/dsn.js.map +1 -0
- package/dist/telemetry/envelope.d.ts +97 -0
- package/dist/telemetry/envelope.js +95 -0
- package/dist/telemetry/envelope.js.map +1 -0
- package/dist/telemetry/index.d.ts +18 -0
- package/dist/telemetry/index.js +19 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/policy.d.ts +39 -0
- package/dist/telemetry/policy.js +142 -0
- package/dist/telemetry/policy.js.map +1 -0
- package/dist/telemetry/reporter.d.ts +80 -0
- package/dist/telemetry/reporter.js +0 -0
- package/dist/telemetry/reporter.js.map +1 -0
- package/dist/telemetry/reports.d.ts +68 -0
- package/dist/telemetry/reports.js +212 -0
- package/dist/telemetry/reports.js.map +1 -0
- package/dist/telemetry/scrub.d.ts +19 -0
- package/dist/telemetry/scrub.js +75 -0
- package/dist/telemetry/scrub.js.map +1 -0
- package/dist/telemetry/stack.d.ts +21 -0
- package/dist/telemetry/stack.js +68 -0
- package/dist/telemetry/stack.js.map +1 -0
- package/dist/telemetry/store.d.ts +17 -0
- package/dist/telemetry/store.js +51 -0
- package/dist/telemetry/store.js.map +1 -0
- package/dist/telemetry/subscribe.d.ts +13 -0
- package/dist/telemetry/subscribe.js +19 -0
- package/dist/telemetry/subscribe.js.map +1 -0
- package/dist/telemetry/types.d.ts +40 -0
- package/dist/telemetry/types.js +2 -0
- package/dist/telemetry/types.js.map +1 -0
- package/dist/util/index.d.ts +5 -0
- package/dist/util/index.js +6 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/rust-number.d.ts +27 -0
- package/dist/util/rust-number.js +101 -0
- package/dist/util/rust-number.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +86 -0
- package/src/settings/schema/foundation-models.json +1 -0
- package/src/settings/schema/llamacpp-upstream.json +489 -0
- package/src/settings/schema/llamacpp.json +475 -0
- package/src/settings/schema/mlx.json +136 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classification of a failed `llama-server` process into the app's error contract. Port of
|
|
3
|
+
* `src-tauri/plugins/tauri-plugin-llamacpp-upstream/src/error.rs` (`LlamacppError::from_stderr`,
|
|
4
|
+
* `from_exit_status`, `from_process_output`). Pinned by `test/contract/errors.test.ts`. The
|
|
5
|
+
* TurboQuant fork's `error.rs` differs in one rule, `wrong number of tensors` (app commit
|
|
6
|
+
* `ec1fd3ea7`), so the provider is a parameter.
|
|
7
|
+
*
|
|
8
|
+
* The cascade is ordered: the first matching group wins. Messages are the app's user-facing strings
|
|
9
|
+
* and are part of the contract. `details` is always set (the raw stream), even when empty.
|
|
10
|
+
*/
|
|
11
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
12
|
+
const SIGNAL_NUMBERS = {
|
|
13
|
+
SIGHUP: 1,
|
|
14
|
+
SIGINT: 2,
|
|
15
|
+
SIGQUIT: 3,
|
|
16
|
+
SIGILL: 4,
|
|
17
|
+
SIGTRAP: 5,
|
|
18
|
+
SIGABRT: 6,
|
|
19
|
+
SIGBUS: 7,
|
|
20
|
+
SIGFPE: 8,
|
|
21
|
+
SIGKILL: 9,
|
|
22
|
+
SIGUSR1: 10,
|
|
23
|
+
SIGSEGV: 11,
|
|
24
|
+
SIGUSR2: 12,
|
|
25
|
+
SIGPIPE: 13,
|
|
26
|
+
SIGALRM: 14,
|
|
27
|
+
SIGTERM: 15,
|
|
28
|
+
};
|
|
29
|
+
/** Normalise a Node signal name to the Unix number Rust sees. */
|
|
30
|
+
export function signalNumber(signal) {
|
|
31
|
+
if (signal === null)
|
|
32
|
+
return null;
|
|
33
|
+
if (typeof signal === 'number')
|
|
34
|
+
return signal;
|
|
35
|
+
return SIGNAL_NUMBERS[signal] ?? null;
|
|
36
|
+
}
|
|
37
|
+
/** Windows: STATUS_ACCESS_VIOLATION / STATUS_STACK_OVERFLOW / STATUS_STACK_BUFFER_OVERRUN. */
|
|
38
|
+
const WINDOWS_CRASH_CODES = new Set([0xc000_0005, 0xc000_00fd, 0xc000_0409]);
|
|
39
|
+
/** A hard native crash (segfault / abort) rather than a normal non-zero exit. */
|
|
40
|
+
export function isCrashExit(exit, platform) {
|
|
41
|
+
if (platform === 'win32') {
|
|
42
|
+
return exit.code !== null && WINDOWS_CRASH_CODES.has(exit.code >>> 0);
|
|
43
|
+
}
|
|
44
|
+
const sig = signalNumber(exit.signal);
|
|
45
|
+
return sig === 11 || sig === 6;
|
|
46
|
+
}
|
|
47
|
+
const includesAny = (lower, needles) => needles.some((n) => lower.includes(n));
|
|
48
|
+
/**
|
|
49
|
+
* TurboQuant (`llamacpp`) can know an architecture and still expect a tensor layout that differs
|
|
50
|
+
* from a valid upstream GGUF: re-downloading cannot fix that, and the same file loads in stock
|
|
51
|
+
* llama.cpp, so there the mismatch is an unsupported architecture. Upstream it still means a
|
|
52
|
+
* damaged file.
|
|
53
|
+
*/
|
|
54
|
+
const TENSOR_COUNT_MISMATCH = 'wrong number of tensors';
|
|
55
|
+
const tensorLayoutIsArchitecture = (provider) => provider === 'llamacpp';
|
|
56
|
+
const CASCADE = [
|
|
57
|
+
{
|
|
58
|
+
code: 'OS_VERSION_UNSUPPORTED',
|
|
59
|
+
message: "The model engine couldn't start because it requires a newer version of macOS than the one on this Mac.",
|
|
60
|
+
match: (l) => l.includes('dyld') && l.includes('symbol not found'),
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
code: 'OUT_OF_MEMORY',
|
|
64
|
+
message: 'Out of memory. The model requires more RAM or VRAM than available.',
|
|
65
|
+
match: (l) => includesAny(l, [
|
|
66
|
+
'out of memory',
|
|
67
|
+
'failed to allocate',
|
|
68
|
+
'insufficient memory',
|
|
69
|
+
'erroroutofdevicememory',
|
|
70
|
+
'kiogpucommandbuffercallbackerroroutofmemory',
|
|
71
|
+
'cuda_error_out_of_memory',
|
|
72
|
+
]),
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
code: 'MODEL_ARCH_NOT_SUPPORTED',
|
|
76
|
+
message: "The model's architecture or format is not supported by this version of the backend.",
|
|
77
|
+
match: (l, provider) => includesAny(l, [
|
|
78
|
+
'error loading model architecture',
|
|
79
|
+
'unknown model architecture',
|
|
80
|
+
'error loading model hyperparameters',
|
|
81
|
+
'key not found in model',
|
|
82
|
+
]) ||
|
|
83
|
+
(tensorLayoutIsArchitecture(provider) && l.includes(TENSOR_COUNT_MISMATCH)),
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
code: 'MULTIMODAL_PROJECTOR_LOAD_FAILED',
|
|
87
|
+
message: "This model's multimodal projector isn't supported by the current llama.cpp backend. Vision/audio is unavailable for this model on this backend.",
|
|
88
|
+
match: (l) => l.includes('unknown projector type'),
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
code: 'MODEL_FILE_CORRUPT',
|
|
92
|
+
message: 'The model file appears to be incomplete or corrupted. Try deleting and re-downloading the model.',
|
|
93
|
+
match: (l, provider) => includesAny(l, [
|
|
94
|
+
'corrupted or incomplete',
|
|
95
|
+
'invalid magic',
|
|
96
|
+
'unexpectedly reached end of file',
|
|
97
|
+
'failed to read tensor',
|
|
98
|
+
]) ||
|
|
99
|
+
(!tensorLayoutIsArchitecture(provider) && l.includes(TENSOR_COUNT_MISMATCH)),
|
|
100
|
+
},
|
|
101
|
+
];
|
|
102
|
+
export const GENERIC_PROCESS_ERROR_MESSAGE = 'The model process encountered an unexpected error.';
|
|
103
|
+
export const CRASH_MESSAGE = 'The model process crashed unexpectedly (access violation / segfault). This usually means the model is incompatible with this backend, or its speculative-decoding (MTP) configuration is unsupported here.';
|
|
104
|
+
/** `LlamacppError::from_stderr`: ordered substring cascade over the lowercased stream. */
|
|
105
|
+
export function classifyStderr(stderr, provider = 'llamacpp-upstream') {
|
|
106
|
+
const lower = stderr.toLowerCase();
|
|
107
|
+
for (const rule of CASCADE) {
|
|
108
|
+
if (rule.match(lower, provider))
|
|
109
|
+
return new AtomicCoreError(rule.code, rule.message, stderr);
|
|
110
|
+
}
|
|
111
|
+
return new AtomicCoreError('LLAMA_CPP_PROCESS_ERROR', GENERIC_PROCESS_ERROR_MESSAGE, stderr);
|
|
112
|
+
}
|
|
113
|
+
/** `LlamacppError::from_exit_status`: a recognised crash upgrades the generic error's message. */
|
|
114
|
+
export function classifyExit(exit, stderr, platform, provider = 'llamacpp-upstream') {
|
|
115
|
+
const base = classifyStderr(stderr, provider);
|
|
116
|
+
if (base.code !== 'LLAMA_CPP_PROCESS_ERROR' || !isCrashExit(exit, platform))
|
|
117
|
+
return base;
|
|
118
|
+
return new AtomicCoreError('LLAMA_CPP_PROCESS_ERROR', CRASH_MESSAGE, stderr);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* `LlamacppError::from_process_output`: stderr classification wins; otherwise try stdout (several
|
|
122
|
+
* llama.cpp builds report loader failures there); otherwise keep the exit-status error but hand the
|
|
123
|
+
* caller stdout as details when stderr is blank.
|
|
124
|
+
*/
|
|
125
|
+
export function classifyProcessOutput(exit, stderr, stdout, platform, provider = 'llamacpp-upstream') {
|
|
126
|
+
const base = classifyExit(exit, stderr, platform, provider);
|
|
127
|
+
if (base.code !== 'LLAMA_CPP_PROCESS_ERROR')
|
|
128
|
+
return base;
|
|
129
|
+
const fromStdout = classifyStderr(stdout, provider);
|
|
130
|
+
if (fromStdout.code !== 'LLAMA_CPP_PROCESS_ERROR')
|
|
131
|
+
return fromStdout;
|
|
132
|
+
if (stderr.trim() === '' && stdout.trim() !== '') {
|
|
133
|
+
return new AtomicCoreError(base.code, base.message, stdout);
|
|
134
|
+
}
|
|
135
|
+
return base;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAU1D,MAAM,cAAc,GAA2B;IAC7C,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;CACZ,CAAA;AAED,iEAAiE;AACjE,MAAM,UAAU,YAAY,CAAC,MAA8B;IACzD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAChC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IAC7C,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA;AACvC,CAAC;AAED,8FAA8F;AAC9F,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAA;AAE5E,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,IAAc,EAAE,QAAyB;IACnE,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAA;IACvE,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,OAAO,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,CAAC,CAAA;AAChC,CAAC;AAQD,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,OAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAEhG;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,yBAAyB,CAAA;AACvD,MAAM,0BAA0B,GAAG,CAAC,QAAyB,EAAE,EAAE,CAAC,QAAQ,KAAK,UAAU,CAAA;AAEzF,MAAM,OAAO,GAAW;IACtB;QACE,IAAI,EAAE,wBAAwB;QAC9B,OAAO,EACL,wGAAwG;QAC1G,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KACnE;IACD;QACE,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,oEAAoE;QAC7E,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,WAAW,CAAC,CAAC,EAAE;YACb,eAAe;YACf,oBAAoB;YACpB,qBAAqB;YACrB,wBAAwB;YACxB,6CAA6C;YAC7C,0BAA0B;SAC3B,CAAC;KACL;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE,qFAAqF;QAC9F,KAAK,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CACrB,WAAW,CAAC,CAAC,EAAE;YACb,kCAAkC;YAClC,4BAA4B;YAC5B,qCAAqC;YACrC,wBAAwB;SACzB,CAAC;YACF,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;KAC9E;IACD;QACE,IAAI,EAAE,kCAAkC;QACxC,OAAO,EACL,iJAAiJ;QACnJ,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KACnD;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EACL,kGAAkG;QACpG,KAAK,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CACrB,WAAW,CAAC,CAAC,EAAE;YACb,yBAAyB;YACzB,eAAe;YACf,kCAAkC;YAClC,uBAAuB;SACxB,CAAC;YACF,CAAC,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;KAC/E;CACF,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,oDAAoD,CAAA;AACjG,MAAM,CAAC,MAAM,aAAa,GACxB,4MAA4M,CAAA;AAE9M,0FAA0F;AAC1F,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,WAA4B,mBAAmB;IAE/C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;IAClC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC9F,CAAC;IACD,OAAO,IAAI,eAAe,CAAC,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,CAAC,CAAA;AAC9F,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,YAAY,CAC1B,IAAc,EACd,MAAc,EACd,QAAyB,EACzB,WAA4B,mBAAmB;IAE/C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAyB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IACxF,OAAO,IAAI,eAAe,CAAC,yBAAyB,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAc,EACd,MAAc,EACd,MAAc,EACd,QAAyB,EACzB,WAA4B,mBAAmB;IAE/C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAyB;QAAE,OAAO,IAAI,CAAA;IACxD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACnD,IAAI,UAAU,CAAC,IAAI,KAAK,yBAAyB;QAAE,OAAO,UAAU,CAAA;IACpE,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* llama-server runtime, provider-parameterised (`llamacpp-upstream` | `llamacpp`).
|
|
3
|
+
*
|
|
4
|
+
* Ported from: args.rs, error.rs, runtime_device.rs, device.rs, commands.rs:594 (probe),
|
|
5
|
+
* index.ts:4489-5249 (load plan). See PLAN.md §3.2.
|
|
6
|
+
*/
|
|
7
|
+
export * from './args.js';
|
|
8
|
+
export * from './errors.js';
|
|
9
|
+
export * from './runtime-device.js';
|
|
10
|
+
export * from './devices.js';
|
|
11
|
+
export * from './policy.js';
|
|
12
|
+
export * from './probe.js';
|
|
13
|
+
export * from './load-plan.js';
|
|
14
|
+
export * from './runtime.js';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* llama-server runtime, provider-parameterised (`llamacpp-upstream` | `llamacpp`).
|
|
3
|
+
*
|
|
4
|
+
* Ported from: args.rs, error.rs, runtime_device.rs, device.rs, commands.rs:594 (probe),
|
|
5
|
+
* index.ts:4489-5249 (load plan). See PLAN.md §3.2.
|
|
6
|
+
*/
|
|
7
|
+
export * from './args.js';
|
|
8
|
+
export * from './errors.js';
|
|
9
|
+
export * from './runtime-device.js';
|
|
10
|
+
export * from './devices.js';
|
|
11
|
+
export * from './policy.js';
|
|
12
|
+
export * from './probe.js';
|
|
13
|
+
export * from './load-plan.js';
|
|
14
|
+
export * from './runtime.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The load plan: everything `performLoad()` in `extensions/llamacpp-upstream-extension/src/index.ts`
|
|
3
|
+
* (lines 4735-5249) decides before it hands a config to the process spawner, as a pure orchestration
|
|
4
|
+
* over injected facts. The 23 steps (PLAN.md §8.1) are numbered in comments.
|
|
5
|
+
*
|
|
6
|
+
* Owns: settings merge, `latest/` sentinel resolution, flash-attn clamp for old builds, AVX preflight,
|
|
7
|
+
* model.yml → paths (first shard, mmproj), artifact validation, Llama 3 template override, MTP/DFlash
|
|
8
|
+
* draft resolution and capability gates, `dflash_n_max`, mutual exclusion, ctx clamp, env, port and
|
|
9
|
+
* API key. Does NOT spawn; `nextRetry()` encodes the two post-failure retries.
|
|
10
|
+
*/
|
|
11
|
+
import type { LlamacppConfig, LocalProviderId } from '../../contracts/index.js';
|
|
12
|
+
import type { ModelYmlDocument } from '../../models/index.js';
|
|
13
|
+
import type { LlamacppConfigInput } from './args.js';
|
|
14
|
+
/** Engine-level settings the extension reads beside `LlamacppConfig`. */
|
|
15
|
+
export interface LlamacppEngineSettings {
|
|
16
|
+
/** Seconds; feeds `LLAMA_ARG_TIMEOUT` and the readiness wait. */
|
|
17
|
+
timeout: number | string;
|
|
18
|
+
/** `KEY=VALUE;…` user environment. */
|
|
19
|
+
llamacpp_env: string;
|
|
20
|
+
/** DFlash block size → `dflash_n_max = block - 1`. */
|
|
21
|
+
dflash_block_size?: number | string;
|
|
22
|
+
}
|
|
23
|
+
export interface LoadPlanInput {
|
|
24
|
+
provider: LocalProviderId;
|
|
25
|
+
modelId: string;
|
|
26
|
+
/** The provider's settings (34 keys) already canonicalised, plus per-model defaults. */
|
|
27
|
+
config: LlamacppConfigInput;
|
|
28
|
+
engine: LlamacppEngineSettings;
|
|
29
|
+
/** Per-model overrides (`settings` argument of `load()`), canonical keys. */
|
|
30
|
+
overrides?: Partial<LlamacppConfig> | undefined;
|
|
31
|
+
/** Explicit CLI paths bypass the installed-model registry. */
|
|
32
|
+
modelPath?: string | undefined;
|
|
33
|
+
mmprojPath?: string | undefined;
|
|
34
|
+
/** CLI `--timeout` is exact; provider loads keep the application readiness floor. */
|
|
35
|
+
timeoutSecs?: number | undefined;
|
|
36
|
+
isEmbedding: boolean;
|
|
37
|
+
dataFolder: string;
|
|
38
|
+
/** Model ids that must never be auto-unloaded (the transcription companion). */
|
|
39
|
+
transcriptionModelId?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface LoadPlanDeps {
|
|
42
|
+
joinData: (relative: string) => string;
|
|
43
|
+
readModelYml: (modelId: string) => Promise<ModelYmlDocument>;
|
|
44
|
+
/** Resolve the `latest/<backend>` sentinel; `undefined` when offline with nothing installed. */
|
|
45
|
+
resolveLatestBackend: (backend: string) => Promise<string | undefined>;
|
|
46
|
+
/** Download/install if needed; may return a different pair after a compatible-fallback. */
|
|
47
|
+
ensureBackendReady: (backend: string, version: string) => Promise<{
|
|
48
|
+
version: string;
|
|
49
|
+
backend: string;
|
|
50
|
+
exePath: string;
|
|
51
|
+
}>;
|
|
52
|
+
/** CPU facts for the AVX preflight; `undefined` when the probe failed. */
|
|
53
|
+
cpuInfo: () => Promise<{
|
|
54
|
+
arch: string;
|
|
55
|
+
extensions: string[];
|
|
56
|
+
} | undefined>;
|
|
57
|
+
exists: (path: string) => Promise<boolean>;
|
|
58
|
+
fileSize: (path: string) => Promise<number | undefined>;
|
|
59
|
+
readGgufMetadata: (path: string) => Promise<Record<string, string> | undefined>;
|
|
60
|
+
randomPort: () => Promise<number>;
|
|
61
|
+
checkGemmaMtpSupport: (modelId: string) => boolean;
|
|
62
|
+
ensureGemmaMtpDraft: (modelId: string) => Promise<void>;
|
|
63
|
+
checkDflashSupport: (modelId: string) => boolean;
|
|
64
|
+
ensureDflashDraft: (modelId: string) => Promise<void>;
|
|
65
|
+
backendSupportsDflashSpec: (exePath: string, env: Record<string, string>) => Promise<boolean>;
|
|
66
|
+
resolveLlama3TemplateOverride: (modelId: string, embedded: string | undefined) => string | undefined;
|
|
67
|
+
strictSystemGuardSignature?: string;
|
|
68
|
+
apiSecret?: string;
|
|
69
|
+
warn?: (msg: string) => void;
|
|
70
|
+
}
|
|
71
|
+
export interface LoadPlan {
|
|
72
|
+
provider: LocalProviderId;
|
|
73
|
+
modelId: string;
|
|
74
|
+
version: string;
|
|
75
|
+
backend: string;
|
|
76
|
+
exePath: string;
|
|
77
|
+
config: LlamacppConfig;
|
|
78
|
+
port: number;
|
|
79
|
+
apiKey: string;
|
|
80
|
+
env: Record<string, string>;
|
|
81
|
+
modelPath: string;
|
|
82
|
+
mmprojPath: string | undefined;
|
|
83
|
+
isEmbedding: boolean;
|
|
84
|
+
timeoutSecs: number;
|
|
85
|
+
maxCtxTrain: number | undefined;
|
|
86
|
+
warnings: string[];
|
|
87
|
+
}
|
|
88
|
+
/** Which loaded text sessions to unload before loading `modelId` (auto-unload policy). */
|
|
89
|
+
export declare function autoUnloadTargets(sessions: Array<{
|
|
90
|
+
model_id: string;
|
|
91
|
+
is_embedding: boolean;
|
|
92
|
+
}>, opts: {
|
|
93
|
+
autoUnload: boolean;
|
|
94
|
+
isEmbedding: boolean;
|
|
95
|
+
bypassAutoUnload: boolean;
|
|
96
|
+
transcriptionModelId?: string;
|
|
97
|
+
}): string[];
|
|
98
|
+
export declare function planLlamaLoad(input: LoadPlanInput, deps: LoadPlanDeps): Promise<LoadPlan>;
|
|
99
|
+
export type RetryPlan = {
|
|
100
|
+
kind: 'text-only';
|
|
101
|
+
plan: LoadPlan;
|
|
102
|
+
notify: 'multimodal-disabled';
|
|
103
|
+
} | {
|
|
104
|
+
kind: 'without-mtp';
|
|
105
|
+
plan: LoadPlan;
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Steps 21-22: after a failed spawn, decide whether to retry once. A retried plan is never
|
|
109
|
+
* retried again for the same reason (the caller passes the plan it just tried).
|
|
110
|
+
*/
|
|
111
|
+
export declare function nextRetry(error: unknown, plan: LoadPlan, transcriptionModelId?: string): RetryPlan | undefined;
|
|
112
|
+
/** `{arch}.context_length` from the GGUF, or `undefined` (with a warning) when unreadable. */
|
|
113
|
+
export declare function resolveModelMaxCtxTrain(modelPath: string, deps: Pick<LoadPlanDeps, 'readGgufMetadata'>, warn?: (m: string) => void): Promise<number | undefined>;
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The load plan: everything `performLoad()` in `extensions/llamacpp-upstream-extension/src/index.ts`
|
|
3
|
+
* (lines 4735-5249) decides before it hands a config to the process spawner, as a pure orchestration
|
|
4
|
+
* over injected facts. The 23 steps (PLAN.md §8.1) are numbered in comments.
|
|
5
|
+
*
|
|
6
|
+
* Owns: settings merge, `latest/` sentinel resolution, flash-attn clamp for old builds, AVX preflight,
|
|
7
|
+
* model.yml → paths (first shard, mmproj), artifact validation, Llama 3 template override, MTP/DFlash
|
|
8
|
+
* draft resolution and capability gates, `dflash_n_max`, mutual exclusion, ctx clamp, env, port and
|
|
9
|
+
* API key. Does NOT spawn; `nextRetry()` encodes the two post-failure retries.
|
|
10
|
+
*/
|
|
11
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
12
|
+
import { effectiveCtxSize, firstGgufShardPath, ggufShardSetPaths, isMtpCapable, matchesMtpLoadFailure, parseGgufShard, } from '../../models/index.js';
|
|
13
|
+
import { generateApiKey } from '../shared/index.js';
|
|
14
|
+
import { withLlamacppDefaults } from './args.js';
|
|
15
|
+
import { BACKEND_NOT_CONFIGURED_MESSAGE, CPU_NO_AVX_ERROR_CODE, CPU_NO_AVX_MESSAGE, codedLoadError, formatLoadError, isCpuBackend, isUnsupportedNoAvxCpu, modelLoadReadyTimeoutSecs, parseBuildNumberStrict, parseEnvString, stripBom, } from './policy.js';
|
|
16
|
+
/** Which loaded text sessions to unload before loading `modelId` (auto-unload policy). */
|
|
17
|
+
export function autoUnloadTargets(sessions, opts) {
|
|
18
|
+
if (!opts.autoUnload || opts.isEmbedding || opts.bypassAutoUnload)
|
|
19
|
+
return [];
|
|
20
|
+
return sessions
|
|
21
|
+
.filter((s) => s.is_embedding === false && s.model_id !== opts.transcriptionModelId)
|
|
22
|
+
.map((s) => s.model_id);
|
|
23
|
+
}
|
|
24
|
+
export async function planLlamaLoad(input, deps) {
|
|
25
|
+
const warnings = [];
|
|
26
|
+
const warn = (m) => {
|
|
27
|
+
warnings.push(m);
|
|
28
|
+
deps.warn?.(m);
|
|
29
|
+
};
|
|
30
|
+
const { modelId } = input;
|
|
31
|
+
// 2. settings merge (per-model overrides win)
|
|
32
|
+
const cfg = withLlamacppDefaults({ ...input.config, ...(input.overrides ?? {}) });
|
|
33
|
+
const env = {};
|
|
34
|
+
// 3. `latest/<backend>` sentinel
|
|
35
|
+
if (stripBom(cfg.version_backend || '').startsWith('latest/')) {
|
|
36
|
+
const sentinelBackend = stripBom(cfg.version_backend.split('/')[1] ?? '');
|
|
37
|
+
const resolved = await deps.resolveLatestBackend(sentinelBackend);
|
|
38
|
+
if (resolved)
|
|
39
|
+
cfg.version_backend = resolved;
|
|
40
|
+
else
|
|
41
|
+
warn(`Could not resolve latest sentinel for '${sentinelBackend}' (offline and no installed copy of the family).`);
|
|
42
|
+
}
|
|
43
|
+
// 4. split
|
|
44
|
+
let [version, backend] = cfg.version_backend.split('/');
|
|
45
|
+
if (!version || !backend)
|
|
46
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', BACKEND_NOT_CONFIGURED_MESSAGE);
|
|
47
|
+
// 5. flash-attn compat for pre-b6325 builds
|
|
48
|
+
if (cfg.flash_attn === 'auto' && !backend.startsWith('ik')) {
|
|
49
|
+
const buildNum = parseBuildNumberStrict(version);
|
|
50
|
+
if (buildNum !== null && buildNum < 6325)
|
|
51
|
+
cfg.flash_attn = 'off';
|
|
52
|
+
}
|
|
53
|
+
// 6. AVX preflight (CPU backends only; a failed probe never blocks)
|
|
54
|
+
if (isCpuBackend(backend)) {
|
|
55
|
+
const cpu = await deps.cpuInfo().catch(() => undefined);
|
|
56
|
+
if (isUnsupportedNoAvxCpu(cpu?.arch ?? '', backend, cpu?.extensions ?? null)) {
|
|
57
|
+
throw codedLoadError(CPU_NO_AVX_ERROR_CODE, CPU_NO_AVX_MESSAGE);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// 7. backend ready (may swap to a compatible installed pair)
|
|
61
|
+
const ready = await deps.ensureBackendReady(backend, version);
|
|
62
|
+
version = ready.version;
|
|
63
|
+
backend = ready.backend;
|
|
64
|
+
const exePath = ready.exePath;
|
|
65
|
+
// 8-9. model.yml, port, key, env
|
|
66
|
+
const modelConfig = input.modelPath
|
|
67
|
+
? {
|
|
68
|
+
model_path: input.modelPath,
|
|
69
|
+
...(input.mmprojPath ? { mmproj_path: input.mmprojPath } : {}),
|
|
70
|
+
name: modelId,
|
|
71
|
+
size_bytes: 0,
|
|
72
|
+
}
|
|
73
|
+
: await deps.readModelYml(modelId);
|
|
74
|
+
const port = await deps.randomPort();
|
|
75
|
+
const apiKey = generateApiKey(modelId, port, deps.apiSecret);
|
|
76
|
+
const timeoutSecs = input.timeoutSecs ?? modelLoadReadyTimeoutSecs(input.engine.timeout);
|
|
77
|
+
env['LLAMA_API_KEY'] = apiKey;
|
|
78
|
+
env['LLAMA_ARG_TIMEOUT'] = String(input.timeoutSecs ?? input.engine.timeout);
|
|
79
|
+
if (input.engine.llamacpp_env)
|
|
80
|
+
parseEnvString(input.engine.llamacpp_env, env);
|
|
81
|
+
// 10. paths: first shard, mmproj
|
|
82
|
+
const modelPath = await resolveShardedModelPath(deps.joinData(modelConfig.model_path), deps, warn);
|
|
83
|
+
const configuredMmproj = input.mmprojPath ?? modelConfig.mmproj_path;
|
|
84
|
+
const mmprojPath = configuredMmproj ? deps.joinData(configuredMmproj) : undefined;
|
|
85
|
+
// 11. artifact validation
|
|
86
|
+
await assertCompleteGguf(modelPath, modelConfig.model_size_bytes, deps);
|
|
87
|
+
if (mmprojPath)
|
|
88
|
+
await assertCompleteGguf(mmprojPath, modelConfig.mmproj_size_bytes, deps);
|
|
89
|
+
// 12. Llama 3.x template override
|
|
90
|
+
if (!cfg.chat_template?.trim()) {
|
|
91
|
+
try {
|
|
92
|
+
const embedded = (await deps.readGgufMetadata(modelPath))?.['tokenizer.chat_template'];
|
|
93
|
+
const override = deps.resolveLlama3TemplateOverride(modelId, embedded);
|
|
94
|
+
if (override) {
|
|
95
|
+
cfg.chat_template = override;
|
|
96
|
+
warn(`Overriding strict embedded chat_template for "${modelId}" with the canonical Meta Llama 3.x template.`);
|
|
97
|
+
}
|
|
98
|
+
else if (deps.strictSystemGuardSignature && embedded?.includes(deps.strictSystemGuardSignature)) {
|
|
99
|
+
warn(`Model "${modelId}" has a strict system-message guard in its embedded chat_template but is not a recognized Llama 3.x format; leaving the template untouched.`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
warn(`chat_template override probe failed for "${modelId}": ${formatLoadError(e)}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// TurboQuant has no speculative decoding: a value imported from an upstream copy of the settings
|
|
107
|
+
// must not make its load look for, or download, a draft model.
|
|
108
|
+
if (input.provider === 'llamacpp') {
|
|
109
|
+
cfg.mtp = false;
|
|
110
|
+
cfg.dflash = false;
|
|
111
|
+
}
|
|
112
|
+
// 13. Gemma MTP draft head
|
|
113
|
+
let mtpDraftRel = modelConfig.mtp_draft_path;
|
|
114
|
+
if (cfg.mtp && !mtpDraftRel && deps.checkGemmaMtpSupport(modelId)) {
|
|
115
|
+
try {
|
|
116
|
+
await deps.ensureGemmaMtpDraft(modelId);
|
|
117
|
+
mtpDraftRel = (await deps.readModelYml(modelId)).mtp_draft_path;
|
|
118
|
+
}
|
|
119
|
+
catch (e) {
|
|
120
|
+
warn(`Failed to ensure Gemma MTP draft head for ${modelId}; loading without MTP: ${formatLoadError(e)}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
cfg.mtp_draft_path = cfg.mtp && mtpDraftRel ? deps.joinData(mtpDraftRel) : '';
|
|
124
|
+
if (cfg.mtp) {
|
|
125
|
+
const meta = await deps.readGgufMetadata(modelPath).catch((e) => {
|
|
126
|
+
warn(`Embedded MTP metadata probe failed for "${modelId}"; loading without built-in MTP: ${formatLoadError(e)}`);
|
|
127
|
+
return undefined;
|
|
128
|
+
});
|
|
129
|
+
if (!isMtpCapable(meta, cfg.mtp_draft_path)) {
|
|
130
|
+
warn(`MTP is enabled but model "${modelId}" has no MTP layers and no draft head; loading without MTP.`);
|
|
131
|
+
cfg.mtp = false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// 14. DFlash binary probe
|
|
135
|
+
cfg.dflash_spec_supported = cfg.dflash ? await deps.backendSupportsDflashSpec(exePath, env) : false;
|
|
136
|
+
if (cfg.dflash && !cfg.dflash_spec_supported) {
|
|
137
|
+
warn(`DFlash is enabled but this Llama.cpp backend does not support draft-dflash; loading "${modelId}" without DFlash.`);
|
|
138
|
+
cfg.dflash = false;
|
|
139
|
+
}
|
|
140
|
+
// 15. DFlash draft
|
|
141
|
+
let dflashDraftRel = modelConfig.dflash_draft_path;
|
|
142
|
+
if (cfg.dflash && !dflashDraftRel && deps.checkDflashSupport(modelId)) {
|
|
143
|
+
try {
|
|
144
|
+
await deps.ensureDflashDraft(modelId);
|
|
145
|
+
dflashDraftRel = (await deps.readModelYml(modelId)).dflash_draft_path;
|
|
146
|
+
}
|
|
147
|
+
catch (e) {
|
|
148
|
+
warn(`Failed to ensure DFlash draft for ${modelId}; loading without DFlash: ${formatLoadError(e)}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
cfg.dflash_draft_path = cfg.dflash && dflashDraftRel ? deps.joinData(dflashDraftRel) : '';
|
|
152
|
+
if (cfg.dflash && cfg.dflash_draft_path.length === 0) {
|
|
153
|
+
warn(`DFlash is enabled but model "${modelId}" has no resolvable draft; loading without DFlash.`);
|
|
154
|
+
cfg.dflash = false;
|
|
155
|
+
}
|
|
156
|
+
// 16. dflash_n_max
|
|
157
|
+
if (cfg.dflash) {
|
|
158
|
+
const blockSize = Number(input.engine.dflash_block_size);
|
|
159
|
+
cfg.dflash_n_max =
|
|
160
|
+
Number.isFinite(blockSize) && blockSize > 1 ? Math.max(Math.floor(blockSize) - 1, 1) : 0;
|
|
161
|
+
}
|
|
162
|
+
else
|
|
163
|
+
cfg.dflash_n_max = 0;
|
|
164
|
+
// 17. mutual exclusion — DFlash wins
|
|
165
|
+
if (cfg.dflash && cfg.mtp) {
|
|
166
|
+
warn(`Both MTP and DFlash are enabled for "${modelId}"; applying DFlash only.`);
|
|
167
|
+
cfg.mtp = false;
|
|
168
|
+
cfg.mtp_draft_path = '';
|
|
169
|
+
}
|
|
170
|
+
// 18. ctx clamp to the trained context
|
|
171
|
+
const maxCtxTrain = await resolveModelMaxCtxTrain(modelPath, deps, warn);
|
|
172
|
+
const clamped = effectiveCtxSize(cfg.ctx_size, maxCtxTrain);
|
|
173
|
+
if (clamped !== undefined && clamped !== cfg.ctx_size) {
|
|
174
|
+
warn(`Requested ctx_size ${cfg.ctx_size} exceeds the model's trained context; clamping to ${clamped}.`);
|
|
175
|
+
cfg.ctx_size = clamped;
|
|
176
|
+
}
|
|
177
|
+
// 19. legacy stringly `fit`
|
|
178
|
+
if (typeof cfg.fit === 'string')
|
|
179
|
+
cfg.fit = true;
|
|
180
|
+
return {
|
|
181
|
+
provider: input.provider,
|
|
182
|
+
modelId,
|
|
183
|
+
version,
|
|
184
|
+
backend,
|
|
185
|
+
exePath,
|
|
186
|
+
config: cfg,
|
|
187
|
+
port,
|
|
188
|
+
apiKey,
|
|
189
|
+
env,
|
|
190
|
+
modelPath,
|
|
191
|
+
mmprojPath,
|
|
192
|
+
isEmbedding: input.isEmbedding,
|
|
193
|
+
timeoutSecs,
|
|
194
|
+
maxCtxTrain,
|
|
195
|
+
warnings,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Steps 21-22: after a failed spawn, decide whether to retry once. A retried plan is never
|
|
200
|
+
* retried again for the same reason (the caller passes the plan it just tried).
|
|
201
|
+
*/
|
|
202
|
+
export function nextRetry(error, plan, transcriptionModelId) {
|
|
203
|
+
const code = error?.code;
|
|
204
|
+
if (plan.mmprojPath &&
|
|
205
|
+
code === 'MULTIMODAL_PROJECTOR_LOAD_FAILED' &&
|
|
206
|
+
plan.modelId !== transcriptionModelId) {
|
|
207
|
+
return { kind: 'text-only', plan: { ...plan, mmprojPath: undefined }, notify: 'multimodal-disabled' };
|
|
208
|
+
}
|
|
209
|
+
if (plan.config.mtp && matchesMtpLoadFailure(formatLoadError(error))) {
|
|
210
|
+
return {
|
|
211
|
+
kind: 'without-mtp',
|
|
212
|
+
plan: { ...plan, config: { ...plan.config, mtp: false, mtp_draft_path: '' } },
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
return undefined;
|
|
216
|
+
}
|
|
217
|
+
async function resolveShardedModelPath(modelPath, deps, warn) {
|
|
218
|
+
const shard = parseGgufShard(modelPath);
|
|
219
|
+
if (!shard)
|
|
220
|
+
return modelPath;
|
|
221
|
+
const set = ggufShardSetPaths(modelPath);
|
|
222
|
+
const missing = [];
|
|
223
|
+
for (const p of set)
|
|
224
|
+
if (!(await deps.exists(p)))
|
|
225
|
+
missing.push(p);
|
|
226
|
+
if (missing.length) {
|
|
227
|
+
throw codedLoadError('MODEL_SHARDS_INCOMPLETE', `This model is split into ${shard.total} parts and ${missing.length} of them are missing on disk. Re-download the model to get the complete set.`);
|
|
228
|
+
}
|
|
229
|
+
const first = firstGgufShardPath(modelPath);
|
|
230
|
+
if (first !== modelPath)
|
|
231
|
+
warn(`Model is shard ${shard.index}/${shard.total}; loading the first shard so llama.cpp can assemble the set.`);
|
|
232
|
+
return first;
|
|
233
|
+
}
|
|
234
|
+
async function assertCompleteGguf(filePath, expectedSize, deps) {
|
|
235
|
+
const size = await deps.fileSize(filePath).catch(() => undefined);
|
|
236
|
+
if (size === undefined) {
|
|
237
|
+
throw codedLoadError('MODEL_FILE_NOT_FOUND', `The specified model file does not exist or is not accessible: ${filePath}`);
|
|
238
|
+
}
|
|
239
|
+
if (typeof expectedSize === 'number' && expectedSize > 0 && size < expectedSize) {
|
|
240
|
+
throw codedLoadError('MODEL_FILE_CORRUPT', `The model file is incomplete (${size} of ${expectedSize} bytes), likely from an interrupted download: ${filePath}`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/** `{arch}.context_length` from the GGUF, or `undefined` (with a warning) when unreadable. */
|
|
244
|
+
export async function resolveModelMaxCtxTrain(modelPath, deps, warn = () => { }) {
|
|
245
|
+
try {
|
|
246
|
+
const meta = await deps.readGgufMetadata(modelPath);
|
|
247
|
+
const arch = meta?.['general.architecture'];
|
|
248
|
+
if (typeof arch !== 'string' || !arch)
|
|
249
|
+
return undefined;
|
|
250
|
+
const raw = meta?.[`${arch}.context_length`];
|
|
251
|
+
const parsed = raw == null ? NaN : parseInt(String(raw), 10);
|
|
252
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;
|
|
253
|
+
}
|
|
254
|
+
catch (e) {
|
|
255
|
+
warn(`Failed to resolve max ctx_train from GGUF at ${modelPath}: ${formatLoadError(e)}`);
|
|
256
|
+
return undefined;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=load-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-plan.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/load-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small policy helpers of the llama.cpp extension, ported verbatim from
|
|
3
|
+
* `extensions/llamacpp-upstream-extension/src/{util,index}.ts`: backend-id predicates, the AVX
|
|
4
|
+
* preflight, backend-mismatch classification, env parsing, readiness timeout, load-error shaping.
|
|
5
|
+
*/
|
|
6
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
7
|
+
import type { ErrorCode, RuntimeDeviceInfo } from '../../contracts/index.js';
|
|
8
|
+
export declare const CPU_NO_AVX_ERROR_CODE: "CPU_NO_AVX";
|
|
9
|
+
export declare const CPU_NO_AVX_MESSAGE = "Your CPU is too old to run this model: it doesn't support the AVX instruction set that the bundled engine requires. The app cannot run local models on this processor.";
|
|
10
|
+
export declare const BACKEND_NOT_CONFIGURED_MESSAGE = "Llama.cpp backend is not configured (version_backend is missing or invalid). Check Settings \u2192 Llama.cpp \u2014 Version & Backend, or reinstall the application.";
|
|
11
|
+
/** Readiness wait floor (30 min): large models on cold storage outran the 600 s default. */
|
|
12
|
+
export declare const MODEL_LOAD_READY_TIMEOUT_FLOOR_SECS = 1800;
|
|
13
|
+
export declare function stripBom(s: string): string;
|
|
14
|
+
/** The extension's strict build-number parser (`b6325` only; the unified fork tag yields null). */
|
|
15
|
+
export declare function parseBuildNumberStrict(version: string): number | null;
|
|
16
|
+
/** A concrete `<version>/<backend>`: not empty, not `none`, has a `/`, not the `latest/` sentinel. */
|
|
17
|
+
export declare function isConcreteVersionBackend(vb: string | undefined | null): boolean;
|
|
18
|
+
/** `win-cpu-x64`, `linux-cpu-arm64`, … — never the macOS ids. */
|
|
19
|
+
export declare function isCpuBackend(backend: string | undefined | null): boolean;
|
|
20
|
+
export declare function cpuHasAvx(extensions: string[] | undefined | null): boolean;
|
|
21
|
+
/** Block only on a positive no-AVX signal: x86, a CPU backend, a non-empty list lacking AVX. */
|
|
22
|
+
export declare function isUnsupportedNoAvxCpu(arch: string | undefined | null, backend: string | undefined | null, extensions: string[] | undefined | null): boolean;
|
|
23
|
+
export declare function isGpuBackendCategory(category: string): boolean;
|
|
24
|
+
export type GpuKind = 'cuda' | 'vulkan' | 'other';
|
|
25
|
+
export declare function gpuKindOf(category: string): GpuKind;
|
|
26
|
+
/** Zero offloaded layers is conclusive; an absent device is not treated as CPU. */
|
|
27
|
+
export declare function runtimeRanOnCpu(runtimeDevice: Partial<RuntimeDeviceInfo> | undefined | null): boolean;
|
|
28
|
+
export type BackendMismatch = {
|
|
29
|
+
kind: 'ok';
|
|
30
|
+
} | {
|
|
31
|
+
kind: 'silent-fallback';
|
|
32
|
+
configured: string;
|
|
33
|
+
effective: string;
|
|
34
|
+
} | {
|
|
35
|
+
kind: 'runtime-cpu';
|
|
36
|
+
configured: string;
|
|
37
|
+
primaryDevice: string;
|
|
38
|
+
offloaded: number | null;
|
|
39
|
+
total: number | null;
|
|
40
|
+
gpuKind: GpuKind;
|
|
41
|
+
cudaRuntimeMissing: boolean;
|
|
42
|
+
deviceInitError: string | null;
|
|
43
|
+
} | {
|
|
44
|
+
kind: 'suboptimal-config';
|
|
45
|
+
configured: string;
|
|
46
|
+
ideal: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Compare what the UI shows, what was launched and what the process reports. Precedence: silent
|
|
50
|
+
* swap, then a GPU build that ran on the CPU (unless `-ngl 0` was requested), then a better tier.
|
|
51
|
+
*/
|
|
52
|
+
export declare function classifyBackendMismatch(input: {
|
|
53
|
+
configuredBackend: string | undefined | null;
|
|
54
|
+
effectiveBackend: string | undefined | null;
|
|
55
|
+
runtimeDevice?: Partial<RuntimeDeviceInfo> | null;
|
|
56
|
+
idealBackend?: string | null;
|
|
57
|
+
requestedGpuLayers?: number | null;
|
|
58
|
+
categoryOf: (backend: string) => string;
|
|
59
|
+
}): BackendMismatch;
|
|
60
|
+
/** `KEY=VALUE;KEY2=VALUE2` — keys starting with `LLAMA` are reserved and dropped. */
|
|
61
|
+
export declare function parseEnvString(envString: string, target?: Record<string, string>): Record<string, string>;
|
|
62
|
+
/** Never below the floor; honours a larger configured value; non-numbers read as 600. */
|
|
63
|
+
export declare function modelLoadReadyTimeoutSecs(configuredTimeoutSecs: number | string): number;
|
|
64
|
+
/** Readable text of any load error: message + details + `[code]`; never `[object Object]`. */
|
|
65
|
+
export declare function formatLoadError(err: unknown): string;
|
|
66
|
+
/** Codes that describe a recoverable user/environment condition, not a crash (kept out of Sentry). */
|
|
67
|
+
export declare const RECOVERABLE_LOAD_ERROR_CODES: ReadonlySet<string>;
|
|
68
|
+
export declare function isRecoverableLoadError(err: unknown): boolean;
|
|
69
|
+
/** The extension's `codedLoadError`, as an `AtomicCoreError`. */
|
|
70
|
+
export declare function codedLoadError(code: ErrorCode, message: string, details?: string): AtomicCoreError;
|