@nodetool-ai/runtime 0.7.0-rc.23 → 0.8.2
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 +29 -0
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/agent-memory.d.ts +118 -0
- package/dist/agent-memory.d.ts.map +1 -0
- package/dist/agent-memory.js +186 -0
- package/dist/agent-memory.js.map +1 -0
- package/dist/async-local-storage.d.ts +20 -0
- package/dist/async-local-storage.d.ts.map +1 -0
- package/dist/async-local-storage.js +28 -0
- package/dist/async-local-storage.js.map +1 -0
- package/dist/blender-executor.d.ts +93 -0
- package/dist/blender-executor.d.ts.map +1 -0
- package/dist/blender-executor.js +294 -0
- package/dist/blender-executor.js.map +1 -0
- package/dist/comfy-executor.d.ts +23 -1
- package/dist/comfy-executor.d.ts.map +1 -1
- package/dist/comfy-executor.js +234 -55
- package/dist/comfy-executor.js.map +1 -1
- package/dist/context-packer.d.ts +1 -1
- package/dist/context-packer.d.ts.map +1 -1
- package/dist/context-packer.js +23 -25
- package/dist/context-packer.js.map +1 -1
- package/dist/context.d.ts +982 -127
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +2649 -530
- package/dist/context.js.map +1 -1
- package/dist/cost-reconciler.d.ts +32 -0
- package/dist/cost-reconciler.d.ts.map +1 -0
- package/dist/cost-reconciler.js +21 -0
- package/dist/cost-reconciler.js.map +1 -0
- package/dist/entities.d.ts +33 -0
- package/dist/entities.d.ts.map +1 -0
- package/dist/entities.js +43 -0
- package/dist/entities.js.map +1 -0
- package/dist/external-media-fetch.d.ts +29 -0
- package/dist/external-media-fetch.d.ts.map +1 -0
- package/dist/external-media-fetch.js +38 -0
- package/dist/external-media-fetch.js.map +1 -0
- package/dist/generation-receipt.d.ts +86 -0
- package/dist/generation-receipt.d.ts.map +1 -0
- package/dist/generation-receipt.js +137 -0
- package/dist/generation-receipt.js.map +1 -0
- package/dist/generation-registry.d.ts +75 -0
- package/dist/generation-registry.d.ts.map +1 -0
- package/dist/generation-registry.js +144 -0
- package/dist/generation-registry.js.map +1 -0
- package/dist/google/client.d.ts +196 -0
- package/dist/google/client.d.ts.map +1 -0
- package/dist/google/client.js +396 -0
- package/dist/google/client.js.map +1 -0
- package/dist/google/index.d.ts +3 -0
- package/dist/google/index.d.ts.map +1 -0
- package/dist/google/index.js +3 -0
- package/dist/google/index.js.map +1 -0
- package/dist/google/token.d.ts +15 -0
- package/dist/google/token.d.ts.map +1 -0
- package/dist/google/token.js +24 -0
- package/dist/google/token.js.map +1 -0
- package/dist/host-binaries.d.ts +106 -0
- package/dist/host-binaries.d.ts.map +1 -0
- package/dist/host-binaries.js +352 -0
- package/dist/host-binaries.js.map +1 -0
- package/dist/image-codec.d.ts +76 -0
- package/dist/image-codec.d.ts.map +1 -0
- package/dist/image-codec.js +293 -0
- package/dist/image-codec.js.map +1 -0
- package/dist/image-model-tasks.d.ts +15 -0
- package/dist/image-model-tasks.d.ts.map +1 -0
- package/dist/image-model-tasks.js +24 -0
- package/dist/image-model-tasks.js.map +1 -0
- package/dist/index.d.ts +67 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -4
- package/dist/index.js.map +1 -1
- package/dist/invocation-account.d.ts +43 -0
- package/dist/invocation-account.d.ts.map +1 -0
- package/dist/invocation-account.js +60 -0
- package/dist/invocation-account.js.map +1 -0
- package/dist/media-ref-bytes.d.ts +35 -0
- package/dist/media-ref-bytes.d.ts.map +1 -0
- package/dist/media-ref-bytes.js +191 -0
- package/dist/media-ref-bytes.js.map +1 -0
- package/dist/node-executor.d.ts +119 -2
- package/dist/node-executor.d.ts.map +1 -1
- package/dist/permission-gate.d.ts +152 -0
- package/dist/permission-gate.d.ts.map +1 -0
- package/dist/permission-gate.js +87 -0
- package/dist/permission-gate.js.map +1 -0
- package/dist/prefixed-storage-adapter.d.ts +33 -0
- package/dist/prefixed-storage-adapter.d.ts.map +1 -0
- package/dist/prefixed-storage-adapter.js +70 -0
- package/dist/prefixed-storage-adapter.js.map +1 -0
- package/dist/prompt-asset-refs.d.ts +222 -0
- package/dist/prompt-asset-refs.d.ts.map +1 -0
- package/dist/prompt-asset-refs.js +751 -0
- package/dist/prompt-asset-refs.js.map +1 -0
- package/dist/provider-cache.d.ts +3 -0
- package/dist/provider-cache.d.ts.map +1 -0
- package/dist/provider-cache.js +8 -0
- package/dist/provider-cache.js.map +1 -0
- package/dist/providers/aki-provider.d.ts +35 -10
- package/dist/providers/aki-provider.d.ts.map +1 -1
- package/dist/providers/aki-provider.js +90 -77
- package/dist/providers/aki-provider.js.map +1 -1
- package/dist/providers/alibaba-provider.d.ts +39 -0
- package/dist/providers/alibaba-provider.d.ts.map +1 -0
- package/dist/providers/alibaba-provider.js +86 -0
- package/dist/providers/alibaba-provider.js.map +1 -0
- package/dist/providers/anthropic-provider.d.ts +52 -3
- package/dist/providers/anthropic-provider.d.ts.map +1 -1
- package/dist/providers/anthropic-provider.js +1020 -338
- package/dist/providers/anthropic-provider.js.map +1 -1
- package/dist/providers/atlascloud-provider.d.ts +103 -0
- package/dist/providers/atlascloud-provider.d.ts.map +1 -0
- package/dist/providers/atlascloud-provider.js +1031 -0
- package/dist/providers/atlascloud-provider.js.map +1 -0
- package/dist/providers/atlascloud-transport.d.ts +100 -0
- package/dist/providers/atlascloud-transport.d.ts.map +1 -0
- package/dist/providers/atlascloud-transport.js +364 -0
- package/dist/providers/atlascloud-transport.js.map +1 -0
- package/dist/providers/atlascloud-webhook-registry.d.ts +35 -0
- package/dist/providers/atlascloud-webhook-registry.d.ts.map +1 -0
- package/dist/providers/atlascloud-webhook-registry.js +104 -0
- package/dist/providers/atlascloud-webhook-registry.js.map +1 -0
- package/dist/providers/audio-mime.d.ts +11 -0
- package/dist/providers/audio-mime.d.ts.map +1 -0
- package/dist/providers/audio-mime.js +46 -0
- package/dist/providers/audio-mime.js.map +1 -0
- package/dist/providers/base-provider.d.ts +501 -32
- package/dist/providers/base-provider.d.ts.map +1 -1
- package/dist/providers/base-provider.js +1280 -87
- package/dist/providers/base-provider.js.map +1 -1
- package/dist/providers/cassette-provider.d.ts +217 -0
- package/dist/providers/cassette-provider.d.ts.map +1 -0
- package/dist/providers/cassette-provider.js +502 -0
- package/dist/providers/cassette-provider.js.map +1 -0
- package/dist/providers/cerebras-provider.d.ts +6 -12
- package/dist/providers/cerebras-provider.d.ts.map +1 -1
- package/dist/providers/cerebras-provider.js +8 -33
- package/dist/providers/cerebras-provider.js.map +1 -1
- package/dist/providers/claude-agent-provider.d.ts +107 -74
- package/dist/providers/claude-agent-provider.d.ts.map +1 -1
- package/dist/providers/claude-agent-provider.js +1279 -517
- package/dist/providers/claude-agent-provider.js.map +1 -1
- package/dist/providers/codex-provider.d.ts +84 -0
- package/dist/providers/codex-provider.d.ts.map +1 -0
- package/dist/providers/codex-provider.js +505 -0
- package/dist/providers/codex-provider.js.map +1 -0
- package/dist/providers/cohere-provider.d.ts +7 -3
- package/dist/providers/cohere-provider.d.ts.map +1 -1
- package/dist/providers/cohere-provider.js +14 -2
- package/dist/providers/cohere-provider.js.map +1 -1
- package/dist/providers/comfy-cloud-provider.d.ts +30 -0
- package/dist/providers/comfy-cloud-provider.d.ts.map +1 -0
- package/dist/providers/comfy-cloud-provider.js +42 -0
- package/dist/providers/comfy-cloud-provider.js.map +1 -0
- package/dist/providers/content-filter.d.ts +46 -0
- package/dist/providers/content-filter.d.ts.map +1 -0
- package/dist/providers/content-filter.js +92 -0
- package/dist/providers/content-filter.js.map +1 -0
- package/dist/providers/context-exceeded.d.ts +37 -0
- package/dist/providers/context-exceeded.d.ts.map +1 -0
- package/dist/providers/context-exceeded.js +114 -0
- package/dist/providers/context-exceeded.js.map +1 -0
- package/dist/providers/context-window.d.ts +44 -0
- package/dist/providers/context-window.d.ts.map +1 -0
- package/dist/providers/context-window.js +145 -0
- package/dist/providers/context-window.js.map +1 -0
- package/dist/providers/contract/index.d.ts +4 -0
- package/dist/providers/contract/index.d.ts.map +1 -0
- package/dist/providers/contract/index.js +4 -0
- package/dist/providers/contract/index.js.map +1 -0
- package/dist/providers/contract/probe-manifest.d.ts +75 -0
- package/dist/providers/contract/probe-manifest.d.ts.map +1 -0
- package/dist/providers/contract/probe-manifest.js +379 -0
- package/dist/providers/contract/probe-manifest.js.map +1 -0
- package/dist/providers/contract/probe-runner.d.ts +57 -0
- package/dist/providers/contract/probe-runner.d.ts.map +1 -0
- package/dist/providers/contract/probe-runner.js +180 -0
- package/dist/providers/contract/probe-runner.js.map +1 -0
- package/dist/providers/contract/redact.d.ts +29 -0
- package/dist/providers/contract/redact.d.ts.map +1 -0
- package/dist/providers/contract/redact.js +113 -0
- package/dist/providers/contract/redact.js.map +1 -0
- package/dist/providers/core-tools.d.ts +75 -0
- package/dist/providers/core-tools.d.ts.map +1 -0
- package/dist/providers/core-tools.js +128 -0
- package/dist/providers/core-tools.js.map +1 -0
- package/dist/providers/cost-calculator.d.ts +69 -50
- package/dist/providers/cost-calculator.d.ts.map +1 -1
- package/dist/providers/cost-calculator.js +207 -397
- package/dist/providers/cost-calculator.js.map +1 -1
- package/dist/providers/credential-check.d.ts +45 -0
- package/dist/providers/credential-check.d.ts.map +1 -0
- package/dist/providers/credential-check.js +164 -0
- package/dist/providers/credential-check.js.map +1 -0
- package/dist/providers/custom-model-kinds.d.ts +33 -0
- package/dist/providers/custom-model-kinds.d.ts.map +1 -0
- package/dist/providers/custom-model-kinds.js +96 -0
- package/dist/providers/custom-model-kinds.js.map +1 -0
- package/dist/providers/custom-openai-provider.d.ts +83 -0
- package/dist/providers/custom-openai-provider.d.ts.map +1 -0
- package/dist/providers/custom-openai-provider.js +190 -0
- package/dist/providers/custom-openai-provider.js.map +1 -0
- package/dist/providers/custom-provider-registry.d.ts +19 -0
- package/dist/providers/custom-provider-registry.d.ts.map +1 -0
- package/dist/providers/custom-provider-registry.js +52 -0
- package/dist/providers/custom-provider-registry.js.map +1 -0
- package/dist/providers/deepseek-provider.d.ts +8 -14
- package/dist/providers/deepseek-provider.d.ts.map +1 -1
- package/dist/providers/deepseek-provider.js +6 -35
- package/dist/providers/deepseek-provider.js.map +1 -1
- package/dist/providers/defaults.d.ts +12 -0
- package/dist/providers/defaults.d.ts.map +1 -0
- package/dist/providers/defaults.js +12 -0
- package/dist/providers/defaults.js.map +1 -0
- package/dist/providers/dreamina-models.d.ts +5 -0
- package/dist/providers/dreamina-models.d.ts.map +1 -0
- package/dist/providers/dreamina-models.js +57 -0
- package/dist/providers/dreamina-models.js.map +1 -0
- package/dist/providers/dreamina-music.d.ts +52 -0
- package/dist/providers/dreamina-music.d.ts.map +1 -0
- package/dist/providers/dreamina-music.js +115 -0
- package/dist/providers/dreamina-music.js.map +1 -0
- package/dist/providers/dreamina-provider.d.ts +62 -0
- package/dist/providers/dreamina-provider.d.ts.map +1 -0
- package/dist/providers/dreamina-provider.js +790 -0
- package/dist/providers/dreamina-provider.js.map +1 -0
- package/dist/providers/elevenlabs-provider.d.ts +50 -0
- package/dist/providers/elevenlabs-provider.d.ts.map +1 -0
- package/dist/providers/elevenlabs-provider.js +147 -0
- package/dist/providers/elevenlabs-provider.js.map +1 -0
- package/dist/providers/entity-references.d.ts +31 -0
- package/dist/providers/entity-references.d.ts.map +1 -0
- package/dist/providers/entity-references.js +113 -0
- package/dist/providers/entity-references.js.map +1 -0
- package/dist/providers/evolink-provider.d.ts +40 -0
- package/dist/providers/evolink-provider.d.ts.map +1 -0
- package/dist/providers/evolink-provider.js +312 -0
- package/dist/providers/evolink-provider.js.map +1 -0
- package/dist/providers/fake-provider.d.ts +74 -2
- package/dist/providers/fake-provider.d.ts.map +1 -1
- package/dist/providers/fake-provider.js +213 -1
- package/dist/providers/fake-provider.js.map +1 -1
- package/dist/providers/fal-generations.d.ts +106 -0
- package/dist/providers/fal-generations.d.ts.map +1 -0
- package/dist/providers/fal-generations.js +286 -0
- package/dist/providers/fal-generations.js.map +1 -0
- package/dist/providers/fal-provider.d.ts +173 -8
- package/dist/providers/fal-provider.d.ts.map +1 -1
- package/dist/providers/fal-provider.js +1396 -64
- package/dist/providers/fal-provider.js.map +1 -1
- package/dist/providers/fal-queue.d.ts +47 -0
- package/dist/providers/fal-queue.d.ts.map +1 -0
- package/dist/providers/fal-queue.js +231 -0
- package/dist/providers/fal-queue.js.map +1 -0
- package/dist/providers/gemini-provider.d.ts +150 -9
- package/dist/providers/gemini-provider.d.ts.map +1 -1
- package/dist/providers/gemini-provider.js +1515 -316
- package/dist/providers/gemini-provider.js.map +1 -1
- package/dist/providers/gmi-provider.d.ts +21 -0
- package/dist/providers/gmi-provider.d.ts.map +1 -0
- package/dist/providers/gmi-provider.js +34 -0
- package/dist/providers/gmi-provider.js.map +1 -0
- package/dist/providers/gpt-image-size.d.ts +3 -0
- package/dist/providers/gpt-image-size.d.ts.map +1 -0
- package/dist/providers/gpt-image-size.js +37 -0
- package/dist/providers/gpt-image-size.js.map +1 -0
- package/dist/providers/groq-provider.d.ts +9 -12
- package/dist/providers/groq-provider.d.ts.map +1 -1
- package/dist/providers/groq-provider.js +19 -33
- package/dist/providers/groq-provider.js.map +1 -1
- package/dist/providers/groq-request.d.ts +38 -0
- package/dist/providers/groq-request.d.ts.map +1 -0
- package/dist/providers/groq-request.js +138 -0
- package/dist/providers/groq-request.js.map +1 -0
- package/dist/providers/higgsfield-provider.d.ts +31 -0
- package/dist/providers/higgsfield-provider.d.ts.map +1 -0
- package/dist/providers/higgsfield-provider.js +143 -0
- package/dist/providers/higgsfield-provider.js.map +1 -0
- package/dist/providers/higgsfield-transport.d.ts +106 -0
- package/dist/providers/higgsfield-transport.d.ts.map +1 -0
- package/dist/providers/higgsfield-transport.js +182 -0
- package/dist/providers/higgsfield-transport.js.map +1 -0
- package/dist/providers/http-transport.d.ts +74 -0
- package/dist/providers/http-transport.d.ts.map +1 -0
- package/dist/providers/http-transport.js +152 -0
- package/dist/providers/http-transport.js.map +1 -0
- package/dist/providers/huggingface-provider.d.ts +73 -4
- package/dist/providers/huggingface-provider.d.ts.map +1 -1
- package/dist/providers/huggingface-provider.js +240 -34
- package/dist/providers/huggingface-provider.js.map +1 -1
- package/dist/providers/image-mime.d.ts +39 -0
- package/dist/providers/image-mime.d.ts.map +1 -0
- package/dist/providers/image-mime.js +111 -0
- package/dist/providers/image-mime.js.map +1 -0
- package/dist/providers/image-ref.d.ts +21 -0
- package/dist/providers/image-ref.d.ts.map +1 -0
- package/dist/providers/image-ref.js +44 -0
- package/dist/providers/image-ref.js.map +1 -0
- package/dist/providers/index.d.ts +87 -8
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +250 -56
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/jina-provider.d.ts +12 -3
- package/dist/providers/jina-provider.d.ts.map +1 -1
- package/dist/providers/jina-provider.js +21 -7
- package/dist/providers/jina-provider.js.map +1 -1
- package/dist/providers/kie-provider.d.ts +172 -10
- package/dist/providers/kie-provider.d.ts.map +1 -1
- package/dist/providers/kie-provider.js +1190 -228
- package/dist/providers/kie-provider.js.map +1 -1
- package/dist/providers/kie-webhook-registry.d.ts +28 -0
- package/dist/providers/kie-webhook-registry.d.ts.map +1 -0
- package/dist/providers/kie-webhook-registry.js +91 -0
- package/dist/providers/kie-webhook-registry.js.map +1 -0
- package/dist/providers/llama-provider.d.ts +23 -36
- package/dist/providers/llama-provider.d.ts.map +1 -1
- package/dist/providers/llama-provider.js +50 -355
- package/dist/providers/llama-provider.js.map +1 -1
- package/dist/providers/lmstudio-provider.d.ts +4 -7
- package/dist/providers/lmstudio-provider.d.ts.map +1 -1
- package/dist/providers/lmstudio-provider.js +24 -15
- package/dist/providers/lmstudio-provider.js.map +1 -1
- package/dist/providers/loop-tracing.d.ts +17 -0
- package/dist/providers/loop-tracing.d.ts.map +1 -0
- package/dist/providers/loop-tracing.js +132 -0
- package/dist/providers/loop-tracing.js.map +1 -0
- package/dist/providers/manifest-models.d.ts +341 -1
- package/dist/providers/manifest-models.d.ts.map +1 -1
- package/dist/providers/manifest-models.js +1106 -22
- package/dist/providers/manifest-models.js.map +1 -1
- package/dist/providers/media-mime.d.ts +14 -0
- package/dist/providers/media-mime.d.ts.map +1 -0
- package/dist/providers/media-mime.js +35 -0
- package/dist/providers/media-mime.js.map +1 -0
- package/dist/providers/meshy-provider.d.ts +16 -2
- package/dist/providers/meshy-provider.d.ts.map +1 -1
- package/dist/providers/meshy-provider.js +82 -46
- package/dist/providers/meshy-provider.js.map +1 -1
- package/dist/providers/meta-provider.d.ts +22 -0
- package/dist/providers/meta-provider.d.ts.map +1 -0
- package/dist/providers/meta-provider.js +54 -0
- package/dist/providers/meta-provider.js.map +1 -0
- package/dist/providers/minimax-provider.d.ts +27 -18
- package/dist/providers/minimax-provider.d.ts.map +1 -1
- package/dist/providers/minimax-provider.js +222 -72
- package/dist/providers/minimax-provider.js.map +1 -1
- package/dist/providers/mistral-provider.d.ts +8 -12
- package/dist/providers/mistral-provider.d.ts.map +1 -1
- package/dist/providers/mistral-provider.js +15 -34
- package/dist/providers/mistral-provider.js.map +1 -1
- package/dist/providers/moonshot-provider.d.ts +11 -15
- package/dist/providers/moonshot-provider.d.ts.map +1 -1
- package/dist/providers/moonshot-provider.js +33 -23
- package/dist/providers/moonshot-provider.js.map +1 -1
- package/dist/providers/node-llama-cpp-provider.d.ts +99 -0
- package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -0
- package/dist/providers/node-llama-cpp-provider.js +484 -0
- package/dist/providers/node-llama-cpp-provider.js.map +1 -0
- package/dist/providers/nodetool-provider.d.ts +49 -0
- package/dist/providers/nodetool-provider.d.ts.map +1 -0
- package/dist/providers/nodetool-provider.js +222 -0
- package/dist/providers/nodetool-provider.js.map +1 -0
- package/dist/providers/oauth/browser-launcher.d.ts +23 -0
- package/dist/providers/oauth/browser-launcher.d.ts.map +1 -0
- package/dist/providers/oauth/browser-launcher.js +45 -0
- package/dist/providers/oauth/browser-launcher.js.map +1 -0
- package/dist/providers/oauth/claude-code-credentials.d.ts +74 -0
- package/dist/providers/oauth/claude-code-credentials.d.ts.map +1 -0
- package/dist/providers/oauth/claude-code-credentials.js +133 -0
- package/dist/providers/oauth/claude-code-credentials.js.map +1 -0
- package/dist/providers/oauth/claude-code-login.d.ts +124 -0
- package/dist/providers/oauth/claude-code-login.d.ts.map +1 -0
- package/dist/providers/oauth/claude-code-login.js +230 -0
- package/dist/providers/oauth/claude-code-login.js.map +1 -0
- package/dist/providers/oauth/claude-code-oauth-client.d.ts +111 -0
- package/dist/providers/oauth/claude-code-oauth-client.d.ts.map +1 -0
- package/dist/providers/oauth/claude-code-oauth-client.js +207 -0
- package/dist/providers/oauth/claude-code-oauth-client.js.map +1 -0
- package/dist/providers/oauth/errors.d.ts +54 -0
- package/dist/providers/oauth/errors.d.ts.map +1 -0
- package/dist/providers/oauth/errors.js +79 -0
- package/dist/providers/oauth/errors.js.map +1 -0
- package/dist/providers/oauth/index.d.ts +105 -0
- package/dist/providers/oauth/index.d.ts.map +1 -0
- package/dist/providers/oauth/index.js +167 -0
- package/dist/providers/oauth/index.js.map +1 -0
- package/dist/providers/oauth/jwt-claims.d.ts +23 -0
- package/dist/providers/oauth/jwt-claims.d.ts.map +1 -0
- package/dist/providers/oauth/jwt-claims.js +67 -0
- package/dist/providers/oauth/jwt-claims.js.map +1 -0
- package/dist/providers/oauth/local-callback-server.d.ts +60 -0
- package/dist/providers/oauth/local-callback-server.d.ts.map +1 -0
- package/dist/providers/oauth/local-callback-server.js +148 -0
- package/dist/providers/oauth/local-callback-server.js.map +1 -0
- package/dist/providers/oauth/oauth-client.d.ts +55 -0
- package/dist/providers/oauth/oauth-client.d.ts.map +1 -0
- package/dist/providers/oauth/oauth-client.js +161 -0
- package/dist/providers/oauth/oauth-client.js.map +1 -0
- package/dist/providers/oauth/openai-oauth-provider.d.ts +129 -0
- package/dist/providers/oauth/openai-oauth-provider.d.ts.map +1 -0
- package/dist/providers/oauth/openai-oauth-provider.js +265 -0
- package/dist/providers/oauth/openai-oauth-provider.js.map +1 -0
- package/dist/providers/oauth/pkce-helper.d.ts +43 -0
- package/dist/providers/oauth/pkce-helper.d.ts.map +1 -0
- package/dist/providers/oauth/pkce-helper.js +57 -0
- package/dist/providers/oauth/pkce-helper.js.map +1 -0
- package/dist/providers/oauth/redaction.d.ts +22 -0
- package/dist/providers/oauth/redaction.d.ts.map +1 -0
- package/dist/providers/oauth/redaction.js +59 -0
- package/dist/providers/oauth/redaction.js.map +1 -0
- package/dist/providers/oauth/secure-credential-store.d.ts +67 -0
- package/dist/providers/oauth/secure-credential-store.d.ts.map +1 -0
- package/dist/providers/oauth/secure-credential-store.js +73 -0
- package/dist/providers/oauth/secure-credential-store.js.map +1 -0
- package/dist/providers/oauth/token-store.d.ts +53 -0
- package/dist/providers/oauth/token-store.d.ts.map +1 -0
- package/dist/providers/oauth/token-store.js +78 -0
- package/dist/providers/oauth/token-store.js.map +1 -0
- package/dist/providers/oauth/types.d.ts +64 -0
- package/dist/providers/oauth/types.d.ts.map +1 -0
- package/dist/providers/oauth/types.js +12 -0
- package/dist/providers/oauth/types.js.map +1 -0
- package/dist/providers/object-tracking.d.ts +47 -0
- package/dist/providers/object-tracking.d.ts.map +1 -0
- package/dist/providers/object-tracking.js +46 -0
- package/dist/providers/object-tracking.js.map +1 -0
- package/dist/providers/offline-model-index.d.ts +20 -0
- package/dist/providers/offline-model-index.d.ts.map +1 -0
- package/dist/providers/offline-model-index.js +112 -0
- package/dist/providers/offline-model-index.js.map +1 -0
- package/dist/providers/ollama-provider.d.ts +30 -2
- package/dist/providers/ollama-provider.d.ts.map +1 -1
- package/dist/providers/ollama-provider.js +198 -43
- package/dist/providers/ollama-provider.js.map +1 -1
- package/dist/providers/openai-compat/client.d.ts +57 -0
- package/dist/providers/openai-compat/client.d.ts.map +1 -0
- package/dist/providers/openai-compat/client.js +157 -0
- package/dist/providers/openai-compat/client.js.map +1 -0
- package/dist/providers/openai-compat/decode.d.ts +36 -0
- package/dist/providers/openai-compat/decode.d.ts.map +1 -0
- package/dist/providers/openai-compat/decode.js +55 -0
- package/dist/providers/openai-compat/decode.js.map +1 -0
- package/dist/providers/openai-compat/errors.d.ts +54 -0
- package/dist/providers/openai-compat/errors.d.ts.map +1 -0
- package/dist/providers/openai-compat/errors.js +144 -0
- package/dist/providers/openai-compat/errors.js.map +1 -0
- package/dist/providers/openai-compat/index.d.ts +8 -0
- package/dist/providers/openai-compat/index.d.ts.map +1 -0
- package/dist/providers/openai-compat/index.js +5 -0
- package/dist/providers/openai-compat/index.js.map +1 -0
- package/dist/providers/openai-compat/sse.d.ts +14 -0
- package/dist/providers/openai-compat/sse.d.ts.map +1 -0
- package/dist/providers/openai-compat/sse.js +69 -0
- package/dist/providers/openai-compat/sse.js.map +1 -0
- package/dist/providers/openai-compat/types.d.ts +75 -0
- package/dist/providers/openai-compat/types.d.ts.map +1 -0
- package/dist/providers/openai-compat/types.js +9 -0
- package/dist/providers/openai-compat/types.js.map +1 -0
- package/dist/providers/openai-compat-provider.d.ts +90 -0
- package/dist/providers/openai-compat-provider.d.ts.map +1 -0
- package/dist/providers/openai-compat-provider.js +282 -0
- package/dist/providers/openai-compat-provider.js.map +1 -0
- package/dist/providers/openai-provider.d.ts +98 -27
- package/dist/providers/openai-provider.d.ts.map +1 -1
- package/dist/providers/openai-provider.js +1037 -105
- package/dist/providers/openai-provider.js.map +1 -1
- package/dist/providers/openrouter-provider.d.ts +58 -13
- package/dist/providers/openrouter-provider.d.ts.map +1 -1
- package/dist/providers/openrouter-provider.js +383 -51
- package/dist/providers/openrouter-provider.js.map +1 -1
- package/dist/providers/provider-call-failure.d.ts +39 -0
- package/dist/providers/provider-call-failure.d.ts.map +1 -0
- package/dist/providers/provider-call-failure.js +132 -0
- package/dist/providers/provider-call-failure.js.map +1 -0
- package/dist/providers/provider-error.d.ts +59 -0
- package/dist/providers/provider-error.d.ts.map +1 -0
- package/dist/providers/provider-error.js +171 -0
- package/dist/providers/provider-error.js.map +1 -0
- package/dist/providers/provider-generations.d.ts +99 -0
- package/dist/providers/provider-generations.d.ts.map +1 -0
- package/dist/providers/provider-generations.js +71 -0
- package/dist/providers/provider-generations.js.map +1 -0
- package/dist/providers/provider-queue.d.ts +62 -0
- package/dist/providers/provider-queue.d.ts.map +1 -0
- package/dist/providers/provider-queue.js +28 -0
- package/dist/providers/provider-queue.js.map +1 -0
- package/dist/providers/provider-registry.d.ts +33 -14
- package/dist/providers/provider-registry.d.ts.map +1 -1
- package/dist/providers/provider-registry.js +85 -68
- package/dist/providers/provider-registry.js.map +1 -1
- package/dist/providers/provider-request-log.d.ts +53 -0
- package/dist/providers/provider-request-log.d.ts.map +1 -0
- package/dist/providers/provider-request-log.js +168 -0
- package/dist/providers/provider-request-log.js.map +1 -0
- package/dist/providers/provider-session.d.ts +3 -0
- package/dist/providers/provider-session.d.ts.map +1 -0
- package/dist/providers/provider-session.js +10 -0
- package/dist/providers/provider-session.js.map +1 -0
- package/dist/providers/provider-transport.d.ts +11 -0
- package/dist/providers/provider-transport.d.ts.map +1 -0
- package/dist/providers/provider-transport.js +11 -0
- package/dist/providers/provider-transport.js.map +1 -0
- package/dist/providers/python-provider.d.ts +26 -13
- package/dist/providers/python-provider.d.ts.map +1 -1
- package/dist/providers/python-provider.js +204 -25
- package/dist/providers/python-provider.js.map +1 -1
- package/dist/providers/replicate-provider.d.ts +91 -8
- package/dist/providers/replicate-provider.d.ts.map +1 -1
- package/dist/providers/replicate-provider.js +823 -65
- package/dist/providers/replicate-provider.js.map +1 -1
- package/dist/providers/replicate-retry.d.ts +30 -0
- package/dist/providers/replicate-retry.d.ts.map +1 -0
- package/dist/providers/replicate-retry.js +97 -0
- package/dist/providers/replicate-retry.js.map +1 -0
- package/dist/providers/requesty-provider.d.ts +30 -0
- package/dist/providers/requesty-provider.d.ts.map +1 -0
- package/dist/providers/requesty-provider.js +87 -0
- package/dist/providers/requesty-provider.js.map +1 -0
- package/dist/providers/responses-api.d.ts +27 -0
- package/dist/providers/responses-api.d.ts.map +1 -0
- package/dist/providers/responses-api.js +297 -0
- package/dist/providers/responses-api.js.map +1 -0
- package/dist/providers/reve-provider.d.ts +46 -0
- package/dist/providers/reve-provider.d.ts.map +1 -0
- package/dist/providers/reve-provider.js +165 -0
- package/dist/providers/reve-provider.js.map +1 -0
- package/dist/providers/rodin-provider.d.ts +25 -2
- package/dist/providers/rodin-provider.d.ts.map +1 -1
- package/dist/providers/rodin-provider.js +95 -51
- package/dist/providers/rodin-provider.js.map +1 -1
- package/dist/providers/safe-url.d.ts +70 -0
- package/dist/providers/safe-url.d.ts.map +1 -0
- package/dist/providers/safe-url.js +277 -0
- package/dist/providers/safe-url.js.map +1 -0
- package/dist/providers/scripted-provider.d.ts +9 -0
- package/dist/providers/scripted-provider.d.ts.map +1 -1
- package/dist/providers/scripted-provider.js +86 -10
- package/dist/providers/scripted-provider.js.map +1 -1
- package/dist/providers/structured-output.d.ts +42 -0
- package/dist/providers/structured-output.d.ts.map +1 -0
- package/dist/providers/structured-output.js +83 -0
- package/dist/providers/structured-output.js.map +1 -0
- package/dist/providers/together-operations.d.ts +27 -0
- package/dist/providers/together-operations.d.ts.map +1 -0
- package/dist/providers/together-operations.js +95 -0
- package/dist/providers/together-operations.js.map +1 -0
- package/dist/providers/together-provider.d.ts +18 -18
- package/dist/providers/together-provider.d.ts.map +1 -1
- package/dist/providers/together-provider.js +140 -367
- package/dist/providers/together-provider.js.map +1 -1
- package/dist/providers/topaz-provider.d.ts +45 -0
- package/dist/providers/topaz-provider.d.ts.map +1 -0
- package/dist/providers/topaz-provider.js +244 -0
- package/dist/providers/topaz-provider.js.map +1 -0
- package/dist/providers/types.d.ts +641 -4
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +81 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/providers/useapi-provider.d.ts +28 -0
- package/dist/providers/useapi-provider.d.ts.map +1 -0
- package/dist/providers/useapi-provider.js +274 -0
- package/dist/providers/useapi-provider.js.map +1 -0
- package/dist/providers/video-duration.d.ts +6 -0
- package/dist/providers/video-duration.d.ts.map +1 -0
- package/dist/providers/video-duration.js +63 -0
- package/dist/providers/video-duration.js.map +1 -0
- package/dist/providers/video-frame-fallback.d.ts +39 -0
- package/dist/providers/video-frame-fallback.d.ts.map +1 -0
- package/dist/providers/video-frame-fallback.js +155 -0
- package/dist/providers/video-frame-fallback.js.map +1 -0
- package/dist/providers/video-frames.d.ts +61 -0
- package/dist/providers/video-frames.d.ts.map +1 -0
- package/dist/providers/video-frames.js +208 -0
- package/dist/providers/video-frames.js.map +1 -0
- package/dist/providers/video-mime.d.ts +14 -0
- package/dist/providers/video-mime.d.ts.map +1 -0
- package/dist/providers/video-mime.js +44 -0
- package/dist/providers/video-mime.js.map +1 -0
- package/dist/providers/video-to-audio.d.ts +34 -0
- package/dist/providers/video-to-audio.d.ts.map +1 -0
- package/dist/providers/video-to-audio.js +62 -0
- package/dist/providers/video-to-audio.js.map +1 -0
- package/dist/providers/vllm-provider.d.ts +20 -8
- package/dist/providers/vllm-provider.d.ts.map +1 -1
- package/dist/providers/vllm-provider.js +44 -23
- package/dist/providers/vllm-provider.js.map +1 -1
- package/dist/providers/voyage-provider.d.ts +12 -3
- package/dist/providers/voyage-provider.d.ts.map +1 -1
- package/dist/providers/voyage-provider.js +21 -7
- package/dist/providers/voyage-provider.js.map +1 -1
- package/dist/providers/xai-provider.d.ts +56 -13
- package/dist/providers/xai-provider.d.ts.map +1 -1
- package/dist/providers/xai-provider.js +307 -22
- package/dist/providers/xai-provider.js.map +1 -1
- package/dist/python-bridge-base.d.ts +358 -0
- package/dist/python-bridge-base.d.ts.map +1 -0
- package/dist/python-bridge-base.js +1557 -0
- package/dist/python-bridge-base.js.map +1 -0
- package/dist/python-bridge-codec.d.ts +28 -0
- package/dist/python-bridge-codec.d.ts.map +1 -0
- package/dist/python-bridge-codec.js +39 -0
- package/dist/python-bridge-codec.js.map +1 -0
- package/dist/python-bridge-factory.d.ts +52 -0
- package/dist/python-bridge-factory.d.ts.map +1 -0
- package/dist/python-bridge-factory.js +69 -0
- package/dist/python-bridge-factory.js.map +1 -0
- package/dist/python-bridge-framing.d.ts +68 -0
- package/dist/python-bridge-framing.d.ts.map +1 -0
- package/dist/python-bridge-framing.js +91 -0
- package/dist/python-bridge-framing.js.map +1 -0
- package/dist/python-bridge-types.d.ts +545 -2
- package/dist/python-bridge-types.d.ts.map +1 -1
- package/dist/python-bridge-types.js +49 -1
- package/dist/python-bridge-types.js.map +1 -1
- package/dist/python-graph-resolver.d.ts +57 -0
- package/dist/python-graph-resolver.d.ts.map +1 -0
- package/dist/python-graph-resolver.js +79 -0
- package/dist/python-graph-resolver.js.map +1 -0
- package/dist/python-node-executor.d.ts +36 -4
- package/dist/python-node-executor.d.ts.map +1 -1
- package/dist/python-node-executor.js +177 -86
- package/dist/python-node-executor.js.map +1 -1
- package/dist/python-stdio-bridge.d.ts +18 -37
- package/dist/python-stdio-bridge.d.ts.map +1 -1
- package/dist/python-stdio-bridge.js +148 -475
- package/dist/python-stdio-bridge.js.map +1 -1
- package/dist/python-websocket-bridge.d.ts +140 -0
- package/dist/python-websocket-bridge.d.ts.map +1 -0
- package/dist/python-websocket-bridge.js +561 -0
- package/dist/python-websocket-bridge.js.map +1 -0
- package/dist/python-worker-stderr.d.ts +4 -0
- package/dist/python-worker-stderr.d.ts.map +1 -0
- package/dist/python-worker-stderr.js +24 -0
- package/dist/python-worker-stderr.js.map +1 -0
- package/dist/recommended-models.d.ts +2 -2
- package/dist/recommended-models.d.ts.map +1 -1
- package/dist/recommended-models.js +44 -4
- package/dist/recommended-models.js.map +1 -1
- package/dist/recoverable-node-error.d.ts +31 -0
- package/dist/recoverable-node-error.d.ts.map +1 -0
- package/dist/recoverable-node-error.js +37 -0
- package/dist/recoverable-node-error.js.map +1 -0
- package/dist/redact-params.d.ts +13 -0
- package/dist/redact-params.d.ts.map +1 -0
- package/dist/redact-params.js +57 -0
- package/dist/redact-params.js.map +1 -0
- package/dist/run-context.d.ts +20 -0
- package/dist/run-context.d.ts.map +1 -0
- package/dist/run-context.js +18 -0
- package/dist/run-context.js.map +1 -0
- package/dist/run-trace-context.d.ts +30 -0
- package/dist/run-trace-context.d.ts.map +1 -0
- package/dist/run-trace-context.js +80 -0
- package/dist/run-trace-context.js.map +1 -0
- package/dist/run-trace-processor.d.ts +65 -0
- package/dist/run-trace-processor.d.ts.map +1 -0
- package/dist/run-trace-processor.js +417 -0
- package/dist/run-trace-processor.js.map +1 -0
- package/dist/run-trace-serialization.d.ts +5 -0
- package/dist/run-trace-serialization.d.ts.map +1 -0
- package/dist/run-trace-serialization.js +113 -0
- package/dist/run-trace-serialization.js.map +1 -0
- package/dist/sandbox-module-catalog.d.ts +43 -0
- package/dist/sandbox-module-catalog.d.ts.map +1 -0
- package/dist/sandbox-module-catalog.js +25 -0
- package/dist/sandbox-module-catalog.js.map +1 -0
- package/dist/storage-workspace.d.ts +62 -0
- package/dist/storage-workspace.d.ts.map +1 -0
- package/dist/storage-workspace.js +441 -0
- package/dist/storage-workspace.js.map +1 -0
- package/dist/swappable-python-bridge.d.ts +83 -0
- package/dist/swappable-python-bridge.d.ts.map +1 -0
- package/dist/swappable-python-bridge.js +246 -0
- package/dist/swappable-python-bridge.js.map +1 -0
- package/dist/telemetry.d.ts +16 -3
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +76 -20
- package/dist/telemetry.js.map +1 -1
- package/dist/testing.d.ts +81 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +130 -0
- package/dist/testing.js.map +1 -0
- package/dist/token-counter.d.ts +30 -0
- package/dist/token-counter.d.ts.map +1 -0
- package/dist/token-counter.js +156 -0
- package/dist/token-counter.js.map +1 -0
- package/dist/trace-exporters.d.ts +11 -28
- package/dist/trace-exporters.d.ts.map +1 -1
- package/dist/trace-exporters.js +69 -22
- package/dist/trace-exporters.js.map +1 -1
- package/dist/tracing-helpers.d.ts +60 -26
- package/dist/tracing-helpers.d.ts.map +1 -1
- package/dist/tracing-helpers.js +100 -25
- package/dist/tracing-helpers.js.map +1 -1
- package/dist/trim-video-window.d.ts +8 -0
- package/dist/trim-video-window.d.ts.map +1 -0
- package/dist/trim-video-window.js +50 -0
- package/dist/trim-video-window.js.map +1 -0
- package/dist/turn-budget.d.ts +278 -0
- package/dist/turn-budget.d.ts.map +1 -0
- package/dist/turn-budget.js +365 -0
- package/dist/turn-budget.js.map +1 -0
- package/dist/variable-channel.d.ts +48 -0
- package/dist/variable-channel.d.ts.map +1 -0
- package/dist/variable-channel.js +110 -0
- package/dist/variable-channel.js.map +1 -0
- package/dist/workspace.d.ts +119 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +112 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +121 -19
|
@@ -1,99 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
provider: "together",
|
|
10
|
-
supportedTasks: ["text_to_image"]
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
id: "black-forest-labs/FLUX.1.1-pro",
|
|
14
|
-
name: "FLUX.1.1 Pro",
|
|
15
|
-
provider: "together",
|
|
16
|
-
supportedTasks: ["text_to_image"]
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
id: "black-forest-labs/FLUX.2-pro",
|
|
20
|
-
name: "FLUX.2 Pro",
|
|
21
|
-
provider: "together",
|
|
22
|
-
supportedTasks: ["text_to_image", "image_to_image"]
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
id: "black-forest-labs/FLUX.2-dev",
|
|
26
|
-
name: "FLUX.2 Dev",
|
|
27
|
-
provider: "together",
|
|
28
|
-
supportedTasks: ["text_to_image", "image_to_image"]
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
id: "black-forest-labs/FLUX.2-flex",
|
|
32
|
-
name: "FLUX.2 Flex",
|
|
33
|
-
provider: "together",
|
|
34
|
-
supportedTasks: ["text_to_image", "image_to_image"]
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
id: "black-forest-labs/FLUX.1-kontext-pro",
|
|
38
|
-
name: "FLUX.1 Kontext Pro",
|
|
39
|
-
provider: "together",
|
|
40
|
-
supportedTasks: ["text_to_image", "image_to_image"]
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
id: "black-forest-labs/FLUX.1-kontext-max",
|
|
44
|
-
name: "FLUX.1 Kontext Max",
|
|
45
|
-
provider: "together",
|
|
46
|
-
supportedTasks: ["text_to_image", "image_to_image"]
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
id: "google/imagen-4.0-preview",
|
|
50
|
-
name: "Imagen 4.0 Preview",
|
|
51
|
-
provider: "together",
|
|
52
|
-
supportedTasks: ["text_to_image"]
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
id: "google/imagen-4.0-fast",
|
|
56
|
-
name: "Imagen 4.0 Fast",
|
|
57
|
-
provider: "together",
|
|
58
|
-
supportedTasks: ["text_to_image"]
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
id: "google/flash-image-2.5",
|
|
62
|
-
name: "Flash Image 2.5",
|
|
63
|
-
provider: "together",
|
|
64
|
-
supportedTasks: ["text_to_image"]
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
id: "google/gemini-3-pro-image",
|
|
68
|
-
name: "Gemini 3 Pro Image",
|
|
69
|
-
provider: "together",
|
|
70
|
-
supportedTasks: ["text_to_image", "image_to_image"]
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
id: "ideogram/ideogram-3.0",
|
|
74
|
-
name: "Ideogram 3.0",
|
|
75
|
-
provider: "together",
|
|
76
|
-
supportedTasks: ["text_to_image"]
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
id: "ByteDance-Seed/Seedream-4.0",
|
|
80
|
-
name: "Seedream 4.0",
|
|
81
|
-
provider: "together",
|
|
82
|
-
supportedTasks: ["text_to_image"]
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
id: "ByteDance-Seed/Seedream-3.0",
|
|
86
|
-
name: "Seedream 3.0",
|
|
87
|
-
provider: "together",
|
|
88
|
-
supportedTasks: ["text_to_image"]
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
id: "stabilityai/stable-diffusion-3-medium",
|
|
92
|
-
name: "Stable Diffusion 3 Medium",
|
|
93
|
-
provider: "together",
|
|
94
|
-
supportedTasks: ["text_to_image"]
|
|
95
|
-
}
|
|
96
|
-
];
|
|
1
|
+
import { safeFetch } from "./safe-url.js";
|
|
2
|
+
import { togetherImage, togetherSpeech } from "./together-operations.js";
|
|
3
|
+
import { OpenAICompatProvider } from "./openai-compat-provider.js";
|
|
4
|
+
import { loadImageModels, loadVideoModels } from "./manifest-models.js";
|
|
5
|
+
import { bytesToImageDataUri } from "./image-mime.js";
|
|
6
|
+
// ─── Model catalogs ───────────────────────────────────────────────────────────
|
|
7
|
+
const TOGETHER_MANIFEST_PKG = "@nodetool-ai/together-nodes";
|
|
8
|
+
const TOGETHER_MANIFEST_PATH = "together-manifest.json";
|
|
97
9
|
const TOGETHER_TTS_MODELS = [
|
|
98
10
|
{
|
|
99
11
|
id: "canopylabs/orpheus-3b-0.1-ft",
|
|
@@ -177,98 +89,6 @@ const TOGETHER_EMBEDDING_MODELS = [
|
|
|
177
89
|
dimensions: 1024
|
|
178
90
|
}
|
|
179
91
|
];
|
|
180
|
-
const TOGETHER_VIDEO_MODELS = [
|
|
181
|
-
{
|
|
182
|
-
id: "minimax/hailuo-02",
|
|
183
|
-
name: "MiniMax Hailuo 02",
|
|
184
|
-
provider: "together",
|
|
185
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
id: "minimax/video-01-director",
|
|
189
|
-
name: "MiniMax Video 01 Director",
|
|
190
|
-
provider: "together",
|
|
191
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
id: "google/veo-3.0",
|
|
195
|
-
name: "Veo 3.0",
|
|
196
|
-
provider: "together",
|
|
197
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
id: "google/veo-3.0-audio",
|
|
201
|
-
name: "Veo 3.0 + Audio",
|
|
202
|
-
provider: "together",
|
|
203
|
-
supportedTasks: ["text_to_video"]
|
|
204
|
-
},
|
|
205
|
-
{
|
|
206
|
-
id: "google/veo-2.0",
|
|
207
|
-
name: "Veo 2.0",
|
|
208
|
-
provider: "together",
|
|
209
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
id: "openai/sora-2",
|
|
213
|
-
name: "Sora 2",
|
|
214
|
-
provider: "together",
|
|
215
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
id: "openai/sora-2-pro",
|
|
219
|
-
name: "Sora 2 Pro",
|
|
220
|
-
provider: "together",
|
|
221
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
id: "kwaivgI/kling-2.1-master",
|
|
225
|
-
name: "Kling 2.1 Master",
|
|
226
|
-
provider: "together",
|
|
227
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
228
|
-
},
|
|
229
|
-
{
|
|
230
|
-
id: "kwaivgI/kling-2.1-standard",
|
|
231
|
-
name: "Kling 2.1 Standard",
|
|
232
|
-
provider: "together",
|
|
233
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
id: "kwaivgI/kling-2.1-pro",
|
|
237
|
-
name: "Kling 2.1 Pro",
|
|
238
|
-
provider: "together",
|
|
239
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
id: "ByteDance/Seedance-1.0-pro",
|
|
243
|
-
name: "Seedance 1.0 Pro",
|
|
244
|
-
provider: "together",
|
|
245
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
id: "ByteDance/Seedance-1.0-lite",
|
|
249
|
-
name: "Seedance 1.0 Lite",
|
|
250
|
-
provider: "together",
|
|
251
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
252
|
-
},
|
|
253
|
-
{
|
|
254
|
-
id: "pixverse/pixverse-v5",
|
|
255
|
-
name: "PixVerse v5",
|
|
256
|
-
provider: "together",
|
|
257
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
258
|
-
},
|
|
259
|
-
{
|
|
260
|
-
id: "vidu/vidu-2.0",
|
|
261
|
-
name: "Vidu 2.0",
|
|
262
|
-
provider: "together",
|
|
263
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
id: "vidu/vidu-q1",
|
|
267
|
-
name: "Vidu Q1",
|
|
268
|
-
provider: "together",
|
|
269
|
-
supportedTasks: ["text_to_video", "image_to_video"]
|
|
270
|
-
}
|
|
271
|
-
];
|
|
272
92
|
// ─── WAV header parser ────────────────────────────────────────────────────────
|
|
273
93
|
/**
|
|
274
94
|
* Extract raw PCM Int16 samples and the sample rate from a WAV buffer.
|
|
@@ -283,7 +103,11 @@ function parseWavPCM(bytes) {
|
|
|
283
103
|
// Chunk IDs are ASCII — read as big-endian uint32 to compare with literals
|
|
284
104
|
const chunkId = view.getUint32(offset, false);
|
|
285
105
|
const chunkSize = view.getUint32(offset + 4, true);
|
|
286
|
-
if (chunkId === 0x666d7420 /* "fmt " */ &&
|
|
106
|
+
if (chunkId === 0x666d7420 /* "fmt " */ &&
|
|
107
|
+
offset + 16 <= bytes.byteLength) {
|
|
108
|
+
// The sampleRate read is a 4-byte uint32 at offset+12, so it needs
|
|
109
|
+
// offset+16 in bounds — the previous offset+12 guard let getUint32 throw
|
|
110
|
+
// RangeError on a WAV truncated between offset+12 and offset+15.
|
|
287
111
|
sampleRate = view.getUint32(offset + 12, true);
|
|
288
112
|
}
|
|
289
113
|
else if (chunkId === 0x64617461 /* "data" */) {
|
|
@@ -308,8 +132,42 @@ function parseWavPCM(bytes) {
|
|
|
308
132
|
sampleRate
|
|
309
133
|
};
|
|
310
134
|
}
|
|
135
|
+
// ─── Abortable sleep ──────────────────────────────────────────────────────────
|
|
136
|
+
/** Resolve the abort reason as an Error (mirrors the gemini provider). */
|
|
137
|
+
function abortError(signal) {
|
|
138
|
+
return signal?.reason instanceof Error ? signal.reason : new Error("Aborted");
|
|
139
|
+
}
|
|
140
|
+
/** Sleep that rejects promptly when `signal` aborts instead of running full. */
|
|
141
|
+
function abortableSleep(ms, signal) {
|
|
142
|
+
return new Promise((resolve, reject) => {
|
|
143
|
+
if (signal?.aborted) {
|
|
144
|
+
reject(abortError(signal));
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const onAbort = () => {
|
|
148
|
+
clearTimeout(timer);
|
|
149
|
+
reject(abortError(signal));
|
|
150
|
+
};
|
|
151
|
+
const timer = setTimeout(() => {
|
|
152
|
+
signal?.removeEventListener("abort", onAbort);
|
|
153
|
+
resolve();
|
|
154
|
+
}, ms);
|
|
155
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
156
|
+
});
|
|
157
|
+
}
|
|
311
158
|
// ─── Provider ─────────────────────────────────────────────────────────────────
|
|
312
|
-
export class TogetherProvider extends
|
|
159
|
+
export class TogetherProvider extends OpenAICompatProvider {
|
|
160
|
+
declaredCapabilities() {
|
|
161
|
+
return [
|
|
162
|
+
"text_to_image",
|
|
163
|
+
"image_to_image",
|
|
164
|
+
"text_to_video",
|
|
165
|
+
"image_to_video",
|
|
166
|
+
"text_to_speech",
|
|
167
|
+
"automatic_speech_recognition",
|
|
168
|
+
"generate_embedding"
|
|
169
|
+
];
|
|
170
|
+
}
|
|
313
171
|
static requiredSecrets() {
|
|
314
172
|
return ["TOGETHER_API_KEY"];
|
|
315
173
|
}
|
|
@@ -320,16 +178,11 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
320
178
|
throw new Error("TOGETHER_API_KEY is required");
|
|
321
179
|
}
|
|
322
180
|
const fetchFn = options.fetchFn ?? globalThis.fetch.bind(globalThis);
|
|
323
|
-
super({
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
baseURL: "https://api.together.xyz/v1"
|
|
329
|
-
})),
|
|
330
|
-
fetchFn
|
|
331
|
-
});
|
|
332
|
-
this.provider = "together";
|
|
181
|
+
super({
|
|
182
|
+
providerId: "together",
|
|
183
|
+
apiKey,
|
|
184
|
+
baseURL: "https://api.together.xyz/v1"
|
|
185
|
+
}, { ...options, fetchFn });
|
|
333
186
|
this._togetherFetch = fetchFn;
|
|
334
187
|
}
|
|
335
188
|
getContainerEnv() {
|
|
@@ -349,7 +202,7 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
349
202
|
return [];
|
|
350
203
|
}
|
|
351
204
|
const payload = (await response.json());
|
|
352
|
-
const rows = Array.isArray(payload) ? payload : payload.data ?? [];
|
|
205
|
+
const rows = Array.isArray(payload) ? payload : (payload.data ?? []);
|
|
353
206
|
return rows
|
|
354
207
|
.filter((row) => typeof row.id === "string" && row.id.length > 0)
|
|
355
208
|
.filter((row) => {
|
|
@@ -364,7 +217,7 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
364
217
|
}
|
|
365
218
|
// ─── Image models ───────────────────────────────────────────────────────────
|
|
366
219
|
async getAvailableImageModels() {
|
|
367
|
-
return
|
|
220
|
+
return loadImageModels(TOGETHER_MANIFEST_PKG, TOGETHER_MANIFEST_PATH, "together");
|
|
368
221
|
}
|
|
369
222
|
/**
|
|
370
223
|
* Text-to-image generation via Together's `/v1/images/generations` endpoint.
|
|
@@ -372,117 +225,46 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
372
225
|
* combined `size` string so we can pass the full resolution range.
|
|
373
226
|
*/
|
|
374
227
|
async textToImage(params) {
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
};
|
|
384
|
-
if (params.width != null)
|
|
385
|
-
body.width = params.width;
|
|
386
|
-
if (params.height != null)
|
|
387
|
-
body.height = params.height;
|
|
388
|
-
if (params.numInferenceSteps != null)
|
|
389
|
-
body.steps = params.numInferenceSteps;
|
|
390
|
-
if (params.guidanceScale != null)
|
|
391
|
-
body.guidance_scale = params.guidanceScale;
|
|
392
|
-
if (params.seed != null)
|
|
393
|
-
body.seed = params.seed;
|
|
394
|
-
if (params.negativePrompt)
|
|
395
|
-
body.negative_prompt = params.negativePrompt;
|
|
396
|
-
const response = await this._togetherFetch("https://api.together.xyz/v1/images/generations", {
|
|
397
|
-
method: "POST",
|
|
398
|
-
headers: {
|
|
399
|
-
Authorization: `Bearer ${this.apiKey}`,
|
|
400
|
-
"Content-Type": "application/json"
|
|
401
|
-
},
|
|
402
|
-
body: JSON.stringify(body)
|
|
228
|
+
return togetherImage(this.apiKey, params.model.id, {
|
|
229
|
+
...params,
|
|
230
|
+
steps: params.numInferenceSteps
|
|
231
|
+
}, {
|
|
232
|
+
fetchFn: this._togetherFetch,
|
|
233
|
+
label: "generation",
|
|
234
|
+
signal: params.signal,
|
|
235
|
+
download: this.downloadImage
|
|
403
236
|
});
|
|
404
|
-
if (!response.ok) {
|
|
405
|
-
const errorText = await response.text();
|
|
406
|
-
throw new Error(`Together image generation failed: ${errorText}`);
|
|
407
|
-
}
|
|
408
|
-
const payload = (await response.json());
|
|
409
|
-
const item = payload.data?.[0];
|
|
410
|
-
if (!item) {
|
|
411
|
-
throw new Error("Together image generation returned no data.");
|
|
412
|
-
}
|
|
413
|
-
if (item.b64_json) {
|
|
414
|
-
return Uint8Array.from(Buffer.from(item.b64_json, "base64"));
|
|
415
|
-
}
|
|
416
|
-
if (item.url) {
|
|
417
|
-
const fetchResponse = await this._togetherFetch(item.url);
|
|
418
|
-
if (!fetchResponse.ok) {
|
|
419
|
-
throw new Error(`Image fetch failed: ${fetchResponse.status}`);
|
|
420
|
-
}
|
|
421
|
-
return new Uint8Array(await fetchResponse.arrayBuffer());
|
|
422
|
-
}
|
|
423
|
-
throw new Error("Together image generation returned no image data.");
|
|
424
237
|
}
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
* This requires a model that supports the `image_url` parameter
|
|
429
|
-
* (e.g. FLUX.1-kontext-pro, FLUX.1-kontext-max, FLUX.2-pro/dev/flex).
|
|
430
|
-
*/
|
|
431
|
-
async imageToImage(image, params) {
|
|
432
|
-
if (!image || image.length === 0) {
|
|
238
|
+
async imageToImage(images, params) {
|
|
239
|
+
const sources = images.filter((bytes) => bytes && bytes.length > 0);
|
|
240
|
+
if (sources.length === 0) {
|
|
433
241
|
throw new Error("image must not be empty.");
|
|
434
242
|
}
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
}
|
|
438
|
-
const base64 = Buffer.from(image).toString("base64");
|
|
439
|
-
const imageUrl = `data:image/jpeg;base64,${base64}`;
|
|
440
|
-
const body = {
|
|
441
|
-
model: params.model.id,
|
|
243
|
+
const urls = sources.map(bytesToImageDataUri);
|
|
244
|
+
return togetherImage(this.apiKey, params.model.id, {
|
|
442
245
|
prompt: params.prompt,
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
body.seed = params.seed;
|
|
457
|
-
const response = await this._togetherFetch("https://api.together.xyz/v1/images/generations", {
|
|
458
|
-
method: "POST",
|
|
459
|
-
headers: {
|
|
460
|
-
Authorization: `Bearer ${this.apiKey}`,
|
|
461
|
-
"Content-Type": "application/json"
|
|
462
|
-
},
|
|
463
|
-
body: JSON.stringify(body)
|
|
246
|
+
...(urls.length === 1
|
|
247
|
+
? { imageUrl: urls[0] }
|
|
248
|
+
: { referenceImages: urls }),
|
|
249
|
+
width: params.targetWidth,
|
|
250
|
+
height: params.targetHeight,
|
|
251
|
+
steps: params.numInferenceSteps,
|
|
252
|
+
guidanceScale: params.guidanceScale,
|
|
253
|
+
seed: params.seed
|
|
254
|
+
}, {
|
|
255
|
+
fetchFn: this._togetherFetch,
|
|
256
|
+
label: "editing",
|
|
257
|
+
signal: params.signal,
|
|
258
|
+
download: this.downloadImage
|
|
464
259
|
});
|
|
260
|
+
}
|
|
261
|
+
downloadImage = async (url, signal) => {
|
|
262
|
+
const response = await safeFetch(url, { signal }, 5, this._togetherFetch);
|
|
465
263
|
if (!response.ok) {
|
|
466
|
-
|
|
467
|
-
throw new Error(`Together image editing failed: ${errorText}`);
|
|
468
|
-
}
|
|
469
|
-
const payload = (await response.json());
|
|
470
|
-
const item = payload.data?.[0];
|
|
471
|
-
if (!item) {
|
|
472
|
-
throw new Error("Together image editing returned no data.");
|
|
264
|
+
throw new Error(`Image fetch failed: ${response.status}`);
|
|
473
265
|
}
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
}
|
|
477
|
-
if (item.url) {
|
|
478
|
-
const fetchResponse = await this._togetherFetch(item.url);
|
|
479
|
-
if (!fetchResponse.ok) {
|
|
480
|
-
throw new Error(`Image fetch failed: ${fetchResponse.status}`);
|
|
481
|
-
}
|
|
482
|
-
return new Uint8Array(await fetchResponse.arrayBuffer());
|
|
483
|
-
}
|
|
484
|
-
throw new Error("Together image editing returned no image data.");
|
|
485
|
-
}
|
|
266
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
267
|
+
};
|
|
486
268
|
// ─── TTS ────────────────────────────────────────────────────────────────────
|
|
487
269
|
async getAvailableTTSModels() {
|
|
488
270
|
return TOGETHER_TTS_MODELS;
|
|
@@ -493,31 +275,10 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
493
275
|
* than OpenAI's "pcm" label, so we request "wav" and strip the header.
|
|
494
276
|
*/
|
|
495
277
|
async *textToSpeech(args) {
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
const body = {
|
|
501
|
-
model: args.model,
|
|
502
|
-
input: args.text,
|
|
503
|
-
voice,
|
|
504
|
-
response_format: "wav"
|
|
505
|
-
};
|
|
506
|
-
if (args.speed != null)
|
|
507
|
-
body.speed = args.speed;
|
|
508
|
-
const response = await this._togetherFetch("https://api.together.xyz/v1/audio/speech", {
|
|
509
|
-
method: "POST",
|
|
510
|
-
headers: {
|
|
511
|
-
Authorization: `Bearer ${this.apiKey}`,
|
|
512
|
-
"Content-Type": "application/json"
|
|
513
|
-
},
|
|
514
|
-
body: JSON.stringify(body)
|
|
515
|
-
});
|
|
516
|
-
if (!response.ok) {
|
|
517
|
-
const errorText = await response.text();
|
|
518
|
-
throw new Error(`Together TTS failed: ${errorText}`);
|
|
519
|
-
}
|
|
520
|
-
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
278
|
+
const bytes = await togetherSpeech(this.apiKey, args.model, {
|
|
279
|
+
...args,
|
|
280
|
+
format: "wav"
|
|
281
|
+
}, { fetchFn: this._togetherFetch, signal: args.signal });
|
|
521
282
|
const { samples, sampleRate } = parseWavPCM(bytes);
|
|
522
283
|
yield { samples, sampleRate };
|
|
523
284
|
}
|
|
@@ -539,28 +300,10 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
539
300
|
if (!(fmt in formatToMime)) {
|
|
540
301
|
return null;
|
|
541
302
|
}
|
|
542
|
-
const
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
voice,
|
|
547
|
-
response_format: fmt
|
|
548
|
-
};
|
|
549
|
-
if (args.speed != null)
|
|
550
|
-
body.speed = args.speed;
|
|
551
|
-
const response = await this._togetherFetch("https://api.together.xyz/v1/audio/speech", {
|
|
552
|
-
method: "POST",
|
|
553
|
-
headers: {
|
|
554
|
-
Authorization: `Bearer ${this.apiKey}`,
|
|
555
|
-
"Content-Type": "application/json"
|
|
556
|
-
},
|
|
557
|
-
body: JSON.stringify(body)
|
|
558
|
-
});
|
|
559
|
-
if (!response.ok) {
|
|
560
|
-
const errorText = await response.text();
|
|
561
|
-
throw new Error(`Together TTS failed: ${errorText}`);
|
|
562
|
-
}
|
|
563
|
-
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
303
|
+
const bytes = await togetherSpeech(this.apiKey, args.model, {
|
|
304
|
+
...args,
|
|
305
|
+
format: fmt
|
|
306
|
+
}, { fetchFn: this._togetherFetch, signal: args.signal });
|
|
564
307
|
return { data: bytes, mimeType: formatToMime[fmt] };
|
|
565
308
|
}
|
|
566
309
|
// ─── ASR ────────────────────────────────────────────────────────────────────
|
|
@@ -578,7 +321,7 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
578
321
|
// because Together's /v1/embeddings endpoint is OpenAI-compatible.
|
|
579
322
|
// ─── Video models ───────────────────────────────────────────────────────────
|
|
580
323
|
async getAvailableVideoModels() {
|
|
581
|
-
return
|
|
324
|
+
return loadVideoModels(TOGETHER_MANIFEST_PKG, TOGETHER_MANIFEST_PATH, "together");
|
|
582
325
|
}
|
|
583
326
|
/**
|
|
584
327
|
* Map generic resolution / aspect-ratio hints to concrete pixel dimensions
|
|
@@ -613,14 +356,41 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
613
356
|
if (dims) {
|
|
614
357
|
return { width: dims[0], height: dims[1] };
|
|
615
358
|
}
|
|
616
|
-
//
|
|
359
|
+
// Fallback for aspect ratios / resolutions outside the preset table: derive
|
|
360
|
+
// the pixel size from the requested ratio so orientation is preserved (a
|
|
361
|
+
// portrait `2:3` request must not silently become a landscape video). Scale
|
|
362
|
+
// to a ~720p long edge, snapped to an even number as video encoders expect.
|
|
363
|
+
const ratio = ar.match(/^(\d+):(\d+)$/);
|
|
364
|
+
if (ratio) {
|
|
365
|
+
const rw = parseInt(ratio[1], 10);
|
|
366
|
+
const rh = parseInt(ratio[2], 10);
|
|
367
|
+
if (rw > 0 && rh > 0) {
|
|
368
|
+
const longEdge = res === "480p" ? 854 : res === "1080p" ? 1920 : 1280;
|
|
369
|
+
const even = (n) => Math.max(2, Math.round(n / 2) * 2);
|
|
370
|
+
if (rw >= rh) {
|
|
371
|
+
return { width: even(longEdge), height: even((longEdge * rh) / rw) };
|
|
372
|
+
}
|
|
373
|
+
return { width: even((longEdge * rw) / rh), height: even(longEdge) };
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
// Together's MiniMax default (landscape) when the ratio can't be parsed.
|
|
617
377
|
return { width: 1366, height: 768 };
|
|
618
378
|
}
|
|
619
379
|
/**
|
|
620
380
|
* Poll Together's video job endpoint until it reaches a terminal state.
|
|
621
381
|
* Returns the final response payload.
|
|
622
382
|
*/
|
|
623
|
-
|
|
383
|
+
/**
|
|
384
|
+
* Per-call timeout signal (mirrors the gemini provider): threaded into the
|
|
385
|
+
* poll-loop fetch and sleep so an expired budget aborts the in-flight request
|
|
386
|
+
* promptly instead of leaking it until the internal poll cap.
|
|
387
|
+
*/
|
|
388
|
+
timeoutSignal(timeoutSeconds) {
|
|
389
|
+
return timeoutSeconds && timeoutSeconds > 0
|
|
390
|
+
? AbortSignal.timeout(timeoutSeconds * 1000)
|
|
391
|
+
: undefined;
|
|
392
|
+
}
|
|
393
|
+
async pollVideoJob(jobId, signal) {
|
|
624
394
|
const timeoutMs = 10 * 60 * 1000; // 10 minutes
|
|
625
395
|
const intervalMs = 5_000; // 5 seconds
|
|
626
396
|
const start = Date.now();
|
|
@@ -628,8 +398,8 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
628
398
|
if (Date.now() - start > timeoutMs) {
|
|
629
399
|
throw new Error(`Together video generation timed out after ${timeoutMs / 1000}s for job ${jobId}`);
|
|
630
400
|
}
|
|
631
|
-
await
|
|
632
|
-
const statusResponse = await this._togetherFetch(`https://api.together.xyz/v2/videos/${jobId}`, { headers: { Authorization: `Bearer ${this.apiKey}` } });
|
|
401
|
+
await abortableSleep(intervalMs, signal);
|
|
402
|
+
const statusResponse = await this._togetherFetch(`https://api.together.xyz/v2/videos/${jobId}`, { headers: { Authorization: `Bearer ${this.apiKey}` }, signal });
|
|
633
403
|
if (!statusResponse.ok) {
|
|
634
404
|
const errorText = await statusResponse.text();
|
|
635
405
|
throw new Error(`Together video status check failed: ${errorText}`);
|
|
@@ -645,13 +415,13 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
645
415
|
/**
|
|
646
416
|
* Download a completed video from its signed URL and return the raw bytes.
|
|
647
417
|
*/
|
|
648
|
-
async downloadVideo(status, label) {
|
|
418
|
+
async downloadVideo(status, label, signal) {
|
|
649
419
|
const videoUrl = status.outputs?.video_url;
|
|
650
420
|
if (!videoUrl) {
|
|
651
421
|
const reason = status.error?.message ?? "unknown error";
|
|
652
422
|
throw new Error(`Together ${label} failed: ${reason}`);
|
|
653
423
|
}
|
|
654
|
-
const videoResponse = await this._togetherFetch(videoUrl);
|
|
424
|
+
const videoResponse = await this._togetherFetch(videoUrl, { signal });
|
|
655
425
|
if (!videoResponse.ok) {
|
|
656
426
|
throw new Error(`Failed to download Together video: ${videoResponse.status}`);
|
|
657
427
|
}
|
|
@@ -683,26 +453,28 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
683
453
|
body.seed = params.seed;
|
|
684
454
|
if (params.negativePrompt)
|
|
685
455
|
body.negative_prompt = params.negativePrompt;
|
|
456
|
+
const signal = this.timeoutSignal(params.timeoutSeconds);
|
|
686
457
|
const createResponse = await this._togetherFetch("https://api.together.xyz/v2/videos", {
|
|
687
458
|
method: "POST",
|
|
688
459
|
headers: {
|
|
689
460
|
Authorization: `Bearer ${this.apiKey}`,
|
|
690
461
|
"Content-Type": "application/json"
|
|
691
462
|
},
|
|
692
|
-
body: JSON.stringify(body)
|
|
463
|
+
body: JSON.stringify(body),
|
|
464
|
+
signal
|
|
693
465
|
});
|
|
694
466
|
if (!createResponse.ok) {
|
|
695
467
|
const errorText = await createResponse.text();
|
|
696
468
|
throw new Error(`Together video creation failed: ${errorText}`);
|
|
697
469
|
}
|
|
698
470
|
const job = (await createResponse.json());
|
|
699
|
-
const finalStatus = await this.pollVideoJob(job.id);
|
|
471
|
+
const finalStatus = await this.pollVideoJob(job.id, signal);
|
|
700
472
|
if (finalStatus.status !== "completed") {
|
|
701
473
|
const reason = finalStatus.error?.message ??
|
|
702
474
|
`job ended with status '${finalStatus.status}'`;
|
|
703
475
|
throw new Error(`Together text-to-video failed: ${reason}`);
|
|
704
476
|
}
|
|
705
|
-
return this.downloadVideo(finalStatus, "text-to-video");
|
|
477
|
+
return this.downloadVideo(finalStatus, "text-to-video", signal);
|
|
706
478
|
}
|
|
707
479
|
/**
|
|
708
480
|
* Image-to-video generation via Together's asynchronous `/v2/videos` API.
|
|
@@ -713,8 +485,7 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
713
485
|
throw new Error("The input image cannot be empty.");
|
|
714
486
|
}
|
|
715
487
|
const { width, height } = this.resolveVideoDimensions(params.aspectRatio, params.resolution);
|
|
716
|
-
const
|
|
717
|
-
const inputImage = `data:image/jpeg;base64,${base64}`;
|
|
488
|
+
const inputImage = bytesToImageDataUri(image);
|
|
718
489
|
const body = {
|
|
719
490
|
model: params.model.id,
|
|
720
491
|
prompt: params.prompt ?? "",
|
|
@@ -733,26 +504,28 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
733
504
|
body.seed = params.seed;
|
|
734
505
|
if (params.negativePrompt)
|
|
735
506
|
body.negative_prompt = params.negativePrompt;
|
|
507
|
+
const signal = this.timeoutSignal(params.timeoutSeconds);
|
|
736
508
|
const createResponse = await this._togetherFetch("https://api.together.xyz/v2/videos", {
|
|
737
509
|
method: "POST",
|
|
738
510
|
headers: {
|
|
739
511
|
Authorization: `Bearer ${this.apiKey}`,
|
|
740
512
|
"Content-Type": "application/json"
|
|
741
513
|
},
|
|
742
|
-
body: JSON.stringify(body)
|
|
514
|
+
body: JSON.stringify(body),
|
|
515
|
+
signal
|
|
743
516
|
});
|
|
744
517
|
if (!createResponse.ok) {
|
|
745
518
|
const errorText = await createResponse.text();
|
|
746
519
|
throw new Error(`Together image-to-video creation failed: ${errorText}`);
|
|
747
520
|
}
|
|
748
521
|
const job = (await createResponse.json());
|
|
749
|
-
const finalStatus = await this.pollVideoJob(job.id);
|
|
522
|
+
const finalStatus = await this.pollVideoJob(job.id, signal);
|
|
750
523
|
if (finalStatus.status !== "completed") {
|
|
751
524
|
const reason = finalStatus.error?.message ??
|
|
752
525
|
`job ended with status '${finalStatus.status}'`;
|
|
753
526
|
throw new Error(`Together image-to-video failed: ${reason}`);
|
|
754
527
|
}
|
|
755
|
-
return this.downloadVideo(finalStatus, "image-to-video");
|
|
528
|
+
return this.downloadVideo(finalStatus, "image-to-video", signal);
|
|
756
529
|
}
|
|
757
530
|
}
|
|
758
531
|
//# sourceMappingURL=together-provider.js.map
|