@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
|
@@ -37,7 +37,8 @@ export class PublicServerLifecycle {
|
|
|
37
37
|
return undefined;
|
|
38
38
|
return {
|
|
39
39
|
origin: dialOrigin(this.publicServer.host, this.publicServer.port),
|
|
40
|
-
|
|
40
|
+
// The listener's own answer: a host keyring requires a key even when `server.api_key` is empty.
|
|
41
|
+
hasApiKey: this.publicServer.state().requires_api_key,
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
44
|
/** Start the public listener; an identical start is idempotent, an incompatible one is a conflict. */
|
|
@@ -67,7 +68,7 @@ export class PublicServerLifecycle {
|
|
|
67
68
|
host: server.host,
|
|
68
69
|
port: server.port,
|
|
69
70
|
prefix: server.prefix,
|
|
70
|
-
requiresApiKey:
|
|
71
|
+
requiresApiKey: server.state().requires_api_key,
|
|
71
72
|
}, (message) => this.deps.log('warn', message));
|
|
72
73
|
}
|
|
73
74
|
this.deps.events.emit('server:started', { host: server.host, port: server.port });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-server.js","sourceRoot":"","sources":["../../src/core/public-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAIvD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAqDtD,0EAA0E;AAC1E,MAAM,OAAO,qBAAqB;IAOH;IANrB,YAAY,CAA0B;IACtC,eAAe,GAAwB,YAAY,EAAE,CAAA;IACrD,YAAY,CAA2C;IACvD,gBAAgB,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IACnD,QAAQ,GAAG,KAAK,CAAA;IAExB,YAA6B,IAA+B;QAA/B,SAAI,GAAJ,IAAI,CAA2B;IAAG,CAAC;IAEhE,KAAK;QACH,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;IACpF,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAA;QAC/E,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YAClE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"public-server.js","sourceRoot":"","sources":["../../src/core/public-server.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -44,6 +44,17 @@ export interface AtomicCoreOptions {
|
|
|
44
44
|
* system directories (`/usr/bin`, `/usr/local/bin`, `/bin`), never `PATH`; `null` means none.
|
|
45
45
|
*/
|
|
46
46
|
dockerPath?: string | null;
|
|
47
|
+
/**
|
|
48
|
+
* The host's keyring for the public API (a terminal that hands every client its own key), read for
|
|
49
|
+
* every request: a client must present one of these, and a revoked key is refused on the next
|
|
50
|
+
* request. An empty list refuses every client; `undefined` keeps `server.api_key`.
|
|
51
|
+
*/
|
|
52
|
+
publicApiKeys?: () => readonly string[] | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* How long reading a remote GGUF header for a model check may take in all (a terminal that must not
|
|
55
|
+
* hang on a slow or broken mirror); past it the check goes on without the header. Unset waits.
|
|
56
|
+
*/
|
|
57
|
+
remoteGgufTimeoutMs?: number;
|
|
47
58
|
fetch?: typeof fetch;
|
|
48
59
|
env?: NodeJS.ProcessEnv;
|
|
49
60
|
/** 'owner' takes the instance lock; 'auto' is the same today — attaching is the CLI's job. */
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAqFA,MAAM,CAAC,MAAM,cAAc,GAAoB,mBAAmB,CAAA"}
|
|
@@ -64,4 +64,8 @@ export interface SpawnDecisionDeps {
|
|
|
64
64
|
}
|
|
65
65
|
/** The error for a process that died before it was ready: the engine's own last lines in the details. */
|
|
66
66
|
export declare function earlyExitError(exit: ExitInfo, tail: readonly string[]): AtomicCoreError;
|
|
67
|
+
/**
|
|
68
|
+
* Start the decision model, on another port when the one picked was taken before the engine could
|
|
69
|
+
* bind it (`retryOnTakenPort`): an exit while loading that says so is that race, not the model.
|
|
70
|
+
*/
|
|
67
71
|
export declare function spawnDecisionServer(spec: DecisionServerSpec, deps: SpawnDecisionDeps): Promise<DecisionProcessHandle>;
|
package/dist/decision/process.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import { randomBytes } from 'node:crypto';
|
|
13
13
|
import { dirname } from 'node:path';
|
|
14
14
|
import { AtomicCoreError } from '../contracts/index.js';
|
|
15
|
-
import { backendOutputReporter, buildProcessEnv, discoverCudaPaths, nodeCudaProbeEnv, randomFreePort, spawnManaged, } from '../runtime/shared/index.js';
|
|
15
|
+
import { backendOutputReporter, buildProcessEnv, discoverCudaPaths, exitedOnTakenPort, nodeCudaProbeEnv, randomFreePort, retryOnTakenPort, spawnManaged, } from '../runtime/shared/index.js';
|
|
16
16
|
import { buildDecisionArgs, buildUpstreamDecisionArgs, commandSummary, decisionEnv, DECISION_HOST, withoutDecisionEnv, } from './args.js';
|
|
17
17
|
import { UPSTREAM_DECISION_DEFAULT_CTX } from './model-facts.js';
|
|
18
18
|
import { checkReadiness, READINESS_REQUEST_TIMEOUT_MS } from './readiness.js';
|
|
@@ -39,7 +39,16 @@ function describeExit(exit) {
|
|
|
39
39
|
export function earlyExitError(exit, tail) {
|
|
40
40
|
return new AtomicCoreError('MODEL_LOAD_FAILED', `The decision model exited with ${describeExit(exit)} while loading.`, tail.slice(-20).join('\n') || undefined);
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Start the decision model, on another port when the one picked was taken before the engine could
|
|
44
|
+
* bind it (`retryOnTakenPort`): an exit while loading that says so is that race, not the model.
|
|
45
|
+
*/
|
|
42
46
|
export async function spawnDecisionServer(spec, deps) {
|
|
47
|
+
return retryOnTakenPort(() => spawnDecisionServerOnce(spec, deps), (error) => error instanceof AtomicCoreError &&
|
|
48
|
+
error.code === 'MODEL_LOAD_FAILED' &&
|
|
49
|
+
exitedOnTakenPort(error.details), (attempt) => deps.log?.('warn', `the decision model's port was taken while it started; retrying (${attempt})`));
|
|
50
|
+
}
|
|
51
|
+
async function spawnDecisionServerOnce(spec, deps) {
|
|
43
52
|
const platform = deps.platform ?? process.platform;
|
|
44
53
|
const baseEnv = withoutDecisionEnv(deps.env ?? process.env);
|
|
45
54
|
const log = deps.log ?? (() => { });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/decision/process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/decision/process.ts"],"names":[],"mappings":"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"}
|
package/dist/diffusion/args.d.ts
CHANGED
|
@@ -85,8 +85,9 @@ export declare const VIDEO_VAE_TILING_PIXEL_FRAMES: number;
|
|
|
85
85
|
/**
|
|
86
86
|
* The `POST /sdcpp/v1/img_gen` body. The whole batch goes in one request; guidance is split the way
|
|
87
87
|
* sd.cpp expects (CFG → `txt_cfg`, FLUX distilled → `distilled_guidance`). Only set keys are sent,
|
|
88
|
-
* so the server's own defaults apply to the rest.
|
|
89
|
-
*
|
|
88
|
+
* so the server's own defaults apply to the rest. `custom_sigmas` goes in when the family ships a
|
|
89
|
+
* fixed schedule for exactly this many steps (Qwen Image 2.1 Turbo). The workflow decides which
|
|
90
|
+
* images go in. sd.cpp resizes the init image to `width`×`height` itself, which is how Upscale works.
|
|
90
91
|
*
|
|
91
92
|
* sd.cpp reads integers with `is_number_integer()` and floats with `is_number()`, so `1` for a
|
|
92
93
|
* `cfgScale` of 1.0 is accepted (checked in its `common.cpp`).
|
package/dist/diffusion/args.js
CHANGED
|
@@ -152,11 +152,24 @@ export const VAE_TILING_AREA = 1024 * 1024;
|
|
|
152
152
|
* about 2 GB of that, the point past which a single-graph decode stops being safe anywhere.
|
|
153
153
|
*/
|
|
154
154
|
export const VIDEO_VAE_TILING_PIXEL_FRAMES = VAE_TILING_AREA * 8;
|
|
155
|
+
/**
|
|
156
|
+
* A distilled family's fixed schedule as sd.cpp takes it, or undefined when the request asks for
|
|
157
|
+
* another step count and sd.cpp builds its own. The catalog lists one sigma per step; sd.cpp runs
|
|
158
|
+
* `custom_sigmas.length - 1` steps (`GenerationRequest` in its `src/pipeline/request.cpp`), so the
|
|
159
|
+
* closing 0 is appended here. Without it the last step never runs and the output keeps the noise of
|
|
160
|
+
* the last listed sigma.
|
|
161
|
+
*/
|
|
162
|
+
function customSigmas(defaults, steps) {
|
|
163
|
+
if (defaults.sigmas === undefined || defaults.sigmas.length !== steps)
|
|
164
|
+
return undefined;
|
|
165
|
+
return [...defaults.sigmas, 0];
|
|
166
|
+
}
|
|
155
167
|
/**
|
|
156
168
|
* The `POST /sdcpp/v1/img_gen` body. The whole batch goes in one request; guidance is split the way
|
|
157
169
|
* sd.cpp expects (CFG → `txt_cfg`, FLUX distilled → `distilled_guidance`). Only set keys are sent,
|
|
158
|
-
* so the server's own defaults apply to the rest.
|
|
159
|
-
*
|
|
170
|
+
* so the server's own defaults apply to the rest. `custom_sigmas` goes in when the family ships a
|
|
171
|
+
* fixed schedule for exactly this many steps (Qwen Image 2.1 Turbo). The workflow decides which
|
|
172
|
+
* images go in. sd.cpp resizes the init image to `width`×`height` itself, which is how Upscale works.
|
|
160
173
|
*
|
|
161
174
|
* sd.cpp reads integers with `is_number_integer()` and floats with `is_number()`, so `1` for a
|
|
162
175
|
* `cfgScale` of 1.0 is accepted (checked in its `common.cpp`).
|
|
@@ -173,6 +186,9 @@ export function buildImgGenRequest(request, defaults, seed, inputs) {
|
|
|
173
186
|
const shift = request.flowShift ?? defaults.flowShift;
|
|
174
187
|
if (shift !== undefined)
|
|
175
188
|
sampleParams['flow_shift'] = shift;
|
|
189
|
+
const sigmas = customSigmas(defaults, request.steps);
|
|
190
|
+
if (sigmas !== undefined)
|
|
191
|
+
sampleParams['custom_sigmas'] = sigmas;
|
|
176
192
|
sampleParams['guidance'] = guidance;
|
|
177
193
|
const body = {
|
|
178
194
|
prompt: request.prompt,
|
|
@@ -218,8 +234,9 @@ export function buildVidGenRequest(request, defaults, seed, inputs, tiling) {
|
|
|
218
234
|
const shift = request.flowShift ?? defaults.flowShift;
|
|
219
235
|
if (shift !== undefined)
|
|
220
236
|
sampleParams['flow_shift'] = shift;
|
|
221
|
-
|
|
222
|
-
|
|
237
|
+
const sigmas = customSigmas(defaults, request.steps);
|
|
238
|
+
if (sigmas !== undefined)
|
|
239
|
+
sampleParams['custom_sigmas'] = sigmas;
|
|
223
240
|
sampleParams['guidance'] = guidance;
|
|
224
241
|
const video = defaults.video;
|
|
225
242
|
const body = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/diffusion/args.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/diffusion/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* `ec1fd3ea7`); messages verbatim.
|
|
5
5
|
*/
|
|
6
6
|
import type { DiffusionBackendInstallRecord, DiffusionEngineId } from '../contracts/index.js';
|
|
7
|
-
/** The first upstream build that runs Qwen Image 2.1 and Krea 2 Turbo. */
|
|
7
|
+
/** The first upstream build that runs Qwen Image 2.1 (and its Turbo) and Krea 2 Turbo. */
|
|
8
8
|
export declare const MIN_MODERN_FAMILY_BUILD = 883;
|
|
9
9
|
/**
|
|
10
10
|
* Qwen Image 2.1 and Krea 2 Turbo need build 883 or newer; a tag that does not parse fails closed.
|
package/dist/diffusion/compat.js
CHANGED
|
@@ -4,9 +4,13 @@
|
|
|
4
4
|
* `ec1fd3ea7`); messages verbatim.
|
|
5
5
|
*/
|
|
6
6
|
import { diffusionError } from './errors.js';
|
|
7
|
-
/** The first upstream build that runs Qwen Image 2.1 and Krea 2 Turbo. */
|
|
7
|
+
/** The first upstream build that runs Qwen Image 2.1 (and its Turbo) and Krea 2 Turbo. */
|
|
8
8
|
export const MIN_MODERN_FAMILY_BUILD = 883;
|
|
9
|
-
const MODERN_FAMILIES = new Set([
|
|
9
|
+
const MODERN_FAMILIES = new Set([
|
|
10
|
+
'qwen-image-2.1',
|
|
11
|
+
'qwen-image-2.1-turbo',
|
|
12
|
+
'krea-2-turbo',
|
|
13
|
+
]);
|
|
10
14
|
/** `master-<build>-<hash>` → the build number; anything else → undefined. */
|
|
11
15
|
function buildOf(tag) {
|
|
12
16
|
if (!tag.startsWith('master-'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compat.js","sourceRoot":"","sources":["../../src/diffusion/compat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,
|
|
1
|
+
{"version":3,"file":"compat.js","sourceRoot":"","sources":["../../src/diffusion/compat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAC1C,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACnD,gBAAgB;IAChB,sBAAsB;IACtB,cAAc;CACf,CAAC,CAAA;AAEF,6EAA6E;AAC7E,SAAS,OAAO,CAAC,GAAW;IAC1B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACjC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,GAAW;IAClE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAM;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,uBAAuB;QAAE,OAAM;IACnE,MAAM,cAAc,CAClB,wBAAwB,EACxB,GAAG,MAAM,oFAAoF,EAC7F,aAAa,GAAG,wCAAwC,CACzD,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAmD,EACnD,MAAyB,EACzB,MAAc;IAEd,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;IAC3D,IAAI,CAAC,QAAQ;QAAE,MAAM,cAAc,CAAC,gBAAgB,EAAE,iCAAiC,CAAC,CAAA;IACxF,MAAM,MAAM,GACV,SAAS,CAAC,IAAI,CACZ,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,MAAM,KAAK,MAAM;QAC3B,SAAS,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QAC1C,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CACtC,IAAI,QAAQ,CAAA;IACf,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5C,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,GAAW;IAC/C,IAAI,CAAC;QACH,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
|
@@ -3,12 +3,22 @@
|
|
|
3
3
|
* thumbnail beside it, and a `.flags.json` for pin and archive. Port of `gallery.rs` in
|
|
4
4
|
* `tauri-plugin-atomic-diffusion` (app commit `ec1fd3ea7`).
|
|
5
5
|
*
|
|
6
|
-
* A
|
|
7
|
-
*
|
|
6
|
+
* A provider's image may come as a JPEG or a WebP, which have no text chunk the core can write
|
|
7
|
+
* without a codec: it is kept as it came (`<id>.jpg`, `<id>.webp`) with its recipe in an `<id>.json`
|
|
8
|
+
* sidecar, the way a clip's is, and no thumbnail (the app shows the image itself).
|
|
9
|
+
*
|
|
10
|
+
* A PNG without a valid `atomic` chunk, or a JPEG/WebP without a valid sidecar, is somebody else's:
|
|
11
|
+
* it is never listed and never deleted, even when it sits in the output folder under a name that
|
|
12
|
+
* looks like ours.
|
|
8
13
|
*/
|
|
9
14
|
import type { GalleryFlags, GalleryImageItem, GalleryListOptions, GalleryPage, ImageRecipe } from '../contracts/index.js';
|
|
10
15
|
export declare const FLAGS_FILE = ".flags.json";
|
|
11
16
|
export declare const THUMB_EDGE = 256;
|
|
17
|
+
/** The recipe of an image that is not a PNG. */
|
|
18
|
+
export declare const IMAGE_SIDECAR_SUFFIX = ".json";
|
|
19
|
+
/** The image files a gallery item can be, PNG first (every local output is one). */
|
|
20
|
+
export declare const IMAGE_EXTENSIONS: readonly [".png", ".jpg", ".webp"];
|
|
21
|
+
export type ImageExtension = (typeof IMAGE_EXTENSIONS)[number];
|
|
12
22
|
/** A listing checks for blank frames only in files this small; real outputs are far larger. */
|
|
13
23
|
export declare const BLANK_SCAN_LIMIT: number;
|
|
14
24
|
/**
|
|
@@ -27,6 +37,8 @@ export declare function isValidId(id: string): boolean;
|
|
|
27
37
|
export declare function makeId(jobId: string, index: number): string;
|
|
28
38
|
export declare function pngPath(dir: string, id: string): string;
|
|
29
39
|
export declare function thumbPath(dir: string, id: string): string;
|
|
40
|
+
export declare function imagePath(dir: string, id: string, extension: ImageExtension): string;
|
|
41
|
+
export declare function imageSidecarPath(dir: string, id: string): string;
|
|
30
42
|
export declare function readFlags(dir: string): Promise<FlagMap>;
|
|
31
43
|
/** What a failed write is called; the video gallery names its own folder. */
|
|
32
44
|
export interface WriteMessages {
|
|
@@ -66,11 +78,20 @@ export declare class Gallery {
|
|
|
66
78
|
item: GalleryImageItem;
|
|
67
79
|
bytes: Buffer;
|
|
68
80
|
}>;
|
|
81
|
+
/**
|
|
82
|
+
* A provider's image: a PNG gets its recipe spliced in and a thumbnail, as a local output does; a
|
|
83
|
+
* JPEG or WebP is written as it came with its recipe in a sidecar (written first: an image without
|
|
84
|
+
* one is foreign, so a crash between the two leaves nothing listed).
|
|
85
|
+
*/
|
|
86
|
+
saveRemote(dir: string, recipe: ImageRecipe, bytes: Buffer, mime: string): Promise<{
|
|
87
|
+
item: GalleryImageItem;
|
|
88
|
+
bytes: Buffer;
|
|
89
|
+
}>;
|
|
69
90
|
get(dir: string, id: string): Promise<GalleryImageItem | null>;
|
|
70
91
|
list(dir: string, options: GalleryListOptions): Promise<GalleryPage>;
|
|
71
92
|
/** Remove each PNG, its thumbnail and its flags entry. Foreign PNGs are left alone. */
|
|
72
93
|
delete(dir: string, ids: readonly string[]): Promise<void>;
|
|
73
94
|
setFlags(dir: string, id: string, update: GalleryFlags): Promise<GalleryImageItem>;
|
|
74
|
-
/** Byte-for-byte copy, keeping the embedded recipe. */
|
|
95
|
+
/** Byte-for-byte copy, keeping the embedded recipe (a JPEG's or WebP's stays behind in its sidecar). */
|
|
75
96
|
export(dir: string, id: string, target: string): Promise<void>;
|
|
76
97
|
}
|
|
@@ -3,19 +3,37 @@
|
|
|
3
3
|
* thumbnail beside it, and a `.flags.json` for pin and archive. Port of `gallery.rs` in
|
|
4
4
|
* `tauri-plugin-atomic-diffusion` (app commit `ec1fd3ea7`).
|
|
5
5
|
*
|
|
6
|
-
* A
|
|
7
|
-
*
|
|
6
|
+
* A provider's image may come as a JPEG or a WebP, which have no text chunk the core can write
|
|
7
|
+
* without a codec: it is kept as it came (`<id>.jpg`, `<id>.webp`) with its recipe in an `<id>.json`
|
|
8
|
+
* sidecar, the way a clip's is, and no thumbnail (the app shows the image itself).
|
|
9
|
+
*
|
|
10
|
+
* A PNG without a valid `atomic` chunk, or a JPEG/WebP without a valid sidecar, is somebody else's:
|
|
11
|
+
* it is never listed and never deleted, even when it sits in the output folder under a name that
|
|
12
|
+
* looks like ours.
|
|
8
13
|
*/
|
|
9
|
-
import { copyFile, mkdir, readdir, readFile, rename, rm, stat, writeFile } from 'node:fs/promises';
|
|
14
|
+
import { copyFile, mkdir, open, readdir, readFile, rename, rm, stat, writeFile } from 'node:fs/promises';
|
|
10
15
|
import { basename, dirname, join } from 'node:path';
|
|
11
16
|
import { isWithin } from './containment.js';
|
|
12
17
|
import { diffusionError, ioError } from './errors.js';
|
|
13
18
|
import { AsyncMutex } from './mutex.js';
|
|
19
|
+
import { imageSize } from './media-header.js';
|
|
14
20
|
import { decodePng, isBlankRaster, readPngHeader, thumbnailPng, UnsupportedPngError } from './png.js';
|
|
15
|
-
import { parseRecipe, RECIPE_KEYWORD, spliceRecipe } from './recipe.js';
|
|
21
|
+
import { parseRecipe, RECIPE_KEYWORD, serializeRecipe, spliceRecipe } from './recipe.js';
|
|
16
22
|
export const FLAGS_FILE = '.flags.json';
|
|
17
23
|
export const THUMB_EDGE = 256;
|
|
18
24
|
const THUMB_SUFFIX = '.thumb.png';
|
|
25
|
+
/** The recipe of an image that is not a PNG. */
|
|
26
|
+
export const IMAGE_SIDECAR_SUFFIX = '.json';
|
|
27
|
+
/** The image files a gallery item can be, PNG first (every local output is one). */
|
|
28
|
+
export const IMAGE_EXTENSIONS = ['.png', '.jpg', '.webp'];
|
|
29
|
+
/** How much of a JPEG or WebP is read for its size: enough to pass an EXIF block. */
|
|
30
|
+
const SIZE_READ_LIMIT = 1024 * 1024;
|
|
31
|
+
/** The image type a provider's file is stored as. */
|
|
32
|
+
const EXTENSION_OF = {
|
|
33
|
+
'image/png': '.png',
|
|
34
|
+
'image/jpeg': '.jpg',
|
|
35
|
+
'image/webp': '.webp',
|
|
36
|
+
};
|
|
19
37
|
/** How many image headers a listing reads at once. */
|
|
20
38
|
const SCAN_CONCURRENCY = 16;
|
|
21
39
|
/** A listing checks for blank frames only in files this small; real outputs are far larger. */
|
|
@@ -50,6 +68,12 @@ export function pngPath(dir, id) {
|
|
|
50
68
|
export function thumbPath(dir, id) {
|
|
51
69
|
return join(dir, `${id}${THUMB_SUFFIX}`);
|
|
52
70
|
}
|
|
71
|
+
export function imagePath(dir, id, extension) {
|
|
72
|
+
return join(dir, `${id}${extension}`);
|
|
73
|
+
}
|
|
74
|
+
export function imageSidecarPath(dir, id) {
|
|
75
|
+
return join(dir, `${id}${IMAGE_SIDECAR_SUFFIX}`);
|
|
76
|
+
}
|
|
53
77
|
function checkedPngPath(dir, id) {
|
|
54
78
|
if (!isValidId(id))
|
|
55
79
|
throw diffusionError('INVALID_REQUEST', 'That is not a gallery image id.', id);
|
|
@@ -59,6 +83,38 @@ function checkedPngPath(dir, id) {
|
|
|
59
83
|
return path;
|
|
60
84
|
}
|
|
61
85
|
const isFile = (path) => stat(path).then((s) => s.isFile(), () => false);
|
|
86
|
+
/** The file an id names: the PNG when there is one, else a JPEG or WebP; the PNG path when none exists. */
|
|
87
|
+
async function locateImage(dir, id) {
|
|
88
|
+
const png = checkedPngPath(dir, id);
|
|
89
|
+
if (await isFile(png))
|
|
90
|
+
return { path: png, extension: '.png', exists: true };
|
|
91
|
+
for (const extension of IMAGE_EXTENSIONS) {
|
|
92
|
+
if (extension === '.png')
|
|
93
|
+
continue;
|
|
94
|
+
const path = imagePath(dir, id, extension);
|
|
95
|
+
if (await isFile(path))
|
|
96
|
+
return { path, extension, exists: true };
|
|
97
|
+
}
|
|
98
|
+
return { path: png, extension: '.png', exists: false };
|
|
99
|
+
}
|
|
100
|
+
/** The recipe of a JPEG or WebP, from its sidecar. */
|
|
101
|
+
async function readSidecarRecipe(dir, id) {
|
|
102
|
+
const text = await readFile(imageSidecarPath(dir, id), 'utf8').catch(() => undefined);
|
|
103
|
+
return text === undefined ? undefined : parseRecipe(text);
|
|
104
|
+
}
|
|
105
|
+
async function readImageSize(path) {
|
|
106
|
+
const handle = await open(path, 'r').catch(() => undefined);
|
|
107
|
+
if (!handle)
|
|
108
|
+
return undefined;
|
|
109
|
+
try {
|
|
110
|
+
const buffer = Buffer.alloc(SIZE_READ_LIMIT);
|
|
111
|
+
const { bytesRead } = await handle.read(buffer, 0, SIZE_READ_LIMIT, 0);
|
|
112
|
+
return imageSize(buffer.subarray(0, bytesRead));
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
await handle.close().catch(() => { });
|
|
116
|
+
}
|
|
117
|
+
}
|
|
62
118
|
export async function readFlags(dir) {
|
|
63
119
|
const flags = new Map();
|
|
64
120
|
let raw;
|
|
@@ -114,6 +170,8 @@ export async function writeThumbnail(png, path) {
|
|
|
114
170
|
await writeAtomic(path, await thumbnailPng(png, THUMB_EDGE));
|
|
115
171
|
}
|
|
116
172
|
async function itemFromPath(dir, id, path, flags, isBlank) {
|
|
173
|
+
if (!path.endsWith('.png'))
|
|
174
|
+
return itemFromSidecar(dir, id, path, flags);
|
|
117
175
|
if (await isBlank(dir, id, path))
|
|
118
176
|
return undefined;
|
|
119
177
|
const header = await readPngHeader(path);
|
|
@@ -139,17 +197,47 @@ async function itemFromPath(dir, id, path, flags, isBlank) {
|
|
|
139
197
|
recipe,
|
|
140
198
|
};
|
|
141
199
|
}
|
|
200
|
+
/** A JPEG or WebP and its sidecar; no thumbnail, so the app shows the image itself. */
|
|
201
|
+
async function itemFromSidecar(dir, id, path, flags) {
|
|
202
|
+
const recipe = await readSidecarRecipe(dir, id);
|
|
203
|
+
if (!recipe)
|
|
204
|
+
return undefined;
|
|
205
|
+
const meta = await stat(path).catch(() => undefined);
|
|
206
|
+
if (!meta)
|
|
207
|
+
return undefined;
|
|
208
|
+
const size = await readImageSize(path);
|
|
209
|
+
const flag = flags.get(id);
|
|
210
|
+
return {
|
|
211
|
+
id,
|
|
212
|
+
path,
|
|
213
|
+
thumbnailPath: null,
|
|
214
|
+
width: size?.width ?? recipe.width,
|
|
215
|
+
height: size?.height ?? recipe.height,
|
|
216
|
+
sizeBytes: meta.size,
|
|
217
|
+
createdAtMs: recipe.createdAtMs,
|
|
218
|
+
pinned: flag?.pinned ?? false,
|
|
219
|
+
archived: flag?.archived ?? false,
|
|
220
|
+
recipe,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
142
223
|
/** Every owned image, newest first. */
|
|
143
224
|
async function scan(dir, flags, isBlank) {
|
|
144
225
|
const names = await readdir(dir).catch(() => []);
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
226
|
+
// One file per id, the PNG first: a stray JPEG beside a PNG of the same id is not listed twice.
|
|
227
|
+
const files = new Map();
|
|
228
|
+
for (const extension of IMAGE_EXTENSIONS)
|
|
229
|
+
for (const name of names) {
|
|
230
|
+
if (!name.endsWith(extension))
|
|
231
|
+
continue;
|
|
232
|
+
const id = name.slice(0, -extension.length);
|
|
233
|
+
if (isValidId(id) && !files.has(id))
|
|
234
|
+
files.set(id, join(dir, name));
|
|
235
|
+
}
|
|
236
|
+
const ids = [...files.keys()];
|
|
149
237
|
const items = [];
|
|
150
238
|
for (let at = 0; at < ids.length; at += SCAN_CONCURRENCY) {
|
|
151
239
|
const batch = ids.slice(at, at + SCAN_CONCURRENCY);
|
|
152
|
-
const found = await Promise.all(batch.map((id) => itemFromPath(dir, id,
|
|
240
|
+
const found = await Promise.all(batch.map((id) => itemFromPath(dir, id, files.get(id), flags, isBlank)));
|
|
153
241
|
for (const item of found)
|
|
154
242
|
if (item)
|
|
155
243
|
items.push(item);
|
|
@@ -228,12 +316,49 @@ export class Gallery {
|
|
|
228
316
|
bytes,
|
|
229
317
|
};
|
|
230
318
|
}
|
|
319
|
+
/**
|
|
320
|
+
* A provider's image: a PNG gets its recipe spliced in and a thumbnail, as a local output does; a
|
|
321
|
+
* JPEG or WebP is written as it came with its recipe in a sidecar (written first: an image without
|
|
322
|
+
* one is foreign, so a crash between the two leaves nothing listed).
|
|
323
|
+
*/
|
|
324
|
+
async saveRemote(dir, recipe, bytes, mime) {
|
|
325
|
+
const extension = EXTENSION_OF[mime];
|
|
326
|
+
if (!extension)
|
|
327
|
+
throw diffusionError('INVALID_OUTPUT', 'The provider returned an image type the gallery does not keep.', mime);
|
|
328
|
+
if (extension === '.png')
|
|
329
|
+
return this.save(dir, recipe, bytes);
|
|
330
|
+
await mkdir(dir, { recursive: true }).catch((error) => {
|
|
331
|
+
throw ioError('Could not create the images folder.', error);
|
|
332
|
+
});
|
|
333
|
+
const id = makeId(recipe.jobId, recipe.index);
|
|
334
|
+
checkedPngPath(dir, id);
|
|
335
|
+
const path = imagePath(dir, id, extension);
|
|
336
|
+
await writeAtomic(imageSidecarPath(dir, id), serializeRecipe(recipe));
|
|
337
|
+
await writeAtomic(path, bytes);
|
|
338
|
+
const size = imageSize(bytes);
|
|
339
|
+
const flag = (await this.flagsLock.run(() => readFlags(dir))).get(id);
|
|
340
|
+
return {
|
|
341
|
+
item: {
|
|
342
|
+
id,
|
|
343
|
+
path,
|
|
344
|
+
thumbnailPath: null,
|
|
345
|
+
width: size?.width ?? recipe.width,
|
|
346
|
+
height: size?.height ?? recipe.height,
|
|
347
|
+
sizeBytes: bytes.length,
|
|
348
|
+
createdAtMs: recipe.createdAtMs,
|
|
349
|
+
pinned: flag?.pinned ?? false,
|
|
350
|
+
archived: flag?.archived ?? false,
|
|
351
|
+
recipe,
|
|
352
|
+
},
|
|
353
|
+
bytes,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
231
356
|
async get(dir, id) {
|
|
232
|
-
const
|
|
233
|
-
if (!
|
|
357
|
+
const found = await locateImage(dir, id);
|
|
358
|
+
if (!found.exists)
|
|
234
359
|
return null;
|
|
235
360
|
const flags = await this.flagsLock.run(() => readFlags(dir));
|
|
236
|
-
return (await itemFromPath(dir, id, path, flags, this.isBlank)) ?? null;
|
|
361
|
+
return (await itemFromPath(dir, id, found.path, flags, this.isBlank)) ?? null;
|
|
237
362
|
}
|
|
238
363
|
async list(dir, options) {
|
|
239
364
|
const flags = await this.flagsLock.run(() => readFlags(dir));
|
|
@@ -247,16 +372,21 @@ export class Gallery {
|
|
|
247
372
|
const flags = await readFlags(dir);
|
|
248
373
|
let changed = false;
|
|
249
374
|
for (const id of ids) {
|
|
250
|
-
const path =
|
|
251
|
-
if (
|
|
252
|
-
const text = (await readPngHeader(path))?.texts.get(RECIPE_KEYWORD);
|
|
253
|
-
|
|
375
|
+
const { path, extension, exists } = await locateImage(dir, id);
|
|
376
|
+
if (exists) {
|
|
377
|
+
const text = extension === '.png' ? (await readPngHeader(path))?.texts.get(RECIPE_KEYWORD) : undefined;
|
|
378
|
+
const owned = extension === '.png'
|
|
379
|
+
? text !== undefined && parseRecipe(text) !== undefined
|
|
380
|
+
: (await readSidecarRecipe(dir, id)) !== undefined;
|
|
381
|
+
if (!owned) {
|
|
254
382
|
this.log('warn', `refusing to delete foreign image ${id}`);
|
|
255
383
|
continue;
|
|
256
384
|
}
|
|
257
385
|
await rm(path).catch((error) => {
|
|
258
386
|
throw ioError('Could not delete the image.', error);
|
|
259
387
|
});
|
|
388
|
+
if (extension !== '.png')
|
|
389
|
+
await rm(imageSidecarPath(dir, id), { force: true }).catch(() => { });
|
|
260
390
|
}
|
|
261
391
|
await rm(thumbPath(dir, id), { force: true }).catch(() => { });
|
|
262
392
|
this.blankFiles.delete(path);
|
|
@@ -270,8 +400,8 @@ export class Gallery {
|
|
|
270
400
|
}
|
|
271
401
|
setFlags(dir, id, update) {
|
|
272
402
|
return this.flagsLock.run(async () => {
|
|
273
|
-
const path =
|
|
274
|
-
if (!
|
|
403
|
+
const { path, exists } = await locateImage(dir, id);
|
|
404
|
+
if (!exists)
|
|
275
405
|
throw diffusionError('JOB_NOT_FOUND', 'That image is no longer in the gallery.');
|
|
276
406
|
const flags = await readFlags(dir);
|
|
277
407
|
const entry = { ...(flags.get(id) ?? { pinned: false, archived: false }) };
|
|
@@ -291,10 +421,10 @@ export class Gallery {
|
|
|
291
421
|
return item;
|
|
292
422
|
});
|
|
293
423
|
}
|
|
294
|
-
/** Byte-for-byte copy, keeping the embedded recipe. */
|
|
424
|
+
/** Byte-for-byte copy, keeping the embedded recipe (a JPEG's or WebP's stays behind in its sidecar). */
|
|
295
425
|
async export(dir, id, target) {
|
|
296
|
-
const path =
|
|
297
|
-
if (!
|
|
426
|
+
const { path, exists } = await locateImage(dir, id);
|
|
427
|
+
if (!exists)
|
|
298
428
|
throw diffusionError('JOB_NOT_FOUND', 'That image is no longer in the gallery.');
|
|
299
429
|
await mkdir(dirname(target), { recursive: true }).catch((error) => {
|
|
300
430
|
throw ioError('Could not create the destination folder.', error);
|