@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
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The public API's bodies for a cloud or self-hosted provider's image and video models
|
|
3
|
+
* (ADR 2026-10-13-remote-media-shares-the-diffusion-job-table): OpenAI-shaped fields, bound to the
|
|
4
|
+
* provider and model the client's `model` names, into the diffusion requests the runner takes. Images
|
|
5
|
+
* a client sends must be inline (`data:` URLs or base64): the core never fetches a URL it is handed.
|
|
6
|
+
* Pure but for the mask conversion.
|
|
7
|
+
*/
|
|
8
|
+
import { alphaMaskToWhite } from '../../media/index.js';
|
|
9
|
+
import { ParamError } from './images-params.js';
|
|
10
|
+
export const MAX_REMOTE_N = 10;
|
|
11
|
+
export const MAX_REMOTE_SECONDS = 60;
|
|
12
|
+
const bad = (param, message) => new ParamError(param, message);
|
|
13
|
+
const isNil = (value) => value === undefined || value === null;
|
|
14
|
+
function optionalString(obj, key) {
|
|
15
|
+
const value = obj[key];
|
|
16
|
+
if (isNil(value))
|
|
17
|
+
return undefined;
|
|
18
|
+
if (typeof value !== 'string')
|
|
19
|
+
throw bad(key, `${key} must be a string`);
|
|
20
|
+
const trimmed = value.trim();
|
|
21
|
+
return trimmed === '' ? undefined : trimmed;
|
|
22
|
+
}
|
|
23
|
+
/** An inline image as its base64 payload: a `data:image/...;base64,` URL or bare base64. Links are refused. */
|
|
24
|
+
export function inlineImage(value, param) {
|
|
25
|
+
const url = typeof value === 'string'
|
|
26
|
+
? value
|
|
27
|
+
: value &&
|
|
28
|
+
typeof value === 'object' &&
|
|
29
|
+
typeof value['image_url'] === 'string'
|
|
30
|
+
? value['image_url']
|
|
31
|
+
: undefined;
|
|
32
|
+
if (url === undefined)
|
|
33
|
+
throw bad(param, `${param} must be an image: a data URL or {image_url}`);
|
|
34
|
+
const trimmed = url.trim();
|
|
35
|
+
if (/^https?:\/\//i.test(trimmed))
|
|
36
|
+
throw bad(param, `${param} must be inline: send it as a data URL, the server does not fetch links`);
|
|
37
|
+
const comma = trimmed.startsWith('data:') ? trimmed.indexOf(',') : -1;
|
|
38
|
+
if (trimmed.startsWith('data:') &&
|
|
39
|
+
(comma < 0 || !/^data:image\/[a-z0-9.+-]+;base64$/i.test(trimmed.slice(0, comma))))
|
|
40
|
+
throw bad(param, `${param} must be a base64 image data URL`);
|
|
41
|
+
const payload = (comma >= 0 ? trimmed.slice(comma + 1) : trimmed).replace(/\s+/g, '');
|
|
42
|
+
if (payload === '' || !/^[A-Za-z0-9+/]+=*$/.test(payload))
|
|
43
|
+
throw bad(param, `${param} is not base64`);
|
|
44
|
+
return payload;
|
|
45
|
+
}
|
|
46
|
+
/** `POST /images/generations` and `/images/edits` bodies for a remote model. */
|
|
47
|
+
export function parseRemoteImageParams(body, mode) {
|
|
48
|
+
if (body === null || typeof body !== 'object' || Array.isArray(body))
|
|
49
|
+
throw bad('body', 'request body must be a JSON object');
|
|
50
|
+
const obj = body;
|
|
51
|
+
const prompt = optionalString(obj, 'prompt');
|
|
52
|
+
if (!prompt)
|
|
53
|
+
throw bad('prompt', 'prompt is required');
|
|
54
|
+
let n = 1;
|
|
55
|
+
if (!isNil(obj['n'])) {
|
|
56
|
+
const value = obj['n'];
|
|
57
|
+
if (typeof value !== 'number' || !Number.isInteger(value) || value < 1 || value > MAX_REMOTE_N)
|
|
58
|
+
throw bad('n', `n must be an integer between 1 and ${MAX_REMOTE_N}`);
|
|
59
|
+
n = value;
|
|
60
|
+
}
|
|
61
|
+
const format = optionalString(obj, 'response_format');
|
|
62
|
+
if (format !== undefined && format !== 'b64_json')
|
|
63
|
+
throw bad('response_format', "response_format must be 'b64_json'; this server returns image bytes, not links");
|
|
64
|
+
const params = { prompt, n, images: [] };
|
|
65
|
+
const assign = (key, value) => {
|
|
66
|
+
if (value !== undefined)
|
|
67
|
+
params[key] = value;
|
|
68
|
+
};
|
|
69
|
+
assign('size', optionalString(obj, 'size'));
|
|
70
|
+
assign('quality', optionalString(obj, 'quality'));
|
|
71
|
+
assign('background', optionalString(obj, 'background'));
|
|
72
|
+
assign('outputFormat', optionalString(obj, 'output_format'));
|
|
73
|
+
assign('aspectRatio', optionalString(obj, 'aspect_ratio'));
|
|
74
|
+
assign('resolution', optionalString(obj, 'resolution'));
|
|
75
|
+
assign('negativePrompt', optionalString(obj, 'negative_prompt'));
|
|
76
|
+
if (!isNil(obj['seed'])) {
|
|
77
|
+
const seed = obj['seed'];
|
|
78
|
+
if (typeof seed !== 'number' || !Number.isSafeInteger(seed))
|
|
79
|
+
throw bad('seed', 'seed must be an integer');
|
|
80
|
+
params.seed = seed;
|
|
81
|
+
}
|
|
82
|
+
if (mode === 'edits') {
|
|
83
|
+
const list = !isNil(obj['images']) ? obj['images'] : !isNil(obj['image']) ? [obj['image']] : undefined;
|
|
84
|
+
if (!Array.isArray(list) || list.length === 0)
|
|
85
|
+
throw bad('images', 'images must name at least one image');
|
|
86
|
+
params.images = list.map((item, index) => inlineImage(item, `images[${index}]`));
|
|
87
|
+
if (!isNil(obj['mask']))
|
|
88
|
+
params.mask = inlineImage(obj['mask'], 'mask');
|
|
89
|
+
}
|
|
90
|
+
return params;
|
|
91
|
+
}
|
|
92
|
+
/** `'1024x768'` → its dimensions; anything else → `undefined`. */
|
|
93
|
+
function pixels(size) {
|
|
94
|
+
const match = /^(\d+)x(\d+)$/i.exec(size ?? '');
|
|
95
|
+
return match ? { width: Number(match[1]), height: Number(match[2]) } : undefined;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The runner's request: a mask goes from OpenAI's convention to the core's (white repaints), and the
|
|
99
|
+
* workflow follows the inputs (a mask inpaints, several images reference, one image edits).
|
|
100
|
+
*/
|
|
101
|
+
export async function buildRemoteImageRequest(params, target) {
|
|
102
|
+
const size = pixels(params.size);
|
|
103
|
+
const remote = {};
|
|
104
|
+
if (params.size !== undefined) {
|
|
105
|
+
if (size || params.size.toLowerCase() === 'auto')
|
|
106
|
+
remote.size = params.size.toLowerCase() === 'auto' ? 'auto' : params.size;
|
|
107
|
+
else
|
|
108
|
+
remote.resolution = params.size;
|
|
109
|
+
}
|
|
110
|
+
if (params.resolution)
|
|
111
|
+
remote.resolution = params.resolution;
|
|
112
|
+
if (params.aspectRatio)
|
|
113
|
+
remote.aspectRatio = params.aspectRatio;
|
|
114
|
+
if (params.quality)
|
|
115
|
+
remote.quality = params.quality;
|
|
116
|
+
if (params.background)
|
|
117
|
+
remote.background = params.background;
|
|
118
|
+
if (params.outputFormat)
|
|
119
|
+
remote.outputFormat = params.outputFormat;
|
|
120
|
+
const request = {
|
|
121
|
+
prompt: params.prompt,
|
|
122
|
+
width: size?.width ?? 0,
|
|
123
|
+
height: size?.height ?? 0,
|
|
124
|
+
steps: 0,
|
|
125
|
+
cfgScale: 0,
|
|
126
|
+
batchSize: params.n,
|
|
127
|
+
target,
|
|
128
|
+
remote,
|
|
129
|
+
};
|
|
130
|
+
if (params.negativePrompt)
|
|
131
|
+
request.negativePrompt = params.negativePrompt;
|
|
132
|
+
if (params.seed !== undefined)
|
|
133
|
+
request.seed = params.seed;
|
|
134
|
+
const [source, ...references] = params.images;
|
|
135
|
+
if (source !== undefined) {
|
|
136
|
+
request.initImage = { base64: source };
|
|
137
|
+
if (params.mask !== undefined) {
|
|
138
|
+
request.workflow = 'inpaint';
|
|
139
|
+
request.maskImage = {
|
|
140
|
+
base64: (await alphaMaskToWhite(Buffer.from(params.mask, 'base64'))).toString('base64'),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
else if (references.length > 0) {
|
|
144
|
+
request.workflow = 'reference';
|
|
145
|
+
request.referenceImages = references.map((base64) => ({ base64 }));
|
|
146
|
+
}
|
|
147
|
+
else
|
|
148
|
+
request.workflow = 'edit';
|
|
149
|
+
}
|
|
150
|
+
return request;
|
|
151
|
+
}
|
|
152
|
+
/** `POST /videos` for a remote model: OpenAI's fields plus `resolution`, `aspect_ratio`, `generate_audio`. */
|
|
153
|
+
export function parseRemoteVideoParams(body) {
|
|
154
|
+
if (body === null || typeof body !== 'object' || Array.isArray(body))
|
|
155
|
+
throw bad('body', 'request body must be a JSON object');
|
|
156
|
+
const obj = body;
|
|
157
|
+
const params = { prompt: optionalString(obj, 'prompt') ?? '' };
|
|
158
|
+
if (!isNil(obj['input_reference']))
|
|
159
|
+
params.inputReference = inlineImage(obj['input_reference'], 'input_reference');
|
|
160
|
+
if (params.prompt === '' && params.inputReference === undefined)
|
|
161
|
+
throw bad('prompt', 'prompt is required');
|
|
162
|
+
if (!isNil(obj['seconds'])) {
|
|
163
|
+
const raw = obj['seconds'];
|
|
164
|
+
const value = typeof raw === 'string' && raw.trim() !== '' ? Number(raw) : raw;
|
|
165
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0 || value > MAX_REMOTE_SECONDS)
|
|
166
|
+
throw bad('seconds', `seconds must be a number between 0 and ${MAX_REMOTE_SECONDS}`);
|
|
167
|
+
params.seconds = value;
|
|
168
|
+
}
|
|
169
|
+
const size = optionalString(obj, 'size');
|
|
170
|
+
if (size && size.toLowerCase() !== 'auto')
|
|
171
|
+
params.size = size;
|
|
172
|
+
const resolution = optionalString(obj, 'resolution');
|
|
173
|
+
if (resolution)
|
|
174
|
+
params.resolution = resolution;
|
|
175
|
+
const aspect = optionalString(obj, 'aspect_ratio');
|
|
176
|
+
if (aspect)
|
|
177
|
+
params.aspectRatio = aspect;
|
|
178
|
+
const negative = optionalString(obj, 'negative_prompt');
|
|
179
|
+
if (negative)
|
|
180
|
+
params.negativePrompt = negative;
|
|
181
|
+
if (!isNil(obj['generate_audio'])) {
|
|
182
|
+
if (typeof obj['generate_audio'] !== 'boolean')
|
|
183
|
+
throw bad('generate_audio', 'generate_audio must be true or false');
|
|
184
|
+
params.generateAudio = obj['generate_audio'];
|
|
185
|
+
}
|
|
186
|
+
if (!isNil(obj['seed'])) {
|
|
187
|
+
const seed = obj['seed'];
|
|
188
|
+
if (typeof seed !== 'number' || !Number.isSafeInteger(seed))
|
|
189
|
+
throw bad('seed', 'seed must be an integer');
|
|
190
|
+
params.seed = seed;
|
|
191
|
+
}
|
|
192
|
+
return params;
|
|
193
|
+
}
|
|
194
|
+
export function buildRemoteVideoRequest(params, target) {
|
|
195
|
+
const remote = {};
|
|
196
|
+
if (params.seconds !== undefined)
|
|
197
|
+
remote.durationSecs = params.seconds;
|
|
198
|
+
if (params.resolution)
|
|
199
|
+
remote.resolution = params.resolution;
|
|
200
|
+
if (params.aspectRatio)
|
|
201
|
+
remote.aspectRatio = params.aspectRatio;
|
|
202
|
+
if (params.size)
|
|
203
|
+
remote.size = params.size;
|
|
204
|
+
if (params.generateAudio !== undefined)
|
|
205
|
+
remote.generateAudio = params.generateAudio;
|
|
206
|
+
const size = pixels(params.size);
|
|
207
|
+
const request = {
|
|
208
|
+
prompt: params.prompt,
|
|
209
|
+
width: size?.width ?? 0,
|
|
210
|
+
height: size?.height ?? 0,
|
|
211
|
+
steps: 0,
|
|
212
|
+
cfgScale: 0,
|
|
213
|
+
target,
|
|
214
|
+
remote,
|
|
215
|
+
workflow: params.inputReference !== undefined ? 'image-to-video' : 'create',
|
|
216
|
+
};
|
|
217
|
+
if (params.inputReference !== undefined)
|
|
218
|
+
request.initImage = { base64: params.inputReference };
|
|
219
|
+
if (params.negativePrompt)
|
|
220
|
+
request.negativePrompt = params.negativePrompt;
|
|
221
|
+
if (params.seed !== undefined)
|
|
222
|
+
request.seed = params.seed;
|
|
223
|
+
return request;
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=remote-media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-media.js","sourceRoot":"","sources":["../../../src/server/public/remote-media.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* Ported from: src-tauri/src/core/server/proxy.rs (`handle_responses_request`).
|
|
9
9
|
*/
|
|
10
10
|
import { ResponsesStreamConverter, chatResponseToResponses, newResponseId, responsesRequestToChat, serdeToString, } from '../shims/index.js';
|
|
11
|
+
import { MANAGED_PROVIDER_IDS } from '../../contracts/index.js';
|
|
11
12
|
import { resolveRemoteProvider } from '../../router/index.js';
|
|
12
13
|
import { answer, clientGone, connectTimeoutMs } from './exchange.js';
|
|
13
14
|
import { outboundHeaders, readModelRequest, sseEvent } from './forward.js';
|
|
@@ -40,8 +41,9 @@ export async function serveResponses(ex) {
|
|
|
40
41
|
ex.deps.findLocal('atomic-prism', modelId) ??
|
|
41
42
|
ex.deps.findLocal('mlx', modelId);
|
|
42
43
|
if (!session) {
|
|
43
|
-
// A session that declares its routes and has no Responses API says so, rather than "not found"
|
|
44
|
-
|
|
44
|
+
// A session that declares its routes and has no Responses API says so, rather than "not found":
|
|
45
|
+
// every managed provider's, whichever loaded the model (change add-sglang-runtime, D1).
|
|
46
|
+
const declared = MANAGED_PROVIDER_IDS.reduce((found, provider) => found ?? ex.deps.findLocal(provider, modelId), undefined);
|
|
45
47
|
const refused = declared?.policy && policyRefusal(declared.policy, ex.path, modelId, json);
|
|
46
48
|
if (refused) {
|
|
47
49
|
trace.errorKind = 'bad_request';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../../src/server/public/responses.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,aAAa,GACd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEpE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../../src/server/public/responses.ts"],"names":[],"mappings":"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"}
|