@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,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Post-download verification (size, then sha256). Port of `validate_downloaded_file` in
|
|
3
|
+
* `src-tauri/src/core/downloads/helpers.rs`. Messages are the app's user-facing strings.
|
|
4
|
+
*/
|
|
5
|
+
import { createHash } from 'node:crypto';
|
|
6
|
+
import { createReadStream } from 'node:fs';
|
|
7
|
+
import { stat } from 'node:fs/promises';
|
|
8
|
+
export const HASH_MISMATCH_MESSAGE = 'Hash verification failed. The downloaded file is corrupted or has been tampered with.';
|
|
9
|
+
export const VALIDATION_CANCELLED_MESSAGE = 'Validation cancelled';
|
|
10
|
+
/** Streaming SHA-256 (lowercase hex), abortable between chunks. */
|
|
11
|
+
export function sha256File(path, signal) {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
const hash = createHash('sha256');
|
|
14
|
+
const stream = createReadStream(path);
|
|
15
|
+
const onAbort = () => {
|
|
16
|
+
stream.destroy();
|
|
17
|
+
reject(new Error(VALIDATION_CANCELLED_MESSAGE));
|
|
18
|
+
};
|
|
19
|
+
if (signal?.aborted)
|
|
20
|
+
return onAbort();
|
|
21
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
22
|
+
stream.on('data', (chunk) => hash.update(chunk));
|
|
23
|
+
stream.on('error', (e) => {
|
|
24
|
+
signal?.removeEventListener('abort', onAbort);
|
|
25
|
+
reject(e);
|
|
26
|
+
});
|
|
27
|
+
stream.on('end', () => {
|
|
28
|
+
signal?.removeEventListener('abort', onAbort);
|
|
29
|
+
resolve(hash.digest('hex'));
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export const defaultVerifyDeps = {
|
|
34
|
+
fileSize: async (p) => (await stat(p)).size,
|
|
35
|
+
sha256: sha256File,
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Throws with the app's message on mismatch. Skips entirely when neither sha256 nor size is
|
|
39
|
+
* given; checks the size first (cheap), then the hash.
|
|
40
|
+
*/
|
|
41
|
+
export async function verifyDownloadedFile(item, savePath, deps = defaultVerifyDeps, signal) {
|
|
42
|
+
const hasSha = item.sha256 !== undefined && item.sha256 !== null;
|
|
43
|
+
const hasSize = item.size !== undefined && item.size !== null;
|
|
44
|
+
if (!hasSha && !hasSize)
|
|
45
|
+
return;
|
|
46
|
+
if (hasSize) {
|
|
47
|
+
let actual;
|
|
48
|
+
try {
|
|
49
|
+
actual = await deps.fileSize(savePath);
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
throw new Error(`Failed to verify file size: ${e.message}`);
|
|
53
|
+
}
|
|
54
|
+
if (actual !== item.size) {
|
|
55
|
+
throw new Error(`Size verification failed. Expected ${item.size} bytes but got ${actual} bytes.`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (signal?.aborted)
|
|
59
|
+
throw new Error(VALIDATION_CANCELLED_MESSAGE);
|
|
60
|
+
if (hasSha) {
|
|
61
|
+
let computed;
|
|
62
|
+
try {
|
|
63
|
+
computed = await deps.sha256(savePath, signal);
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
if (e.message === VALIDATION_CANCELLED_MESSAGE)
|
|
67
|
+
throw e;
|
|
68
|
+
throw new Error(`Failed to verify file integrity: ${e.message}`);
|
|
69
|
+
}
|
|
70
|
+
if (computed !== item.sha256)
|
|
71
|
+
throw new Error(HASH_MISMATCH_MESSAGE);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/downloads/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed event emitter over the `CoreEvents` catalog with a replay ring, so the SSE bridge can
|
|
3
|
+
* resume a client from a cursor (`id: <instance_id>:<seq>`, PLAN.md §3.5). Listeners that throw
|
|
4
|
+
* never break the emitter.
|
|
5
|
+
*/
|
|
6
|
+
import type { CoreEventName, CoreEventRecord, CoreEvents } from '../contracts/index.js';
|
|
7
|
+
export declare const REPLAY_RING_SIZE = 1000;
|
|
8
|
+
export type AnyListener = (record: CoreEventRecord) => void;
|
|
9
|
+
export interface CoreEmitterOptions {
|
|
10
|
+
instanceId: string;
|
|
11
|
+
now?: () => number;
|
|
12
|
+
ringSize?: number;
|
|
13
|
+
/** A listener threw: delivery goes on, but the throw is a defect worth reporting. */
|
|
14
|
+
onListenerError?: (event: CoreEventName, error: unknown) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare class CoreEmitter {
|
|
17
|
+
readonly instanceId: string;
|
|
18
|
+
private readonly inner;
|
|
19
|
+
private readonly anyListeners;
|
|
20
|
+
private readonly ring;
|
|
21
|
+
private readonly ringSize;
|
|
22
|
+
private readonly now;
|
|
23
|
+
private readonly onListenerError;
|
|
24
|
+
private seq;
|
|
25
|
+
constructor(options: CoreEmitterOptions);
|
|
26
|
+
/** Sequence number of the last emitted event (0 before any). */
|
|
27
|
+
get lastSeq(): number;
|
|
28
|
+
on<K extends CoreEventName>(name: K, listener: (payload: CoreEvents[K]) => void): () => void;
|
|
29
|
+
once<K extends CoreEventName>(name: K, listener: (payload: CoreEvents[K]) => void): () => void;
|
|
30
|
+
/** Receive every event as a serialisable record — used by the SSE and log bridges. */
|
|
31
|
+
onAny(listener: AnyListener): () => void;
|
|
32
|
+
emit<K extends CoreEventName>(name: K, payload: CoreEvents[K]): CoreEventRecord<K>;
|
|
33
|
+
/**
|
|
34
|
+
* Records after `afterSeq`, or `undefined` when they have fallen out of the ring (the client must
|
|
35
|
+
* resync from a fresh snapshot). `afterSeq = 0` replays everything still buffered only when the
|
|
36
|
+
* ring has never overflowed.
|
|
37
|
+
*/
|
|
38
|
+
replayAfter(afterSeq: number): CoreEventRecord[] | undefined;
|
|
39
|
+
private listenerFailed;
|
|
40
|
+
/** Cursor string a client hands back on reconnect. */
|
|
41
|
+
cursor(seq?: number): string;
|
|
42
|
+
/** Parse a cursor; `undefined` when it belongs to another instance or is malformed. */
|
|
43
|
+
parseCursor(cursor: string): number | undefined;
|
|
44
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed event emitter over the `CoreEvents` catalog with a replay ring, so the SSE bridge can
|
|
3
|
+
* resume a client from a cursor (`id: <instance_id>:<seq>`, PLAN.md §3.5). Listeners that throw
|
|
4
|
+
* never break the emitter.
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from 'node:events';
|
|
7
|
+
export const REPLAY_RING_SIZE = 1000;
|
|
8
|
+
export class CoreEmitter {
|
|
9
|
+
instanceId;
|
|
10
|
+
inner = new EventEmitter({ captureRejections: false });
|
|
11
|
+
anyListeners = new Set();
|
|
12
|
+
ring = [];
|
|
13
|
+
ringSize;
|
|
14
|
+
now;
|
|
15
|
+
onListenerError;
|
|
16
|
+
seq = 0;
|
|
17
|
+
constructor(options) {
|
|
18
|
+
this.instanceId = options.instanceId;
|
|
19
|
+
this.now = options.now ?? Date.now;
|
|
20
|
+
this.ringSize = options.ringSize ?? REPLAY_RING_SIZE;
|
|
21
|
+
this.onListenerError = options.onListenerError;
|
|
22
|
+
this.inner.setMaxListeners(0);
|
|
23
|
+
}
|
|
24
|
+
/** Sequence number of the last emitted event (0 before any). */
|
|
25
|
+
get lastSeq() {
|
|
26
|
+
return this.seq;
|
|
27
|
+
}
|
|
28
|
+
on(name, listener) {
|
|
29
|
+
const wrapped = (payload) => listener(payload);
|
|
30
|
+
this.inner.on(name, wrapped);
|
|
31
|
+
return () => this.inner.off(name, wrapped);
|
|
32
|
+
}
|
|
33
|
+
once(name, listener) {
|
|
34
|
+
const wrapped = (payload) => listener(payload);
|
|
35
|
+
this.inner.once(name, wrapped);
|
|
36
|
+
return () => this.inner.off(name, wrapped);
|
|
37
|
+
}
|
|
38
|
+
/** Receive every event as a serialisable record — used by the SSE and log bridges. */
|
|
39
|
+
onAny(listener) {
|
|
40
|
+
this.anyListeners.add(listener);
|
|
41
|
+
return () => {
|
|
42
|
+
this.anyListeners.delete(listener);
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
emit(name, payload) {
|
|
46
|
+
const record = { seq: ++this.seq, ts: this.now(), name, payload };
|
|
47
|
+
this.ring.push(record);
|
|
48
|
+
if (this.ring.length > this.ringSize)
|
|
49
|
+
this.ring.splice(0, this.ring.length - this.ringSize);
|
|
50
|
+
try {
|
|
51
|
+
this.inner.emit(name, payload);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
// A listener threw; the event is still recorded and delivered to the others.
|
|
55
|
+
this.listenerFailed(name, error);
|
|
56
|
+
}
|
|
57
|
+
for (const l of this.anyListeners) {
|
|
58
|
+
try {
|
|
59
|
+
l(record);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
// same: never let a bridge failure poison the emitter
|
|
63
|
+
this.listenerFailed(name, error);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return record;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Records after `afterSeq`, or `undefined` when they have fallen out of the ring (the client must
|
|
70
|
+
* resync from a fresh snapshot). `afterSeq = 0` replays everything still buffered only when the
|
|
71
|
+
* ring has never overflowed.
|
|
72
|
+
*/
|
|
73
|
+
replayAfter(afterSeq) {
|
|
74
|
+
const oldest = this.ring[0];
|
|
75
|
+
if (afterSeq >= this.seq)
|
|
76
|
+
return [];
|
|
77
|
+
if (oldest === undefined)
|
|
78
|
+
return afterSeq === 0 ? [] : undefined;
|
|
79
|
+
if (afterSeq < oldest.seq - 1)
|
|
80
|
+
return undefined;
|
|
81
|
+
return this.ring.filter((r) => r.seq > afterSeq);
|
|
82
|
+
}
|
|
83
|
+
listenerFailed(name, error) {
|
|
84
|
+
try {
|
|
85
|
+
this.onListenerError?.(name, error);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// reporting a listener failure must not become one
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/** Cursor string a client hands back on reconnect. */
|
|
92
|
+
cursor(seq = this.seq) {
|
|
93
|
+
return `${this.instanceId}:${seq}`;
|
|
94
|
+
}
|
|
95
|
+
/** Parse a cursor; `undefined` when it belongs to another instance or is malformed. */
|
|
96
|
+
parseCursor(cursor) {
|
|
97
|
+
const colon = cursor.lastIndexOf(':');
|
|
98
|
+
if (colon < 0 || cursor.slice(0, colon) !== this.instanceId)
|
|
99
|
+
return undefined;
|
|
100
|
+
const seq = Number(cursor.slice(colon + 1));
|
|
101
|
+
return Number.isInteger(seq) && seq >= 0 ? seq : undefined;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/events/emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SystemInfo / SystemUsage via system tools, supported-feature tiers, app-injected override.
|
|
3
|
+
*
|
|
4
|
+
* Ported from: src-tauri/plugins/tauri-plugin-hardware, backend.rs get_supported_features
|
|
5
|
+
* See PLAN.md §3.2. Public API of this module is exported from this file only.
|
|
6
|
+
*/
|
|
7
|
+
export * from './override.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SystemInfo / SystemUsage via system tools, supported-feature tiers, app-injected override.
|
|
3
|
+
*
|
|
4
|
+
* Ported from: src-tauri/plugins/tauri-plugin-hardware, backend.rs get_supported_features
|
|
5
|
+
* See PLAN.md §3.2. Public API of this module is exported from this file only.
|
|
6
|
+
*/
|
|
7
|
+
export * from './override.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hardware/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hardware facts the desktop app injects (PLAN.md §2 decision 10, risk 10).
|
|
3
|
+
*
|
|
4
|
+
* The core probes hardware with shell tools, which is enough to see that a GPU exists and roughly
|
|
5
|
+
* what it is. It is not enough to see an NVIDIA driver's exact version or a GPU's compute
|
|
6
|
+
* capability — those come from NVML and from a Vulkan enumeration, both of which need native
|
|
7
|
+
* libraries the core deliberately does not link. Getting them wrong is not cosmetic: the CUDA tier
|
|
8
|
+
* a backend is chosen from is decided by exactly those numbers, and on Windows the only signal for
|
|
9
|
+
* an AMD gfx target is a PCI device id from Vulkan.
|
|
10
|
+
*
|
|
11
|
+
* So the app, which already has `tauri-plugin-hardware`, hands the core what it measured, and the
|
|
12
|
+
* core prefers it over its own probe. The rule is one-directional: an override replaces the probe
|
|
13
|
+
* for as long as it stands, and the core never merges the two — a half-probed, half-injected GPU
|
|
14
|
+
* list would be a third description of the machine that matches neither side.
|
|
15
|
+
*
|
|
16
|
+
* Not persisted, on purpose. Hardware changes between runs (an eGPU, a driver update, a different
|
|
17
|
+
* machine reading the same data folder over a network share), and a stale file claiming a GPU that
|
|
18
|
+
* is no longer there would pick a backend that cannot start. The app re-injects on every attach.
|
|
19
|
+
*/
|
|
20
|
+
import type { GpuProbeInfo, HardwareOverride, HardwareOverrideInput } from '../contracts/index.js';
|
|
21
|
+
/** Wire types live in `contracts/hardware.ts`; re-exported so existing imports keep working. */
|
|
22
|
+
export type { HardwareOverride, HardwareOverrideInput } from '../contracts/index.js';
|
|
23
|
+
/**
|
|
24
|
+
* The override currently in force, if any.
|
|
25
|
+
*
|
|
26
|
+
* One per core process, held in memory. Reading it is how the backend selection path asks "do I
|
|
27
|
+
* have better numbers than my own probe?".
|
|
28
|
+
*/
|
|
29
|
+
export declare class HardwareOverrideStore {
|
|
30
|
+
private readonly now;
|
|
31
|
+
private current;
|
|
32
|
+
constructor(now?: () => number);
|
|
33
|
+
get(): HardwareOverride | undefined;
|
|
34
|
+
/** GPUs to use for backend selection: the override's when there is one, otherwise the probe's. */
|
|
35
|
+
gpus(probed: readonly GpuProbeInfo[]): GpuProbeInfo[];
|
|
36
|
+
cpuExtensions(probed: readonly string[]): string[];
|
|
37
|
+
/**
|
|
38
|
+
* Accept an injection.
|
|
39
|
+
*
|
|
40
|
+
* A malformed payload is rejected rather than partly applied: this replaces the core's own view
|
|
41
|
+
* of the machine, and a half-read GPU list is worse than no override at all.
|
|
42
|
+
*/
|
|
43
|
+
set(input: HardwareOverrideInput): HardwareOverride;
|
|
44
|
+
/** Drop the override and go back to the core's own probe. */
|
|
45
|
+
clear(): boolean;
|
|
46
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hardware facts the desktop app injects (PLAN.md §2 decision 10, risk 10).
|
|
3
|
+
*
|
|
4
|
+
* The core probes hardware with shell tools, which is enough to see that a GPU exists and roughly
|
|
5
|
+
* what it is. It is not enough to see an NVIDIA driver's exact version or a GPU's compute
|
|
6
|
+
* capability — those come from NVML and from a Vulkan enumeration, both of which need native
|
|
7
|
+
* libraries the core deliberately does not link. Getting them wrong is not cosmetic: the CUDA tier
|
|
8
|
+
* a backend is chosen from is decided by exactly those numbers, and on Windows the only signal for
|
|
9
|
+
* an AMD gfx target is a PCI device id from Vulkan.
|
|
10
|
+
*
|
|
11
|
+
* So the app, which already has `tauri-plugin-hardware`, hands the core what it measured, and the
|
|
12
|
+
* core prefers it over its own probe. The rule is one-directional: an override replaces the probe
|
|
13
|
+
* for as long as it stands, and the core never merges the two — a half-probed, half-injected GPU
|
|
14
|
+
* list would be a third description of the machine that matches neither side.
|
|
15
|
+
*
|
|
16
|
+
* Not persisted, on purpose. Hardware changes between runs (an eGPU, a driver update, a different
|
|
17
|
+
* machine reading the same data folder over a network share), and a stale file claiming a GPU that
|
|
18
|
+
* is no longer there would pick a backend that cannot start. The app re-injects on every attach.
|
|
19
|
+
*/
|
|
20
|
+
import { AtomicCoreError } from '../contracts/index.js';
|
|
21
|
+
/**
|
|
22
|
+
* The override currently in force, if any.
|
|
23
|
+
*
|
|
24
|
+
* One per core process, held in memory. Reading it is how the backend selection path asks "do I
|
|
25
|
+
* have better numbers than my own probe?".
|
|
26
|
+
*/
|
|
27
|
+
export class HardwareOverrideStore {
|
|
28
|
+
now;
|
|
29
|
+
current;
|
|
30
|
+
constructor(now = Date.now) {
|
|
31
|
+
this.now = now;
|
|
32
|
+
}
|
|
33
|
+
get() {
|
|
34
|
+
return this.current ? structuredClone(this.current) : undefined;
|
|
35
|
+
}
|
|
36
|
+
/** GPUs to use for backend selection: the override's when there is one, otherwise the probe's. */
|
|
37
|
+
gpus(probed) {
|
|
38
|
+
return this.current ? structuredClone(this.current.gpus) : [...probed];
|
|
39
|
+
}
|
|
40
|
+
cpuExtensions(probed) {
|
|
41
|
+
return this.current?.cpu_extensions ? [...this.current.cpu_extensions] : [...probed];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Accept an injection.
|
|
45
|
+
*
|
|
46
|
+
* A malformed payload is rejected rather than partly applied: this replaces the core's own view
|
|
47
|
+
* of the machine, and a half-read GPU list is worse than no override at all.
|
|
48
|
+
*/
|
|
49
|
+
set(input) {
|
|
50
|
+
if (!Array.isArray(input.gpus))
|
|
51
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', 'A hardware override needs a `gpus` array.', 'send the list from tauri-plugin-hardware, empty when the machine has no GPU');
|
|
52
|
+
const gpus = input.gpus.map((gpu, index) => {
|
|
53
|
+
if (!gpu || typeof gpu !== 'object' || Array.isArray(gpu))
|
|
54
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', `gpus[${index}] is not an object`);
|
|
55
|
+
return gpu;
|
|
56
|
+
});
|
|
57
|
+
const extensions = input.cpu_extensions === undefined
|
|
58
|
+
? undefined
|
|
59
|
+
: toStringArray(input.cpu_extensions, 'cpu_extensions').map((value) => value.toLowerCase());
|
|
60
|
+
this.current = {
|
|
61
|
+
gpus,
|
|
62
|
+
...(extensions ? { cpu_extensions: extensions } : {}),
|
|
63
|
+
...(typeof input.os_type === 'string' ? { os_type: input.os_type } : {}),
|
|
64
|
+
...(typeof input.source === 'string' ? { source: input.source } : {}),
|
|
65
|
+
received_at: this.now(),
|
|
66
|
+
};
|
|
67
|
+
return structuredClone(this.current);
|
|
68
|
+
}
|
|
69
|
+
/** Drop the override and go back to the core's own probe. */
|
|
70
|
+
clear() {
|
|
71
|
+
const had = this.current !== undefined;
|
|
72
|
+
this.current = undefined;
|
|
73
|
+
return had;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function toStringArray(value, field) {
|
|
77
|
+
if (!Array.isArray(value) || value.some((entry) => typeof entry !== 'string'))
|
|
78
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', `${field} must be an array of strings`);
|
|
79
|
+
return value;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=override.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override.js","sourceRoot":"","sources":["../../src/hardware/override.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host entry (`atomic-chat-core/host`): what a program that *runs* the core needs beyond the
|
|
3
|
+
* `AtomicCore` facade. A host owns a data folder, finds or starts the daemon that owns it, reads the
|
|
4
|
+
* lock and the control token, and reports its own crashes — the CLI in `src/cli/` does exactly this,
|
|
5
|
+
* and an external host (the `atc` server CLI) must do it the same way rather than re-implement the
|
|
6
|
+
* lock semantics.
|
|
7
|
+
*
|
|
8
|
+
* Node-only, unlike `./client` and `./contracts`. Nothing here is new behaviour: every symbol is
|
|
9
|
+
* the public API of a module that already existed; this file only makes it reachable from outside
|
|
10
|
+
* the package.
|
|
11
|
+
*/
|
|
12
|
+
export * from '../config/index.js';
|
|
13
|
+
export * from '../lock/index.js';
|
|
14
|
+
export * from '../cli/index.js';
|
|
15
|
+
export * from '../telemetry/index.js';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host entry (`atomic-chat-core/host`): what a program that *runs* the core needs beyond the
|
|
3
|
+
* `AtomicCore` facade. A host owns a data folder, finds or starts the daemon that owns it, reads the
|
|
4
|
+
* lock and the control token, and reports its own crashes — the CLI in `src/cli/` does exactly this,
|
|
5
|
+
* and an external host (the `atc` server CLI) must do it the same way rather than re-implement the
|
|
6
|
+
* lock semantics.
|
|
7
|
+
*
|
|
8
|
+
* Node-only, unlike `./client` and `./contracts`. Nothing here is new behaviour: every symbol is
|
|
9
|
+
* the public API of a module that already existed; this file only makes it reachable from outside
|
|
10
|
+
* the package.
|
|
11
|
+
*/
|
|
12
|
+
export * from '../config/index.js';
|
|
13
|
+
export * from '../lock/index.js';
|
|
14
|
+
export * from '../cli/index.js';
|
|
15
|
+
export * from '../telemetry/index.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The coding agents `launch` can wire to a local model — a port of
|
|
3
|
+
* `src-tauri/src/core/cli/integrations.rs`, which itself mirrors
|
|
4
|
+
* `web-app/src/constants/integrations.ts` so the CLI and the desktop Launch page configure the same
|
|
5
|
+
* set in the same order. The three GUI editors in the web list (`vscode`, `jetbrains`, `xcode`) are
|
|
6
|
+
* absent on purpose: they keep their provider in IDE storage with no writable config file.
|
|
7
|
+
*
|
|
8
|
+
* Order is contract: the app's drift test compares this list against the TypeScript source
|
|
9
|
+
* position by position, and `tests/cli-launch-catalog.test.mjs` compares it against the CLI.
|
|
10
|
+
*/
|
|
11
|
+
export type RunMode =
|
|
12
|
+
/** A terminal program: run it in the foreground and keep the model up exactly as long as it runs. */
|
|
13
|
+
'terminal'
|
|
14
|
+
/** A GUI app: the launcher returns at once, so the model stays up until Ctrl+C. */
|
|
15
|
+
| 'gui';
|
|
16
|
+
export interface Agent {
|
|
17
|
+
/** Stable id, identical to the one in `integrations.ts`. */
|
|
18
|
+
id: string;
|
|
19
|
+
/** Display name (product names are not localised). */
|
|
20
|
+
name: string;
|
|
21
|
+
/** Binary probed on PATH, and the program we execute. */
|
|
22
|
+
detectBin: string;
|
|
23
|
+
/** Extra names accepted on the command line. */
|
|
24
|
+
aliases: readonly string[];
|
|
25
|
+
/** Whether a model id must be resolved before the agent can be configured. */
|
|
26
|
+
requiresModel: boolean;
|
|
27
|
+
/** Pass the endpoint WITH the API prefix (`/v1`). Claude Code and Goose append their own path. */
|
|
28
|
+
endpointWithPrefix: boolean;
|
|
29
|
+
docsUrl: string;
|
|
30
|
+
/** Argv appended after `detectBin` so the user lands in a session, not a help screen. */
|
|
31
|
+
runArgs: readonly string[];
|
|
32
|
+
runMode: RunMode;
|
|
33
|
+
}
|
|
34
|
+
/** Hermes Agent refuses to start below a 64K context window. Matches the Launch page. */
|
|
35
|
+
export declare const HERMES_CONTEXT_LENGTH = 65536;
|
|
36
|
+
export declare const AGENTS: readonly Agent[];
|
|
37
|
+
/** Look an agent up by id, binary name, or alias. Case-insensitive. */
|
|
38
|
+
export declare function findAgent(name: string): Agent | undefined;
|
|
39
|
+
/** The endpoint an agent is pointed at: the base URL, plus the prefix only when it expects one. */
|
|
40
|
+
export declare function apiUrlFor(agent: Agent, baseUrl: string, prefix: string): string;
|
|
41
|
+
/**
|
|
42
|
+
* Provider credentials in the ambient environment that would override the config we just wrote.
|
|
43
|
+
* Cleared on the child before launching, or the agent quietly talks to a cloud provider instead.
|
|
44
|
+
*/
|
|
45
|
+
export declare const CONFLICTING_PROVIDER_ENV: readonly string[];
|
|
46
|
+
/**
|
|
47
|
+
* Environment the spawned agent needs on top of its config file. Five agents are configured purely
|
|
48
|
+
* through environment variables that `configure_*` persists to the user's shell rc — that file is
|
|
49
|
+
* not live in a process we are about to spawn, so the same variables are set on the child.
|
|
50
|
+
*/
|
|
51
|
+
export declare function childEnv(agent: Agent, apiUrl: string, model: string, apiKey: string): Record<string, string>;
|
|
52
|
+
/** Poolside wants the root without `/v1`; it appends its own paths. */
|
|
53
|
+
export declare function poolsideStandaloneBaseUrl(apiUrl: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Launchers that installers drop outside PATH. OpenClaw's installer writes into `~/.openclaw/bin`
|
|
56
|
+
* or `~/.local/bin` (or `$OPENCLAW_PREFIX`), which a login shell may not have on PATH yet. ZCode is a
|
|
57
|
+
* desktop app that puts nothing on PATH outside Linux, so its candidates are the executables its
|
|
58
|
+
* installers write. Every other agent installs onto PATH, and guessing would only produce false
|
|
59
|
+
* positives.
|
|
60
|
+
*/
|
|
61
|
+
export declare function offPathCandidates(bin: string, home: string | undefined, env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): string[];
|
|
62
|
+
/**
|
|
63
|
+
* `launch` runs a bare llama-server, and Muse Code fetches `/muse-code/models` before its first
|
|
64
|
+
* turn — a catalogue only the desktop app's Local API Server serves. Refusing up front beats
|
|
65
|
+
* loading a model and handing the user Muse's own opaque failure.
|
|
66
|
+
*/
|
|
67
|
+
export declare const MUSE_CLI_REFUSAL: string[];
|