@atomic-chat/core 0.13.2 → 0.17.0
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 +1 -1
- package/dist/backend/advisor/advisor.d.ts +8 -7
- package/dist/backend/advisor/advisor.js +17 -25
- package/dist/backend/advisor/advisor.js.map +1 -1
- package/dist/backend/catalog/index.d.ts +4 -2
- package/dist/backend/catalog/index.js +4 -2
- package/dist/backend/catalog/index.js.map +1 -1
- package/dist/backend/catalog/manifest.d.ts +5 -51
- package/dist/backend/catalog/manifest.js +5 -93
- package/dist/backend/catalog/manifest.js.map +1 -1
- package/dist/backend/catalog/upstream-releases-baseline.d.ts +2 -0
- package/dist/backend/catalog/upstream-releases-baseline.js +12 -0
- package/dist/backend/catalog/upstream-releases-baseline.js.map +1 -0
- package/dist/backend/catalog/upstream-releases-baseline.json +101 -0
- package/dist/backend/catalog/upstream-releases-catalog.d.ts +54 -0
- package/dist/backend/catalog/upstream-releases-catalog.js +148 -0
- package/dist/backend/catalog/upstream-releases-catalog.js.map +1 -0
- package/dist/backend/catalog/upstream-releases.d.ts +75 -0
- package/dist/backend/catalog/upstream-releases.js +155 -0
- package/dist/backend/catalog/upstream-releases.js.map +1 -0
- package/dist/backend/install/service.d.ts +7 -4
- package/dist/backend/install/service.js +4 -4
- package/dist/backend/install/service.js.map +1 -1
- package/dist/cli/commands/serve.js +10 -28
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/cli/main.js +0 -1
- package/dist/cli/main.js.map +1 -1
- package/dist/client/control-client.d.ts +7 -19
- package/dist/client/control-client.js +9 -29
- package/dist/client/control-client.js.map +1 -1
- package/dist/cloud/registry.d.ts +14 -1
- package/dist/cloud/registry.js +73 -2
- package/dist/cloud/registry.js.map +1 -1
- package/dist/config/paths.d.ts +4 -3
- package/dist/config/paths.js +15 -14
- package/dist/config/paths.js.map +1 -1
- package/dist/contracts/diffusion.d.ts +45 -18
- package/dist/contracts/diffusion.js +1 -1
- package/dist/contracts/diffusion.js.map +1 -1
- package/dist/contracts/engines.d.ts +1 -1
- package/dist/contracts/engines.js +2 -0
- package/dist/contracts/engines.js.map +1 -1
- package/dist/contracts/errors.d.ts +1 -3
- package/dist/contracts/errors.js +16 -0
- package/dist/contracts/errors.js.map +1 -1
- package/dist/contracts/events.d.ts +11 -6
- package/dist/contracts/index.d.ts +1 -1
- package/dist/contracts/index.js +1 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/media.d.ts +186 -0
- package/dist/contracts/media.js +55 -0
- package/dist/contracts/media.js.map +1 -0
- package/dist/contracts/session.d.ts +10 -1
- package/dist/contracts/session.js +10 -0
- package/dist/contracts/session.js.map +1 -1
- package/dist/contracts/settings.d.ts +36 -1
- package/dist/contracts/settings.js.map +1 -1
- package/dist/core/atomic-core.d.ts +7 -5
- package/dist/core/atomic-core.js +1 -0
- package/dist/core/atomic-core.js.map +1 -1
- package/dist/core/create.js +48 -58
- package/dist/core/create.js.map +1 -1
- package/dist/core/managed-engines.js +2 -0
- package/dist/core/managed-engines.js.map +1 -1
- package/dist/core/prism.d.ts +23 -6
- package/dist/core/prism.js +45 -0
- package/dist/core/prism.js.map +1 -1
- package/dist/core/public-server.js +3 -2
- package/dist/core/public-server.js.map +1 -1
- package/dist/core/types.d.ts +11 -0
- package/dist/core/types.js.map +1 -1
- package/dist/decision/process.d.ts +4 -0
- package/dist/decision/process.js +10 -1
- package/dist/decision/process.js.map +1 -1
- package/dist/diffusion/args.d.ts +3 -2
- package/dist/diffusion/args.js +21 -4
- package/dist/diffusion/args.js.map +1 -1
- package/dist/diffusion/compat.d.ts +1 -1
- package/dist/diffusion/compat.js +6 -2
- package/dist/diffusion/compat.js.map +1 -1
- package/dist/diffusion/gallery.d.ts +24 -3
- package/dist/diffusion/gallery.js +151 -21
- package/dist/diffusion/gallery.js.map +1 -1
- package/dist/diffusion/index.d.ts +3 -0
- package/dist/diffusion/index.js +3 -0
- package/dist/diffusion/index.js.map +1 -1
- package/dist/diffusion/jobs.d.ts +6 -1
- package/dist/diffusion/jobs.js +10 -1
- package/dist/diffusion/jobs.js.map +1 -1
- package/dist/diffusion/media-header.d.ts +22 -0
- package/dist/diffusion/media-header.js +149 -0
- package/dist/diffusion/media-header.js.map +1 -0
- package/dist/diffusion/parse.d.ts +3 -1
- package/dist/diffusion/parse.js +36 -0
- package/dist/diffusion/parse.js.map +1 -1
- package/dist/diffusion/recipe.d.ts +10 -1
- package/dist/diffusion/recipe.js +85 -21
- package/dist/diffusion/recipe.js.map +1 -1
- package/dist/diffusion/remote-job.d.ts +76 -0
- package/dist/diffusion/remote-job.js +643 -0
- package/dist/diffusion/remote-job.js.map +1 -0
- package/dist/diffusion/remote-store.d.ts +38 -0
- package/dist/diffusion/remote-store.js +91 -0
- package/dist/diffusion/remote-store.js.map +1 -0
- package/dist/diffusion/service.d.ts +9 -1
- package/dist/diffusion/service.js +49 -9
- package/dist/diffusion/service.js.map +1 -1
- package/dist/diffusion/state.d.ts +13 -1
- package/dist/diffusion/state.js +8 -0
- package/dist/diffusion/state.js.map +1 -1
- package/dist/diffusion/tracker.d.ts +6 -0
- package/dist/diffusion/tracker.js +11 -0
- package/dist/diffusion/tracker.js.map +1 -1
- package/dist/diffusion/validate.js +2 -2
- package/dist/diffusion/validate.js.map +1 -1
- package/dist/diffusion/video-gallery.d.ts +11 -4
- package/dist/diffusion/video-gallery.js +62 -25
- package/dist/diffusion/video-gallery.js.map +1 -1
- package/dist/diffusion/video-history.js +4 -1
- package/dist/diffusion/video-history.js.map +1 -1
- package/dist/diffusion/video-recipe.js +58 -25
- package/dist/diffusion/video-recipe.js.map +1 -1
- package/dist/diffusion/wiring.d.ts +3 -0
- package/dist/diffusion/wiring.js +1 -0
- package/dist/diffusion/wiring.js.map +1 -1
- package/dist/diffusion/workflow.d.ts +8 -2
- package/dist/diffusion/workflow.js +13 -5
- package/dist/diffusion/workflow.js.map +1 -1
- package/dist/downloads/downloader.d.ts +6 -1
- package/dist/downloads/downloader.js +12 -1
- package/dist/downloads/downloader.js.map +1 -1
- package/dist/embedding/process.d.ts +4 -0
- package/dist/embedding/process.js +10 -1
- package/dist/embedding/process.js.map +1 -1
- package/dist/media/adapters/a1111.d.ts +32 -0
- package/dist/media/adapters/a1111.js +207 -0
- package/dist/media/adapters/a1111.js.map +1 -0
- package/dist/media/adapters/aimlapi-videos.d.ts +34 -0
- package/dist/media/adapters/aimlapi-videos.js +172 -0
- package/dist/media/adapters/aimlapi-videos.js.map +1 -0
- package/dist/media/adapters/dashscope-image.d.ts +26 -0
- package/dist/media/adapters/dashscope-image.js +160 -0
- package/dist/media/adapters/dashscope-image.js.map +1 -0
- package/dist/media/adapters/dashscope-video.d.ts +47 -0
- package/dist/media/adapters/dashscope-video.js +251 -0
- package/dist/media/adapters/dashscope-video.js.map +1 -0
- package/dist/media/adapters/gemini-image.d.ts +27 -0
- package/dist/media/adapters/gemini-image.js +181 -0
- package/dist/media/adapters/gemini-image.js.map +1 -0
- package/dist/media/adapters/gemini-veo.d.ts +39 -0
- package/dist/media/adapters/gemini-veo.js +196 -0
- package/dist/media/adapters/gemini-veo.js.map +1 -0
- package/dist/media/adapters/hf-images.d.ts +85 -0
- package/dist/media/adapters/hf-images.js +439 -0
- package/dist/media/adapters/hf-images.js.map +1 -0
- package/dist/media/adapters/hf-videos.d.ts +44 -0
- package/dist/media/adapters/hf-videos.js +265 -0
- package/dist/media/adapters/hf-videos.js.map +1 -0
- package/dist/media/adapters/minimax-image.d.ts +26 -0
- package/dist/media/adapters/minimax-image.js +111 -0
- package/dist/media/adapters/minimax-image.js.map +1 -0
- package/dist/media/adapters/minimax-video-v2.d.ts +34 -0
- package/dist/media/adapters/minimax-video-v2.js +191 -0
- package/dist/media/adapters/minimax-video-v2.js.map +1 -0
- package/dist/media/adapters/minimax-video.d.ts +28 -0
- package/dist/media/adapters/minimax-video.js +155 -0
- package/dist/media/adapters/minimax-video.js.map +1 -0
- package/dist/media/adapters/mistral-agent-image.d.ts +33 -0
- package/dist/media/adapters/mistral-agent-image.js +108 -0
- package/dist/media/adapters/mistral-agent-image.js.map +1 -0
- package/dist/media/adapters/nvidia-genai.d.ts +28 -0
- package/dist/media/adapters/nvidia-genai.js +182 -0
- package/dist/media/adapters/nvidia-genai.js.map +1 -0
- package/dist/media/adapters/openai-images.d.ts +23 -0
- package/dist/media/adapters/openai-images.js +164 -0
- package/dist/media/adapters/openai-images.js.map +1 -0
- package/dist/media/adapters/openai-videos.d.ts +34 -0
- package/dist/media/adapters/openai-videos.js +175 -0
- package/dist/media/adapters/openai-videos.js.map +1 -0
- package/dist/media/adapters/openrouter-images.d.ts +25 -0
- package/dist/media/adapters/openrouter-images.js +161 -0
- package/dist/media/adapters/openrouter-images.js.map +1 -0
- package/dist/media/adapters/openrouter-videos.d.ts +43 -0
- package/dist/media/adapters/openrouter-videos.js +208 -0
- package/dist/media/adapters/openrouter-videos.js.map +1 -0
- package/dist/media/adapters/registry.d.ts +7 -0
- package/dist/media/adapters/registry.js +45 -0
- package/dist/media/adapters/registry.js.map +1 -0
- package/dist/media/adapters/types.d.ts +133 -0
- package/dist/media/adapters/types.js +15 -0
- package/dist/media/adapters/types.js.map +1 -0
- package/dist/media/adapters/xai-images.d.ts +19 -0
- package/dist/media/adapters/xai-images.js +83 -0
- package/dist/media/adapters/xai-images.js.map +1 -0
- package/dist/media/adapters/xai-videos.d.ts +29 -0
- package/dist/media/adapters/xai-videos.js +148 -0
- package/dist/media/adapters/xai-videos.js.map +1 -0
- package/dist/media/catalog-baseline.d.ts +2 -0
- package/dist/media/catalog-baseline.js +10 -0
- package/dist/media/catalog-baseline.js.map +1 -0
- package/dist/media/catalog-baseline.json +1819 -0
- package/dist/media/catalog-service.d.ts +42 -0
- package/dist/media/catalog-service.js +111 -0
- package/dist/media/catalog-service.js.map +1 -0
- package/dist/media/catalog.d.ts +50 -0
- package/dist/media/catalog.js +315 -0
- package/dist/media/catalog.js.map +1 -0
- package/dist/media/http.d.ts +125 -0
- package/dist/media/http.js +308 -0
- package/dist/media/http.js.map +1 -0
- package/dist/media/index.d.ts +14 -0
- package/dist/media/index.js +15 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/mask.d.ts +12 -0
- package/dist/media/mask.js +57 -0
- package/dist/media/mask.js.map +1 -0
- package/dist/media/service.d.ts +42 -0
- package/dist/media/service.js +144 -0
- package/dist/media/service.js.map +1 -0
- package/dist/models/compatibility/inspect.d.ts +11 -2
- package/dist/models/compatibility/inspect.js +44 -13
- package/dist/models/compatibility/inspect.js.map +1 -1
- package/dist/models/compatibility/service.d.ts +3 -0
- package/dist/models/compatibility/service.js +1 -0
- package/dist/models/compatibility/service.js.map +1 -1
- package/dist/models/gguf/tensors.d.ts +1 -0
- package/dist/models/gguf/tensors.js +4 -1
- package/dist/models/gguf/tensors.js.map +1 -1
- package/dist/models/hf.d.ts +3 -16
- package/dist/models/hf.js +4 -42
- package/dist/models/hf.js.map +1 -1
- package/dist/router/resolve.d.ts +15 -4
- package/dist/router/resolve.js +25 -3
- package/dist/router/resolve.js.map +1 -1
- package/dist/runtime/environment/linux-provisioner.js +7 -67
- package/dist/runtime/environment/linux-provisioner.js.map +1 -1
- package/dist/runtime/environment/runtime-removal-plan.d.ts +19 -0
- package/dist/runtime/environment/runtime-removal-plan.js +74 -0
- package/dist/runtime/environment/runtime-removal-plan.js.map +1 -0
- package/dist/runtime/environment/windows-provisioner.js +20 -4
- package/dist/runtime/environment/windows-provisioner.js.map +1 -1
- package/dist/runtime/managed-engines/spec.d.ts +2 -2
- package/dist/runtime/managed-engines/spec.js +6 -0
- package/dist/runtime/managed-engines/spec.js.map +1 -1
- package/dist/runtime/managed-models/compatibility.d.ts +10 -0
- package/dist/runtime/managed-models/compatibility.js +18 -0
- package/dist/runtime/managed-models/compatibility.js.map +1 -1
- package/dist/runtime/managed-text/adapter.d.ts +17 -0
- package/dist/runtime/managed-text/adapter.js.map +1 -1
- package/dist/runtime/managed-text/lifecycle.d.ts +8 -0
- package/dist/runtime/managed-text/lifecycle.js +38 -1
- package/dist/runtime/managed-text/lifecycle.js.map +1 -1
- package/dist/runtime/managed-text/readiness.d.ts +21 -1
- package/dist/runtime/managed-text/readiness.js +64 -0
- package/dist/runtime/managed-text/readiness.js.map +1 -1
- package/dist/runtime/managed-text/request-rules.d.ts +9 -7
- package/dist/runtime/managed-text/request-rules.js +58 -2
- package/dist/runtime/managed-text/request-rules.js.map +1 -1
- package/dist/runtime/managed-text/setting-values.d.ts +9 -0
- package/dist/runtime/managed-text/setting-values.js +44 -0
- package/dist/runtime/managed-text/setting-values.js.map +1 -0
- package/dist/runtime/sglang/adapter.d.ts +50 -0
- package/dist/runtime/sglang/adapter.js +393 -0
- package/dist/runtime/sglang/adapter.js.map +1 -0
- package/dist/runtime/sglang/engine.d.ts +16 -0
- package/dist/runtime/sglang/engine.js +38 -0
- package/dist/runtime/sglang/engine.js.map +1 -0
- package/dist/runtime/sglang/index.d.ts +11 -0
- package/dist/runtime/sglang/index.js +12 -0
- package/dist/runtime/sglang/index.js.map +1 -0
- package/dist/runtime/sglang/memory.d.ts +64 -0
- package/dist/runtime/sglang/memory.js +90 -0
- package/dist/runtime/sglang/memory.js.map +1 -0
- package/dist/runtime/sglang/settings.d.ts +49 -0
- package/dist/runtime/sglang/settings.js +118 -0
- package/dist/runtime/sglang/settings.js.map +1 -0
- package/dist/runtime/shared/external-sessions.js +1 -0
- package/dist/runtime/shared/external-sessions.js.map +1 -1
- package/dist/runtime/shared/ports.d.ts +10 -0
- package/dist/runtime/shared/ports.js +30 -0
- package/dist/runtime/shared/ports.js.map +1 -1
- package/dist/runtime/tensorrt-llm/adapter.d.ts +1 -4
- package/dist/runtime/tensorrt-llm/adapter.js +28 -11
- package/dist/runtime/tensorrt-llm/adapter.js.map +1 -1
- package/dist/runtime/tensorrt-llm/check.js +1 -0
- package/dist/runtime/tensorrt-llm/check.js.map +1 -1
- package/dist/runtime/tensorrt-llm/compatibility.d.ts +30 -6
- package/dist/runtime/tensorrt-llm/compatibility.js +41 -9
- package/dist/runtime/tensorrt-llm/compatibility.js.map +1 -1
- package/dist/runtime/tensorrt-llm/cuda-graphs.d.ts +32 -0
- package/dist/runtime/tensorrt-llm/cuda-graphs.js +33 -0
- package/dist/runtime/tensorrt-llm/cuda-graphs.js.map +1 -0
- package/dist/runtime/tensorrt-llm/engine.js +11 -5
- package/dist/runtime/tensorrt-llm/engine.js.map +1 -1
- package/dist/runtime/tensorrt-llm/kv-cache.d.ts +16 -0
- package/dist/runtime/tensorrt-llm/kv-cache.js +21 -1
- package/dist/runtime/tensorrt-llm/kv-cache.js.map +1 -1
- package/dist/runtime/vllm/adapter.js +2 -47
- package/dist/runtime/vllm/adapter.js.map +1 -1
- package/dist/runtime/vllm/memory.js +3 -16
- package/dist/runtime/vllm/memory.js.map +1 -1
- package/dist/runtime/vllm/settings.d.ts +7 -0
- package/dist/runtime/vllm/settings.js +2 -30
- package/dist/runtime/vllm/settings.js.map +1 -1
- package/dist/server/control/router.js +5 -4
- package/dist/server/control/router.js.map +1 -1
- package/dist/server/control/routes/media.d.ts +9 -0
- package/dist/server/control/routes/media.js +24 -0
- package/dist/server/control/routes/media.js.map +1 -0
- package/dist/server/control/routes/model-compatibility.d.ts +9 -0
- package/dist/server/control/routes/model-compatibility.js +31 -0
- package/dist/server/control/routes/model-compatibility.js.map +1 -0
- package/dist/server/control/types.d.ts +18 -20
- package/dist/server/http.js +15 -2
- package/dist/server/http.js.map +1 -1
- package/dist/server/public/gates.d.ts +6 -1
- package/dist/server/public/gates.js +7 -3
- package/dist/server/public/gates.js.map +1 -1
- package/dist/server/public/images-params.js +18 -1
- package/dist/server/public/images-params.js.map +1 -1
- package/dist/server/public/images.d.ts +11 -2
- package/dist/server/public/images.js +73 -9
- package/dist/server/public/images.js.map +1 -1
- package/dist/server/public/index.d.ts +1 -0
- package/dist/server/public/index.js +16 -7
- package/dist/server/public/index.js.map +1 -1
- package/dist/server/public/listing.js +1 -0
- package/dist/server/public/listing.js.map +1 -1
- package/dist/server/public/remote-media.d.ts +51 -0
- package/dist/server/public/remote-media.js +225 -0
- package/dist/server/public/remote-media.js.map +1 -0
- package/dist/server/public/responses.js +4 -2
- package/dist/server/public/responses.js.map +1 -1
- package/dist/server/public/static-assets.generated.js +1 -1
- package/dist/server/public/static-assets.generated.js.map +1 -1
- package/dist/server/public/trace.js +2 -0
- package/dist/server/public/trace.js.map +1 -1
- package/dist/server/public/types.d.ts +12 -1
- package/dist/server/public/videos-params.js +13 -3
- package/dist/server/public/videos-params.js.map +1 -1
- package/dist/server/public/videos.d.ts +1 -0
- package/dist/server/public/videos.js +21 -3
- package/dist/server/public/videos.js.map +1 -1
- package/dist/settings/schema/llamacpp-upstream.json +9 -0
- package/dist/settings/schema/sglang.json +251 -0
- package/dist/settings/schema.js +27 -1
- package/dist/settings/schema.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -6
- package/src/settings/schema/llamacpp-upstream.json +9 -0
- package/src/settings/schema/sglang.json +251 -0
- package/dist/backend/catalog/bundled-manifest-baseline.d.ts +0 -2
- package/dist/backend/catalog/bundled-manifest-baseline.js +0 -65
- package/dist/backend/catalog/bundled-manifest-baseline.js.map +0 -1
- package/dist/contracts/model-setup.d.ts +0 -115
- package/dist/contracts/model-setup.js +0 -33
- package/dist/contracts/model-setup.js.map +0 -1
- package/dist/core/model-setup/index.d.ts +0 -4
- package/dist/core/model-setup/index.js +0 -5
- package/dist/core/model-setup/index.js.map +0 -1
- package/dist/core/model-setup/plan.d.ts +0 -56
- package/dist/core/model-setup/plan.js +0 -158
- package/dist/core/model-setup/plan.js.map +0 -1
- package/dist/core/model-setup/service.d.ts +0 -92
- package/dist/core/model-setup/service.js +0 -329
- package/dist/core/model-setup/service.js.map +0 -1
- package/dist/core/model-setup/store.d.ts +0 -29
- package/dist/core/model-setup/store.js +0 -116
- package/dist/core/model-setup/store.js.map +0 -1
- package/dist/core/model-setup/wiring.d.ts +0 -59
- package/dist/core/model-setup/wiring.js +0 -132
- package/dist/core/model-setup/wiring.js.map +0 -1
- package/dist/server/control/routes/model-setups.d.ts +0 -11
- package/dist/server/control/routes/model-setups.js +0 -55
- package/dist/server/control/routes/model-setups.js.map +0 -1
package/dist/cloud/registry.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* list the same model — the app's hash map made that arbitrary; here it is at least stable.
|
|
12
12
|
*/
|
|
13
13
|
import { createHash } from 'node:crypto';
|
|
14
|
-
import { AtomicCoreError } from '../contracts/index.js';
|
|
14
|
+
import { AtomicCoreError, MEDIA_DIALECT_KIND, MEDIA_DIALECTS } from '../contracts/index.js';
|
|
15
15
|
/** Engines the core runs itself; registering one as a cloud provider would shadow its sessions. */
|
|
16
16
|
const LOCAL_PROVIDERS = new Set([
|
|
17
17
|
'llamacpp',
|
|
@@ -21,7 +21,68 @@ const LOCAL_PROVIDERS = new Set([
|
|
|
21
21
|
'foundation-models',
|
|
22
22
|
'tensorrt-llm',
|
|
23
23
|
'vllm',
|
|
24
|
+
'sglang',
|
|
24
25
|
]);
|
|
26
|
+
const isDialect = (value) => typeof value === 'string' && MEDIA_DIALECTS.includes(value);
|
|
27
|
+
/**
|
|
28
|
+
* The media part of a stored record, read as leniently as the rest: an entry this core does not
|
|
29
|
+
* understand (a dialect it has no adapter for) is dropped, not the provider.
|
|
30
|
+
*/
|
|
31
|
+
export function readStoredMedia(raw) {
|
|
32
|
+
if (raw === null || typeof raw !== 'object' || Array.isArray(raw))
|
|
33
|
+
return undefined;
|
|
34
|
+
const fields = raw;
|
|
35
|
+
const models = [];
|
|
36
|
+
const seen = new Set();
|
|
37
|
+
for (const item of Array.isArray(fields['models']) ? fields['models'] : []) {
|
|
38
|
+
const entry = item;
|
|
39
|
+
const id = entry?.['id'];
|
|
40
|
+
const kind = entry?.['kind'];
|
|
41
|
+
if (typeof id !== 'string' || id === '' || (kind !== 'image' && kind !== 'video'))
|
|
42
|
+
continue;
|
|
43
|
+
if (seen.has(`${kind}:${id}`))
|
|
44
|
+
continue;
|
|
45
|
+
seen.add(`${kind}:${id}`);
|
|
46
|
+
models.push({ id, kind });
|
|
47
|
+
}
|
|
48
|
+
const media = { models };
|
|
49
|
+
if (isDialect(fields['image_api']) && MEDIA_DIALECT_KIND[fields['image_api']] === 'image')
|
|
50
|
+
media.image_api = fields['image_api'];
|
|
51
|
+
if (isDialect(fields['video_api']) && MEDIA_DIALECT_KIND[fields['video_api']] === 'video')
|
|
52
|
+
media.video_api = fields['video_api'];
|
|
53
|
+
return media;
|
|
54
|
+
}
|
|
55
|
+
/** The media part of a registration, checked strictly: a malformed one is refused. */
|
|
56
|
+
function checkedMedia(media) {
|
|
57
|
+
if (media === null || typeof media !== 'object' || Array.isArray(media))
|
|
58
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', 'media must be an object');
|
|
59
|
+
const fields = media;
|
|
60
|
+
if (!Array.isArray(fields['models']))
|
|
61
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', 'media.models must be a list of {id, kind}');
|
|
62
|
+
for (const item of fields['models']) {
|
|
63
|
+
const entry = item;
|
|
64
|
+
if (typeof entry?.['id'] !== 'string' ||
|
|
65
|
+
entry['id'] === '' ||
|
|
66
|
+
(entry['kind'] !== 'image' && entry['kind'] !== 'video'))
|
|
67
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', 'media.models must be a list of {id, kind}');
|
|
68
|
+
}
|
|
69
|
+
for (const [key, kind] of [
|
|
70
|
+
['image_api', 'image'],
|
|
71
|
+
['video_api', 'video'],
|
|
72
|
+
]) {
|
|
73
|
+
const value = fields[key];
|
|
74
|
+
if (value === undefined || value === null)
|
|
75
|
+
continue;
|
|
76
|
+
if (!isDialect(value) || MEDIA_DIALECT_KIND[value] !== kind)
|
|
77
|
+
throw new AtomicCoreError('INVALID_ARGUMENT', `media.${key} must be one of the ${kind} adapters`, String(value));
|
|
78
|
+
}
|
|
79
|
+
return readStoredMedia(media);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* What the key is bound to. Media stays out on purpose: an adapter derives every media URL from
|
|
83
|
+
* `base_url`, so the media list never changes where the key goes, and a record registered before
|
|
84
|
+
* media existed keeps its key.
|
|
85
|
+
*/
|
|
25
86
|
function binding(provider) {
|
|
26
87
|
return createHash('sha256')
|
|
27
88
|
.update(JSON.stringify([provider.provider, provider.base_url, provider.custom_headers, provider.models]))
|
|
@@ -43,6 +104,7 @@ export class CloudRegistry {
|
|
|
43
104
|
const baseUrl = raw['base_url'];
|
|
44
105
|
const headers = Array.isArray(raw['custom_headers']) ? raw['custom_headers'] : [];
|
|
45
106
|
const models = Array.isArray(raw['models']) ? raw['models'] : [];
|
|
107
|
+
const media = readStoredMedia(raw['media']);
|
|
46
108
|
return [
|
|
47
109
|
{
|
|
48
110
|
provider,
|
|
@@ -50,6 +112,7 @@ export class CloudRegistry {
|
|
|
50
112
|
custom_headers: headers.filter((h) => typeof h?.header === 'string' &&
|
|
51
113
|
typeof h?.value === 'string'),
|
|
52
114
|
models: models.filter((m) => typeof m === 'string'),
|
|
115
|
+
...(media ? { media } : {}),
|
|
53
116
|
},
|
|
54
117
|
];
|
|
55
118
|
});
|
|
@@ -60,9 +123,13 @@ export class CloudRegistry {
|
|
|
60
123
|
get(provider) {
|
|
61
124
|
return this.list().find((p) => p.provider === provider);
|
|
62
125
|
}
|
|
63
|
-
/**
|
|
126
|
+
/**
|
|
127
|
+
* Register or replace a provider. Everything but the key and the media is replaced wholesale, as
|
|
128
|
+
* the app does; the key and the media are kept when the input leaves them out.
|
|
129
|
+
*/
|
|
64
130
|
async upsert(input) {
|
|
65
131
|
const provider = validate(input);
|
|
132
|
+
const media = input.media === undefined || input.media === null ? input.media : checkedMedia(input.media);
|
|
66
133
|
const next = {
|
|
67
134
|
provider,
|
|
68
135
|
base_url: input.base_url === undefined || input.base_url === null ? null : input.base_url.trim(),
|
|
@@ -72,6 +139,9 @@ export class CloudRegistry {
|
|
|
72
139
|
return this.serialize(async () => {
|
|
73
140
|
const list = this.stored();
|
|
74
141
|
const at = list.findIndex((p) => p.provider === provider);
|
|
142
|
+
const kept = media === undefined ? list[at]?.media : (media ?? undefined);
|
|
143
|
+
if (kept)
|
|
144
|
+
next.media = kept;
|
|
75
145
|
if (at >= 0)
|
|
76
146
|
list[at] = next;
|
|
77
147
|
else
|
|
@@ -128,6 +198,7 @@ export class CloudRegistry {
|
|
|
128
198
|
baseUrl: p.base_url,
|
|
129
199
|
customHeaders: p.custom_headers,
|
|
130
200
|
models: p.models,
|
|
201
|
+
...(p.media ? { media: p.media } : {}),
|
|
131
202
|
},
|
|
132
203
|
],
|
|
133
204
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/cloud/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/cloud/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/config/paths.d.ts
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
* <data>/llamacpp-upstream/tmp/
|
|
9
9
|
* <data>/atomic-prism/backends/<version>/<backend>/build/bin/llama-server (PrismML llama.cpp, Bonsai)
|
|
10
10
|
* <data>/atomic-prism/tmp/
|
|
11
|
-
* <data>/atomic-core/prism-setups/<operation id>.json (Bonsai setup operations)
|
|
12
11
|
* <data>/mlx/models/<id>/{model.yml, config.json, *.safetensors}
|
|
13
12
|
* <data>/diffusion/{backends/<tag>/<backend>/, models/, scratch/}, <data>/images/ (image generation; the app's paths since v2.0.38)
|
|
14
13
|
* <data>/videos/ (video generation; the folder the app's ADR of 2026-09-10 reserved)
|
|
@@ -71,8 +70,8 @@ export interface CoreFiles {
|
|
|
71
70
|
cloudflaredEmptyConfig: string;
|
|
72
71
|
/** The core's own error-reporting state: the user's stored choice, the install id. */
|
|
73
72
|
telemetry: string;
|
|
74
|
-
/**
|
|
75
|
-
|
|
73
|
+
/** The last remote media catalog (conf `providers/media.json`) the core fetched. */
|
|
74
|
+
mediaCatalogCache: string;
|
|
76
75
|
}
|
|
77
76
|
/** Image generation. Paths the app's diffusion plugin chose; the core adopted them as they are. */
|
|
78
77
|
export interface DiffusionPaths {
|
|
@@ -87,6 +86,8 @@ export interface DiffusionPaths {
|
|
|
87
86
|
defaultOutputDir: string;
|
|
88
87
|
/** `<data>/videos`: the video gallery, unless the user chose another folder. */
|
|
89
88
|
defaultVideoOutputDir: string;
|
|
89
|
+
/** Remote video jobs still running at a provider, so a restarted core keeps polling them. */
|
|
90
|
+
remoteJobsFile: string;
|
|
90
91
|
}
|
|
91
92
|
/**
|
|
92
93
|
* What this scope (this core's own data folder) owns alone among the managed text runtimes' files —
|
package/dist/config/paths.js
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
* <data>/llamacpp-upstream/tmp/
|
|
9
9
|
* <data>/atomic-prism/backends/<version>/<backend>/build/bin/llama-server (PrismML llama.cpp, Bonsai)
|
|
10
10
|
* <data>/atomic-prism/tmp/
|
|
11
|
-
* <data>/atomic-core/prism-setups/<operation id>.json (Bonsai setup operations)
|
|
12
11
|
* <data>/mlx/models/<id>/{model.yml, config.json, *.safetensors}
|
|
13
12
|
* <data>/diffusion/{backends/<tag>/<backend>/, models/, scratch/}, <data>/images/ (image generation; the app's paths since v2.0.38)
|
|
14
13
|
* <data>/videos/ (video generation; the folder the app's ADR of 2026-09-10 reserved)
|
|
@@ -26,7 +25,7 @@
|
|
|
26
25
|
* (task 2.12: the managed-text load lifecycle)
|
|
27
26
|
*/
|
|
28
27
|
import { join, relative, sep } from 'node:path';
|
|
29
|
-
import { AtomicCoreError } from '../contracts/index.js';
|
|
28
|
+
import { AtomicCoreError, isManagedProviderId } from '../contracts/index.js';
|
|
30
29
|
import { dataDir } from './data-folder.js';
|
|
31
30
|
/** Subfolder holding the shared GGUF tree: `<data>/llamacpp/models`. Not the provider id. */
|
|
32
31
|
export const MODELS_ROOT = 'llamacpp';
|
|
@@ -86,7 +85,7 @@ export function dataLayout(root) {
|
|
|
86
85
|
cloudflaredEmptyConfig: join(coreDir, 'cloudflared-empty.yml'),
|
|
87
86
|
/** The core's own error-reporting state: the user's stored choice, the install id. */
|
|
88
87
|
telemetry: join(coreDir, 'telemetry.json'),
|
|
89
|
-
|
|
88
|
+
mediaCatalogCache: join(coreDir, 'media-catalog.cache.json'),
|
|
90
89
|
},
|
|
91
90
|
diffusion: {
|
|
92
91
|
root: diffusionDir,
|
|
@@ -95,9 +94,22 @@ export function dataLayout(root) {
|
|
|
95
94
|
scratchDir: join(diffusionDir, 'scratch'),
|
|
96
95
|
defaultOutputDir: join(root, 'images'),
|
|
97
96
|
defaultVideoOutputDir: join(root, 'videos'),
|
|
97
|
+
remoteJobsFile: join(diffusionDir, 'remote-jobs.json'),
|
|
98
98
|
},
|
|
99
99
|
provider(id) {
|
|
100
100
|
const providerRoot = join(root, id);
|
|
101
|
+
// A managed engine's models are the store's (`<data>/managed-models/<id>/`): a Hugging Face
|
|
102
|
+
// checkpoint directory plus `model.yml`, written by the app and the CLI, read by core (spec
|
|
103
|
+
// `managed-model-store`), and the same folder for every managed engine (change
|
|
104
|
+
// `add-sglang-runtime`, D1: every one of `MANAGED_PROVIDER_IDS`, none named here).
|
|
105
|
+
if (isManagedProviderId(id)) {
|
|
106
|
+
return {
|
|
107
|
+
root: providerRoot,
|
|
108
|
+
backendsDir: join(providerRoot, 'backends'),
|
|
109
|
+
tmpDir: join(providerRoot, 'tmp'),
|
|
110
|
+
modelsDir: join(root, MANAGED_MODELS_DIR),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
101
113
|
switch (id) {
|
|
102
114
|
case 'llamacpp':
|
|
103
115
|
return {
|
|
@@ -115,17 +127,6 @@ export function dataLayout(root) {
|
|
|
115
127
|
tmpDir: join(providerRoot, 'tmp'),
|
|
116
128
|
modelsDir: join(root, MODELS_ROOT, 'models'),
|
|
117
129
|
};
|
|
118
|
-
// A managed engine's models are the store's (`<data>/managed-models/<id>/`): a Hugging Face
|
|
119
|
-
// checkpoint directory plus `model.yml`, written by the app and the CLI, read by core (spec
|
|
120
|
-
// `managed-model-store`), and the same folder for every managed engine.
|
|
121
|
-
case 'tensorrt-llm':
|
|
122
|
-
case 'vllm':
|
|
123
|
-
return {
|
|
124
|
-
root: providerRoot,
|
|
125
|
-
backendsDir: join(providerRoot, 'backends'),
|
|
126
|
-
tmpDir: join(providerRoot, 'tmp'),
|
|
127
|
-
modelsDir: join(root, MANAGED_MODELS_DIR),
|
|
128
|
-
};
|
|
129
130
|
case 'mlx':
|
|
130
131
|
case 'foundation-models':
|
|
131
132
|
return {
|
package/dist/config/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* Source of truth in the app: `src-tauri/plugins/tauri-plugin-atomic-diffusion/src/state.rs`.
|
|
8
8
|
*/
|
|
9
9
|
import type { DiffusionErrorCode } from './errors.js';
|
|
10
|
+
import type { MediaDialect, MediaTarget, RemoteImageOptions, RemoteVideoOptions } from './media.js';
|
|
10
11
|
/** Which native engine serves generation. Only `sd-cpp` exists in this build. */
|
|
11
12
|
export type DiffusionEngineId = 'sd-cpp' | 'diffusers';
|
|
12
13
|
/** The compute backend the engine build was made for. */
|
|
@@ -186,6 +187,13 @@ export interface ImageGenerateRequest {
|
|
|
186
187
|
referenceImages?: ImageSource[];
|
|
187
188
|
/** Denoise strength 0..1 for the init-image workflows. */
|
|
188
189
|
strength?: number;
|
|
190
|
+
/**
|
|
191
|
+
* A cloud or self-hosted provider's model instead of the resident one. `width`, `height`, `steps`
|
|
192
|
+
* and `cfgScale` are still sent; a model whose descriptor has no such control ignores them.
|
|
193
|
+
*/
|
|
194
|
+
target?: MediaTarget;
|
|
195
|
+
/** What only a remote model takes; ignored without `target`. */
|
|
196
|
+
remote?: RemoteImageOptions;
|
|
189
197
|
}
|
|
190
198
|
export interface ImageJobProgress {
|
|
191
199
|
phase: ImageJobPhase;
|
|
@@ -235,21 +243,34 @@ export interface ImageRecipe {
|
|
|
235
243
|
strength: number | null;
|
|
236
244
|
model: {
|
|
237
245
|
modelId: string;
|
|
246
|
+
/** The provider id for a remote model. */
|
|
238
247
|
family: string;
|
|
239
248
|
displayName: string;
|
|
240
|
-
/** Basename of the transformer file. */
|
|
249
|
+
/** Basename of the transformer file; empty for a remote model. */
|
|
241
250
|
filename: string;
|
|
242
251
|
};
|
|
243
|
-
engine:
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
tag: string;
|
|
247
|
-
offload: DiffusionOffloadPolicy;
|
|
248
|
-
cpuFallback: boolean;
|
|
249
|
-
};
|
|
252
|
+
engine: DiffusionRecipeEngine;
|
|
253
|
+
/** What a remote model was asked besides the fields above; absent for a local one. */
|
|
254
|
+
remote?: RemoteImageOptions;
|
|
250
255
|
createdAtMs: number;
|
|
251
256
|
durationMs: number;
|
|
252
257
|
}
|
|
258
|
+
/** The engine the core ran, as a recipe records it. */
|
|
259
|
+
export interface LocalRecipeEngine {
|
|
260
|
+
kind: DiffusionEngineId;
|
|
261
|
+
backend: DiffusionBackend;
|
|
262
|
+
tag: string;
|
|
263
|
+
offload: DiffusionOffloadPolicy;
|
|
264
|
+
cpuFallback: boolean;
|
|
265
|
+
}
|
|
266
|
+
/** A provider's model made it: who, through which adapter. */
|
|
267
|
+
export interface RemoteRecipeEngine {
|
|
268
|
+
kind: 'remote';
|
|
269
|
+
provider: string;
|
|
270
|
+
api: MediaDialect;
|
|
271
|
+
}
|
|
272
|
+
export type DiffusionRecipeEngine = LocalRecipeEngine | RemoteRecipeEngine;
|
|
273
|
+
export declare const isRemoteRecipeEngine: (engine: DiffusionRecipeEngine) => engine is RemoteRecipeEngine;
|
|
253
274
|
export interface GalleryImageItem {
|
|
254
275
|
/** `<jobId>-<index:02>`; also the file stem. */
|
|
255
276
|
id: string;
|
|
@@ -315,8 +336,8 @@ export interface DiffusionCancelResult {
|
|
|
315
336
|
export type VideoWorkflowId = 'create' | 'image-to-video';
|
|
316
337
|
export type VideoJobState = ImageJobState;
|
|
317
338
|
export type VideoJobPhase = ImageJobPhase;
|
|
318
|
-
/**
|
|
319
|
-
export type VideoOutputFormat = 'webm';
|
|
339
|
+
/** VP8 in WebM is what sd.cpp writes; providers answer with MP4. */
|
|
340
|
+
export type VideoOutputFormat = 'webm' | 'mp4';
|
|
320
341
|
/** What the loaded video model can do; the app gates its form on this. */
|
|
321
342
|
export interface VideoCapabilities {
|
|
322
343
|
workflows: VideoWorkflowId[];
|
|
@@ -363,6 +384,10 @@ export interface VideoGenerateRequest {
|
|
|
363
384
|
initImage?: ImageSource;
|
|
364
385
|
/** Reserved for `image-to-video`: the last frame. */
|
|
365
386
|
endImage?: ImageSource;
|
|
387
|
+
/** A cloud or self-hosted provider's model instead of the resident one. */
|
|
388
|
+
target?: MediaTarget;
|
|
389
|
+
/** What only a remote model takes; ignored without `target`. */
|
|
390
|
+
remote?: RemoteVideoOptions;
|
|
366
391
|
}
|
|
367
392
|
/** Which memory a video generation competes for: Apple's unified memory, a discrete GPU's, or system RAM. */
|
|
368
393
|
export type VideoMemoryPool = 'unified' | 'vram' | 'system';
|
|
@@ -460,18 +485,13 @@ export interface VideoRecipe {
|
|
|
460
485
|
outputFormat: VideoOutputFormat;
|
|
461
486
|
model: {
|
|
462
487
|
modelId: string;
|
|
488
|
+
/** The provider id for a remote model. */
|
|
463
489
|
family: string;
|
|
464
490
|
displayName: string;
|
|
465
|
-
/** Basename of the transformer file. */
|
|
491
|
+
/** Basename of the transformer file; empty for a remote model. */
|
|
466
492
|
filename: string;
|
|
467
493
|
};
|
|
468
|
-
engine:
|
|
469
|
-
kind: DiffusionEngineId;
|
|
470
|
-
backend: DiffusionBackend;
|
|
471
|
-
tag: string;
|
|
472
|
-
offload: DiffusionOffloadPolicy;
|
|
473
|
-
cpuFallback: boolean;
|
|
474
|
-
};
|
|
494
|
+
engine: DiffusionRecipeEngine;
|
|
475
495
|
createdAtMs: number;
|
|
476
496
|
durationMs: number;
|
|
477
497
|
/**
|
|
@@ -479,6 +499,13 @@ export interface VideoRecipe {
|
|
|
479
499
|
* for a clip made before it was recorded, or when no sampling step was seen.
|
|
480
500
|
*/
|
|
481
501
|
decodeMs?: number;
|
|
502
|
+
/**
|
|
503
|
+
* The clip's length in seconds as the file says; a remote clip has it instead of `fps` and
|
|
504
|
+
* `frameCount` (both 0 when the file did not say).
|
|
505
|
+
*/
|
|
506
|
+
durationSecs?: number;
|
|
507
|
+
/** What a remote model was asked; absent for a local one. */
|
|
508
|
+
remote?: RemoteVideoOptions;
|
|
482
509
|
}
|
|
483
510
|
export interface GalleryVideoItem {
|
|
484
511
|
/** The job id (32 hex characters); also the file stem. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diffusion.js","sourceRoot":"","sources":["../../src/contracts/diffusion.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
1
|
+
{"version":3,"file":"diffusion.js","sourceRoot":"","sources":["../../src/contracts/diffusion.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiSH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAA6B,EAAgC,EAAE,CAClG,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAA"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import type { ProxyConfig } from './backend-advisor.js';
|
|
13
13
|
import type { ErrorBody } from './errors.js';
|
|
14
14
|
/** Every engine the layer answers for, in the order the desktop lists them. */
|
|
15
|
-
export declare const ENGINE_IDS: readonly ["llamacpp-upstream", "llamacpp", "atomic-prism", "sd-cpp", "mlx", "tensorrt-llm", "vllm"];
|
|
15
|
+
export declare const ENGINE_IDS: readonly ["llamacpp-upstream", "llamacpp", "atomic-prism", "sd-cpp", "mlx", "tensorrt-llm", "vllm", "sglang"];
|
|
16
16
|
export type EngineId = (typeof ENGINE_IDS)[number];
|
|
17
17
|
/** Which system underneath installs the engine. */
|
|
18
18
|
export type EngineKind = 'llamacpp' | 'engine-build' | 'managed';
|
|
@@ -18,6 +18,7 @@ export const ENGINE_IDS = [
|
|
|
18
18
|
'mlx',
|
|
19
19
|
'tensorrt-llm',
|
|
20
20
|
'vllm',
|
|
21
|
+
'sglang',
|
|
21
22
|
];
|
|
22
23
|
/** The kind of every engine: what decides its update body, who picks its active build, how it applies. */
|
|
23
24
|
export const ENGINE_KINDS = {
|
|
@@ -28,6 +29,7 @@ export const ENGINE_KINDS = {
|
|
|
28
29
|
'mlx': 'engine-build',
|
|
29
30
|
'tensorrt-llm': 'managed',
|
|
30
31
|
'vllm': 'managed',
|
|
32
|
+
'sglang': 'managed',
|
|
31
33
|
};
|
|
32
34
|
export const ENGINE_NOT_REMOVABLE_REASONS = ['active', 'bundled', 'in-use'];
|
|
33
35
|
export const ENGINE_UPDATE_BLOCKED_REASONS = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engines.js","sourceRoot":"","sources":["../../src/contracts/engines.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,mBAAmB;IACnB,UAAU;IACV,cAAc;IACd,QAAQ;IACR,KAAK;IACL,cAAc;IACd,MAAM;
|
|
1
|
+
{"version":3,"file":"engines.js","sourceRoot":"","sources":["../../src/contracts/engines.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,mBAAmB;IACnB,UAAU;IACV,cAAc;IACd,QAAQ;IACR,KAAK;IACL,cAAc;IACd,MAAM;IACN,QAAQ;CACA,CAAA;AAMV,0GAA0G;AAC1G,MAAM,CAAC,MAAM,YAAY,GAA2C;IAClE,mBAAmB,EAAE,UAAU;IAC/B,UAAU,EAAE,UAAU;IACtB,cAAc,EAAE,UAAU;IAC1B,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,cAAc;IACrB,cAAc,EAAE,SAAS;IACzB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;CACpB,CAAA;AAeD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAiCpF,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,eAAe;IACf,UAAU;IACV,oBAAoB;IACpB,oBAAoB;CACZ,CAAA;AAsHV,gGAAgG;AAChG,YAAY;AACZ,gGAAgG;AAEhG,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ;IACR,UAAU;IACV,SAAS;IACT,WAAW;IACX,iBAAiB;IACjB,WAAW;CACH,CAAA"}
|
|
@@ -57,8 +57,6 @@ export type CoreErrorCode = 'CORE_ALREADY_RUNNING' | 'CORE_NOT_RUNNING' | 'CORE_
|
|
|
57
57
|
| 'MODEL_ENGINE_INCOMPATIBLE'
|
|
58
58
|
/** A legacy layout no current engine runs (Bonsai Q2_0 group-128); `details` names the replacement. */
|
|
59
59
|
| 'MODEL_FORMAT_LEGACY'
|
|
60
|
-
/** A model setup was started from a plan whose inputs changed since it was computed; plan again. */
|
|
61
|
-
| 'MODEL_SETUP_PLAN_STALE' | 'MODEL_SETUP_NOT_FOUND'
|
|
62
60
|
/** Another install of the same engine build (sd.cpp, MLX) is running; wait for it. */
|
|
63
61
|
| 'ENGINE_INSTALL_IN_PROGRESS';
|
|
64
62
|
/**
|
|
@@ -66,7 +64,7 @@ export type CoreErrorCode = 'CORE_ALREADY_RUNNING' | 'CORE_NOT_RUNNING' | 'CORE_
|
|
|
66
64
|
* web app). `lib/diffusion/errors.ts` matches on them. Three are spelled like codes above and are
|
|
67
65
|
* shared with them: `MODEL_LOAD_FAILED`, `MODEL_NOT_LOADED`, `OUT_OF_MEMORY`.
|
|
68
66
|
*/
|
|
69
|
-
export declare const DIFFUSION_ERROR_CODES: readonly ["ENGINE_MISSING", "ENGINE_UPDATE_REQUIRED", "ENGINE_INSTALL_FAILED", "ENGINE_CRASHED", "MODEL_MISSING", "SIDE_FILE_MISSING", "MODEL_LOAD_FAILED", "MODEL_INCOMPATIBLE", "MODEL_NOT_LOADED", "OUT_OF_MEMORY", "UNSUPPORTED_BACKEND", "UNSUPPORTED_WORKFLOW", "INVALID_DIMENSIONS", "INVALID_REQUEST", "INVALID_OUTPUT", "JOB_BUSY", "JOB_NOT_FOUND", "QUEUE_FULL", "CANCELLED", "DISK_FULL", "BACKEND_IN_USE", "NOT_CONFIGURED", "INTERNAL"];
|
|
67
|
+
export declare const DIFFUSION_ERROR_CODES: readonly ["ENGINE_MISSING", "ENGINE_UPDATE_REQUIRED", "ENGINE_INSTALL_FAILED", "ENGINE_CRASHED", "MODEL_MISSING", "SIDE_FILE_MISSING", "MODEL_LOAD_FAILED", "MODEL_INCOMPATIBLE", "MODEL_NOT_LOADED", "OUT_OF_MEMORY", "UNSUPPORTED_BACKEND", "UNSUPPORTED_WORKFLOW", "INVALID_DIMENSIONS", "INVALID_REQUEST", "INVALID_OUTPUT", "JOB_BUSY", "JOB_NOT_FOUND", "QUEUE_FULL", "CANCELLED", "DISK_FULL", "BACKEND_IN_USE", "NOT_CONFIGURED", "INTERNAL", "REMOTE_NOT_CONFIGURED", "REMOTE_AUTH_FAILED", "REMOTE_REJECTED", "REMOTE_CONTENT_BLOCKED", "REMOTE_RATE_LIMITED", "REMOTE_QUOTA", "REMOTE_UNAVAILABLE", "REMOTE_TIMEOUT", "REMOTE_UNSUPPORTED"];
|
|
70
68
|
export type DiffusionErrorCode = (typeof DIFFUSION_ERROR_CODES)[number];
|
|
71
69
|
/**
|
|
72
70
|
* Managed text runtimes: the container environment, its durable setup operations and the GPU
|
package/dist/contracts/errors.js
CHANGED
|
@@ -36,6 +36,22 @@ export const DIFFUSION_ERROR_CODES = [
|
|
|
36
36
|
'BACKEND_IN_USE',
|
|
37
37
|
'NOT_CONFIGURED',
|
|
38
38
|
'INTERNAL',
|
|
39
|
+
/** Remote media (cloud and self-hosted providers): the provider or the model is not set up here. */
|
|
40
|
+
'REMOTE_NOT_CONFIGURED',
|
|
41
|
+
/** The provider refused the key, or the account may not use the model. */
|
|
42
|
+
'REMOTE_AUTH_FAILED',
|
|
43
|
+
/** The provider refused the request as malformed or unsupported; `details` carries its words. */
|
|
44
|
+
'REMOTE_REJECTED',
|
|
45
|
+
/** The provider's safety filter refused the prompt, an input image or the result. */
|
|
46
|
+
'REMOTE_CONTENT_BLOCKED',
|
|
47
|
+
'REMOTE_RATE_LIMITED',
|
|
48
|
+
/** Out of credit, or over a spending limit. */
|
|
49
|
+
'REMOTE_QUOTA',
|
|
50
|
+
/** The provider could not be reached, or answered with a server error. */
|
|
51
|
+
'REMOTE_UNAVAILABLE',
|
|
52
|
+
'REMOTE_TIMEOUT',
|
|
53
|
+
/** The model cannot do what was asked (a workflow, an input it does not take). */
|
|
54
|
+
'REMOTE_UNSUPPORTED',
|
|
39
55
|
];
|
|
40
56
|
/**
|
|
41
57
|
* Managed text runtimes: the container environment, its durable setup operations and the GPU
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/contracts/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/contracts/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8FH;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,gBAAgB;IAChB,wGAAwG;IACxG,wBAAwB;IACxB,uBAAuB;IACvB,gBAAgB;IAChB,eAAe;IACf,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,eAAe;IACf,qBAAqB;IACrB,sBAAsB;IACtB,oBAAoB;IACpB,iBAAiB;IACjB,kGAAkG;IAClG,gBAAgB;IAChB,UAAU;IACV,eAAe;IACf,YAAY;IACZ,WAAW;IACX,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,UAAU;IACV,oGAAoG;IACpG,uBAAuB;IACvB,0EAA0E;IAC1E,oBAAoB;IACpB,iGAAiG;IACjG,iBAAiB;IACjB,qFAAqF;IACrF,wBAAwB;IACxB,qBAAqB;IACrB,+CAA+C;IAC/C,cAAc;IACd,0EAA0E;IAC1E,oBAAoB;IACpB,gBAAgB;IAChB,kFAAkF;IAClF,oBAAoB;CACZ,CAAA;AAGV;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,mGAAmG;IACnG,4BAA4B;IAC5B,6BAA6B;IAC7B,2EAA2E;IAC3E,2BAA2B;IAC3B,0BAA0B;IAC1B,gGAAgG;IAChG,sBAAsB;IACtB,2BAA2B;IAC3B,8BAA8B;IAC9B,6BAA6B;IAC7B,mFAAmF;IACnF,2BAA2B;IAC3B,wFAAwF;IACxF,0BAA0B;IAC1B,yBAAyB;IACzB,0BAA0B;IAC1B,yEAAyE;IACzE,0BAA0B;IAC1B,4BAA4B;IAC5B,oFAAoF;IACpF,0BAA0B;IAC1B,yBAAyB;IACzB,6EAA6E;IAC7E,oBAAoB;IACpB,8FAA8F;IAC9F,UAAU;IACV,8EAA8E;IAC9E,0BAA0B;CAClB,CAAA;AAMV;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW;IACX,iBAAiB;IACjB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,SAAS;CACD,CAAA;AAUV,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAW;IACf,OAAO,CAAoB;IAEpC,YAAY,IAAe,EAAE,OAAe,EAAE,OAAgB;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;YAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;YAC5C,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAA;IACvE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAe;QAC7B,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACnE,CAAC;CACF"}
|
|
@@ -9,7 +9,6 @@ import type { EngineChangedEvent } from './engines.js';
|
|
|
9
9
|
import type { EnvironmentOperation, EnvironmentSnapshot } from './environment.js';
|
|
10
10
|
import type { DecisionErrorEvent, DecisionStateEvent } from './decision.js';
|
|
11
11
|
import type { EmbeddingErrorEvent, EmbeddingStateEvent } from './embedding.js';
|
|
12
|
-
import type { ModelSetup } from './model-setup.js';
|
|
13
12
|
import type { RemoteAccessStatus } from './remote-access.js';
|
|
14
13
|
import type { LocalProviderId, RuntimeDeviceInfo, SessionInfo, SessionLoadStage } from './session.js';
|
|
15
14
|
export type DownloadKind = 'model' | 'backend' | 'draft' | 'cudart';
|
|
@@ -24,6 +23,17 @@ export interface DownloadStage {
|
|
|
24
23
|
attempt: number;
|
|
25
24
|
maxAttempts: number;
|
|
26
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* One running download's combined progress, as its last `download:progress` event said: what
|
|
28
|
+
* `GET /atomic/v1/snapshot` lists under `downloads`. The core downloads engine builds only; model
|
|
29
|
+
* files are the clients' (ADR 2026-10-15-core-does-not-download-models).
|
|
30
|
+
*/
|
|
31
|
+
export interface DownloadProgress {
|
|
32
|
+
taskId: string;
|
|
33
|
+
transferred: number;
|
|
34
|
+
total: number;
|
|
35
|
+
percent: number;
|
|
36
|
+
}
|
|
27
37
|
export interface CoreEvents {
|
|
28
38
|
'download:started': {
|
|
29
39
|
taskId: string;
|
|
@@ -235,11 +245,6 @@ export interface CoreEvents {
|
|
|
235
245
|
*/
|
|
236
246
|
'embedding:state': EmbeddingStateEvent;
|
|
237
247
|
'embedding:error': EmbeddingErrorEvent;
|
|
238
|
-
/**
|
|
239
|
-
* Every write of a model setup (`src/contracts/model-setup.ts`), the whole record: keep the one
|
|
240
|
-
* with the highest `revision` per `setup_id`.
|
|
241
|
-
*/
|
|
242
|
-
'model-setup:changed': ModelSetup;
|
|
243
248
|
/**
|
|
244
249
|
* One request to the Local API Server, for the app's analytics window and its API screen
|
|
245
250
|
* (PLAN.md §2 decision 15). `started` and `progress` are sent only while the app's inspector is
|
|
@@ -9,12 +9,12 @@ export * from './events.js';
|
|
|
9
9
|
export * from './control-api.js';
|
|
10
10
|
export * from './remote-access.js';
|
|
11
11
|
export * from './diffusion.js';
|
|
12
|
+
export * from './media.js';
|
|
12
13
|
export * from './decision.js';
|
|
13
14
|
export * from './embedding.js';
|
|
14
15
|
export * from './hardware.js';
|
|
15
16
|
export * from './backend-advisor.js';
|
|
16
17
|
export * from './environment.js';
|
|
17
18
|
export * from './model-compatibility.js';
|
|
18
|
-
export * from './model-setup.js';
|
|
19
19
|
export * from './engine-builds.js';
|
|
20
20
|
export * from './engines.js';
|
package/dist/contracts/index.js
CHANGED
|
@@ -9,13 +9,13 @@ export * from './events.js';
|
|
|
9
9
|
export * from './control-api.js';
|
|
10
10
|
export * from './remote-access.js';
|
|
11
11
|
export * from './diffusion.js';
|
|
12
|
+
export * from './media.js';
|
|
12
13
|
export * from './decision.js';
|
|
13
14
|
export * from './embedding.js';
|
|
14
15
|
export * from './hardware.js';
|
|
15
16
|
export * from './backend-advisor.js';
|
|
16
17
|
export * from './environment.js';
|
|
17
18
|
export * from './model-compatibility.js';
|
|
18
|
-
export * from './model-setup.js';
|
|
19
19
|
export * from './engine-builds.js';
|
|
20
20
|
export * from './engines.js';
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA"}
|