@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
package/README.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# atomic-chat-core
|
|
2
|
+
|
|
3
|
+
TypeScript inference core of [Atomic Chat](https://github.com/AtomicBot-ai/Atomic-Chat): local llama.cpp /
|
|
4
|
+
MLX / Apple Foundation Models runtime, backend and model management, cloud providers, model router and the
|
|
5
|
+
OpenAI-compatible server on `http://localhost:1337/v1`.
|
|
6
|
+
|
|
7
|
+
- Working in this repo: [`AGENTS.md`](AGENTS.md)
|
|
8
|
+
- The plan, architecture and port-spec: [`PLAN.md`](PLAN.md)
|
|
9
|
+
- Decisions: [`docs/decisions/INDEX.md`](docs/decisions/INDEX.md)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
bun install
|
|
13
|
+
npm run verify
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Phase-1 CLI examples:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
atomic-chat-core serve owner/repository --select
|
|
20
|
+
atomic-chat-core serve --model-path ./model.gguf --bin ./llama-server --port 6767
|
|
21
|
+
atomic-chat-core models list --json
|
|
22
|
+
atomic-chat-core shutdown
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`serve` attaches to the one persistent owner for the selected data folder. The command can exit
|
|
26
|
+
without unloading the model; `shutdown` explicitly stops that owner and its sessions.
|
|
27
|
+
|
|
28
|
+
## Releasing
|
|
29
|
+
|
|
30
|
+
The desktop app pins a core version (`atomicCore.version` in its `package.json`) and downloads that
|
|
31
|
+
release's binaries, checking them against `SHA256SUMS`.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
make release # patch; or VERSION=minor, major, or an explicit X.Y.Z
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
It bumps `package.json` and `src/version.ts` together, commits `release: vX.Y.Z`, tags it and pushes
|
|
38
|
+
the branch and the tag (the current version, given explicitly, only tags `HEAD`). Without make:
|
|
39
|
+
`npm run release -- patch --push`, or leave out `--push` to look before pushing. The tag runs the
|
|
40
|
+
`release` workflow: the same gates as CI on macOS, Linux and Windows (Linux and Windows on x64 and arm64), both
|
|
41
|
+
binaries cross-compiled for every target (macOS arm64 and x64, Windows x64 and arm64, Linux x64 and arm64), then
|
|
42
|
+
`vX.Y.Z` published with the binaries and `SHA256SUMS` as the latest release.
|
|
43
|
+
|
|
44
|
+
The workflow can also be started by hand for the version already in `package.json` on a branch
|
|
45
|
+
(Actions → release → Run workflow, or `gh workflow run release.yml --ref <branch>`); it creates the
|
|
46
|
+
tag itself. A published version is never replaced: a second run for it fails, so bump first.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/** Dedicated app-owned binary. It has no CLI command dispatcher or path override for CLI commands. */
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { parseArgs } from 'node:util';
|
|
5
|
+
import { dataLayout } from './config/index.js';
|
|
6
|
+
import { AtomicCore } from './core/index.js';
|
|
7
|
+
import { CORE_VERSION } from './version.js';
|
|
8
|
+
import { nodeCliIo } from './cli/io.js';
|
|
9
|
+
import { breadcrumbLogger, createCoreReporter, failFatally, installProcessHandlers, parseTelemetryFlag, } from './telemetry/index.js';
|
|
10
|
+
const io = nodeCliIo();
|
|
11
|
+
const args = process.argv.slice(2);
|
|
12
|
+
if (args.length === 1 && args[0] === '--version') {
|
|
13
|
+
io.stdout(`${CORE_VERSION}\n`);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
const command = args.shift();
|
|
17
|
+
if (command !== 'daemon')
|
|
18
|
+
throw new Error('The app core only accepts the daemon command.');
|
|
19
|
+
const { values } = parseArgs({
|
|
20
|
+
args,
|
|
21
|
+
options: {
|
|
22
|
+
'data-folder': { type: 'string' },
|
|
23
|
+
'control-port': { type: 'string' },
|
|
24
|
+
'resources-dir': { type: 'string' },
|
|
25
|
+
'cloudflared-bin': { type: 'string' },
|
|
26
|
+
// The app's `productAnalytic` consent at launch; it updates it later over PUT /telemetry.
|
|
27
|
+
// Absent, the core decides for itself (docs/decisions/*-the-core-owns-its-error-reporting.md).
|
|
28
|
+
'telemetry': { type: 'string' },
|
|
29
|
+
},
|
|
30
|
+
strict: true,
|
|
31
|
+
});
|
|
32
|
+
const dataFolder = values['data-folder'];
|
|
33
|
+
if (!dataFolder)
|
|
34
|
+
throw new Error('The app must supply its data folder.');
|
|
35
|
+
const reporter = await createCoreReporter({
|
|
36
|
+
host: 'atomic-chat',
|
|
37
|
+
ownerScope: 'app',
|
|
38
|
+
enabled: parseTelemetryFlag(values['telemetry']),
|
|
39
|
+
dataFolder,
|
|
40
|
+
telemetryFile: dataLayout(dataFolder).core.telemetry,
|
|
41
|
+
homeDir: homedir(),
|
|
42
|
+
env: io.env,
|
|
43
|
+
platform: process.platform,
|
|
44
|
+
arch: process.arch,
|
|
45
|
+
version: CORE_VERSION,
|
|
46
|
+
warn: (message) => io.stderr(`[warn] ${message}\n`),
|
|
47
|
+
});
|
|
48
|
+
const fatal = { reporter, writeStderr: io.stderr, exit: (code) => process.exit(code) };
|
|
49
|
+
installProcessHandlers(process, fatal);
|
|
50
|
+
let core;
|
|
51
|
+
try {
|
|
52
|
+
core = await AtomicCore.create({
|
|
53
|
+
ownerScope: 'app',
|
|
54
|
+
dataFolder,
|
|
55
|
+
controlPort: Number(values['control-port'] ?? 0),
|
|
56
|
+
...(values['resources-dir'] ? { resourcesDir: values['resources-dir'] } : {}),
|
|
57
|
+
// The app bundles the tunnel binary next to its own executable, not under its resources.
|
|
58
|
+
...(values['cloudflared-bin'] ? { cloudflaredPath: values['cloudflared-bin'] } : {}),
|
|
59
|
+
env: io.env,
|
|
60
|
+
errorReporter: reporter,
|
|
61
|
+
logger: breadcrumbLogger(reporter, (level, message) => io.stderr(`[${level}] ${message}\n`)),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
await failFatally('startup', error, fatal);
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
io.stdout(`${JSON.stringify(core.readyLine())}\n`);
|
|
69
|
+
await Promise.race([io.waitForShutdown(() => core.shutdown()), core.stopped]);
|
|
70
|
+
await reporter.flush();
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=app-daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-daemon.js","sourceRoot":"","sources":["../src/app-daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Archive names, download URLs and the cudart companion. Port of
|
|
3
|
+
* `extensions/llamacpp-upstream-extension/src/backend.ts` (`getBackendArchiveName`,
|
|
4
|
+
* `getBackendDownloadUrl`, `resolveBackendArchiveSource`, `friendlyBackendLabel`,
|
|
5
|
+
* `requiredDiskSpaceForBackend`, `getCudart*`, `getCudaToolkitVersion`). The build-time duplicate
|
|
6
|
+
* in `scripts/resolve-upstream-backend.mjs` (`assetNameFor`, `pickSource`) gives the same answers;
|
|
7
|
+
* `archive.test.ts` proves it so the script can be deleted later.
|
|
8
|
+
*
|
|
9
|
+
* Pure: `resolveBackendArchiveSource` takes the manifest as data instead of fetching it.
|
|
10
|
+
*/
|
|
11
|
+
import type { BackendArchiveSource, UpstreamManifest } from '../types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Un-mirrored fallback: the official ggml-org/llama.cpp release stream. Deliberately not the
|
|
14
|
+
* janhq mirror and not the TurboQuant fork.
|
|
15
|
+
*/
|
|
16
|
+
export declare const GGML_ORG_DOWNLOAD_BASE = "https://github.com/ggml-org/llama.cpp/releases/download";
|
|
17
|
+
/**
|
|
18
|
+
* Internal Linux backend id → ggml-org asset infix (between `bin-` and `.tar.gz`). Upstream calls
|
|
19
|
+
* its Linux builds `ubuntu-*`; the app surfaces them as `linux-*`. The whitelist is deliberately
|
|
20
|
+
* narrow (`s390x`, `arm64`, `rocm-*`, `openvino-*`, `vulkan-arm64` are dropped).
|
|
21
|
+
*/
|
|
22
|
+
export declare const LINUX_UPSTREAM_ASSET_BY_BACKEND: Readonly<Record<string, string>>;
|
|
23
|
+
export declare const LINUX_BACKEND_BY_UPSTREAM_ASSET: Readonly<Record<string, string>>;
|
|
24
|
+
/**
|
|
25
|
+
* `llama-{tag}-bin-{variant}.{tar.gz|zip}`: macOS and Linux tarballs, Windows zips; Linux ids are
|
|
26
|
+
* translated to their `ubuntu-*` infix.
|
|
27
|
+
*/
|
|
28
|
+
export declare function getBackendArchiveName(version: string, backend: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Download URL on the ggml-org CDN — the un-mirrored shape. Download paths should prefer
|
|
31
|
+
* `resolveBackendArchiveSource`. A literal `latest` tag is an unresolved dropdown sentinel that
|
|
32
|
+
* leaked through (ATO-95) and is rejected rather than turned into a guaranteed-404 URL.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getBackendDownloadUrl(version: string, backend: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Where to download an archive from and what it must hash to. The manifest's `download_base` (the
|
|
37
|
+
* signed mirror) is used only when the manifest describes *this exact tag* and lists *this exact
|
|
38
|
+
* asset* with a hash and size; anything else — an older tag, an unmirrored tag, no manifest —
|
|
39
|
+
* resolves to the ggml-org CDN without a hash.
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveBackendArchiveSource(version: string, backend: string, manifest: UpstreamManifest | null | undefined): BackendArchiveSource;
|
|
42
|
+
/** Short label for the "Latest <variant>" dropdown entries; the raw id for anything unrecognised. */
|
|
43
|
+
export declare function friendlyBackendLabel(backend: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Unpacked size of the Windows HIP tree (1072 MB on b10809 / ROCm 10.0; `ggml-hip.dll` alone is
|
|
46
|
+
* 896 MB). The reason a free-space precondition exists at all. Re-measure on the next HIP major.
|
|
47
|
+
*/
|
|
48
|
+
export declare const WIN_ROCM_UNPACKED_BYTES: number;
|
|
49
|
+
/** Headroom over archive + unpacked so the check does not green-light a volume landing at zero. */
|
|
50
|
+
export declare const BACKEND_INSTALL_HEADROOM_BYTES: number;
|
|
51
|
+
/** Archive size used when the manifest carries none (232.9 MB measured for b10809 win-rocm-10.0). */
|
|
52
|
+
export declare const WIN_ROCM_ARCHIVE_BYTES_FALLBACK: number;
|
|
53
|
+
/**
|
|
54
|
+
* Bytes that must be free before downloading `backend`, or `null` when no precondition is
|
|
55
|
+
* warranted (every non-HIP archive unpacks well under 300 MB). The archive counts alongside the
|
|
56
|
+
* unpacked tree because it stays in staging until extraction finishes.
|
|
57
|
+
*/
|
|
58
|
+
export declare function requiredDiskSpaceForBackend(backend: string, archiveBytes?: number): number | null;
|
|
59
|
+
/**
|
|
60
|
+
* `cudart-llama-bin-win-cuda-<toolkit>-x64.zip`: the CUDA runtime DLLs the main Windows CUDA
|
|
61
|
+
* archive does not carry. Without them `llama-server.exe --list-devices` is empty on hosts without
|
|
62
|
+
* a system-wide toolkit (Atomic-Chat#14). Never mirrored — NVIDIA-signed and ~391 MB each.
|
|
63
|
+
*/
|
|
64
|
+
export declare function buildWindowsCudartArchiveName(cudaToolkitVersion: string): string;
|
|
65
|
+
/** cudart companion URL on the ggml-org CDN, or `null` for a non-CUDA Windows backend. */
|
|
66
|
+
export declare function getCudartDownloadUrl(version: string, backend: string): string | null;
|
|
67
|
+
/** cudart companion file name, or `null` for a non-CUDA Windows backend. */
|
|
68
|
+
export declare function getCudartArchiveName(backend: string): string | null;
|
|
69
|
+
/** CUDA toolkit version (`"13.3"`) `isCudaInstalled` expects for a Windows CUDA backend, else `null`. */
|
|
70
|
+
export declare function getCudaToolkitVersion(backend: string): string | null;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Archive names, download URLs and the cudart companion. Port of
|
|
3
|
+
* `extensions/llamacpp-upstream-extension/src/backend.ts` (`getBackendArchiveName`,
|
|
4
|
+
* `getBackendDownloadUrl`, `resolveBackendArchiveSource`, `friendlyBackendLabel`,
|
|
5
|
+
* `requiredDiskSpaceForBackend`, `getCudart*`, `getCudaToolkitVersion`). The build-time duplicate
|
|
6
|
+
* in `scripts/resolve-upstream-backend.mjs` (`assetNameFor`, `pickSource`) gives the same answers;
|
|
7
|
+
* `archive.test.ts` proves it so the script can be deleted later.
|
|
8
|
+
*
|
|
9
|
+
* Pure: `resolveBackendArchiveSource` takes the manifest as data instead of fetching it.
|
|
10
|
+
*/
|
|
11
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
12
|
+
import { matchWindowsCudaBackend } from './cuda-family.js';
|
|
13
|
+
import { stripBom } from '../version.js';
|
|
14
|
+
/**
|
|
15
|
+
* Un-mirrored fallback: the official ggml-org/llama.cpp release stream. Deliberately not the
|
|
16
|
+
* janhq mirror and not the TurboQuant fork.
|
|
17
|
+
*/
|
|
18
|
+
export const GGML_ORG_DOWNLOAD_BASE = 'https://github.com/ggml-org/llama.cpp/releases/download';
|
|
19
|
+
/**
|
|
20
|
+
* Internal Linux backend id → ggml-org asset infix (between `bin-` and `.tar.gz`). Upstream calls
|
|
21
|
+
* its Linux builds `ubuntu-*`; the app surfaces them as `linux-*`. The whitelist is deliberately
|
|
22
|
+
* narrow (`s390x`, `arm64`, `rocm-*`, `openvino-*`, `vulkan-arm64` are dropped).
|
|
23
|
+
*/
|
|
24
|
+
export const LINUX_UPSTREAM_ASSET_BY_BACKEND = {
|
|
25
|
+
'linux-cpu-x64': 'ubuntu-x64',
|
|
26
|
+
'linux-vulkan-x64': 'ubuntu-vulkan-x64',
|
|
27
|
+
};
|
|
28
|
+
export const LINUX_BACKEND_BY_UPSTREAM_ASSET = Object.fromEntries(Object.entries(LINUX_UPSTREAM_ASSET_BY_BACKEND).map(([k, v]) => [v, k]));
|
|
29
|
+
/**
|
|
30
|
+
* `llama-{tag}-bin-{variant}.{tar.gz|zip}`: macOS and Linux tarballs, Windows zips; Linux ids are
|
|
31
|
+
* translated to their `ubuntu-*` infix.
|
|
32
|
+
*/
|
|
33
|
+
export function getBackendArchiveName(version, backend) {
|
|
34
|
+
const tag = stripBom(version);
|
|
35
|
+
const id = stripBom(backend);
|
|
36
|
+
const linuxInfix = LINUX_UPSTREAM_ASSET_BY_BACKEND[id];
|
|
37
|
+
if (linuxInfix)
|
|
38
|
+
return `llama-${tag}-bin-${linuxInfix}.tar.gz`;
|
|
39
|
+
const extension = id.startsWith('macos-') ? 'tar.gz' : 'zip';
|
|
40
|
+
return `llama-${tag}-bin-${id}.${extension}`;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Download URL on the ggml-org CDN — the un-mirrored shape. Download paths should prefer
|
|
44
|
+
* `resolveBackendArchiveSource`. A literal `latest` tag is an unresolved dropdown sentinel that
|
|
45
|
+
* leaked through (ATO-95) and is rejected rather than turned into a guaranteed-404 URL.
|
|
46
|
+
*/
|
|
47
|
+
export function getBackendDownloadUrl(version, backend) {
|
|
48
|
+
const tag = stripBom(version);
|
|
49
|
+
const id = stripBom(backend);
|
|
50
|
+
if (tag === 'latest') {
|
|
51
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', `getBackendDownloadUrl: unresolved 'latest' tag for backend '${id}'. The latest/<backend> sentinel must be resolved to a concrete release tag before download.`);
|
|
52
|
+
}
|
|
53
|
+
return `${GGML_ORG_DOWNLOAD_BASE}/${tag}/${getBackendArchiveName(tag, id)}`;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Where to download an archive from and what it must hash to. The manifest's `download_base` (the
|
|
57
|
+
* signed mirror) is used only when the manifest describes *this exact tag* and lists *this exact
|
|
58
|
+
* asset* with a hash and size; anything else — an older tag, an unmirrored tag, no manifest —
|
|
59
|
+
* resolves to the ggml-org CDN without a hash.
|
|
60
|
+
*/
|
|
61
|
+
export function resolveBackendArchiveSource(version, backend, manifest) {
|
|
62
|
+
const tag = stripBom(version);
|
|
63
|
+
const archiveName = getBackendArchiveName(tag, backend);
|
|
64
|
+
const fallback = { url: `${GGML_ORG_DOWNLOAD_BASE}/${tag}/${archiveName}` };
|
|
65
|
+
if (!manifest || manifest.tag_name !== tag || !manifest.download_base)
|
|
66
|
+
return fallback;
|
|
67
|
+
const asset = (manifest.assets ?? []).find((a) => a.name === archiveName);
|
|
68
|
+
if (!asset?.sha256 || !asset.size)
|
|
69
|
+
return fallback;
|
|
70
|
+
return { url: `${manifest.download_base}/${tag}/${archiveName}`, sha256: asset.sha256, size: asset.size };
|
|
71
|
+
}
|
|
72
|
+
/** Short label for the "Latest <variant>" dropdown entries; the raw id for anything unrecognised. */
|
|
73
|
+
export function friendlyBackendLabel(backend) {
|
|
74
|
+
const id = stripBom(backend);
|
|
75
|
+
if (id.endsWith('cpu-x64'))
|
|
76
|
+
return 'CPU';
|
|
77
|
+
if (id.includes('cuda-13'))
|
|
78
|
+
return 'CUDA 13';
|
|
79
|
+
if (id.includes('cuda-12'))
|
|
80
|
+
return 'CUDA 12';
|
|
81
|
+
if (id.includes('rocm')) {
|
|
82
|
+
const version = /rocm-(\d+\.\d+)/.exec(id)?.[1];
|
|
83
|
+
return version ? `ROCm ${version} (~1 GB)` : 'ROCm (~1 GB)';
|
|
84
|
+
}
|
|
85
|
+
if (id.includes('vulkan'))
|
|
86
|
+
return 'Vulkan';
|
|
87
|
+
if (id === 'macos-arm64')
|
|
88
|
+
return 'Apple Silicon';
|
|
89
|
+
if (id === 'macos-x64')
|
|
90
|
+
return 'Intel';
|
|
91
|
+
return id;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Unpacked size of the Windows HIP tree (1072 MB on b10809 / ROCm 10.0; `ggml-hip.dll` alone is
|
|
95
|
+
* 896 MB). The reason a free-space precondition exists at all. Re-measure on the next HIP major.
|
|
96
|
+
*/
|
|
97
|
+
export const WIN_ROCM_UNPACKED_BYTES = 1080 * 1024 * 1024;
|
|
98
|
+
/** Headroom over archive + unpacked so the check does not green-light a volume landing at zero. */
|
|
99
|
+
export const BACKEND_INSTALL_HEADROOM_BYTES = 200 * 1024 * 1024;
|
|
100
|
+
/** Archive size used when the manifest carries none (232.9 MB measured for b10809 win-rocm-10.0). */
|
|
101
|
+
export const WIN_ROCM_ARCHIVE_BYTES_FALLBACK = 250 * 1024 * 1024;
|
|
102
|
+
/**
|
|
103
|
+
* Bytes that must be free before downloading `backend`, or `null` when no precondition is
|
|
104
|
+
* warranted (every non-HIP archive unpacks well under 300 MB). The archive counts alongside the
|
|
105
|
+
* unpacked tree because it stays in staging until extraction finishes.
|
|
106
|
+
*/
|
|
107
|
+
export function requiredDiskSpaceForBackend(backend, archiveBytes) {
|
|
108
|
+
const id = stripBom(backend);
|
|
109
|
+
if (!id.includes('rocm'))
|
|
110
|
+
return null;
|
|
111
|
+
const archive = archiveBytes && archiveBytes > 0 ? archiveBytes : WIN_ROCM_ARCHIVE_BYTES_FALLBACK;
|
|
112
|
+
return archive + WIN_ROCM_UNPACKED_BYTES + BACKEND_INSTALL_HEADROOM_BYTES;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* `cudart-llama-bin-win-cuda-<toolkit>-x64.zip`: the CUDA runtime DLLs the main Windows CUDA
|
|
116
|
+
* archive does not carry. Without them `llama-server.exe --list-devices` is empty on hosts without
|
|
117
|
+
* a system-wide toolkit (Atomic-Chat#14). Never mirrored — NVIDIA-signed and ~391 MB each.
|
|
118
|
+
*/
|
|
119
|
+
export function buildWindowsCudartArchiveName(cudaToolkitVersion) {
|
|
120
|
+
return `cudart-llama-bin-win-cuda-${cudaToolkitVersion}-x64.zip`;
|
|
121
|
+
}
|
|
122
|
+
/** cudart companion URL on the ggml-org CDN, or `null` for a non-CUDA Windows backend. */
|
|
123
|
+
export function getCudartDownloadUrl(version, backend) {
|
|
124
|
+
const toolkit = matchWindowsCudaBackend(backend);
|
|
125
|
+
if (!toolkit)
|
|
126
|
+
return null;
|
|
127
|
+
return `${GGML_ORG_DOWNLOAD_BASE}/${stripBom(version)}/${buildWindowsCudartArchiveName(toolkit)}`;
|
|
128
|
+
}
|
|
129
|
+
/** cudart companion file name, or `null` for a non-CUDA Windows backend. */
|
|
130
|
+
export function getCudartArchiveName(backend) {
|
|
131
|
+
const toolkit = matchWindowsCudaBackend(backend);
|
|
132
|
+
return toolkit ? buildWindowsCudartArchiveName(toolkit) : null;
|
|
133
|
+
}
|
|
134
|
+
/** CUDA toolkit version (`"13.3"`) `isCudaInstalled` expects for a Windows CUDA backend, else `null`. */
|
|
135
|
+
export function getCudaToolkitVersion(backend) {
|
|
136
|
+
return matchWindowsCudaBackend(backend);
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=archive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/backend/catalog/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export const BUNDLED_MANIFEST_BASELINE = {
|
|
2
|
+
tag_name: 'b10809',
|
|
3
|
+
download_base: 'https://github.com/AtomicBot-ai/atomic-chat-conf/releases/download',
|
|
4
|
+
assets: [
|
|
5
|
+
{
|
|
6
|
+
name: 'llama-b10809-bin-macos-arm64.tar.gz',
|
|
7
|
+
sha256: '60bd20e22dcaee096da9147f3ab49eee37020191faafd636af398e099930b753',
|
|
8
|
+
size: 11224595,
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: 'llama-b10809-bin-ubuntu-vulkan-x64.tar.gz',
|
|
12
|
+
sha256: '07f029cef440c82c3cff5310641eb6347e5cbcd865a5d88990215058aa049e93',
|
|
13
|
+
size: 33799345,
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'llama-b10809-bin-ubuntu-x64.tar.gz',
|
|
17
|
+
sha256: '5e34434ddc6d03cd1584f403201aff0d4bd1a5793a72ff7e286532dfd1e4b941',
|
|
18
|
+
size: 16734586,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'llama-b10809-bin-win-cpu-x64.zip',
|
|
22
|
+
sha256: 'e1bb4c011f07258d5a9097f30bc7a146c218f7277a379a4c6cd3a387ee4f2365',
|
|
23
|
+
size: 18795766,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: 'llama-b10809-bin-win-cuda-12.4-x64.zip',
|
|
27
|
+
sha256: 'a6bd974afd54d0944c7b2fbb852ccf6edb24c6d52cf2dc1be1b1e5ff15fc16f0',
|
|
28
|
+
size: 253794542,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'llama-b10809-bin-win-cuda-13.3-x64.zip',
|
|
32
|
+
sha256: '71b040eec949e91d2e4845b7a6977169f1978d6b93b0b8f5c81251f7f738d11f',
|
|
33
|
+
size: 149413981,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'llama-b10809-bin-win-rocm-10.0-x64.zip',
|
|
37
|
+
sha256: 'a2f7668e4ae1d63eef635e2d2748f3b3c053fe9733ae902056fddb3911e063a3',
|
|
38
|
+
size: 244117554,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'llama-b10809-bin-win-vulkan-x64.zip',
|
|
42
|
+
sha256: 'caa5ea1e4b642260116f7f7bb36ef18e69d9cc00888516f8f71a454023672f7a',
|
|
43
|
+
size: 35079269,
|
|
44
|
+
},
|
|
45
|
+
{ name: 'cudart-llama-bin-win-cuda-12.4-x64.zip' },
|
|
46
|
+
{ name: 'cudart-llama-bin-win-cuda-13.3-x64.zip' },
|
|
47
|
+
],
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=bundled-manifest-baseline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundled-manifest-baseline.js","sourceRoot":"","sources":["../../../src/backend/catalog/bundled-manifest-baseline.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACzD,QAAQ,EAAE,QAAQ;IAClB,aAAa,EAAE,oEAAoE;IACnF,MAAM,EAAE;QACN;YACE,IAAI,EAAE,qCAAqC;YAC3C,MAAM,EAAE,kEAAkE;YAC1E,IAAI,EAAE,QAAQ;SACf;QACD;YACE,IAAI,EAAE,2CAA2C;YACjD,MAAM,EAAE,kEAAkE;YAC1E,IAAI,EAAE,QAAQ;SACf;QACD;YACE,IAAI,EAAE,oCAAoC;YAC1C,MAAM,EAAE,kEAAkE;YAC1E,IAAI,EAAE,QAAQ;SACf;QACD;YACE,IAAI,EAAE,kCAAkC;YACxC,MAAM,EAAE,kEAAkE;YAC1E,IAAI,EAAE,QAAQ;SACf;QACD;YACE,IAAI,EAAE,wCAAwC;YAC9C,MAAM,EAAE,kEAAkE;YAC1E,IAAI,EAAE,SAAS;SAChB;QACD;YACE,IAAI,EAAE,wCAAwC;YAC9C,MAAM,EAAE,kEAAkE;YAC1E,IAAI,EAAE,SAAS;SAChB;QACD;YACE,IAAI,EAAE,wCAAwC;YAC9C,MAAM,EAAE,kEAAkE;YAC1E,IAAI,EAAE,SAAS;SAChB;QACD;YACE,IAAI,EAAE,qCAAqC;YAC3C,MAAM,EAAE,kEAAkE;YAC1E,IAAI,EAAE,QAAQ;SACf;QACD,EAAE,IAAI,EAAE,wCAAwC,EAAE;QAClD,EAAE,IAAI,EAAE,wCAAwC,EAAE;KACnD;CACF,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version-less GPU family ids and their concrete assets. Port of the family helpers in
|
|
3
|
+
* `extensions/llamacpp-upstream-extension/src/backend.ts` (`cudaFamilyMajor`,
|
|
4
|
+
* `isConcreteOfGpuFamily`, `resolveGpuFamilyConcrete`) and of `resolveLatestBackendString` in
|
|
5
|
+
* `index.ts`.
|
|
6
|
+
*
|
|
7
|
+
* The Rust matrix (`determine_supported_backends`) and the "Latest <variant>" dropdown emit
|
|
8
|
+
* *minor-less* ids — `win-cuda-13-x64`, `win-cuda-12-x64`, `win-rocm-x64` — because ggml-org bumps
|
|
9
|
+
* the CUDA toolkit minor (13.1 → 13.3 → 13.x) and the HIP version (7.14 → 10.0) between releases.
|
|
10
|
+
* The concrete asset (`win-cuda-13.3-x64`, `win-rocm-10.0-x64`) is only known once the manifest is
|
|
11
|
+
* read, and is resolved here (ATO-105 / ATO-174).
|
|
12
|
+
*/
|
|
13
|
+
import type { BackendVersion } from '../types.js';
|
|
14
|
+
/** Minor-less Windows CUDA family id: `win-cuda-13-x64`, `win-cuda-12-x64`. */
|
|
15
|
+
export declare const WIN_CUDA_FAMILY_RE: RegExp;
|
|
16
|
+
/** Concrete Windows CUDA asset id: `win-cuda-12.4-x64`, `win-cuda-13.3-x64`. */
|
|
17
|
+
export declare const WINDOWS_CUDA_BACKEND_RE: RegExp;
|
|
18
|
+
/** HIP has no major to pin: one `win-rocm-<major>.<minor>-x64` asset per release, moved wholesale. */
|
|
19
|
+
export declare const WIN_ROCM_FAMILY_ID = "win-rocm-x64";
|
|
20
|
+
export declare const WIN_ROCM_CONCRETE_RE: RegExp;
|
|
21
|
+
/**
|
|
22
|
+
* The CUDA major (`"13"`, `"12"`) of a minor-less family id, or `null` when `backend` is not one.
|
|
23
|
+
* Concrete ids (`win-cuda-13.3-x64`) deliberately return `null` — they need no family resolution.
|
|
24
|
+
*/
|
|
25
|
+
export declare function cudaFamilyMajor(backend: string): string | null;
|
|
26
|
+
/**
|
|
27
|
+
* Regex matching every concrete asset id of a family id, with the version components captured so
|
|
28
|
+
* the newest can be picked. `null` when `familyBackend` is not a family id.
|
|
29
|
+
*/
|
|
30
|
+
export declare function gpuFamilyConcreteRe(familyBackend: string): RegExp | null;
|
|
31
|
+
/** True when `familyBackend` is one of the version-less family ids. */
|
|
32
|
+
export declare function isGpuFamilyId(backend: string): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* True when `concrete` (`win-cuda-13.3-x64`, `win-rocm-7.14-x64`) belongs to the family
|
|
35
|
+
* `familyBackend` (`win-cuda-13-x64`, `win-rocm-x64`). False for a non-family `familyBackend`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function isConcreteOfGpuFamily(familyBackend: string, concrete: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Newest concrete `<tag>/<backend>` of a family present in `remote` (`b10405/win-rocm-7.14-x64`),
|
|
40
|
+
* comparing the captured version numerically (`10.0` beats `7.14`). `null` when `familyBackend` is
|
|
41
|
+
* not a family id or no concrete asset is listed.
|
|
42
|
+
*/
|
|
43
|
+
export declare function resolveGpuFamilyConcrete(familyBackend: string, remote: BackendVersion[]): string | null;
|
|
44
|
+
/**
|
|
45
|
+
* CUDA toolkit version (`"13.3"`) of a concrete Windows CUDA backend id, or `null` for anything
|
|
46
|
+
* else (family ids included). The cudart companion archive and `is_cuda_installed` key off it.
|
|
47
|
+
*/
|
|
48
|
+
export declare function matchWindowsCudaBackend(backend: string): string | null;
|
|
49
|
+
/**
|
|
50
|
+
* Resolve a "Latest <variant>" sentinel's backend id to a concrete `<tag>/<backend>` from the
|
|
51
|
+
* remote catalog: an exact id match first, then the newest asset of its family. `null` when the
|
|
52
|
+
* catalog has nothing for it (app `resolveLatestBackendString`, minus the fetch and the logging).
|
|
53
|
+
*/
|
|
54
|
+
export declare function resolveLatestVersionBackend(backend: string, remote: BackendVersion[]): string | null;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version-less GPU family ids and their concrete assets. Port of the family helpers in
|
|
3
|
+
* `extensions/llamacpp-upstream-extension/src/backend.ts` (`cudaFamilyMajor`,
|
|
4
|
+
* `isConcreteOfGpuFamily`, `resolveGpuFamilyConcrete`) and of `resolveLatestBackendString` in
|
|
5
|
+
* `index.ts`.
|
|
6
|
+
*
|
|
7
|
+
* The Rust matrix (`determine_supported_backends`) and the "Latest <variant>" dropdown emit
|
|
8
|
+
* *minor-less* ids — `win-cuda-13-x64`, `win-cuda-12-x64`, `win-rocm-x64` — because ggml-org bumps
|
|
9
|
+
* the CUDA toolkit minor (13.1 → 13.3 → 13.x) and the HIP version (7.14 → 10.0) between releases.
|
|
10
|
+
* The concrete asset (`win-cuda-13.3-x64`, `win-rocm-10.0-x64`) is only known once the manifest is
|
|
11
|
+
* read, and is resolved here (ATO-105 / ATO-174).
|
|
12
|
+
*/
|
|
13
|
+
import { stripBom } from '../version.js';
|
|
14
|
+
/** Minor-less Windows CUDA family id: `win-cuda-13-x64`, `win-cuda-12-x64`. */
|
|
15
|
+
export const WIN_CUDA_FAMILY_RE = /^win-cuda-(\d+)-x64$/;
|
|
16
|
+
/** Concrete Windows CUDA asset id: `win-cuda-12.4-x64`, `win-cuda-13.3-x64`. */
|
|
17
|
+
export const WINDOWS_CUDA_BACKEND_RE = /^win-cuda-(12\.\d+|13\.\d+)-x64$/;
|
|
18
|
+
/** HIP has no major to pin: one `win-rocm-<major>.<minor>-x64` asset per release, moved wholesale. */
|
|
19
|
+
export const WIN_ROCM_FAMILY_ID = 'win-rocm-x64';
|
|
20
|
+
export const WIN_ROCM_CONCRETE_RE = /^win-rocm-(\d+)\.(\d+)-x64$/;
|
|
21
|
+
/**
|
|
22
|
+
* The CUDA major (`"13"`, `"12"`) of a minor-less family id, or `null` when `backend` is not one.
|
|
23
|
+
* Concrete ids (`win-cuda-13.3-x64`) deliberately return `null` — they need no family resolution.
|
|
24
|
+
*/
|
|
25
|
+
export function cudaFamilyMajor(backend) {
|
|
26
|
+
const m = WIN_CUDA_FAMILY_RE.exec(stripBom(backend));
|
|
27
|
+
return m ? (m[1] ?? null) : null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Regex matching every concrete asset id of a family id, with the version components captured so
|
|
31
|
+
* the newest can be picked. `null` when `familyBackend` is not a family id.
|
|
32
|
+
*/
|
|
33
|
+
export function gpuFamilyConcreteRe(familyBackend) {
|
|
34
|
+
const id = stripBom(familyBackend);
|
|
35
|
+
if (id === WIN_ROCM_FAMILY_ID)
|
|
36
|
+
return WIN_ROCM_CONCRETE_RE;
|
|
37
|
+
const major = cudaFamilyMajor(id);
|
|
38
|
+
return major ? new RegExp(`^win-cuda-(${major})\\.(\\d+)-x64$`) : null;
|
|
39
|
+
}
|
|
40
|
+
/** True when `familyBackend` is one of the version-less family ids. */
|
|
41
|
+
export function isGpuFamilyId(backend) {
|
|
42
|
+
return gpuFamilyConcreteRe(backend) !== null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* True when `concrete` (`win-cuda-13.3-x64`, `win-rocm-7.14-x64`) belongs to the family
|
|
46
|
+
* `familyBackend` (`win-cuda-13-x64`, `win-rocm-x64`). False for a non-family `familyBackend`.
|
|
47
|
+
*/
|
|
48
|
+
export function isConcreteOfGpuFamily(familyBackend, concrete) {
|
|
49
|
+
const re = gpuFamilyConcreteRe(familyBackend);
|
|
50
|
+
return re ? re.test(stripBom(concrete)) : false;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Newest concrete `<tag>/<backend>` of a family present in `remote` (`b10405/win-rocm-7.14-x64`),
|
|
54
|
+
* comparing the captured version numerically (`10.0` beats `7.14`). `null` when `familyBackend` is
|
|
55
|
+
* not a family id or no concrete asset is listed.
|
|
56
|
+
*/
|
|
57
|
+
export function resolveGpuFamilyConcrete(familyBackend, remote) {
|
|
58
|
+
const re = gpuFamilyConcreteRe(familyBackend);
|
|
59
|
+
if (!re)
|
|
60
|
+
return null;
|
|
61
|
+
let best = null;
|
|
62
|
+
for (const b of remote) {
|
|
63
|
+
const backendName = stripBom(b.backend);
|
|
64
|
+
const m = re.exec(backendName);
|
|
65
|
+
if (!m)
|
|
66
|
+
continue;
|
|
67
|
+
const rank = [parseInt(m[1] ?? '', 10), parseInt(m[2] ?? '', 10)];
|
|
68
|
+
if (!best || rank[0] > best.rank[0] || (rank[0] === best.rank[0] && rank[1] > best.rank[1])) {
|
|
69
|
+
best = { version: b.version, backend: backendName, rank };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return best ? `${best.version}/${best.backend}` : null;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* CUDA toolkit version (`"13.3"`) of a concrete Windows CUDA backend id, or `null` for anything
|
|
76
|
+
* else (family ids included). The cudart companion archive and `is_cuda_installed` key off it.
|
|
77
|
+
*/
|
|
78
|
+
export function matchWindowsCudaBackend(backend) {
|
|
79
|
+
const m = WINDOWS_CUDA_BACKEND_RE.exec(stripBom(backend));
|
|
80
|
+
return m ? (m[1] ?? null) : null;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Resolve a "Latest <variant>" sentinel's backend id to a concrete `<tag>/<backend>` from the
|
|
84
|
+
* remote catalog: an exact id match first, then the newest asset of its family. `null` when the
|
|
85
|
+
* catalog has nothing for it (app `resolveLatestBackendString`, minus the fetch and the logging).
|
|
86
|
+
*/
|
|
87
|
+
export function resolveLatestVersionBackend(backend, remote) {
|
|
88
|
+
const match = remote.find((b) => b.backend === backend);
|
|
89
|
+
if (match?.version)
|
|
90
|
+
return `${match.version}/${backend}`;
|
|
91
|
+
return resolveGpuFamilyConcrete(backend, remote);
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=cuda-family.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cuda-family.js","sourceRoot":"","sources":["../../../src/backend/catalog/cuda-family.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** The backend catalog: manifest + bundled baseline, archive naming, GPU family ids, legacy id migration. */
|
|
2
|
+
export * from './cuda-family.js';
|
|
3
|
+
export * from './archive.js';
|
|
4
|
+
export * from './manifest.js';
|
|
5
|
+
export * from './bundled-manifest-baseline.js';
|
|
6
|
+
export * from './migrate.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** The backend catalog: manifest + bundled baseline, archive naming, GPU family ids, legacy id migration. */
|
|
2
|
+
export * from './cuda-family.js';
|
|
3
|
+
export * from './archive.js';
|
|
4
|
+
export * from './manifest.js';
|
|
5
|
+
export * from './bundled-manifest-baseline.js';
|
|
6
|
+
export * from './migrate.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backend/catalog/index.ts"],"names":[],"mappings":"AAAA,6GAA6G;AAC7G,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,cAAc,CAAA"}
|