@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,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `openrouter-images`: OpenRouter's image API, registered with base `https://openrouter.ai/api/v1`,
|
|
3
|
+
* Bearer key.
|
|
4
|
+
*
|
|
5
|
+
* Every URL is the registered base joined to a path. Every workflow (`create`, `edit`, `reference`)
|
|
6
|
+
* is one `POST {base}/images`; inputs go along as `input_references` of data URLs (at most 16), the
|
|
7
|
+
* source first. OpenRouter has no mask, so `inpaint` and `transform` are refused. The answer is
|
|
8
|
+
* `data[]` of `b64_json`. The live listing, `GET {base}/images/models`, describes each model's
|
|
9
|
+
* parameters, which become the model's controls.
|
|
10
|
+
*/
|
|
11
|
+
import type { AtomicCoreError } from '../../contracts/index.js';
|
|
12
|
+
import type { LiveMediaModel } from '../catalog.js';
|
|
13
|
+
import type { ImageAdapter, ImageGenerationJob } from './types.js';
|
|
14
|
+
/** The JSON body of `POST /images`. */
|
|
15
|
+
export declare function openRouterImageBody(job: ImageGenerationJob): Record<string, unknown>;
|
|
16
|
+
/** One entry of `GET /images/models` as a live model whose controls are its `supported_parameters`. */
|
|
17
|
+
export declare function openRouterImageModel(entry: unknown): LiveMediaModel | undefined;
|
|
18
|
+
/** The models of `GET /images/models`, each once. */
|
|
19
|
+
export declare function openRouterImageModels(json: unknown): LiveMediaModel[];
|
|
20
|
+
/**
|
|
21
|
+
* An error OpenRouter put in a 200 body (`{error: {code, message}}` without images), as the
|
|
22
|
+
* `REMOTE_*` error its code means; `undefined` when the body carries none.
|
|
23
|
+
*/
|
|
24
|
+
export declare function openRouterBodyError(provider: string, json: unknown): AtomicCoreError | undefined;
|
|
25
|
+
export declare const OPENROUTER_IMAGES: ImageAdapter;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `openrouter-images`: OpenRouter's image API, registered with base `https://openrouter.ai/api/v1`,
|
|
3
|
+
* Bearer key.
|
|
4
|
+
*
|
|
5
|
+
* Every URL is the registered base joined to a path. Every workflow (`create`, `edit`, `reference`)
|
|
6
|
+
* is one `POST {base}/images`; inputs go along as `input_references` of data URLs (at most 16), the
|
|
7
|
+
* source first. OpenRouter has no mask, so `inpaint` and `transform` are refused. The answer is
|
|
8
|
+
* `data[]` of `b64_json`. The live listing, `GET {base}/images/models`, describes each model's
|
|
9
|
+
* parameters, which become the model's controls.
|
|
10
|
+
*/
|
|
11
|
+
import { callProvider, GENERATE_TIMEOUT_MS, joinUrl, remoteError, remoteHttpError, toDataUrl, } from '../http.js';
|
|
12
|
+
import { imagesFromAnswer } from './openai-images.js';
|
|
13
|
+
const WORKFLOWS = ['create', 'edit', 'reference'];
|
|
14
|
+
/** OpenRouter takes at most this many `input_references`. */
|
|
15
|
+
const MAX_REFERENCES = 16;
|
|
16
|
+
/** The form never offers more images per run than this. */
|
|
17
|
+
const MAX_N = 4;
|
|
18
|
+
/** The JSON body of `POST /images`. */
|
|
19
|
+
export function openRouterImageBody(job) {
|
|
20
|
+
const body = { model: job.model.id, prompt: job.prompt };
|
|
21
|
+
if (job.n > 1)
|
|
22
|
+
body['n'] = job.n;
|
|
23
|
+
if (job.aspectRatio)
|
|
24
|
+
body['aspect_ratio'] = job.aspectRatio;
|
|
25
|
+
if (job.resolution)
|
|
26
|
+
body['resolution'] = job.resolution;
|
|
27
|
+
const size = job.size ?? (job.width && job.height ? `${job.width}x${job.height}` : undefined);
|
|
28
|
+
if (size && size !== 'auto')
|
|
29
|
+
body['size'] = size;
|
|
30
|
+
if (job.quality)
|
|
31
|
+
body['quality'] = job.quality;
|
|
32
|
+
if (job.background)
|
|
33
|
+
body['background'] = job.background;
|
|
34
|
+
// PNG keeps what the model drew; asked for only when the model offers a format and the job chose none.
|
|
35
|
+
const format = job.outputFormat ?? (job.model.params.output_format?.values.includes('png') ? 'png' : undefined);
|
|
36
|
+
if (format)
|
|
37
|
+
body['output_format'] = format;
|
|
38
|
+
if (job.seed !== undefined && job.model.params.seed)
|
|
39
|
+
body['seed'] = job.seed;
|
|
40
|
+
if (job.workflow !== 'create' && job.images.length > 0)
|
|
41
|
+
body['input_references'] = job.images.map((image) => ({
|
|
42
|
+
type: 'image_url',
|
|
43
|
+
image_url: { url: toDataUrl(image.bytes, image.mime) },
|
|
44
|
+
}));
|
|
45
|
+
return body;
|
|
46
|
+
}
|
|
47
|
+
const isObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
48
|
+
/** An `enum` parameter's values as a choice that starts on the first of `preferred` it offers. */
|
|
49
|
+
function enumChoice(value, preferred) {
|
|
50
|
+
if (!isObject(value) || value['type'] !== 'enum' || !Array.isArray(value['values']))
|
|
51
|
+
return undefined;
|
|
52
|
+
const values = value['values'].filter((v) => typeof v === 'string' && v !== '');
|
|
53
|
+
if (values.length === 0)
|
|
54
|
+
return undefined;
|
|
55
|
+
const start = preferred.find((p) => values.includes(p)) ?? values[0];
|
|
56
|
+
return start === undefined ? { values } : { values, default: start };
|
|
57
|
+
}
|
|
58
|
+
/** A `range` parameter's maximum, when it is one. */
|
|
59
|
+
function rangeMax(value) {
|
|
60
|
+
if (!isObject(value) || value['type'] !== 'range')
|
|
61
|
+
return undefined;
|
|
62
|
+
const max = value['max'];
|
|
63
|
+
return typeof max === 'number' && Number.isFinite(max) ? max : undefined;
|
|
64
|
+
}
|
|
65
|
+
/** One entry of `GET /images/models` as a live model whose controls are its `supported_parameters`. */
|
|
66
|
+
export function openRouterImageModel(entry) {
|
|
67
|
+
if (!isObject(entry) || typeof entry['id'] !== 'string' || entry['id'] === '')
|
|
68
|
+
return undefined;
|
|
69
|
+
const architecture = entry['architecture'];
|
|
70
|
+
const outputs = isObject(architecture) ? architecture['output_modalities'] : undefined;
|
|
71
|
+
if (Array.isArray(outputs) && !outputs.includes('image'))
|
|
72
|
+
return undefined;
|
|
73
|
+
const supported = isObject(entry['supported_parameters']) ? entry['supported_parameters'] : {};
|
|
74
|
+
const params = {};
|
|
75
|
+
const aspect = enumChoice(supported['aspect_ratio'], ['1:1']);
|
|
76
|
+
if (aspect)
|
|
77
|
+
params.aspect_ratios = aspect;
|
|
78
|
+
const resolution = enumChoice(supported['resolution'], ['1K']);
|
|
79
|
+
if (resolution)
|
|
80
|
+
params.resolutions = resolution;
|
|
81
|
+
const quality = enumChoice(supported['quality'], ['auto']);
|
|
82
|
+
if (quality)
|
|
83
|
+
params.quality = quality;
|
|
84
|
+
const background = enumChoice(supported['background'], ['auto']);
|
|
85
|
+
if (background)
|
|
86
|
+
params.background = background;
|
|
87
|
+
const format = enumChoice(supported['output_format'], ['png']);
|
|
88
|
+
if (format)
|
|
89
|
+
params.output_format = format;
|
|
90
|
+
const n = rangeMax(supported['n']);
|
|
91
|
+
if (n !== undefined && n > 1)
|
|
92
|
+
params.n = { max: Math.min(MAX_N, Math.floor(n)) };
|
|
93
|
+
const seed = supported['seed'];
|
|
94
|
+
if (isObject(seed) && seed['type'] === 'boolean')
|
|
95
|
+
params.seed = true;
|
|
96
|
+
const references = rangeMax(supported['input_references']);
|
|
97
|
+
const takesImages = references !== undefined && references > 0;
|
|
98
|
+
if (takesImages)
|
|
99
|
+
params.max_input_images = Math.min(MAX_REFERENCES, Math.floor(references));
|
|
100
|
+
const model = {
|
|
101
|
+
id: entry['id'],
|
|
102
|
+
workflows: takesImages ? ['create', 'edit', 'reference'] : ['create'],
|
|
103
|
+
params,
|
|
104
|
+
};
|
|
105
|
+
if (typeof entry['name'] === 'string' && entry['name'] !== '')
|
|
106
|
+
model.name = entry['name'];
|
|
107
|
+
if (typeof entry['description'] === 'string' && entry['description'] !== '')
|
|
108
|
+
model.description = entry['description'];
|
|
109
|
+
return model;
|
|
110
|
+
}
|
|
111
|
+
/** The models of `GET /images/models`, each once. */
|
|
112
|
+
export function openRouterImageModels(json) {
|
|
113
|
+
const data = isObject(json) ? json['data'] : undefined;
|
|
114
|
+
const out = [];
|
|
115
|
+
const seen = new Set();
|
|
116
|
+
for (const item of Array.isArray(data) ? data : []) {
|
|
117
|
+
const model = openRouterImageModel(item);
|
|
118
|
+
if (!model || seen.has(model.id))
|
|
119
|
+
continue;
|
|
120
|
+
seen.add(model.id);
|
|
121
|
+
out.push(model);
|
|
122
|
+
}
|
|
123
|
+
return out;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* An error OpenRouter put in a 200 body (`{error: {code, message}}` without images), as the
|
|
127
|
+
* `REMOTE_*` error its code means; `undefined` when the body carries none.
|
|
128
|
+
*/
|
|
129
|
+
export function openRouterBodyError(provider, json) {
|
|
130
|
+
if (!isObject(json) || !isObject(json['error']))
|
|
131
|
+
return undefined;
|
|
132
|
+
if (Array.isArray(json['data']) && json['data'].length > 0)
|
|
133
|
+
return undefined;
|
|
134
|
+
const code = json['error']['code'];
|
|
135
|
+
const status = typeof code === 'number' && code >= 400 && code < 600 ? code : 502;
|
|
136
|
+
return remoteHttpError(provider, status, json);
|
|
137
|
+
}
|
|
138
|
+
export const OPENROUTER_IMAGES = {
|
|
139
|
+
dialect: 'openrouter-images',
|
|
140
|
+
kind: 'image',
|
|
141
|
+
async listModels(ctx) {
|
|
142
|
+
const answer = await callProvider(ctx, joinUrl(ctx.baseUrl, '/images/models'));
|
|
143
|
+
return openRouterImageModels(answer.json);
|
|
144
|
+
},
|
|
145
|
+
async generate(ctx, job, report) {
|
|
146
|
+
if (!WORKFLOWS.includes(job.workflow))
|
|
147
|
+
throw remoteError('REMOTE_UNSUPPORTED', `${ctx.provider} does not support this workflow.`, job.workflow);
|
|
148
|
+
if (job.workflow !== 'create' && job.images.length === 0)
|
|
149
|
+
throw remoteError('REMOTE_UNSUPPORTED', 'This workflow needs a source image.', job.workflow);
|
|
150
|
+
report({ phase: 'generating' });
|
|
151
|
+
const answer = await callProvider(ctx, joinUrl(ctx.baseUrl, '/images'), {
|
|
152
|
+
json: openRouterImageBody(job),
|
|
153
|
+
timeoutMs: GENERATE_TIMEOUT_MS,
|
|
154
|
+
});
|
|
155
|
+
const failed = openRouterBodyError(ctx.provider, answer.json);
|
|
156
|
+
if (failed)
|
|
157
|
+
throw failed;
|
|
158
|
+
return imagesFromAnswer(ctx, answer.json);
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=openrouter-images.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter-images.js","sourceRoot":"","sources":["../../../src/media/adapters/openrouter-images.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `openrouter-videos`: OpenRouter's video API (registered base `https://openrouter.ai/api/v1`).
|
|
3
|
+
*
|
|
4
|
+
* Every URL is derived from `ctx.baseUrl`:
|
|
5
|
+
* - submit: `POST {base}/videos`, JSON `{model, prompt, duration, resolution, aspect_ratio, size,
|
|
6
|
+
* generate_audio, seed, frame_images}` → 202 `{id, polling_url, status}`. Frames go as
|
|
7
|
+
* `frame_images: [{type: 'image_url', image_url: {url: <data URL>}, frame_type: 'first_frame' |
|
|
8
|
+
* 'last_frame'}]`.
|
|
9
|
+
* - poll: the answer's `polling_url` (resolved against the base) when it is on the base's own origin,
|
|
10
|
+
* else `GET {base}/videos/{id}` → `pending | in_progress | completed | failed | cancelled |
|
|
11
|
+
* expired`, with `unsigned_urls` once completed.
|
|
12
|
+
* - download: `unsigned_urls[0]` (OpenRouter's own content route, so the key goes along; a URL off
|
|
13
|
+
* its origin goes bare), else `GET {base}/videos/{id}/content?index=0`.
|
|
14
|
+
* - models: `GET {base}/videos/models`, translated into the form's parameters the way conf builds
|
|
15
|
+
* its catalog from the same listing.
|
|
16
|
+
*
|
|
17
|
+
* No cancel: OpenRouter documents none.
|
|
18
|
+
*/
|
|
19
|
+
import type { MediaVideoParams } from '../../contracts/index.js';
|
|
20
|
+
import type { LiveMediaModel } from '../catalog.js';
|
|
21
|
+
import type { VideoAdapter, VideoGenerationJob, VideoPoll } from './types.js';
|
|
22
|
+
type Fields = Record<string, unknown>;
|
|
23
|
+
/**
|
|
24
|
+
* The submit body: each field only when the job set it and the model offers it; for
|
|
25
|
+
* `image-to-video` the frames.
|
|
26
|
+
*/
|
|
27
|
+
export declare function openrouterVideoBody(job: VideoGenerationJob, provider?: string): Fields;
|
|
28
|
+
/** `polling_url` as an absolute URL, when it is on the base's own origin; anything else is ignored. */
|
|
29
|
+
export declare function ownPollingUrl(baseUrl: string, value: unknown): string | undefined;
|
|
30
|
+
/** One job answer as a poll result. */
|
|
31
|
+
export declare function readOpenrouterVideo(provider: string, json: unknown): VideoPoll;
|
|
32
|
+
/** One `/videos/models` entry's capabilities as the form's parameters and workflows. */
|
|
33
|
+
export declare function openrouterVideoParams(entry: Fields): {
|
|
34
|
+
workflows: string[];
|
|
35
|
+
params: MediaVideoParams;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* The models of a `GET {base}/videos/models` answer. An entry without durations is an editing,
|
|
39
|
+
* upscaling or avatar model that needs a video or a voice the form does not have; it is left out.
|
|
40
|
+
*/
|
|
41
|
+
export declare function openrouterVideoModels(json: unknown): LiveMediaModel[];
|
|
42
|
+
export declare const OPENROUTER_VIDEOS: VideoAdapter;
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `openrouter-videos`: OpenRouter's video API (registered base `https://openrouter.ai/api/v1`).
|
|
3
|
+
*
|
|
4
|
+
* Every URL is derived from `ctx.baseUrl`:
|
|
5
|
+
* - submit: `POST {base}/videos`, JSON `{model, prompt, duration, resolution, aspect_ratio, size,
|
|
6
|
+
* generate_audio, seed, frame_images}` → 202 `{id, polling_url, status}`. Frames go as
|
|
7
|
+
* `frame_images: [{type: 'image_url', image_url: {url: <data URL>}, frame_type: 'first_frame' |
|
|
8
|
+
* 'last_frame'}]`.
|
|
9
|
+
* - poll: the answer's `polling_url` (resolved against the base) when it is on the base's own origin,
|
|
10
|
+
* else `GET {base}/videos/{id}` → `pending | in_progress | completed | failed | cancelled |
|
|
11
|
+
* expired`, with `unsigned_urls` once completed.
|
|
12
|
+
* - download: `unsigned_urls[0]` (OpenRouter's own content route, so the key goes along; a URL off
|
|
13
|
+
* its origin goes bare), else `GET {base}/videos/{id}/content?index=0`.
|
|
14
|
+
* - models: `GET {base}/videos/models`, translated into the form's parameters the way conf builds
|
|
15
|
+
* its catalog from the same listing.
|
|
16
|
+
*
|
|
17
|
+
* No cancel: OpenRouter documents none.
|
|
18
|
+
*/
|
|
19
|
+
import { callProvider, downloadResult, joinUrl, MAX_VIDEO_BYTES, originOf, providerMessage, remoteError, sniffVideoMime, toDataUrl, } from '../http.js';
|
|
20
|
+
const isObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
21
|
+
const BLOCKED = /moderation|content[ _-]?polic|safety|nsfw|sensitive|prohibited|blocked|flagged/i;
|
|
22
|
+
function frame(input, type) {
|
|
23
|
+
return { type: 'image_url', image_url: { url: toDataUrl(input.bytes, input.mime) }, frame_type: type };
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The submit body: each field only when the job set it and the model offers it; for
|
|
27
|
+
* `image-to-video` the frames.
|
|
28
|
+
*/
|
|
29
|
+
export function openrouterVideoBody(job, provider = 'OpenRouter') {
|
|
30
|
+
const params = job.model.params;
|
|
31
|
+
const body = { model: job.model.id, prompt: job.prompt };
|
|
32
|
+
if (job.durationSecs !== undefined && params.durations)
|
|
33
|
+
body['duration'] = Math.round(job.durationSecs);
|
|
34
|
+
if (job.resolution && params.resolutions)
|
|
35
|
+
body['resolution'] = job.resolution;
|
|
36
|
+
if (job.aspectRatio && params.aspect_ratios)
|
|
37
|
+
body['aspect_ratio'] = job.aspectRatio;
|
|
38
|
+
if (job.size && params.sizes)
|
|
39
|
+
body['size'] = job.size;
|
|
40
|
+
if (job.generateAudio !== undefined && params.audio)
|
|
41
|
+
body['generate_audio'] = job.generateAudio;
|
|
42
|
+
if (job.seed !== undefined && params.seed)
|
|
43
|
+
body['seed'] = job.seed;
|
|
44
|
+
if (job.workflow === 'image-to-video') {
|
|
45
|
+
if (!job.firstFrame)
|
|
46
|
+
throw remoteError('REMOTE_UNSUPPORTED', 'Image to video needs a first frame.', job.workflow);
|
|
47
|
+
const frames = [frame(job.firstFrame, 'first_frame')];
|
|
48
|
+
if (job.lastFrame) {
|
|
49
|
+
if (!params.last_frame)
|
|
50
|
+
throw remoteError('REMOTE_UNSUPPORTED', `${provider} takes no last frame for this model.`, job.model.id);
|
|
51
|
+
frames.push(frame(job.lastFrame, 'last_frame'));
|
|
52
|
+
}
|
|
53
|
+
body['frame_images'] = frames;
|
|
54
|
+
}
|
|
55
|
+
return body;
|
|
56
|
+
}
|
|
57
|
+
/** `polling_url` as an absolute URL, when it is on the base's own origin; anything else is ignored. */
|
|
58
|
+
export function ownPollingUrl(baseUrl, value) {
|
|
59
|
+
if (typeof value !== 'string' || value.trim() === '')
|
|
60
|
+
return undefined;
|
|
61
|
+
let url;
|
|
62
|
+
try {
|
|
63
|
+
url = new URL(value.trim(), `${baseUrl.replace(/\/+$/, '')}/`);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
return url.origin === originOf(baseUrl) ? url.toString() : undefined;
|
|
69
|
+
}
|
|
70
|
+
function failure(provider, status, error) {
|
|
71
|
+
const said = providerMessage({ error });
|
|
72
|
+
const code = isObject(error) && typeof error['code'] === 'string' ? error['code'] : '';
|
|
73
|
+
const details = [code, said].filter(Boolean).join(': ') || status;
|
|
74
|
+
if (BLOCKED.test(`${code} ${said ?? ''}`))
|
|
75
|
+
return remoteError('REMOTE_CONTENT_BLOCKED', `${provider} refused the request: ${said ?? code}`, details);
|
|
76
|
+
if (status === 'cancelled' || status === 'canceled')
|
|
77
|
+
return remoteError('REMOTE_UNAVAILABLE', `${provider} cancelled the clip.`, details);
|
|
78
|
+
if (status === 'expired')
|
|
79
|
+
return remoteError('REMOTE_UNAVAILABLE', `${provider} let the clip expire.`, details);
|
|
80
|
+
return remoteError('REMOTE_UNAVAILABLE', said ? `${provider} failed to make the clip: ${said}` : `${provider} failed to make the clip.`, details);
|
|
81
|
+
}
|
|
82
|
+
function progressOf(value) {
|
|
83
|
+
return typeof value === 'number' && Number.isFinite(value)
|
|
84
|
+
? { progress: Math.min(1, Math.max(0, value / 100)) }
|
|
85
|
+
: {};
|
|
86
|
+
}
|
|
87
|
+
/** One job answer as a poll result. */
|
|
88
|
+
export function readOpenrouterVideo(provider, json) {
|
|
89
|
+
const fields = isObject(json) ? json : {};
|
|
90
|
+
const status = typeof fields['status'] === 'string' ? fields['status'].toLowerCase() : '';
|
|
91
|
+
switch (status) {
|
|
92
|
+
case 'pending':
|
|
93
|
+
case 'queued':
|
|
94
|
+
return { state: 'queued', ...progressOf(fields['progress']) };
|
|
95
|
+
case 'completed':
|
|
96
|
+
case 'succeeded': {
|
|
97
|
+
const urls = fields['unsigned_urls'];
|
|
98
|
+
const first = Array.isArray(urls)
|
|
99
|
+
? urls.find((u) => typeof u === 'string' && u !== '')
|
|
100
|
+
: undefined;
|
|
101
|
+
return { state: 'completed', result: first ? { url: first } : {} };
|
|
102
|
+
}
|
|
103
|
+
case 'failed':
|
|
104
|
+
case 'cancelled':
|
|
105
|
+
case 'canceled':
|
|
106
|
+
case 'expired':
|
|
107
|
+
return { state: 'failed', error: failure(provider, status, fields['error']) };
|
|
108
|
+
default:
|
|
109
|
+
return { state: 'running', ...progressOf(fields['progress']) };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const strings = (value) => Array.isArray(value)
|
|
113
|
+
? [...new Set(value.filter((v) => typeof v === 'string' && v !== ''))]
|
|
114
|
+
: [];
|
|
115
|
+
function choiceOf(values, preferred) {
|
|
116
|
+
return { values, default: values.includes(preferred) ? preferred : values[0] };
|
|
117
|
+
}
|
|
118
|
+
/** One `/videos/models` entry's capabilities as the form's parameters and workflows. */
|
|
119
|
+
export function openrouterVideoParams(entry) {
|
|
120
|
+
const params = {};
|
|
121
|
+
const durations = Array.isArray(entry['supported_durations'])
|
|
122
|
+
? [
|
|
123
|
+
...new Set(entry['supported_durations'].filter((d) => typeof d === 'number' && d > 0)),
|
|
124
|
+
].sort((a, b) => a - b)
|
|
125
|
+
: [];
|
|
126
|
+
if (durations.length > 0)
|
|
127
|
+
params.durations = {
|
|
128
|
+
values: durations,
|
|
129
|
+
default: durations.includes(8) ? 8 : durations.includes(5) ? 5 : durations[0],
|
|
130
|
+
};
|
|
131
|
+
const resolutions = strings(entry['supported_resolutions']);
|
|
132
|
+
if (resolutions.length > 0)
|
|
133
|
+
params.resolutions = choiceOf(resolutions, '720p');
|
|
134
|
+
const aspects = strings(entry['supported_aspect_ratios']);
|
|
135
|
+
if (aspects.length > 0)
|
|
136
|
+
params.aspect_ratios = choiceOf(aspects, '16:9');
|
|
137
|
+
if (entry['generate_audio'] === true)
|
|
138
|
+
params.audio = true;
|
|
139
|
+
if (entry['seed'] === true)
|
|
140
|
+
params.seed = true;
|
|
141
|
+
const frames = strings(entry['supported_frame_images']);
|
|
142
|
+
if (frames.includes('last_frame'))
|
|
143
|
+
params.last_frame = true;
|
|
144
|
+
return { workflows: frames.includes('first_frame') ? ['create', 'image-to-video'] : ['create'], params };
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* The models of a `GET {base}/videos/models` answer. An entry without durations is an editing,
|
|
148
|
+
* upscaling or avatar model that needs a video or a voice the form does not have; it is left out.
|
|
149
|
+
*/
|
|
150
|
+
export function openrouterVideoModels(json) {
|
|
151
|
+
const data = isObject(json) ? json['data'] : json;
|
|
152
|
+
const out = [];
|
|
153
|
+
const seen = new Set();
|
|
154
|
+
for (const item of Array.isArray(data) ? data : []) {
|
|
155
|
+
if (!isObject(item) || typeof item['id'] !== 'string' || item['id'] === '' || seen.has(item['id']))
|
|
156
|
+
continue;
|
|
157
|
+
if (!Array.isArray(item['supported_durations']) || item['supported_durations'].length === 0)
|
|
158
|
+
continue;
|
|
159
|
+
seen.add(item['id']);
|
|
160
|
+
const { workflows, params } = openrouterVideoParams(item);
|
|
161
|
+
const model = { id: item['id'], workflows, params };
|
|
162
|
+
const name = typeof item['name'] === 'string' ? item['name'].trim() : '';
|
|
163
|
+
// "Google: Veo 3.1" → "Veo 3.1"
|
|
164
|
+
if (name !== '')
|
|
165
|
+
model.name = name.includes(': ') ? name.slice(name.indexOf(': ') + 2) : name;
|
|
166
|
+
out.push(model);
|
|
167
|
+
}
|
|
168
|
+
return out;
|
|
169
|
+
}
|
|
170
|
+
function jobUrl(ctx, id, suffix = '') {
|
|
171
|
+
return joinUrl(ctx.baseUrl, `/videos/${encodeURIComponent(id)}${suffix}`);
|
|
172
|
+
}
|
|
173
|
+
export const OPENROUTER_VIDEOS = {
|
|
174
|
+
dialect: 'openrouter-videos',
|
|
175
|
+
kind: 'video',
|
|
176
|
+
pollIntervalMs: { first: 10_000, max: 30_000 },
|
|
177
|
+
async listModels(ctx) {
|
|
178
|
+
const answer = await callProvider(ctx, joinUrl(ctx.baseUrl, '/videos/models'));
|
|
179
|
+
return openrouterVideoModels(answer.json);
|
|
180
|
+
},
|
|
181
|
+
async submit(ctx, job) {
|
|
182
|
+
const body = openrouterVideoBody(job, ctx.provider);
|
|
183
|
+
const answer = await callProvider(ctx, joinUrl(ctx.baseUrl, '/videos'), { json: body });
|
|
184
|
+
const fields = isObject(answer.json) ? answer.json : {};
|
|
185
|
+
const id = fields['id'];
|
|
186
|
+
if (typeof id !== 'string' || id === '')
|
|
187
|
+
throw remoteError('REMOTE_UNAVAILABLE', `${ctx.provider} answered without a job id.`, answer.text.slice(0, 500));
|
|
188
|
+
const state = readOpenrouterVideo(ctx.provider, fields);
|
|
189
|
+
if (state.state === 'failed')
|
|
190
|
+
throw state.error;
|
|
191
|
+
const polling = ownPollingUrl(ctx.baseUrl, fields['polling_url']);
|
|
192
|
+
return polling ? { id, data: { polling_url: polling } } : { id };
|
|
193
|
+
},
|
|
194
|
+
async poll(ctx, submission) {
|
|
195
|
+
const url = ownPollingUrl(ctx.baseUrl, submission.data?.['polling_url']) ?? jobUrl(ctx, submission.id);
|
|
196
|
+
const answer = await callProvider(ctx, url);
|
|
197
|
+
return readOpenrouterVideo(ctx.provider, answer.json);
|
|
198
|
+
},
|
|
199
|
+
async download(ctx, submission, result) {
|
|
200
|
+
const url = result.url ?? jobUrl(ctx, submission.id, '/content?index=0');
|
|
201
|
+
const file = await downloadResult(ctx, url, { maxBytes: MAX_VIDEO_BYTES, what: 'video' });
|
|
202
|
+
const mime = sniffVideoMime(file.bytes);
|
|
203
|
+
if (!mime)
|
|
204
|
+
throw remoteError('REMOTE_UNAVAILABLE', `${ctx.provider} returned a file that is not a video.`);
|
|
205
|
+
return { bytes: file.bytes, mime };
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
//# sourceMappingURL=openrouter-videos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter-videos.js","sourceRoot":"","sources":["../../../src/media/adapters/openrouter-videos.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every adapter this core has, by the dialect it speaks. The catalog names dialects; a dialect
|
|
3
|
+
* missing here is one this core cannot talk to (the catalog parser already drops its entries).
|
|
4
|
+
*/
|
|
5
|
+
import type { MediaDialect } from '../../contracts/index.js';
|
|
6
|
+
import type { MediaAdapter } from './types.js';
|
|
7
|
+
export declare const MEDIA_ADAPTERS: Readonly<Record<MediaDialect, MediaAdapter>>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every adapter this core has, by the dialect it speaks. The catalog names dialects; a dialect
|
|
3
|
+
* missing here is one this core cannot talk to (the catalog parser already drops its entries).
|
|
4
|
+
*/
|
|
5
|
+
import { A1111 } from './a1111.js';
|
|
6
|
+
import { AIMLAPI_VIDEOS } from './aimlapi-videos.js';
|
|
7
|
+
import { DASHSCOPE_IMAGE } from './dashscope-image.js';
|
|
8
|
+
import { DASHSCOPE_VIDEO } from './dashscope-video.js';
|
|
9
|
+
import { GEMINI_IMAGE } from './gemini-image.js';
|
|
10
|
+
import { GEMINI_VEO } from './gemini-veo.js';
|
|
11
|
+
import { HF_IMAGES } from './hf-images.js';
|
|
12
|
+
import { HF_VIDEOS } from './hf-videos.js';
|
|
13
|
+
import { MINIMAX_IMAGE } from './minimax-image.js';
|
|
14
|
+
import { MINIMAX_VIDEO } from './minimax-video.js';
|
|
15
|
+
import { MINIMAX_VIDEO_V2 } from './minimax-video-v2.js';
|
|
16
|
+
import { MISTRAL_AGENT_IMAGE } from './mistral-agent-image.js';
|
|
17
|
+
import { NVIDIA_GENAI } from './nvidia-genai.js';
|
|
18
|
+
import { OPENAI_IMAGES } from './openai-images.js';
|
|
19
|
+
import { OPENAI_VIDEOS } from './openai-videos.js';
|
|
20
|
+
import { OPENROUTER_IMAGES } from './openrouter-images.js';
|
|
21
|
+
import { OPENROUTER_VIDEOS } from './openrouter-videos.js';
|
|
22
|
+
import { XAI_IMAGES } from './xai-images.js';
|
|
23
|
+
import { XAI_VIDEOS } from './xai-videos.js';
|
|
24
|
+
export const MEDIA_ADAPTERS = {
|
|
25
|
+
'openai-images': OPENAI_IMAGES,
|
|
26
|
+
'xai-images': XAI_IMAGES,
|
|
27
|
+
'openrouter-images': OPENROUTER_IMAGES,
|
|
28
|
+
'gemini-image': GEMINI_IMAGE,
|
|
29
|
+
'minimax-image': MINIMAX_IMAGE,
|
|
30
|
+
'dashscope-image': DASHSCOPE_IMAGE,
|
|
31
|
+
'hf-images': HF_IMAGES,
|
|
32
|
+
'nvidia-genai': NVIDIA_GENAI,
|
|
33
|
+
'mistral-agent-image': MISTRAL_AGENT_IMAGE,
|
|
34
|
+
'a1111': A1111,
|
|
35
|
+
'openai-videos': OPENAI_VIDEOS,
|
|
36
|
+
'openrouter-videos': OPENROUTER_VIDEOS,
|
|
37
|
+
'xai-videos': XAI_VIDEOS,
|
|
38
|
+
'gemini-veo': GEMINI_VEO,
|
|
39
|
+
'minimax-video': MINIMAX_VIDEO,
|
|
40
|
+
'minimax-video-v2': MINIMAX_VIDEO_V2,
|
|
41
|
+
'dashscope-video': DASHSCOPE_VIDEO,
|
|
42
|
+
'aimlapi-videos': AIMLAPI_VIDEOS,
|
|
43
|
+
'hf-videos': HF_VIDEOS,
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/media/adapters/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,CAAC,MAAM,cAAc,GAAiD;IAC1E,eAAe,EAAE,aAAa;IAC9B,YAAY,EAAE,UAAU;IACxB,mBAAmB,EAAE,iBAAiB;IACtC,cAAc,EAAE,YAAY;IAC5B,eAAe,EAAE,aAAa;IAC9B,iBAAiB,EAAE,eAAe;IAClC,WAAW,EAAE,SAAS;IACtB,cAAc,EAAE,YAAY;IAC5B,qBAAqB,EAAE,mBAAmB;IAC1C,OAAO,EAAE,KAAK;IACd,eAAe,EAAE,aAAa;IAC9B,mBAAmB,EAAE,iBAAiB;IACtC,YAAY,EAAE,UAAU;IACxB,YAAY,EAAE,UAAU;IACxB,eAAe,EAAE,aAAa;IAC9B,kBAAkB,EAAE,gBAAgB;IACpC,iBAAiB,EAAE,eAAe;IAClC,gBAAgB,EAAE,cAAc;IAChC,WAAW,EAAE,SAAS;CACvB,CAAA"}
|