@nodetool-ai/runtime 0.7.0-rc.23 → 0.8.1
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 +954 -127
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +2424 -513
- 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 +67 -0
- package/dist/generation-registry.d.ts.map +1 -0
- package/dist/generation-registry.js +126 -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 +344 -0
- package/dist/host-binaries.js.map +1 -0
- package/dist/image-codec.d.ts +74 -0
- package/dist/image-codec.d.ts.map +1 -0
- package/dist/image-codec.js +273 -0
- package/dist/image-codec.js.map +1 -0
- package/dist/index.d.ts +56 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -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 +19 -0
- package/dist/media-ref-bytes.d.ts.map +1 -0
- package/dist/media-ref-bytes.js +181 -0
- package/dist/media-ref-bytes.js.map +1 -0
- package/dist/node-executor.d.ts +113 -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 +33 -10
- package/dist/providers/aki-provider.d.ts.map +1 -1
- package/dist/providers/aki-provider.js +84 -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 +101 -0
- package/dist/providers/atlascloud-provider.d.ts.map +1 -0
- package/dist/providers/atlascloud-provider.js +1009 -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 +481 -24
- package/dist/providers/base-provider.d.ts.map +1 -1
- package/dist/providers/base-provider.js +1259 -42
- 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 +131 -68
- package/dist/providers/claude-agent-provider.d.ts.map +1 -1
- package/dist/providers/claude-agent-provider.js +1095 -515
- package/dist/providers/claude-agent-provider.js.map +1 -1
- package/dist/providers/codex-provider.d.ts +82 -0
- package/dist/providers/codex-provider.d.ts.map +1 -0
- package/dist/providers/codex-provider.js +492 -0
- package/dist/providers/codex-provider.js.map +1 -0
- package/dist/providers/cohere-provider.d.ts +5 -2
- package/dist/providers/cohere-provider.d.ts.map +1 -1
- package/dist/providers/cohere-provider.js +9 -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 +74 -0
- package/dist/providers/core-tools.d.ts.map +1 -0
- package/dist/providers/core-tools.js +127 -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 +159 -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 +81 -0
- package/dist/providers/custom-openai-provider.d.ts.map +1 -0
- package/dist/providers/custom-openai-provider.js +182 -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/elevenlabs-provider.d.ts +49 -0
- package/dist/providers/elevenlabs-provider.d.ts.map +1 -0
- package/dist/providers/elevenlabs-provider.js +142 -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 +38 -0
- package/dist/providers/evolink-provider.d.ts.map +1 -0
- package/dist/providers/evolink-provider.js +304 -0
- package/dist/providers/evolink-provider.js.map +1 -0
- package/dist/providers/fake-provider.d.ts +72 -1
- package/dist/providers/fake-provider.d.ts.map +1 -1
- package/dist/providers/fake-provider.js +203 -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 +171 -7
- package/dist/providers/fal-provider.d.ts.map +1 -1
- package/dist/providers/fal-provider.js +1369 -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 +148 -8
- package/dist/providers/gemini-provider.d.ts.map +1 -1
- package/dist/providers/gemini-provider.js +1500 -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 +30 -0
- package/dist/providers/higgsfield-provider.d.ts.map +1 -0
- package/dist/providers/higgsfield-provider.js +131 -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 +71 -3
- package/dist/providers/huggingface-provider.d.ts.map +1 -1
- package/dist/providers/huggingface-provider.js +230 -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 +84 -8
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +239 -56
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/jina-provider.d.ts +10 -2
- package/dist/providers/jina-provider.d.ts.map +1 -1
- package/dist/providers/jina-provider.js +16 -7
- package/dist/providers/jina-provider.js.map +1 -1
- package/dist/providers/kie-provider.d.ts +170 -9
- package/dist/providers/kie-provider.d.ts.map +1 -1
- package/dist/providers/kie-provider.js +1176 -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 +21 -37
- package/dist/providers/llama-provider.d.ts.map +1 -1
- package/dist/providers/llama-provider.js +43 -354
- 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/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 +14 -1
- package/dist/providers/meshy-provider.d.ts.map +1 -1
- package/dist/providers/meshy-provider.js +76 -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 +25 -18
- package/dist/providers/minimax-provider.d.ts.map +1 -1
- package/dist/providers/minimax-provider.js +211 -72
- package/dist/providers/minimax-provider.js.map +1 -1
- package/dist/providers/mistral-provider.d.ts +6 -12
- package/dist/providers/mistral-provider.d.ts.map +1 -1
- package/dist/providers/mistral-provider.js +10 -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 +98 -0
- package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -0
- package/dist/providers/node-llama-cpp-provider.js +479 -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 +224 -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 +28 -1
- package/dist/providers/ollama-provider.d.ts.map +1 -1
- package/dist/providers/ollama-provider.js +193 -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 +89 -26
- package/dist/providers/openai-provider.d.ts.map +1 -1
- package/dist/providers/openai-provider.js +990 -105
- package/dist/providers/openai-provider.js.map +1 -1
- package/dist/providers/openrouter-provider.d.ts +6 -12
- package/dist/providers/openrouter-provider.d.ts.map +1 -1
- package/dist/providers/openrouter-provider.js +24 -53
- 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 +165 -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 +157 -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 +20 -12
- package/dist/providers/python-provider.d.ts.map +1 -1
- package/dist/providers/python-provider.js +185 -25
- package/dist/providers/python-provider.js.map +1 -1
- package/dist/providers/replicate-provider.d.ts +89 -7
- package/dist/providers/replicate-provider.d.ts.map +1 -1
- package/dist/providers/replicate-provider.js +801 -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/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 +45 -0
- package/dist/providers/reve-provider.d.ts.map +1 -0
- package/dist/providers/reve-provider.js +159 -0
- package/dist/providers/reve-provider.js.map +1 -0
- package/dist/providers/rodin-provider.d.ts +23 -1
- package/dist/providers/rodin-provider.d.ts.map +1 -1
- package/dist/providers/rodin-provider.js +89 -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-provider.d.ts +19 -16
- package/dist/providers/together-provider.d.ts.map +1 -1
- package/dist/providers/together-provider.js +103 -225
- package/dist/providers/together-provider.js.map +1 -1
- package/dist/providers/topaz-provider.d.ts +44 -0
- package/dist/providers/topaz-provider.d.ts.map +1 -0
- package/dist/providers/topaz-provider.js +239 -0
- package/dist/providers/topaz-provider.js.map +1 -0
- package/dist/providers/types.d.ts +603 -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 +27 -0
- package/dist/providers/useapi-provider.d.ts.map +1 -0
- package/dist/providers/useapi-provider.js +266 -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 +22 -8
- package/dist/providers/vllm-provider.d.ts.map +1 -1
- package/dist/providers/vllm-provider.js +48 -23
- package/dist/providers/vllm-provider.js.map +1 -1
- package/dist/providers/voyage-provider.d.ts +10 -2
- package/dist/providers/voyage-provider.d.ts.map +1 -1
- package/dist/providers/voyage-provider.js +16 -7
- package/dist/providers/voyage-provider.js.map +1 -1
- package/dist/providers/xai-provider.d.ts +54 -13
- package/dist/providers/xai-provider.d.ts.map +1 -1
- package/dist/providers/xai-provider.js +299 -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 +24 -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/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 +59 -0
- package/dist/storage-workspace.d.ts.map +1 -0
- package/dist/storage-workspace.js +426 -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 +7 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +23 -0
- 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 +10 -0
- package/dist/trace-exporters.d.ts.map +1 -1
- package/dist/trace-exporters.js +59 -20
- package/dist/trace-exporters.js.map +1 -1
- package/dist/tracing-helpers.d.ts +45 -4
- package/dist/tracing-helpers.d.ts.map +1 -1
- package/dist/tracing-helpers.js +62 -19
- package/dist/tracing-helpers.js.map +1 -1
- 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 +107 -19
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A provider the user defined at runtime: any endpoint that speaks the OpenAI
|
|
3
|
+
* Chat Completions dialect, reached by base URL plus optional API key.
|
|
4
|
+
*
|
|
5
|
+
* Unlike every other provider here, this class is not registered under one
|
|
6
|
+
* fixed id. The host registers one entry per user-defined provider, passing the
|
|
7
|
+
* wire id and the secret names to read through the registry's kwargs — so the
|
|
8
|
+
* base URL and key still resolve per user at `getProvider()` time and nothing
|
|
9
|
+
* is baked in at module load.
|
|
10
|
+
*/
|
|
11
|
+
import { OpenAICompatProvider } from "./openai-compat-provider.js";
|
|
12
|
+
import { isString, normalizeBaseUrl } from "@nodetool-ai/protocol";
|
|
13
|
+
import { classifyListedModel } from "./custom-model-kinds.js";
|
|
14
|
+
/** Cap on the model-list probe so an unreachable proxy cannot stall the model menu. */
|
|
15
|
+
const MODEL_LIST_TIMEOUT_MS = 5000;
|
|
16
|
+
/** Placeholder key for endpoints that accept anonymous requests. */
|
|
17
|
+
const NO_KEY = "no-key";
|
|
18
|
+
function readString(config, key) {
|
|
19
|
+
const value = config[key];
|
|
20
|
+
return isString(value) ? value.trim() : "";
|
|
21
|
+
}
|
|
22
|
+
function readModels(config, key) {
|
|
23
|
+
const value = config[key];
|
|
24
|
+
return Array.isArray(value) ? value.filter(isString) : [];
|
|
25
|
+
}
|
|
26
|
+
const IMAGE_TASKS = ["text_to_image", "image_to_image"];
|
|
27
|
+
const VIDEO_TASKS = ["text_to_video", "image_to_video"];
|
|
28
|
+
export class CustomOpenAIProvider extends OpenAICompatProvider {
|
|
29
|
+
static requiredSecrets() {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
_customModels;
|
|
33
|
+
_imageModels;
|
|
34
|
+
_videoModels;
|
|
35
|
+
/** One listing per instance: the chat, image and video pickers share it. */
|
|
36
|
+
_listing = null;
|
|
37
|
+
_baseUrlKey;
|
|
38
|
+
_apiKeyKey;
|
|
39
|
+
constructor(config, options = {}) {
|
|
40
|
+
const providerId = readString(config, "_providerId");
|
|
41
|
+
if (!providerId) {
|
|
42
|
+
throw new Error("_providerId is required for a custom provider");
|
|
43
|
+
}
|
|
44
|
+
const baseUrlKey = readString(config, "_baseUrlKey");
|
|
45
|
+
if (!baseUrlKey) {
|
|
46
|
+
throw new Error("_baseUrlKey is required for a custom provider");
|
|
47
|
+
}
|
|
48
|
+
const apiKeyKey = readString(config, "_apiKeyKey");
|
|
49
|
+
if (!apiKeyKey) {
|
|
50
|
+
throw new Error("_apiKeyKey is required for a custom provider");
|
|
51
|
+
}
|
|
52
|
+
const baseURL = normalizeBaseUrl(readString(config, baseUrlKey));
|
|
53
|
+
if (!baseURL) {
|
|
54
|
+
throw new Error(`${baseUrlKey} is required`);
|
|
55
|
+
}
|
|
56
|
+
const apiKey = readString(config, apiKeyKey) || NO_KEY;
|
|
57
|
+
super({ providerId, apiKey, baseURL }, options);
|
|
58
|
+
this._customModels = readModels(config, "_models");
|
|
59
|
+
this._imageModels = readModels(config, "_imageModels");
|
|
60
|
+
this._videoModels = readModels(config, "_videoModels");
|
|
61
|
+
this._baseUrlKey = baseUrlKey;
|
|
62
|
+
this._apiKeyKey = apiKeyKey;
|
|
63
|
+
}
|
|
64
|
+
getContainerEnv() {
|
|
65
|
+
const env = {
|
|
66
|
+
[this._baseUrlKey]: this.compatBaseURL
|
|
67
|
+
};
|
|
68
|
+
if (this.apiKey && this.apiKey !== NO_KEY) {
|
|
69
|
+
env[this._apiKeyKey] = this.apiKey;
|
|
70
|
+
}
|
|
71
|
+
return env;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Nothing on the wire announces tool support, and it is a property of
|
|
75
|
+
* whatever sits behind the proxy. A model that lacks it fails at call time
|
|
76
|
+
* with the endpoint's own error; answering `false` here would hide the
|
|
77
|
+
* capability from every model behind every custom provider.
|
|
78
|
+
*/
|
|
79
|
+
async hasToolSupport(_model) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Every model this endpoint offers, sorted by kind. Ids the user marked as
|
|
84
|
+
* image or video models always win; the rest come from the hand-typed list
|
|
85
|
+
* or `GET /models`, classified by {@link classifyListedModel}.
|
|
86
|
+
*/
|
|
87
|
+
listModels() {
|
|
88
|
+
this._listing ??= this.loadListing();
|
|
89
|
+
return this._listing;
|
|
90
|
+
}
|
|
91
|
+
async loadListing() {
|
|
92
|
+
const rows = await this.fetchListingRows();
|
|
93
|
+
const marked = new Map([
|
|
94
|
+
...this._imageModels.map((id) => [id, "image"]),
|
|
95
|
+
...this._videoModels.map((id) => [id, "video"])
|
|
96
|
+
]);
|
|
97
|
+
const listed = rows.map((row) => {
|
|
98
|
+
const name = isString(row.name) && row.name ? row.name : row.id;
|
|
99
|
+
const markedKind = marked.get(row.id);
|
|
100
|
+
if (markedKind) {
|
|
101
|
+
return { id: row.id, name, kind: markedKind, certain: true };
|
|
102
|
+
}
|
|
103
|
+
const { kind, source } = classifyListedModel(row);
|
|
104
|
+
return { id: row.id, name, kind, certain: source === "metadata" };
|
|
105
|
+
});
|
|
106
|
+
const seen = new Set(listed.map((m) => m.id));
|
|
107
|
+
for (const [id, kind] of marked) {
|
|
108
|
+
if (!seen.has(id))
|
|
109
|
+
listed.push({ id, name: id, kind, certain: true });
|
|
110
|
+
}
|
|
111
|
+
return listed;
|
|
112
|
+
}
|
|
113
|
+
async fetchListingRows() {
|
|
114
|
+
if (this._customModels.length > 0) {
|
|
115
|
+
return this._customModels.map((id) => ({ id }));
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
return await this.fetchCompatModelRows(undefined, {
|
|
119
|
+
signal: AbortSignal.timeout(MODEL_LIST_TIMEOUT_MS)
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
// An unreachable or slow proxy must not break the model menu.
|
|
124
|
+
return [];
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Chat models. A model the endpoint or the user identified as image or
|
|
129
|
+
* video is left out; one that only has an image- or video-like id stays,
|
|
130
|
+
* because the id alone is a guess and hiding a chat model would leave no
|
|
131
|
+
* way to pick it.
|
|
132
|
+
*/
|
|
133
|
+
async getAvailableLanguageModels() {
|
|
134
|
+
const models = await this.listModels();
|
|
135
|
+
return models
|
|
136
|
+
.filter((m) => m.kind === "language" || !m.certain)
|
|
137
|
+
.map(({ id, name }) => ({ id, name, provider: this.provider }));
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Image models, called through `POST <base>/images/generations` and
|
|
141
|
+
* `/images/edits`. The listing says nothing about sizes, so no
|
|
142
|
+
* constraints are declared and the node's own size options apply.
|
|
143
|
+
*/
|
|
144
|
+
async getAvailableImageModels() {
|
|
145
|
+
const models = await this.listModels();
|
|
146
|
+
return models
|
|
147
|
+
.filter((m) => m.kind === "image")
|
|
148
|
+
.map(({ id, name }) => ({
|
|
149
|
+
id,
|
|
150
|
+
name,
|
|
151
|
+
provider: this.provider,
|
|
152
|
+
supportedTasks: [...IMAGE_TASKS]
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Video models, called through the OpenAI video API (`POST <base>/videos`,
|
|
157
|
+
* then polled). No durations or resolutions are declared, for the same
|
|
158
|
+
* reason as image sizes.
|
|
159
|
+
*/
|
|
160
|
+
async getAvailableVideoModels() {
|
|
161
|
+
const models = await this.listModels();
|
|
162
|
+
return models
|
|
163
|
+
.filter((m) => m.kind === "video")
|
|
164
|
+
.map(({ id, name }) => ({
|
|
165
|
+
id,
|
|
166
|
+
name,
|
|
167
|
+
provider: this.provider,
|
|
168
|
+
supportedTasks: [...VIDEO_TASKS]
|
|
169
|
+
}));
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Pass the requested size through. The base class snaps to the three sizes
|
|
173
|
+
* OpenAI's own image models accept, which would squash a 16:9 request to a
|
|
174
|
+
* FLUX or Seedream model behind a gateway into 1536x1024.
|
|
175
|
+
*/
|
|
176
|
+
resolveImageSize(width, height) {
|
|
177
|
+
if (!width || !height)
|
|
178
|
+
return null;
|
|
179
|
+
return `${Math.round(width)}x${Math.round(height)}`;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=custom-openai-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-openai-provider.js","sourceRoot":"","sources":["../../src/providers/custom-openai-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registration of user-defined OpenAI-compatible providers.
|
|
3
|
+
*
|
|
4
|
+
* The host loads the catalog — from the database, a config file, whatever it
|
|
5
|
+
* has — and calls {@link syncCustomProviders} with it. Only the slug and its
|
|
6
|
+
* optional model lists are baked in; the base URL and API key are declared as
|
|
7
|
+
* kwarg *names*, so the registry resolves them per user through the caller's
|
|
8
|
+
* `getSecret` on every `getProvider()` call, and an env var of the same name
|
|
9
|
+
* works with no database row at all.
|
|
10
|
+
*/
|
|
11
|
+
import { type CustomProvider } from "@nodetool-ai/protocol";
|
|
12
|
+
/**
|
|
13
|
+
* Make the registry match `definitions`: register each one and drop every
|
|
14
|
+
* `custom_*` id that is no longer in the list. Returns the ids now registered.
|
|
15
|
+
*/
|
|
16
|
+
export declare function syncCustomProviders(definitions: readonly CustomProvider[]): string[];
|
|
17
|
+
/** Every `custom_*` id currently in the registry. */
|
|
18
|
+
export declare function listCustomProviderIds(): string[];
|
|
19
|
+
//# sourceMappingURL=custom-provider-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-provider-registry.d.ts","sourceRoot":"","sources":["../../src/providers/custom-provider-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAoC/B;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,SAAS,cAAc,EAAE,GACrC,MAAM,EAAE,CAMV;AAED,qDAAqD;AACrD,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registration of user-defined OpenAI-compatible providers.
|
|
3
|
+
*
|
|
4
|
+
* The host loads the catalog — from the database, a config file, whatever it
|
|
5
|
+
* has — and calls {@link syncCustomProviders} with it. Only the slug and its
|
|
6
|
+
* optional model lists are baked in; the base URL and API key are declared as
|
|
7
|
+
* kwarg *names*, so the registry resolves them per user through the caller's
|
|
8
|
+
* `getSecret` on every `getProvider()` call, and an env var of the same name
|
|
9
|
+
* works with no database row at all.
|
|
10
|
+
*/
|
|
11
|
+
import { customProviderApiKeyKey, customProviderBaseUrlKey, customProviderId, isCustomProviderId } from "@nodetool-ai/protocol";
|
|
12
|
+
import { CustomOpenAIProvider } from "./custom-openai-provider.js";
|
|
13
|
+
import { listRegisteredProviderIds, registerProvider, unregisterProvider } from "./provider-registry.js";
|
|
14
|
+
function register(definition) {
|
|
15
|
+
const providerId = customProviderId(definition.slug);
|
|
16
|
+
const baseUrlKey = customProviderBaseUrlKey(definition.slug);
|
|
17
|
+
const apiKeyKey = customProviderApiKeyKey(definition.slug);
|
|
18
|
+
registerProvider(providerId, CustomOpenAIProvider, {
|
|
19
|
+
_providerId: providerId,
|
|
20
|
+
_baseUrlKey: baseUrlKey,
|
|
21
|
+
_apiKeyKey: apiKeyKey,
|
|
22
|
+
_models: definition.models ?? [],
|
|
23
|
+
_imageModels: definition.image_models ?? [],
|
|
24
|
+
_videoModels: definition.video_models ?? [],
|
|
25
|
+
// Empty declares "resolve me": the registry asks getSecret, then env, on
|
|
26
|
+
// every instantiation. It is also the only required kwarg, so a user who
|
|
27
|
+
// has not set a URL sees the provider as unconfigured rather than broken.
|
|
28
|
+
[baseUrlKey]: ""
|
|
29
|
+
},
|
|
30
|
+
// Endpoints that accept anonymous requests are common enough — a local
|
|
31
|
+
// router, a LAN gateway — that a missing key must not make the provider
|
|
32
|
+
// unavailable.
|
|
33
|
+
{ [apiKeyKey]: "" });
|
|
34
|
+
return providerId;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Make the registry match `definitions`: register each one and drop every
|
|
38
|
+
* `custom_*` id that is no longer in the list. Returns the ids now registered.
|
|
39
|
+
*/
|
|
40
|
+
export function syncCustomProviders(definitions) {
|
|
41
|
+
const wanted = new Set(definitions.map((d) => customProviderId(d.slug)));
|
|
42
|
+
for (const id of listCustomProviderIds()) {
|
|
43
|
+
if (!wanted.has(id))
|
|
44
|
+
unregisterProvider(id);
|
|
45
|
+
}
|
|
46
|
+
return definitions.map(register);
|
|
47
|
+
}
|
|
48
|
+
/** Every `custom_*` id currently in the registry. */
|
|
49
|
+
export function listCustomProviderIds() {
|
|
50
|
+
return listRegisteredProviderIds().filter(isCustomProviderId);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=custom-provider-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-provider-registry.js","sourceRoot":"","sources":["../../src/providers/custom-provider-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAEhC,SAAS,QAAQ,CAAC,UAA0B;IAC1C,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,wBAAwB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE3D,gBAAgB,CACd,UAAU,EACV,oBAAoB,EACpB;QACE,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,UAAU;QACvB,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,UAAU,CAAC,MAAM,IAAI,EAAE;QAChC,YAAY,EAAE,UAAU,CAAC,YAAY,IAAI,EAAE;QAC3C,YAAY,EAAE,UAAU,CAAC,YAAY,IAAI,EAAE;QAC3C,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,CAAC,UAAU,CAAC,EAAE,EAAE;KACjB;IACD,uEAAuE;IACvE,wEAAwE;IACxE,eAAe;IACf,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CACpB,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,WAAsC;IAEtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,KAAK,MAAM,EAAE,IAAI,qBAAqB,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,qBAAqB;IACnC,OAAO,yBAAyB,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1,25 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { OpenAIProvider } from "./openai-provider.js";
|
|
1
|
+
import { OpenAICompatProvider, type OpenAICompatProviderOptions } from "./openai-compat-provider.js";
|
|
3
2
|
import type { LanguageModel } from "./types.js";
|
|
4
|
-
interface DeepSeekProviderOptions {
|
|
5
|
-
client?: OpenAI;
|
|
6
|
-
clientFactory?: (apiKey: string) => OpenAI;
|
|
7
|
-
fetchFn?: typeof fetch;
|
|
8
|
-
}
|
|
9
3
|
/**
|
|
10
|
-
* DeepSeek provider.
|
|
11
|
-
* OpenAI-compatible endpoint at https://api.deepseek.com/v1.
|
|
4
|
+
* DeepSeek provider. Speaks the OpenAI Chat Completions dialect against
|
|
5
|
+
* DeepSeek's OpenAI-compatible endpoint at https://api.deepseek.com/v1.
|
|
12
6
|
* Covers DeepSeek-V3 chat and DeepSeek-R1 reasoning models.
|
|
13
7
|
*/
|
|
14
|
-
export declare class DeepSeekProvider extends
|
|
8
|
+
export declare class DeepSeekProvider extends OpenAICompatProvider {
|
|
15
9
|
static requiredSecrets(): string[];
|
|
16
|
-
private _deepseekFetch;
|
|
17
10
|
constructor(secrets: {
|
|
18
11
|
DEEPSEEK_API_KEY?: string;
|
|
19
|
-
}, options?:
|
|
20
|
-
getContainerEnv():
|
|
12
|
+
}, options?: OpenAICompatProviderOptions);
|
|
13
|
+
getContainerEnv(): {
|
|
14
|
+
DEEPSEEK_API_KEY: string;
|
|
15
|
+
};
|
|
21
16
|
hasToolSupport(_model: string): Promise<boolean>;
|
|
22
17
|
getAvailableLanguageModels(): Promise<LanguageModel[]>;
|
|
23
18
|
}
|
|
24
|
-
export {};
|
|
25
19
|
//# sourceMappingURL=deepseek-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepseek-provider.d.ts","sourceRoot":"","sources":["../../src/providers/deepseek-provider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"deepseek-provider.d.ts","sourceRoot":"","sources":["../../src/providers/deepseek-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,oBAAoB;IACxD,OAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;IAED,YACE,OAAO,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,EACtC,OAAO,GAAE,2BAAgC,EAW1C;IAEQ,eAAe;QACb,gBAAgB;MAC1B;IAEc,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE9D;IAEc,0BAA0B,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAEpE;CACF"}
|
|
@@ -1,33 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { OpenAIProvider } from "./openai-provider.js";
|
|
1
|
+
import { OpenAICompatProvider } from "./openai-compat-provider.js";
|
|
3
2
|
const DEEPSEEK_BASE_URL = "https://api.deepseek.com/v1";
|
|
4
3
|
/**
|
|
5
|
-
* DeepSeek provider.
|
|
6
|
-
* OpenAI-compatible endpoint at https://api.deepseek.com/v1.
|
|
4
|
+
* DeepSeek provider. Speaks the OpenAI Chat Completions dialect against
|
|
5
|
+
* DeepSeek's OpenAI-compatible endpoint at https://api.deepseek.com/v1.
|
|
7
6
|
* Covers DeepSeek-V3 chat and DeepSeek-R1 reasoning models.
|
|
8
7
|
*/
|
|
9
|
-
export class DeepSeekProvider extends
|
|
8
|
+
export class DeepSeekProvider extends OpenAICompatProvider {
|
|
10
9
|
static requiredSecrets() {
|
|
11
10
|
return ["DEEPSEEK_API_KEY"];
|
|
12
11
|
}
|
|
13
|
-
_deepseekFetch;
|
|
14
12
|
constructor(secrets, options = {}) {
|
|
15
13
|
const apiKey = secrets.DEEPSEEK_API_KEY;
|
|
16
14
|
if (!apiKey) {
|
|
17
15
|
throw new Error("DEEPSEEK_API_KEY is required");
|
|
18
16
|
}
|
|
19
|
-
|
|
20
|
-
super({ OPENAI_API_KEY: apiKey }, {
|
|
21
|
-
client: options.client,
|
|
22
|
-
clientFactory: options.clientFactory ??
|
|
23
|
-
((key) => new OpenAI({
|
|
24
|
-
apiKey: key,
|
|
25
|
-
baseURL: DEEPSEEK_BASE_URL
|
|
26
|
-
})),
|
|
27
|
-
fetchFn
|
|
28
|
-
});
|
|
29
|
-
this.provider = "deepseek";
|
|
30
|
-
this._deepseekFetch = fetchFn;
|
|
17
|
+
super({ providerId: "deepseek", apiKey, baseURL: DEEPSEEK_BASE_URL }, options);
|
|
31
18
|
}
|
|
32
19
|
getContainerEnv() {
|
|
33
20
|
return { DEEPSEEK_API_KEY: this.apiKey };
|
|
@@ -36,23 +23,7 @@ export class DeepSeekProvider extends OpenAIProvider {
|
|
|
36
23
|
return true;
|
|
37
24
|
}
|
|
38
25
|
async getAvailableLanguageModels() {
|
|
39
|
-
|
|
40
|
-
headers: {
|
|
41
|
-
Authorization: `Bearer ${this.apiKey}`
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
if (!response.ok) {
|
|
45
|
-
return [];
|
|
46
|
-
}
|
|
47
|
-
const payload = (await response.json());
|
|
48
|
-
const rows = payload.data ?? [];
|
|
49
|
-
return rows
|
|
50
|
-
.filter((row) => typeof row.id === "string" && row.id.length > 0)
|
|
51
|
-
.map((row) => ({
|
|
52
|
-
id: row.id,
|
|
53
|
-
name: row.name ?? row.id,
|
|
54
|
-
provider: "deepseek"
|
|
55
|
-
}));
|
|
26
|
+
return this.listCompatModels();
|
|
56
27
|
}
|
|
57
28
|
}
|
|
58
29
|
//# sourceMappingURL=deepseek-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepseek-provider.js","sourceRoot":"","sources":["../../src/providers/deepseek-provider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"deepseek-provider.js","sourceRoot":"","sources":["../../src/providers/deepseek-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AAExD;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,oBAAoB;IACxD,MAAM,CAAU,eAAe;QAC7B,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9B,CAAC;IAED,YACE,OAAsC,EACtC,OAAO,GAAgC,EAAE;QAEzC,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,CACH,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAC9D,OAAO,CACR,CAAC;IACJ,CAAC;IAEQ,eAAe;QACtB,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAC3C,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,MAAc;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,KAAK,CAAC,0BAA0B;QACvC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default base URLs for local OpenAI-compatible / Ollama servers.
|
|
3
|
+
*
|
|
4
|
+
* These are the out-of-the-box ports the respective tools listen on. They are
|
|
5
|
+
* used only as the final fallback after an explicit option, the secret store,
|
|
6
|
+
* and the environment variable have all been consulted.
|
|
7
|
+
*/
|
|
8
|
+
/** Standard Ollama daemon port. */
|
|
9
|
+
export declare const OLLAMA_DEFAULT_URL = "http://127.0.0.1:11434";
|
|
10
|
+
/** Standard LM Studio OpenAI-compatible server port. */
|
|
11
|
+
export declare const LMSTUDIO_DEFAULT_URL = "http://127.0.0.1:1234";
|
|
12
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/providers/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mCAAmC;AACnC,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAE3D,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default base URLs for local OpenAI-compatible / Ollama servers.
|
|
3
|
+
*
|
|
4
|
+
* These are the out-of-the-box ports the respective tools listen on. They are
|
|
5
|
+
* used only as the final fallback after an explicit option, the secret store,
|
|
6
|
+
* and the environment variable have all been consulted.
|
|
7
|
+
*/
|
|
8
|
+
/** Standard Ollama daemon port. */
|
|
9
|
+
export const OLLAMA_DEFAULT_URL = "http://127.0.0.1:11434";
|
|
10
|
+
/** Standard LM Studio OpenAI-compatible server port. */
|
|
11
|
+
export const LMSTUDIO_DEFAULT_URL = "http://127.0.0.1:1234";
|
|
12
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/providers/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mCAAmC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAE3D,wDAAwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAG,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified provider for ElevenLabs text-to-speech.
|
|
3
|
+
*
|
|
4
|
+
* Surfaces ElevenLabs voices/models in the unified TTS picker and generates
|
|
5
|
+
* speech via the REST API. Chat / LLM generation is not supported.
|
|
6
|
+
*
|
|
7
|
+
* - `textToSpeech()` requests raw `pcm_24000` and yields Int16 samples (the
|
|
8
|
+
* streaming path used by the unified TTS node and realtime callers).
|
|
9
|
+
* - `textToSpeechEncoded()` requests `mp3_44100_128` and returns the encoded
|
|
10
|
+
* bytes (the path used by chat audio / media tools).
|
|
11
|
+
*/
|
|
12
|
+
import { BaseProvider } from "./base-provider.js";
|
|
13
|
+
import type { EncodedAudioResult, Message, StreamingAudioChunk, TTSModel } from "./types.js";
|
|
14
|
+
interface ElevenLabsProviderOptions {
|
|
15
|
+
fetchFn?: typeof fetch;
|
|
16
|
+
}
|
|
17
|
+
export declare class ElevenLabsProvider extends BaseProvider {
|
|
18
|
+
static requiredSecrets(): string[];
|
|
19
|
+
readonly apiKey: string;
|
|
20
|
+
private readonly _fetch;
|
|
21
|
+
constructor(secrets: {
|
|
22
|
+
ELEVENLABS_API_KEY?: string;
|
|
23
|
+
}, options?: ElevenLabsProviderOptions);
|
|
24
|
+
getContainerEnv(): {
|
|
25
|
+
ELEVENLABS_API_KEY: string;
|
|
26
|
+
};
|
|
27
|
+
generateMessage(_args: Parameters<BaseProvider["generateMessage"]>[0]): Promise<Message>;
|
|
28
|
+
generateMessages(_args: Parameters<BaseProvider["generateMessages"]>[0]): ReturnType<BaseProvider["generateMessages"]>;
|
|
29
|
+
getAvailableTTSModels(): Promise<TTSModel[]>;
|
|
30
|
+
/** Resolve a voice name ("Aria") or raw voice id to a voice id. */
|
|
31
|
+
private resolveVoiceId;
|
|
32
|
+
private requestSpeech;
|
|
33
|
+
textToSpeech(args: {
|
|
34
|
+
text: string;
|
|
35
|
+
model: string;
|
|
36
|
+
voice?: string;
|
|
37
|
+
speed?: number;
|
|
38
|
+
audioFormat?: string;
|
|
39
|
+
}): AsyncGenerator<StreamingAudioChunk>;
|
|
40
|
+
textToSpeechEncoded(args: {
|
|
41
|
+
text: string;
|
|
42
|
+
model: string;
|
|
43
|
+
voice?: string;
|
|
44
|
+
speed?: number;
|
|
45
|
+
audioFormat?: string;
|
|
46
|
+
}): Promise<EncodedAudioResult | null>;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=elevenlabs-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elevenlabs-provider.d.ts","sourceRoot":"","sources":["../../src/providers/elevenlabs-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EACV,kBAAkB,EAClB,OAAO,EACP,mBAAmB,EACnB,QAAQ,EACT,MAAM,YAAY,CAAC;AA6CpB,UAAU,yBAAyB;IACjC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,MAAM,CAAC,eAAe,IAAI,MAAM,EAAE,CAEjC;IAED,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IAEtC,YACE,OAAO,EAAE;QAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,EACxC,OAAO,GAAE,yBAA8B,EASxC;IAED,eAAe;QACJ,kBAAkB;MAC5B;IAED,eAAe,CACb,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GACpD,OAAO,CAAC,OAAO,CAAC,CAElB;IAGM,gBAAgB,CACrB,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,GACrD,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAE9C;IAEc,qBAAqB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAO1D;IAED,mEAAmE;IACnE,OAAO,CAAC,cAAc;YAKR,aAAa;IAiCX,YAAY,CAAC,IAAI,EAAE;QACjC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAWtC;IAEc,mBAAmB,CAAC,IAAI,EAAE;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAYrC;CACF"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified provider for ElevenLabs text-to-speech.
|
|
3
|
+
*
|
|
4
|
+
* Surfaces ElevenLabs voices/models in the unified TTS picker and generates
|
|
5
|
+
* speech via the REST API. Chat / LLM generation is not supported.
|
|
6
|
+
*
|
|
7
|
+
* - `textToSpeech()` requests raw `pcm_24000` and yields Int16 samples (the
|
|
8
|
+
* streaming path used by the unified TTS node and realtime callers).
|
|
9
|
+
* - `textToSpeechEncoded()` requests `mp3_44100_128` and returns the encoded
|
|
10
|
+
* bytes (the path used by chat audio / media tools).
|
|
11
|
+
*/
|
|
12
|
+
import { createLogger } from "@nodetool-ai/config";
|
|
13
|
+
import { BaseProvider } from "./base-provider.js";
|
|
14
|
+
const log = createLogger("nodetool.runtime.providers.elevenlabs");
|
|
15
|
+
const ELEVENLABS_API_BASE = "https://api.elevenlabs.io/v1";
|
|
16
|
+
/** Built-in ElevenLabs voices (name → voice id). */
|
|
17
|
+
const VOICE_ID_MAP = {
|
|
18
|
+
Aria: "9BWtsMINqrJLrRacOk9x",
|
|
19
|
+
Roger: "CwhRBWXzGAHq8TQ4Fs17",
|
|
20
|
+
Sarah: "EXAVITQu4vr4xnSDxMaL",
|
|
21
|
+
Laura: "FGY2WhTYpPnrIDTdsKH5",
|
|
22
|
+
Charlie: "IKne3meq5aSn9XLyUdCD",
|
|
23
|
+
George: "JBFqnCBsd6RMkjVDRZzb",
|
|
24
|
+
Callum: "N2lVS1w4EtoT3dr4eOWO",
|
|
25
|
+
River: "SAz9YHcvj6GT2YYXdXww",
|
|
26
|
+
Liam: "TX3LPaxmHKxFdv7VOQHJ",
|
|
27
|
+
Charlotte: "XB0fDUnXU5powFXDhCwa",
|
|
28
|
+
Alice: "Xb7hH8MSUJpSbSDYk0k2",
|
|
29
|
+
Will: "bIHbv24MWmeRgasZH58o",
|
|
30
|
+
Jessica: "cgSgspJ2msm6clMCkdW9",
|
|
31
|
+
Eric: "cjVigY5qzO86Huf0OWal",
|
|
32
|
+
Chris: "iP95p4xoKVk53GoZ742B",
|
|
33
|
+
Brian: "nPczCjzI2devNBz1zQrb",
|
|
34
|
+
Daniel: "onwK4e9ZLuTAKqWW03F9",
|
|
35
|
+
Lily: "pFZP5JQG7iQjIQuC4Bku",
|
|
36
|
+
Bill: "pqHfZKP75CvOlQylNhV4"
|
|
37
|
+
};
|
|
38
|
+
const VOICE_NAMES = Object.keys(VOICE_ID_MAP);
|
|
39
|
+
/** Available TTS models (id → display name). */
|
|
40
|
+
const MODELS = [
|
|
41
|
+
{ id: "eleven_v3", name: "Eleven v3" },
|
|
42
|
+
{ id: "eleven_multilingual_v2", name: "Multilingual v2" },
|
|
43
|
+
{ id: "eleven_turbo_v2_5", name: "Turbo v2.5" },
|
|
44
|
+
{ id: "eleven_flash_v2_5", name: "Flash v2.5" },
|
|
45
|
+
{ id: "eleven_turbo_v2", name: "Turbo v2" },
|
|
46
|
+
{ id: "eleven_flash_v2", name: "Flash v2" },
|
|
47
|
+
{ id: "eleven_monolingual_v1", name: "Monolingual v1" },
|
|
48
|
+
{ id: "eleven_multilingual_v1", name: "Multilingual v1" }
|
|
49
|
+
];
|
|
50
|
+
const SAMPLE_RATE = 24000;
|
|
51
|
+
export class ElevenLabsProvider extends BaseProvider {
|
|
52
|
+
static requiredSecrets() {
|
|
53
|
+
return ["ELEVENLABS_API_KEY"];
|
|
54
|
+
}
|
|
55
|
+
apiKey;
|
|
56
|
+
_fetch;
|
|
57
|
+
constructor(secrets, options = {}) {
|
|
58
|
+
super("elevenlabs");
|
|
59
|
+
const apiKey = secrets.ELEVENLABS_API_KEY;
|
|
60
|
+
if (!apiKey) {
|
|
61
|
+
throw new Error("ELEVENLABS_API_KEY is required");
|
|
62
|
+
}
|
|
63
|
+
this.apiKey = apiKey;
|
|
64
|
+
this._fetch = options.fetchFn ?? globalThis.fetch.bind(globalThis);
|
|
65
|
+
}
|
|
66
|
+
getContainerEnv() {
|
|
67
|
+
return { ELEVENLABS_API_KEY: this.apiKey };
|
|
68
|
+
}
|
|
69
|
+
generateMessage(_args) {
|
|
70
|
+
throw new Error("elevenlabs does not support chat generation");
|
|
71
|
+
}
|
|
72
|
+
// eslint-disable-next-line require-yield
|
|
73
|
+
async *generateMessages(_args) {
|
|
74
|
+
throw new Error("elevenlabs does not support chat generation");
|
|
75
|
+
}
|
|
76
|
+
async getAvailableTTSModels() {
|
|
77
|
+
return MODELS.map((m) => ({
|
|
78
|
+
id: m.id,
|
|
79
|
+
name: m.name,
|
|
80
|
+
provider: "elevenlabs",
|
|
81
|
+
voices: VOICE_NAMES
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
/** Resolve a voice name ("Aria") or raw voice id to a voice id. */
|
|
85
|
+
resolveVoiceId(voice) {
|
|
86
|
+
if (!voice)
|
|
87
|
+
return VOICE_ID_MAP.Aria;
|
|
88
|
+
return VOICE_ID_MAP[voice] ?? voice;
|
|
89
|
+
}
|
|
90
|
+
async requestSpeech(args, outputFormat) {
|
|
91
|
+
const voiceId = this.resolveVoiceId(args.voice);
|
|
92
|
+
const url = `${ELEVENLABS_API_BASE}/text-to-speech/${voiceId}` +
|
|
93
|
+
`?output_format=${outputFormat}`;
|
|
94
|
+
const body = {
|
|
95
|
+
text: args.text,
|
|
96
|
+
model_id: args.model
|
|
97
|
+
};
|
|
98
|
+
// ElevenLabs applies playback speed via voice_settings.speed (0.7–1.2).
|
|
99
|
+
// Forward it when the caller asked for a non-default tempo — omitting it
|
|
100
|
+
// silently discarded the request.
|
|
101
|
+
if (args.speed != null && args.speed !== 1.0) {
|
|
102
|
+
body.voice_settings = { speed: Math.max(0.7, Math.min(1.2, args.speed)) };
|
|
103
|
+
}
|
|
104
|
+
const response = await this._fetch(url, {
|
|
105
|
+
method: "POST",
|
|
106
|
+
headers: {
|
|
107
|
+
"xi-api-key": this.apiKey,
|
|
108
|
+
"Content-Type": "application/json"
|
|
109
|
+
},
|
|
110
|
+
body: JSON.stringify(body)
|
|
111
|
+
});
|
|
112
|
+
if (!response.ok) {
|
|
113
|
+
const detail = await response.text().catch(() => "");
|
|
114
|
+
throw new Error(`ElevenLabs TTS failed: ${response.status} ${detail}`);
|
|
115
|
+
}
|
|
116
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
117
|
+
}
|
|
118
|
+
async *textToSpeech(args) {
|
|
119
|
+
if (!args.text)
|
|
120
|
+
throw new Error("text must not be empty");
|
|
121
|
+
log.debug("ElevenLabs textToSpeech", { model: args.model });
|
|
122
|
+
const bytes = await this.requestSpeech(args, `pcm_${SAMPLE_RATE}`);
|
|
123
|
+
// ElevenLabs `pcm_24000` is raw little-endian PCM16, no header.
|
|
124
|
+
const samples = new Int16Array(bytes.buffer, bytes.byteOffset, Math.floor(bytes.byteLength / 2));
|
|
125
|
+
yield { samples, sampleRate: SAMPLE_RATE };
|
|
126
|
+
}
|
|
127
|
+
async textToSpeechEncoded(args) {
|
|
128
|
+
if (!args.text)
|
|
129
|
+
throw new Error("text must not be empty");
|
|
130
|
+
log.debug("ElevenLabs textToSpeechEncoded", { model: args.model });
|
|
131
|
+
const fmt = (args.audioFormat ?? "mp3").toLowerCase();
|
|
132
|
+
if (fmt !== "mp3" && fmt !== "mpeg") {
|
|
133
|
+
// This encoded path only produces MP3. For any other requested format
|
|
134
|
+
// (pcm/wav/flac/…) defer to the streaming PCM path instead of silently
|
|
135
|
+
// handing back MP3 bytes mislabeled as the requested format.
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
const bytes = await this.requestSpeech(args, "mp3_44100_128");
|
|
139
|
+
return { data: bytes, mimeType: "audio/mpeg" };
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=elevenlabs-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elevenlabs-provider.js","sourceRoot":"","sources":["../../src/providers/elevenlabs-provider.ts"],"names":[],"mappings":"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"}
|