@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,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZCode (github.com/zai-org/ZCode) is Z.ai's Electron desktop app. It ignores `OPENAI_BASE_URL` and
|
|
3
|
+
* friends: the only source of custom providers is `<dataBase>/.zcode/v2/provider_config.json`,
|
|
4
|
+
* shared by the desktop app, its web UI and its CLI, and polled once a second — so writing that file
|
|
5
|
+
* is the whole integration, and a running ZCode picks the change up by itself. Port of
|
|
6
|
+
* `configure_zcode` in the app's `core/system/commands.rs` (commit `ec1fd3ea7`).
|
|
7
|
+
*
|
|
8
|
+
* The file is validated with strict Zod schemas, and an invalid file is not rejected loudly: ZCode
|
|
9
|
+
* treats it as empty, so every custom provider the user has silently disappears until it is fixed.
|
|
10
|
+
* Hence the care below — patch only the entries we own, refuse rather than guess on anything
|
|
11
|
+
* unexpected, and write under ZCode's own lock with a rename.
|
|
12
|
+
*/
|
|
13
|
+
import { mkdir, readdir, realpath, rm, rmdir, stat, writeFile } from 'node:fs/promises';
|
|
14
|
+
import { join } from 'node:path';
|
|
15
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
16
|
+
import { canonicalJson } from '../config-io.js';
|
|
17
|
+
import { registerWriter } from './registry.js';
|
|
18
|
+
/** Provider id we own inside `provider_config.json`; personal ids may be anything but `account:*`. */
|
|
19
|
+
export const ZCODE_PROVIDER_ID = 'atomic-chat';
|
|
20
|
+
const ZCODE_PROVIDER_NAME = 'Atomic Chat';
|
|
21
|
+
/** ZCode only admits a provider whose API key is non-blank; the local server ignores it when auth is off. */
|
|
22
|
+
export const ZCODE_KEY_PLACEHOLDER = 'atomic';
|
|
23
|
+
/**
|
|
24
|
+
* ZCode assumes 200K of context for any model it does not recognise — a wild over-claim for a local
|
|
25
|
+
* model, which then never compacts and overflows mid-turn.
|
|
26
|
+
*/
|
|
27
|
+
export const ZCODE_CONTEXT_WINDOW = 65_536;
|
|
28
|
+
const ZCODE_MAX_OUTPUT_TOKENS = 8_192;
|
|
29
|
+
/**
|
|
30
|
+
* ZCode's default request mapping sends `thinking`, `enable_thinking`, `reasoning_effort` and
|
|
31
|
+
* `reasoning`, none of which llama-server reads. It does read `chat_template_kwargs`, and
|
|
32
|
+
* `enable_thinking` is the switch the Qwen3 / GLM / DeepSeek templates expose.
|
|
33
|
+
*/
|
|
34
|
+
export const ZCODE_REASONING_MAP = '{"chat_template_kwargs": {"enable_thinking": reasoningLevel == "enabled"}}';
|
|
35
|
+
/** `max_completion_tokens` (ZCode's default) is OpenAI-only; `max_tokens` is what local backends read. */
|
|
36
|
+
const ZCODE_MAX_TOKENS_MAP = "{'max_tokens': maxOutputTokens}";
|
|
37
|
+
/** ZCode's own writers wait up to 8 s for the lock. */
|
|
38
|
+
export const ZCODE_LOCK_MAX_WAIT_MS = 8_000;
|
|
39
|
+
/** A ZCode write holds the lock for milliseconds; one this old was left by a process that died. */
|
|
40
|
+
export const ZCODE_LOCK_STALE_AFTER_MS = 60_000;
|
|
41
|
+
const LOCK_RETRY_DELAYS_MS = [25, 50, 100, 200, 400];
|
|
42
|
+
const refuse = (message, details) => new AtomicCoreError('IO_ERROR', message, details);
|
|
43
|
+
const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
44
|
+
/**
|
|
45
|
+
* ZCode's `.zcode/v2` directory, resolved the way the desktop app does it: `dataBaseDir` from
|
|
46
|
+
* `~/.zcode/v2/setting.json` (set when the user moves the data folder in ZCode), then
|
|
47
|
+
* `$ZCODE_DATA_BASE_DIR`, then home. Absolute.
|
|
48
|
+
*/
|
|
49
|
+
export async function zcodeConfigDir(fs, envBase) {
|
|
50
|
+
let fromSetting;
|
|
51
|
+
const text = await fs.read('.zcode/v2/setting.json');
|
|
52
|
+
if (text !== undefined) {
|
|
53
|
+
try {
|
|
54
|
+
const parsed = JSON.parse(text);
|
|
55
|
+
const dir = isObject(parsed) ? parsed['dataBaseDir'] : undefined;
|
|
56
|
+
if (typeof dir === 'string' && dir.trim() !== '')
|
|
57
|
+
fromSetting = dir.trim();
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// An unreadable setting.json is ZCode's to repair; its default location still applies.
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const fromEnv = envBase?.trim() ? envBase.trim() : undefined;
|
|
64
|
+
return join(fromSetting ?? fromEnv ?? fs.home, '.zcode', 'v2');
|
|
65
|
+
}
|
|
66
|
+
/** `parent[key]` as an array, created when absent; a value of another type is refused, never replaced. */
|
|
67
|
+
function arrayAt(parent, key, path) {
|
|
68
|
+
if (parent[key] === undefined)
|
|
69
|
+
parent[key] = [];
|
|
70
|
+
const value = parent[key];
|
|
71
|
+
if (!Array.isArray(value))
|
|
72
|
+
throw refuse(`${path} in provider_config.json is not an array`);
|
|
73
|
+
return value;
|
|
74
|
+
}
|
|
75
|
+
/** `parent[key]` as an object, created when absent. */
|
|
76
|
+
function objectAt(parent, key, path) {
|
|
77
|
+
if (parent[key] === undefined)
|
|
78
|
+
parent[key] = {};
|
|
79
|
+
const value = parent[key];
|
|
80
|
+
if (!isObject(value))
|
|
81
|
+
throw refuse(`${path} in provider_config.json is not an object`);
|
|
82
|
+
return value;
|
|
83
|
+
}
|
|
84
|
+
const isOurs = (rule) => isObject(rule) && rule['providerId'] === ZCODE_PROVIDER_ID;
|
|
85
|
+
/**
|
|
86
|
+
* Apply Atomic Chat's provider, its model rule and the default selection to a parsed
|
|
87
|
+
* `provider_config.json` (`undefined` when the file does not exist yet). Only entries whose
|
|
88
|
+
* `providerId` is ours are replaced; every other provider, rule and key is carried over untouched.
|
|
89
|
+
*/
|
|
90
|
+
export function zcodePatchProviderConfig(existing, apiUrl, model, apiKey) {
|
|
91
|
+
const modelId = model.trim();
|
|
92
|
+
if (modelId === '')
|
|
93
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', 'ZCode needs a model: load one in a chat first.');
|
|
94
|
+
const key = apiKey?.trim() ? apiKey.trim() : ZCODE_KEY_PLACEHOLDER;
|
|
95
|
+
const root = existing === undefined ? { schemaVersion: 1 } : structuredClone(existing);
|
|
96
|
+
if (!isObject(root))
|
|
97
|
+
throw refuse('provider_config.json is not a JSON object');
|
|
98
|
+
// ZCode refuses a file without a version, and one newer than it knows. We know exactly one shape.
|
|
99
|
+
const version = root['schemaVersion'];
|
|
100
|
+
if (version === undefined || typeof version !== 'number' || !Number.isInteger(version) || version < 0)
|
|
101
|
+
throw refuse("ZCode's provider_config.json has no schemaVersion, so ZCode is ignoring it. Open Model Settings in ZCode to repair it, then try again.");
|
|
102
|
+
if (version !== 1)
|
|
103
|
+
throw refuse(`ZCode's provider_config.json uses schemaVersion ${version}, which this version of Atomic Chat does not know. Update Atomic Chat, or add the provider in ZCode's Model Settings.`);
|
|
104
|
+
const config = objectAt(root, 'config', 'config');
|
|
105
|
+
const provider = {
|
|
106
|
+
providerId: ZCODE_PROVIDER_ID,
|
|
107
|
+
providerName: ZCODE_PROVIDER_NAME,
|
|
108
|
+
enabled: true,
|
|
109
|
+
config: {
|
|
110
|
+
group: 'standard-personal',
|
|
111
|
+
access: { type: 'api-key', apiKey: key },
|
|
112
|
+
api: { type: 'openai-chat-completions', baseUrl: apiUrl, headers: null },
|
|
113
|
+
// Local servers expose no catalogue ZCode can discover: the provider lists the model Run was
|
|
114
|
+
// pressed for.
|
|
115
|
+
personalModelIds: [modelId],
|
|
116
|
+
modelOrder: [modelId],
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
const providerRules = arrayAt(objectAt(config, 'providerConfigRules', 'config.providerConfigRules'), 'providerRules', 'config.providerConfigRules.providerRules');
|
|
120
|
+
const existingAt = providerRules.findIndex(isOurs);
|
|
121
|
+
if (existingAt >= 0)
|
|
122
|
+
providerRules[existingAt] = provider;
|
|
123
|
+
else
|
|
124
|
+
providerRules.push(provider);
|
|
125
|
+
// `providerOrder` is optional and ZCode appends unlisted providers itself; only an existing list
|
|
126
|
+
// needs us added — at the top, where Run expects us.
|
|
127
|
+
if (config['providerOrder'] !== undefined) {
|
|
128
|
+
const order = arrayAt(config, 'providerOrder', 'config.providerOrder');
|
|
129
|
+
if (!order.includes(ZCODE_PROVIDER_ID))
|
|
130
|
+
order.unshift(ZCODE_PROVIDER_ID);
|
|
131
|
+
}
|
|
132
|
+
const modelRules = objectAt(config, 'modelConfigRules', 'config.modelConfigRules');
|
|
133
|
+
// ZCode rejects the whole file when one provider/model pair has both a regular and a manual rule,
|
|
134
|
+
// and its Advanced model settings write manual ones: drop ours from both lists first.
|
|
135
|
+
const manual = arrayAt(modelRules, 'manualProviderModelRules', 'config.modelConfigRules.manualProviderModelRules');
|
|
136
|
+
modelRules['manualProviderModelRules'] = manual.filter((rule) => !isOurs(rule));
|
|
137
|
+
const rules = arrayAt(modelRules, 'providerModelRules', 'config.modelConfigRules.providerModelRules');
|
|
138
|
+
modelRules['providerModelRules'] = [
|
|
139
|
+
...rules.filter((rule) => !isOurs(rule)),
|
|
140
|
+
{
|
|
141
|
+
providerId: ZCODE_PROVIDER_ID,
|
|
142
|
+
modelId,
|
|
143
|
+
config: {
|
|
144
|
+
properties: {
|
|
145
|
+
contextWindow: ZCODE_CONTEXT_WINDOW,
|
|
146
|
+
// An id matching one of ZCode's vision patterns would otherwise claim image input.
|
|
147
|
+
inputFormat: { supportsImage: false },
|
|
148
|
+
},
|
|
149
|
+
optionSpecs: {
|
|
150
|
+
maxOutputTokens: { max: ZCODE_MAX_OUTPUT_TOKENS, map: ZCODE_MAX_TOKENS_MAP },
|
|
151
|
+
reasoningLevel: { values: ['disabled', 'enabled'], map: ZCODE_REASONING_MAP },
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
];
|
|
156
|
+
// A selection names a reasoning level the model allows; `enabled` is what ZCode itself picks.
|
|
157
|
+
config['defaultModelSelection'] = {
|
|
158
|
+
providerId: ZCODE_PROVIDER_ID,
|
|
159
|
+
modelId,
|
|
160
|
+
options: { reasoningLevel: 'enabled' },
|
|
161
|
+
};
|
|
162
|
+
return root;
|
|
163
|
+
}
|
|
164
|
+
const errnoCode = (error) => error?.code;
|
|
165
|
+
/** Whether a lock directory was left behind, judged by its newest entry; a future time reads as new. */
|
|
166
|
+
async function lockIsStale(dir, staleAfterMs, now) {
|
|
167
|
+
let newest = await stat(dir).then((s) => s.mtimeMs, () => undefined);
|
|
168
|
+
const names = await readdir(dir).catch(() => []);
|
|
169
|
+
for (const name of names) {
|
|
170
|
+
const mtime = await stat(join(dir, name)).then((s) => s.mtimeMs, () => undefined);
|
|
171
|
+
if (mtime !== undefined)
|
|
172
|
+
newest = Math.max(newest ?? mtime, mtime);
|
|
173
|
+
}
|
|
174
|
+
return newest !== undefined && now - newest >= staleAfterMs;
|
|
175
|
+
}
|
|
176
|
+
/** Remove an abandoned lock directory; whether it is gone. */
|
|
177
|
+
async function removeLock(dir) {
|
|
178
|
+
for (const name of await readdir(dir).catch(() => []))
|
|
179
|
+
await rm(join(dir, name), { force: true }).catch(() => { });
|
|
180
|
+
return rmdir(dir).then(() => true, () => false);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* ZCode's lock around a config file (`packages/shared/src/node/atomicFileLock.ts`): a `<file>.lock`
|
|
184
|
+
* directory holding one `owner-<token>.json`. Taking it keeps a Run from interleaving with a save in
|
|
185
|
+
* ZCode's own settings. Resolves with the release.
|
|
186
|
+
*/
|
|
187
|
+
export async function acquireZcodeLock(file, maxWaitMs, staleAfterMs, deps = {}) {
|
|
188
|
+
const now = deps.now ?? Date.now;
|
|
189
|
+
const sleep = deps.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
190
|
+
const dir = `${file}.lock`;
|
|
191
|
+
const started = now();
|
|
192
|
+
for (let attempt = 0;;) {
|
|
193
|
+
try {
|
|
194
|
+
await mkdir(dir);
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
if (errnoCode(error) !== 'EEXIST')
|
|
198
|
+
throw refuse(`Failed to lock ${file}`, error instanceof Error ? error.message : String(error));
|
|
199
|
+
// A lock that cannot be removed falls through to the timeout instead of a tight loop.
|
|
200
|
+
if ((await lockIsStale(dir, staleAfterMs, now())) && (await removeLock(dir)))
|
|
201
|
+
continue;
|
|
202
|
+
if (now() - started >= maxWaitMs)
|
|
203
|
+
throw refuse('ZCode is saving its model settings right now. Try again in a moment.');
|
|
204
|
+
await sleep(LOCK_RETRY_DELAYS_MS[Math.min(attempt, LOCK_RETRY_DELAYS_MS.length - 1)]);
|
|
205
|
+
attempt += 1;
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
const createdAt = now();
|
|
209
|
+
const token = `${process.pid}-${createdAt}-atomic-chat`;
|
|
210
|
+
const owner = join(dir, `owner-${token}.json`);
|
|
211
|
+
const release = async () => {
|
|
212
|
+
await rm(owner, { force: true }).catch(() => { });
|
|
213
|
+
await rmdir(dir).catch(() => { });
|
|
214
|
+
};
|
|
215
|
+
try {
|
|
216
|
+
await writeFile(owner, `${JSON.stringify({ pid: process.pid, createdAt, token })}\n`);
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
await release();
|
|
220
|
+
throw refuse(`Failed to write ${owner}`, error instanceof Error ? error.message : String(error));
|
|
221
|
+
}
|
|
222
|
+
return release;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/** The filesystem half of the writer, on a resolved `.zcode/v2` directory. */
|
|
226
|
+
export async function configureZcodeIn(fs, dir, apiUrl, model, apiKey, lockDeps = {}) {
|
|
227
|
+
const path = join(dir, 'provider_config.json');
|
|
228
|
+
// ZCode imports the providers of its pre-3.x `config.json` once, on the first start that finds no
|
|
229
|
+
// `provider_config.json`. Creating that file first would skip the import for good.
|
|
230
|
+
if (!(await fs.exists(path)) && (await fs.exists(join(dir, 'config.json'))))
|
|
231
|
+
throw refuse('Open ZCode once so it can import your existing model providers, then click Run again.');
|
|
232
|
+
await fs.mkdirp(dir);
|
|
233
|
+
const release = await acquireZcodeLock(path, lockDeps.maxWaitMs ?? ZCODE_LOCK_MAX_WAIT_MS, lockDeps.staleAfterMs ?? ZCODE_LOCK_STALE_AFTER_MS, lockDeps);
|
|
234
|
+
try {
|
|
235
|
+
const text = (await fs.read(path)) ?? '';
|
|
236
|
+
let existing;
|
|
237
|
+
if (text.trim() !== '') {
|
|
238
|
+
try {
|
|
239
|
+
existing = JSON.parse(text);
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
throw refuse(`Could not parse ${path}: ${error instanceof Error ? error.message : String(error)}. ZCode ignores the file while it is invalid, so fix or remove it and try again.`);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
const patched = zcodePatchProviderConfig(existing, apiUrl, model, apiKey);
|
|
246
|
+
// A file ZCode cannot validate costs the user every custom provider, so keep the pre-Atomic
|
|
247
|
+
// version once. It holds their API keys too, hence owner-only like the file itself.
|
|
248
|
+
const backup = join(dir, 'provider_config.json.atomic-backup');
|
|
249
|
+
if (text.trim() !== '' && !(await fs.exists(backup)))
|
|
250
|
+
await fs.write(backup, text, { mode: 0o600 }).catch(() => { });
|
|
251
|
+
// Renaming onto a symlink would replace it with a regular file and detach a managed dotfile.
|
|
252
|
+
const target = await realpath(path).catch(() => path);
|
|
253
|
+
await fs.write(target, canonicalJson(patched), { mode: 0o600 });
|
|
254
|
+
}
|
|
255
|
+
finally {
|
|
256
|
+
await release();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
registerWriter('zcode', async (input) => configureZcodeIn(input.fs, await zcodeConfigDir(input.fs, input.env['ZCODE_DATA_BASE_DIR']), input.apiUrl, input.model, input.apiKey));
|
|
260
|
+
//# sourceMappingURL=zcode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zcode.js","sourceRoot":"","sources":["../../../src/integrations/configure/zcode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zed — `~/.config/zed/settings.json`.
|
|
3
|
+
*
|
|
4
|
+
* Port of `configure_zed` in `src-tauri/src/core/system/commands.rs`. Zed keeps custom endpoints
|
|
5
|
+
* under `language_models.openai_compatible.<provider name>`, and the provider name doubles as the
|
|
6
|
+
* id the agent's default-model selector refers to, hence the space in `"Atomic Chat"`.
|
|
7
|
+
*
|
|
8
|
+
* Two things are deliberate:
|
|
9
|
+
* - The API key is never persisted. Zed reads it from its keychain or from `ATOMIC_CHAT_API_KEY`,
|
|
10
|
+
* so `apiKey` is accepted for call-site symmetry and ignored.
|
|
11
|
+
* - Zed has no model discovery for these providers, so the running model is advertised
|
|
12
|
+
* explicitly. With no model loaded the provider is still registered, with an empty model list,
|
|
13
|
+
* so it shows up in Zed's UI — but `agent.default_model` is then left untouched.
|
|
14
|
+
*/
|
|
15
|
+
import type { ConfigureInput } from './registry.js';
|
|
16
|
+
export declare function configureZed(input: ConfigureInput): Promise<void>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zed — `~/.config/zed/settings.json`.
|
|
3
|
+
*
|
|
4
|
+
* Port of `configure_zed` in `src-tauri/src/core/system/commands.rs`. Zed keeps custom endpoints
|
|
5
|
+
* under `language_models.openai_compatible.<provider name>`, and the provider name doubles as the
|
|
6
|
+
* id the agent's default-model selector refers to, hence the space in `"Atomic Chat"`.
|
|
7
|
+
*
|
|
8
|
+
* Two things are deliberate:
|
|
9
|
+
* - The API key is never persisted. Zed reads it from its keychain or from `ATOMIC_CHAT_API_KEY`,
|
|
10
|
+
* so `apiKey` is accepted for call-site symmetry and ignored.
|
|
11
|
+
* - Zed has no model discovery for these providers, so the running model is advertised
|
|
12
|
+
* explicitly. With no model loaded the provider is still registered, with an empty model list,
|
|
13
|
+
* so it shows up in Zed's UI — but `agent.default_model` is then left untouched.
|
|
14
|
+
*/
|
|
15
|
+
import { AtomicCoreError } from '../../contracts/index.js';
|
|
16
|
+
import { canonicalJson, parseJsonLenient } from '../config-io.js';
|
|
17
|
+
import { asJsonObject } from './json-tree.js';
|
|
18
|
+
import { registerWriter } from './registry.js';
|
|
19
|
+
const DIR = '.config/zed';
|
|
20
|
+
const PATH = `${DIR}/settings.json`;
|
|
21
|
+
/** Map key under `openai_compatible`, and the provider id `agent.default_model` names. */
|
|
22
|
+
const ZED_PROVIDER_ID = 'Atomic Chat';
|
|
23
|
+
export async function configureZed(input) {
|
|
24
|
+
const { fs, apiUrl, model } = input;
|
|
25
|
+
await fs.mkdirp(DIR);
|
|
26
|
+
// Zed's settings.json allows comments and trailing commas, so read it the same way Zed does.
|
|
27
|
+
const text = await fs.read(PATH);
|
|
28
|
+
const parsed = text === undefined ? {} : parseJsonLenient(text, fs.absolute(PATH));
|
|
29
|
+
const root = asJsonObject(parsed);
|
|
30
|
+
if (!root)
|
|
31
|
+
throw new AtomicCoreError('IO_ERROR', 'settings.json is not a JSON object');
|
|
32
|
+
const languageModels = asJsonObject(root['language_models']) ?? {};
|
|
33
|
+
root['language_models'] = languageModels;
|
|
34
|
+
const compatible = asJsonObject(languageModels['openai_compatible']) ?? {};
|
|
35
|
+
languageModels['openai_compatible'] = compatible;
|
|
36
|
+
const availableModels = model === ''
|
|
37
|
+
? []
|
|
38
|
+
: [
|
|
39
|
+
{
|
|
40
|
+
name: model,
|
|
41
|
+
display_name: model,
|
|
42
|
+
max_tokens: 32768,
|
|
43
|
+
max_output_tokens: 8192,
|
|
44
|
+
capabilities: {
|
|
45
|
+
tools: true,
|
|
46
|
+
images: true,
|
|
47
|
+
parallel_tool_calls: false,
|
|
48
|
+
prompt_cache_key: false,
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
compatible[ZED_PROVIDER_ID] = { api_url: apiUrl, available_models: availableModels };
|
|
53
|
+
if (model !== '') {
|
|
54
|
+
const agent = asJsonObject(root['agent']) ?? {};
|
|
55
|
+
root['agent'] = agent;
|
|
56
|
+
agent['default_model'] = { provider: ZED_PROVIDER_ID, model };
|
|
57
|
+
}
|
|
58
|
+
await fs.write(PATH, canonicalJson(root));
|
|
59
|
+
}
|
|
60
|
+
registerWriter('zed', configureZed);
|
|
61
|
+
//# sourceMappingURL=zed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zed.js","sourceRoot":"","sources":["../../../src/integrations/configure/zed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,GAAG,GAAG,aAAa,CAAA;AACzB,MAAM,IAAI,GAAG,GAAG,GAAG,gBAAgB,CAAA;AACnC,0FAA0F;AAC1F,MAAM,eAAe,GAAG,aAAa,CAAA;AAErC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAqB;IACtD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACnC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAEpB,6FAA6F;IAC7F,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAClF,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACjC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,oCAAoC,CAAC,CAAA;IAEtF,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAA;IAClE,IAAI,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAA;IACxC,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1E,cAAc,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAA;IAEhD,MAAM,eAAe,GACnB,KAAK,KAAK,EAAE;QACV,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE;gBACE,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,KAAK;gBACjB,iBAAiB,EAAE,IAAI;gBACvB,YAAY,EAAE;oBACZ,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,IAAI;oBACZ,mBAAmB,EAAE,KAAK;oBAC1B,gBAAgB,EAAE,KAAK;iBACxB;aACF;SACF,CAAA;IACP,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAA;IAEpF,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/C,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;QACrB,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,CAAA;IAC/D,CAAC;IAED,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;AAC3C,CAAC;AAED,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Is an agent's launcher on this machine, and what do we execute?
|
|
3
|
+
*
|
|
4
|
+
* Same answer as the Rust CLI (`is_on_path`, `is_command_installed`, `agent_program` in
|
|
5
|
+
* `bin/jan-cli.rs`): probe PATH with `which`/`where`, then the prefix locations an installer can use
|
|
6
|
+
* without touching PATH. A launcher found on PATH is executed by its bare name so the command we
|
|
7
|
+
* print is the one the user could retype; one found off PATH is executed by absolute path.
|
|
8
|
+
*/
|
|
9
|
+
import type { Agent } from './catalog.js';
|
|
10
|
+
export declare const PATH_PROBE_TIMEOUT_MS = 5000;
|
|
11
|
+
export interface DetectDeps {
|
|
12
|
+
platform?: NodeJS.Platform;
|
|
13
|
+
env?: NodeJS.ProcessEnv;
|
|
14
|
+
home?: string;
|
|
15
|
+
/** Run the PATH probe; resolves true when the command exists. */
|
|
16
|
+
onPath?: (bin: string) => Promise<boolean>;
|
|
17
|
+
/** Does this absolute path exist as a file? */
|
|
18
|
+
isFile?: (path: string) => Promise<boolean>;
|
|
19
|
+
}
|
|
20
|
+
export interface AgentDetection {
|
|
21
|
+
installed: boolean;
|
|
22
|
+
/** Absolute path when the launcher was found off PATH; undefined when the bare name resolves. */
|
|
23
|
+
path: string | undefined;
|
|
24
|
+
/** What to execute: the bare name, or the absolute path. */
|
|
25
|
+
program: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function detectAgent(agent: Agent, deps?: DetectDeps): Promise<AgentDetection>;
|
|
28
|
+
/** Detect several agents at once, for `launch --list`. */
|
|
29
|
+
export declare function detectAgents(agents: readonly Agent[], deps?: DetectDeps): Promise<Map<string, AgentDetection>>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Is an agent's launcher on this machine, and what do we execute?
|
|
3
|
+
*
|
|
4
|
+
* Same answer as the Rust CLI (`is_on_path`, `is_command_installed`, `agent_program` in
|
|
5
|
+
* `bin/jan-cli.rs`): probe PATH with `which`/`where`, then the prefix locations an installer can use
|
|
6
|
+
* without touching PATH. A launcher found on PATH is executed by its bare name so the command we
|
|
7
|
+
* print is the one the user could retype; one found off PATH is executed by absolute path.
|
|
8
|
+
*/
|
|
9
|
+
import { execFile } from 'node:child_process';
|
|
10
|
+
import { stat } from 'node:fs/promises';
|
|
11
|
+
import { homedir } from 'node:os';
|
|
12
|
+
import { offPathCandidates } from './catalog.js';
|
|
13
|
+
export const PATH_PROBE_TIMEOUT_MS = 5000;
|
|
14
|
+
const defaultIsFile = (path) => stat(path).then((s) => s.isFile(), () => false);
|
|
15
|
+
function defaultOnPath(bin, platform) {
|
|
16
|
+
const probe = platform === 'win32' ? 'where' : 'which';
|
|
17
|
+
return new Promise((resolve) => {
|
|
18
|
+
execFile(probe, [bin], { timeout: PATH_PROBE_TIMEOUT_MS, windowsHide: true }, (err) => resolve(!err));
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export async function detectAgent(agent, deps = {}) {
|
|
22
|
+
const platform = deps.platform ?? process.platform;
|
|
23
|
+
const onPath = deps.onPath ?? ((bin) => defaultOnPath(bin, platform));
|
|
24
|
+
const isFile = deps.isFile ?? defaultIsFile;
|
|
25
|
+
if (await onPath(agent.detectBin)) {
|
|
26
|
+
return { installed: true, path: undefined, program: agent.detectBin };
|
|
27
|
+
}
|
|
28
|
+
const home = deps.home ?? homedir();
|
|
29
|
+
for (const candidate of offPathCandidates(agent.detectBin, home, deps.env ?? process.env, platform)) {
|
|
30
|
+
if (await isFile(candidate))
|
|
31
|
+
return { installed: true, path: candidate, program: candidate };
|
|
32
|
+
}
|
|
33
|
+
return { installed: false, path: undefined, program: agent.detectBin };
|
|
34
|
+
}
|
|
35
|
+
/** Detect several agents at once, for `launch --list`. */
|
|
36
|
+
export async function detectAgents(agents, deps = {}) {
|
|
37
|
+
const out = new Map();
|
|
38
|
+
await Promise.all(agents.map(async (agent) => {
|
|
39
|
+
out.set(agent.id, await detectAgent(agent, deps));
|
|
40
|
+
}));
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/integrations/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAA;AAoBzC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAoB,EAAE,CACvD,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CACb,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EACjB,GAAG,EAAE,CAAC,KAAK,CACZ,CAAA;AAEH,SAAS,aAAa,CAAC,GAAW,EAAE,QAAyB;IAC3D,MAAM,KAAK,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;IACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACvG,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAY,EAAE,OAAmB,EAAE;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAA;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,CAAA;IAC3C,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvE,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAA;IACnC,KAAK,MAAM,SAAS,IAAI,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;QACpG,IAAI,MAAM,MAAM,CAAC,SAAS,CAAC;YAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;IAC9F,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;AACxE,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAwB,EACxB,OAAmB,EAAE;IAErB,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0B,CAAA;IAC7C,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACzB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IACnD,CAAC,CAAC,CACH,CAAA;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coding-agent integrations: the catalog `launch` works from, and the config writers that point an
|
|
3
|
+
* agent at a local model. Ported from `src-tauri/src/core/cli/integrations.rs` and the
|
|
4
|
+
* `configure_*` commands in `src-tauri/src/core/system/commands.rs` (PLAN.md §4, phase 2).
|
|
5
|
+
*/
|
|
6
|
+
export * from './catalog.js';
|
|
7
|
+
export * from './detect.js';
|
|
8
|
+
export * from './config-io.js';
|
|
9
|
+
export * from './configure/index.js';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coding-agent integrations: the catalog `launch` works from, and the config writers that point an
|
|
3
|
+
* agent at a local model. Ported from `src-tauri/src/core/cli/integrations.rs` and the
|
|
4
|
+
* `configure_*` commands in `src-tauri/src/core/system/commands.rs` (PLAN.md §4, phase 2).
|
|
5
|
+
*/
|
|
6
|
+
export * from './catalog.js';
|
|
7
|
+
export * from './detect.js';
|
|
8
|
+
export * from './config-io.js';
|
|
9
|
+
export * from './configure/index.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bearer token for `/atomic/v1/*` (PLAN.md §3.6). The owner mints it while holding the instance
|
|
3
|
+
* lock; clients read it from `<data>/atomic-core/control-token`. File permissions are the only thing
|
|
4
|
+
* guarding it, so it is created `0600` on Unix; on Windows the file inherits the user's ACL, which
|
|
5
|
+
* `test/runtime-compat` checks separately.
|
|
6
|
+
*/
|
|
7
|
+
import type { DataLayout } from '../config/index.js';
|
|
8
|
+
export declare const CONTROL_TOKEN_BYTES = 32;
|
|
9
|
+
export declare const CONTROL_TOKEN_MODE = 384;
|
|
10
|
+
export declare function generateControlToken(): string;
|
|
11
|
+
/** Replace any token left by a previous owner: an old client must re-read, not keep authenticating. */
|
|
12
|
+
export declare function writeControlToken(layout: DataLayout, token?: string): Promise<string>;
|
|
13
|
+
export declare function readControlToken(layout: DataLayout): Promise<string>;
|
|
14
|
+
/** Constant-time compare so a wrong token cannot be guessed byte by byte. */
|
|
15
|
+
export declare function controlTokenMatches(presented: string | undefined | null, expected: string): boolean;
|
|
16
|
+
/** `Authorization: Bearer <token>`; anything else (including `X-Api-Key`) is not accepted on control. */
|
|
17
|
+
export declare function bearerToken(authorization: string | undefined | null): string | undefined;
|
|
18
|
+
/** Unix-only check used by tests and `doctor`: is the token readable by anyone but the owner? */
|
|
19
|
+
export declare function controlTokenIsPrivate(layout: DataLayout, platform?: NodeJS.Platform): Promise<boolean>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bearer token for `/atomic/v1/*` (PLAN.md §3.6). The owner mints it while holding the instance
|
|
3
|
+
* lock; clients read it from `<data>/atomic-core/control-token`. File permissions are the only thing
|
|
4
|
+
* guarding it, so it is created `0600` on Unix; on Windows the file inherits the user's ACL, which
|
|
5
|
+
* `test/runtime-compat` checks separately.
|
|
6
|
+
*/
|
|
7
|
+
import { randomBytes, timingSafeEqual } from 'node:crypto';
|
|
8
|
+
import { chmod, mkdir, readFile, rm, stat, writeFile } from 'node:fs/promises';
|
|
9
|
+
import { AtomicCoreError } from '../contracts/index.js';
|
|
10
|
+
export const CONTROL_TOKEN_BYTES = 32;
|
|
11
|
+
export const CONTROL_TOKEN_MODE = 0o600;
|
|
12
|
+
export function generateControlToken() {
|
|
13
|
+
return randomBytes(CONTROL_TOKEN_BYTES).toString('base64url');
|
|
14
|
+
}
|
|
15
|
+
/** Replace any token left by a previous owner: an old client must re-read, not keep authenticating. */
|
|
16
|
+
export async function writeControlToken(layout, token = generateControlToken()) {
|
|
17
|
+
await mkdir(layout.core.dir, { recursive: true });
|
|
18
|
+
await rm(layout.core.controlToken, { force: true }).catch(() => { });
|
|
19
|
+
await writeFile(layout.core.controlToken, `${token}\n`, { mode: CONTROL_TOKEN_MODE });
|
|
20
|
+
await chmod(layout.core.controlToken, CONTROL_TOKEN_MODE).catch(() => { }); // umask may have widened it
|
|
21
|
+
return token;
|
|
22
|
+
}
|
|
23
|
+
export async function readControlToken(layout) {
|
|
24
|
+
const text = await readFile(layout.core.controlToken, 'utf8').catch((e) => {
|
|
25
|
+
if (e.code === 'ENOENT')
|
|
26
|
+
throw new AtomicCoreError('CORE_NOT_RUNNING', 'No Atomic Chat core control token in this data folder.', layout.core.controlToken);
|
|
27
|
+
throw new AtomicCoreError('IO_ERROR', 'Cannot read the core control token.', e.message);
|
|
28
|
+
});
|
|
29
|
+
const token = text.trim();
|
|
30
|
+
if (!token)
|
|
31
|
+
throw new AtomicCoreError('IO_ERROR', 'The core control token file is empty.', layout.core.controlToken);
|
|
32
|
+
return token;
|
|
33
|
+
}
|
|
34
|
+
/** Constant-time compare so a wrong token cannot be guessed byte by byte. */
|
|
35
|
+
export function controlTokenMatches(presented, expected) {
|
|
36
|
+
if (!presented)
|
|
37
|
+
return false;
|
|
38
|
+
const a = Buffer.from(presented);
|
|
39
|
+
const b = Buffer.from(expected);
|
|
40
|
+
if (a.length !== b.length)
|
|
41
|
+
return false;
|
|
42
|
+
return timingSafeEqual(a, b);
|
|
43
|
+
}
|
|
44
|
+
/** `Authorization: Bearer <token>`; anything else (including `X-Api-Key`) is not accepted on control. */
|
|
45
|
+
export function bearerToken(authorization) {
|
|
46
|
+
if (!authorization)
|
|
47
|
+
return undefined;
|
|
48
|
+
const m = /^Bearer\s+(.+)$/i.exec(authorization.trim());
|
|
49
|
+
return m ? m[1]?.trim() : undefined;
|
|
50
|
+
}
|
|
51
|
+
/** Unix-only check used by tests and `doctor`: is the token readable by anyone but the owner? */
|
|
52
|
+
export async function controlTokenIsPrivate(layout, platform = process.platform) {
|
|
53
|
+
if (platform === 'win32')
|
|
54
|
+
return true;
|
|
55
|
+
const s = await stat(layout.core.controlToken);
|
|
56
|
+
return (s.mode & 0o077) === 0;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=control-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-token.js","sourceRoot":"","sources":["../../src/lock/control-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single-owner coordination for a data folder: the instance lock and its process-start identity,
|
|
3
|
+
* the control token, and the journal of spawned backend processes. PLAN.md §3.4, §3.6.
|
|
4
|
+
*/
|
|
5
|
+
export * from './process-identity.js';
|
|
6
|
+
export * from './instance-lock.js';
|
|
7
|
+
export * from './control-token.js';
|
|
8
|
+
export * from './process-journal.js';
|
|
9
|
+
export * from './legacy-guard.js';
|
|
10
|
+
export * from './model-claim.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single-owner coordination for a data folder: the instance lock and its process-start identity,
|
|
3
|
+
* the control token, and the journal of spawned backend processes. PLAN.md §3.4, §3.6.
|
|
4
|
+
*/
|
|
5
|
+
export * from './process-identity.js';
|
|
6
|
+
export * from './instance-lock.js';
|
|
7
|
+
export * from './control-token.js';
|
|
8
|
+
export * from './process-journal.js';
|
|
9
|
+
export * from './legacy-guard.js';
|
|
10
|
+
export * from './model-claim.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lock/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA"}
|