@nodetool-ai/runtime 0.7.0-rc.22 → 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
|
@@ -1,74 +1,105 @@
|
|
|
1
1
|
import { createLogger } from "@nodetool-ai/config";
|
|
2
|
+
// Stryker disable next-line StringLiteral: logger name is diagnostic, not a behavioural contract.
|
|
2
3
|
const log = createLogger("nodetool.runtime.provider-registry");
|
|
3
|
-
let _secretResolver = null;
|
|
4
4
|
const _PROVIDER_REGISTRY = new Map();
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
export function registerProvider(providerId, cls, kwargs = {}, optionalKwargs = {}, metadata = {}) {
|
|
6
|
+
_PROVIDER_REGISTRY.set(providerId, {
|
|
7
|
+
cls,
|
|
8
|
+
kwargs,
|
|
9
|
+
optionalKwargs,
|
|
10
|
+
metadata: {
|
|
11
|
+
access: metadata.access ?? "remote_api",
|
|
12
|
+
displayName: metadata.displayName ?? providerId
|
|
13
|
+
}
|
|
14
|
+
});
|
|
9
15
|
}
|
|
10
16
|
export function getRegisteredProvider(providerId) {
|
|
11
17
|
return _PROVIDER_REGISTRY.get(providerId) ?? null;
|
|
12
18
|
}
|
|
19
|
+
export function listRegisteredProviderIds() {
|
|
20
|
+
return Array.from(_PROVIDER_REGISTRY.keys());
|
|
21
|
+
}
|
|
22
|
+
/** Remove a provider from the registry. Returns true if one was removed. */
|
|
23
|
+
export function unregisterProvider(providerId) {
|
|
24
|
+
return _PROVIDER_REGISTRY.delete(providerId);
|
|
25
|
+
}
|
|
13
26
|
/**
|
|
14
|
-
*
|
|
15
|
-
* sources beyond process.env (e.g. encrypted secrets DB).
|
|
27
|
+
* Environment variable names accepted in place of a credential key, in order.
|
|
16
28
|
*
|
|
17
|
-
*
|
|
29
|
+
* A provider's own SDK often reads a different name than NodeTool's registered
|
|
30
|
+
* key, so a machine set up for that SDK looks unconfigured here and the run
|
|
31
|
+
* fails with a 401 that names the wrong thing. Only names the vendor itself
|
|
32
|
+
* documents belong in this list — it is an interop shim, not a guessing game.
|
|
18
33
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
34
|
+
const CREDENTIAL_ENV_ALIASES = {
|
|
35
|
+
// fal's own JS and Python clients read FAL_KEY.
|
|
36
|
+
FAL_API_KEY: ["FAL_KEY"]
|
|
37
|
+
};
|
|
38
|
+
/** `process.env[key]`, falling back to the names that vendor's SDK uses. */
|
|
39
|
+
export function readCredentialEnv(key) {
|
|
40
|
+
const direct = process.env[key];
|
|
41
|
+
if (direct)
|
|
42
|
+
return direct;
|
|
43
|
+
for (const alias of CREDENTIAL_ENV_ALIASES[key] ?? []) {
|
|
44
|
+
const value = process.env[alias];
|
|
45
|
+
if (value)
|
|
46
|
+
return value;
|
|
29
47
|
}
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
/** Resolve one credential exactly as provider construction does. */
|
|
51
|
+
export async function resolveCredentialValue(key, getSecret) {
|
|
52
|
+
const stored = await getSecret(key);
|
|
53
|
+
return stored || readCredentialEnv(key);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Build a fresh provider instance, resolving any unset credential kwargs via
|
|
57
|
+
* `getSecret` first, then `process.env` as fallback. The caller owns any
|
|
58
|
+
* caching — instance reuse is a property of a ProcessingContext, not a module
|
|
59
|
+
* global.
|
|
60
|
+
*/
|
|
61
|
+
export async function getProvider(providerId, getSecret) {
|
|
30
62
|
const registration = _PROVIDER_REGISTRY.get(providerId);
|
|
31
63
|
if (!registration) {
|
|
32
64
|
throw new Error(`No provider registered for "${providerId}"`);
|
|
33
65
|
}
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
// numeric/boolean kwargs are preserved.
|
|
66
|
+
// A kwarg is "needs resolution" when the registration declares the key with
|
|
67
|
+
// an empty-string / null / undefined value. Valid falsy defaults like `0`
|
|
68
|
+
// or `false` on numeric/boolean kwargs are preserved.
|
|
38
69
|
const kwargs = { ...registration.kwargs };
|
|
39
70
|
for (const [key, value] of Object.entries(kwargs)) {
|
|
40
71
|
if (value === "" || value == null) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
kwargs[key] = resolved;
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
const envVal = process.env[key];
|
|
49
|
-
if (envVal) {
|
|
50
|
-
kwargs[key] = envVal;
|
|
72
|
+
const resolved = await resolveCredentialValue(key, getSecret);
|
|
73
|
+
if (resolved) {
|
|
74
|
+
kwargs[key] = resolved;
|
|
51
75
|
}
|
|
52
76
|
}
|
|
53
77
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
78
|
+
// Optional kwargs: resolve from secret store / env when available, else use
|
|
79
|
+
// the registered default. These are not required for the provider to be
|
|
80
|
+
// "configured" (see isProviderConfigured) but still flow into the
|
|
81
|
+
// constructor so user-set values (e.g. LMSTUDIO_API_URL) take effect on
|
|
82
|
+
// every getProvider() call without a restart.
|
|
83
|
+
for (const [key, fallback] of Object.entries(registration.optionalKwargs)) {
|
|
84
|
+
const fromSecret = await getSecret(key);
|
|
85
|
+
if (fromSecret) {
|
|
86
|
+
kwargs[key] = fromSecret;
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const envVal = process.env[key];
|
|
90
|
+
if (envVal) {
|
|
91
|
+
kwargs[key] = envVal;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
kwargs[key] = fallback;
|
|
95
|
+
}
|
|
96
|
+
return new registration.cls(kwargs);
|
|
65
97
|
}
|
|
66
98
|
/** Get the secret key name required by a provider (e.g. "OPENAI_API_KEY"), or null. */
|
|
67
99
|
export function getProviderSecretKey(providerId) {
|
|
68
100
|
const reg = _PROVIDER_REGISTRY.get(providerId);
|
|
69
101
|
if (!reg)
|
|
70
102
|
return null;
|
|
71
|
-
// The kwargs keys are the secret names; find the first one that looks like a key/token
|
|
72
103
|
for (const key of Object.keys(reg.kwargs)) {
|
|
73
104
|
if (key.includes("KEY") ||
|
|
74
105
|
key.includes("TOKEN") ||
|
|
@@ -76,45 +107,31 @@ export function getProviderSecretKey(providerId) {
|
|
|
76
107
|
return key;
|
|
77
108
|
}
|
|
78
109
|
}
|
|
79
|
-
// No secret — provider is local (ollama, llama_cpp, etc.)
|
|
80
110
|
return null;
|
|
81
111
|
}
|
|
82
|
-
/** Check if a provider
|
|
83
|
-
export async function isProviderConfigured(providerId,
|
|
112
|
+
/** Check if a provider's required credentials are resolvable. */
|
|
113
|
+
export async function isProviderConfigured(providerId, getSecret) {
|
|
84
114
|
const reg = _PROVIDER_REGISTRY.get(providerId);
|
|
85
115
|
if (!reg) {
|
|
116
|
+
// Stryker disable next-line StringLiteral,ObjectLiteral: diagnostic log, not asserted.
|
|
86
117
|
log.debug("isProviderConfigured: not registered", { providerId });
|
|
87
118
|
return false;
|
|
88
119
|
}
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
// empty strings to mark credentials that must be resolved from the DB or
|
|
92
|
-
// environment. Non-empty registration values (including valid falsy
|
|
93
|
-
// defaults like `0` or `false`) are defaults the constructor can use
|
|
94
|
-
// directly. Keys starting with "_" are runtime injections (e.g.
|
|
95
|
-
// `_bridge`, `_id` for Python providers) and excluded from the
|
|
96
|
-
// required-credentials check since they can't be resolved via secret
|
|
97
|
-
// resolver or env vars.
|
|
120
|
+
// Keys starting with "_" are runtime injections (e.g. `_bridge`, `_id` for
|
|
121
|
+
// Python providers) and excluded from the credentials check.
|
|
98
122
|
const required = Object.entries(reg.kwargs)
|
|
99
123
|
.filter(([key, value]) => (value === "" || value == null) && !key.startsWith("_"))
|
|
100
124
|
.map(([key]) => key);
|
|
101
|
-
|
|
102
|
-
|
|
125
|
+
// Stryker disable next-line ConditionalExpression: forcing this false just falls into the empty loop below, which also returns true — equivalent.
|
|
126
|
+
if (required.length === 0)
|
|
103
127
|
return true;
|
|
104
|
-
}
|
|
105
128
|
for (const key of required) {
|
|
106
|
-
|
|
107
|
-
if (_secretResolver) {
|
|
108
|
-
value = await _secretResolver(key, userId);
|
|
109
|
-
}
|
|
110
|
-
if (!value)
|
|
111
|
-
value = process.env[key];
|
|
129
|
+
const value = await resolveCredentialValue(key, getSecret);
|
|
112
130
|
if (!value) {
|
|
131
|
+
// Stryker disable next-line StringLiteral,ObjectLiteral: diagnostic log, not asserted.
|
|
113
132
|
log.debug("isProviderConfigured: missing credential", {
|
|
114
133
|
providerId,
|
|
115
|
-
|
|
116
|
-
key,
|
|
117
|
-
hasResolver: Boolean(_secretResolver)
|
|
134
|
+
key
|
|
118
135
|
});
|
|
119
136
|
return false;
|
|
120
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,GAAG,GAAG,YAAY,CAAC,oCAAoC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Central failure logging for provider calls.
|
|
3
|
+
*
|
|
4
|
+
* When an LLM provider call fails (e.g. a 422 Unprocessable Entity), we want a
|
|
5
|
+
* precise record of what was sent — the actual wire payload, not just the
|
|
6
|
+
* opaque error. {@link logProviderRequestFailure} is invoked from
|
|
7
|
+
* `BaseProvider`'s traced wrappers so every provider gets identical, redacted,
|
|
8
|
+
* size-bounded failure logging from one place.
|
|
9
|
+
*
|
|
10
|
+
* Providers feed their exact request body via `recordRequestPayload` (see
|
|
11
|
+
* `BaseProvider`); when a provider hasn't been instrumented, the wrapper falls
|
|
12
|
+
* back to logging the NodeTool-level request args.
|
|
13
|
+
*/
|
|
14
|
+
import { type Logger } from "@nodetool-ai/config";
|
|
15
|
+
interface SanitizeOptions {
|
|
16
|
+
/** Strings longer than this are truncated (default 1000). */
|
|
17
|
+
maxStringLength?: number;
|
|
18
|
+
/** Arrays longer than this are truncated (default 200). */
|
|
19
|
+
maxArrayLength?: number;
|
|
20
|
+
/** Recursion is cut off at this depth (default 12). */
|
|
21
|
+
maxDepth?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Deep-clone `value` into a JSON-safe, log-friendly shape: long strings and
|
|
25
|
+
* arrays are truncated, binary buffers become size markers, secret-bearing
|
|
26
|
+
* keys are redacted, and circular references are broken. Never throws.
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* A JSON-safe value: what {@link sanitizeForLog} produces. `undefined` is kept
|
|
30
|
+
* rather than rewritten, so a log line still shows a field that was unset.
|
|
31
|
+
*/
|
|
32
|
+
export type LogSafeValue = string | number | boolean | null | undefined | LogSafeValue[] | {
|
|
33
|
+
[key: string]: LogSafeValue;
|
|
34
|
+
};
|
|
35
|
+
export declare function sanitizeForLog(value: unknown, opts?: SanitizeOptions): LogSafeValue;
|
|
36
|
+
interface ProviderFailureLog {
|
|
37
|
+
provider: string;
|
|
38
|
+
model: string;
|
|
39
|
+
/** The exact wire payload the provider sent, if it was recorded. */
|
|
40
|
+
request?: unknown;
|
|
41
|
+
/** NodeTool-level request args, logged when no wire payload was recorded. */
|
|
42
|
+
nodetoolArgs?: unknown;
|
|
43
|
+
error: unknown;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Log precisely what was sent to a provider when its call fails. Prefers the
|
|
47
|
+
* recorded wire payload; falls back to the NodeTool-level args. Aborted
|
|
48
|
+
* requests are skipped. The `logger` arg is for testing — production calls use
|
|
49
|
+
* the module logger.
|
|
50
|
+
*/
|
|
51
|
+
export declare function logProviderRequestFailure(params: ProviderFailureLog, logger?: Logger): void;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=provider-request-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-request-log.d.ts","sourceRoot":"","sources":["../../src/providers/provider-request-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKhE,UAAU,eAAe;IACvB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA6CD;;;;GAIG;AACH;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,YAAY,EAAE,GACd;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;CAAE,CAAC;AAEpC,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,eAAoB,GACzB,YAAY,CAiDd;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAuBD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,MAAY,GACnB,IAAI,CAeN"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Central failure logging for provider calls.
|
|
3
|
+
*
|
|
4
|
+
* When an LLM provider call fails (e.g. a 422 Unprocessable Entity), we want a
|
|
5
|
+
* precise record of what was sent — the actual wire payload, not just the
|
|
6
|
+
* opaque error. {@link logProviderRequestFailure} is invoked from
|
|
7
|
+
* `BaseProvider`'s traced wrappers so every provider gets identical, redacted,
|
|
8
|
+
* size-bounded failure logging from one place.
|
|
9
|
+
*
|
|
10
|
+
* Providers feed their exact request body via `recordRequestPayload` (see
|
|
11
|
+
* `BaseProvider`); when a provider hasn't been instrumented, the wrapper falls
|
|
12
|
+
* back to logging the NodeTool-level request args.
|
|
13
|
+
*/
|
|
14
|
+
import { createLogger } from "@nodetool-ai/config";
|
|
15
|
+
import { isNumber, isObjectLike, isString } from "@nodetool-ai/protocol";
|
|
16
|
+
const log = createLogger("nodetool.runtime.provider.request");
|
|
17
|
+
const SANITIZE_DEFAULTS = {
|
|
18
|
+
maxStringLength: 1000,
|
|
19
|
+
maxArrayLength: 200,
|
|
20
|
+
maxDepth: 12
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* A key holds a secret when its normalized form (lowercased, separators
|
|
24
|
+
* stripped) contains a secret marker or exactly names a credential field.
|
|
25
|
+
* Deliberately conservative so diagnostic fields like `max_tokens` (→
|
|
26
|
+
* "maxtokens") are never mistaken for the credential field `token`.
|
|
27
|
+
*/
|
|
28
|
+
function isSecretKey(key) {
|
|
29
|
+
const k = key.toLowerCase().replace(/[-_\s]/g, "");
|
|
30
|
+
if (k.includes("apikey") ||
|
|
31
|
+
k.includes("secret") ||
|
|
32
|
+
k.includes("password") ||
|
|
33
|
+
k.includes("passwd") ||
|
|
34
|
+
k.includes("authorization")) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return SECRET_EXACT.has(k);
|
|
38
|
+
}
|
|
39
|
+
const SECRET_EXACT = new Set([
|
|
40
|
+
"token",
|
|
41
|
+
"auth",
|
|
42
|
+
"bearer",
|
|
43
|
+
"accesstoken",
|
|
44
|
+
"refreshtoken",
|
|
45
|
+
"sessiontoken",
|
|
46
|
+
"idtoken",
|
|
47
|
+
"privatekey",
|
|
48
|
+
"credentials"
|
|
49
|
+
]);
|
|
50
|
+
function truncateString(s, max) {
|
|
51
|
+
if (s.length <= max)
|
|
52
|
+
return s;
|
|
53
|
+
return `${s.slice(0, max)}… [truncated ${s.length} chars total]`;
|
|
54
|
+
}
|
|
55
|
+
export function sanitizeForLog(value, opts = {}) {
|
|
56
|
+
const o = { ...SANITIZE_DEFAULTS, ...opts };
|
|
57
|
+
// Tracks the current DFS path (not all visited nodes) so shared-but-acyclic
|
|
58
|
+
// references aren't falsely flagged as circular.
|
|
59
|
+
const ancestors = new WeakSet();
|
|
60
|
+
function walk(v, depth) {
|
|
61
|
+
if (v === null || v === undefined)
|
|
62
|
+
return v;
|
|
63
|
+
const t = typeof v;
|
|
64
|
+
if (t === "string")
|
|
65
|
+
return truncateString(v, o.maxStringLength);
|
|
66
|
+
// SAFETY: `t` is `typeof v`, so this arm has proved v is a number/boolean.
|
|
67
|
+
if (t === "number" || t === "boolean")
|
|
68
|
+
return v;
|
|
69
|
+
if (t === "bigint")
|
|
70
|
+
return `${v.toString()}n`;
|
|
71
|
+
if (t === "function") {
|
|
72
|
+
return `[function ${v.name || "anonymous"}]`;
|
|
73
|
+
}
|
|
74
|
+
if (t === "symbol")
|
|
75
|
+
return v.toString();
|
|
76
|
+
if (v instanceof ArrayBuffer)
|
|
77
|
+
return `[binary ${v.byteLength} bytes]`;
|
|
78
|
+
if (ArrayBuffer.isView(v)) {
|
|
79
|
+
return `[binary ${v.byteLength} bytes]`;
|
|
80
|
+
}
|
|
81
|
+
if (t === "object") {
|
|
82
|
+
const obj = v;
|
|
83
|
+
if (ancestors.has(obj))
|
|
84
|
+
return "[circular]";
|
|
85
|
+
if (depth >= o.maxDepth)
|
|
86
|
+
return "[max depth exceeded]";
|
|
87
|
+
ancestors.add(obj);
|
|
88
|
+
try {
|
|
89
|
+
if (Array.isArray(v)) {
|
|
90
|
+
const out = v
|
|
91
|
+
.slice(0, o.maxArrayLength)
|
|
92
|
+
.map((item) => walk(item, depth + 1));
|
|
93
|
+
if (v.length > o.maxArrayLength) {
|
|
94
|
+
out.push(`[${v.length - o.maxArrayLength} more items truncated]`);
|
|
95
|
+
}
|
|
96
|
+
return out;
|
|
97
|
+
}
|
|
98
|
+
const out = {};
|
|
99
|
+
for (const [k, val] of Object.entries(v)) {
|
|
100
|
+
out[k] = isSecretKey(k) ? "[redacted]" : walk(val, depth + 1);
|
|
101
|
+
}
|
|
102
|
+
return out;
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
ancestors.delete(obj);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return String(v);
|
|
109
|
+
}
|
|
110
|
+
return walk(value, 0);
|
|
111
|
+
}
|
|
112
|
+
/** Caller cancellations (AbortSignal) are not provider failures — skip them. */
|
|
113
|
+
function isAbortError(error) {
|
|
114
|
+
if (!isObjectLike(error))
|
|
115
|
+
return false;
|
|
116
|
+
const name = error.name;
|
|
117
|
+
if (isString(name) && /abort/i.test(name))
|
|
118
|
+
return true;
|
|
119
|
+
const code = error.code;
|
|
120
|
+
return code === 20 || code === "ABORT_ERR";
|
|
121
|
+
}
|
|
122
|
+
function httpStatus(error) {
|
|
123
|
+
if (!isObjectLike(error))
|
|
124
|
+
return undefined;
|
|
125
|
+
const e = error;
|
|
126
|
+
if (isNumber(e.status))
|
|
127
|
+
return e.status;
|
|
128
|
+
if (isNumber(e.statusCode))
|
|
129
|
+
return e.statusCode;
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
function errorMessage(error) {
|
|
133
|
+
return error instanceof Error ? error.message : String(error);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Log precisely what was sent to a provider when its call fails. Prefers the
|
|
137
|
+
* recorded wire payload; falls back to the NodeTool-level args. Aborted
|
|
138
|
+
* requests are skipped. The `logger` arg is for testing — production calls use
|
|
139
|
+
* the module logger.
|
|
140
|
+
*/
|
|
141
|
+
export function logProviderRequestFailure(params, logger = log) {
|
|
142
|
+
if (isAbortError(params.error))
|
|
143
|
+
return;
|
|
144
|
+
const hasWire = params.request !== undefined && params.request !== null;
|
|
145
|
+
const entry = {
|
|
146
|
+
provider: params.provider,
|
|
147
|
+
model: params.model,
|
|
148
|
+
requestSource: hasWire ? "wire" : "nodetool-args",
|
|
149
|
+
error: errorMessage(params.error),
|
|
150
|
+
request: sanitizeForLog(hasWire ? params.request : params.nodetoolArgs)
|
|
151
|
+
};
|
|
152
|
+
const status = httpStatus(params.error);
|
|
153
|
+
if (status !== undefined)
|
|
154
|
+
entry.status = status;
|
|
155
|
+
logger.error("Provider request failed", entry);
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=provider-request-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-request-log.js","sourceRoot":"","sources":["../../src/providers/provider-request-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-session.d.ts","sourceRoot":"","sources":["../../src/providers/provider-session.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOvD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Stable, dependency-free 32-bit hash (FNV-1a) of a provider system prompt. */
|
|
2
|
+
export function hashSystemPrompt(prompt) {
|
|
3
|
+
let h = 0x811c9dc5;
|
|
4
|
+
for (let i = 0; i < prompt.length; i++) {
|
|
5
|
+
h ^= prompt.charCodeAt(i);
|
|
6
|
+
h = Math.imul(h, 0x01000193);
|
|
7
|
+
}
|
|
8
|
+
return (h >>> 0).toString(16);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=provider-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-session.js","sourceRoot":"","sources":["../../src/providers/provider-session.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The transport surface node packages share with their runtime provider.
|
|
3
|
+
*
|
|
4
|
+
* Reached from a node package as `@nodetool-ai/runtime/provider-transport` — a
|
|
5
|
+
* leaf entry point, so importing the retry rules does not drag in the whole
|
|
6
|
+
* runtime.
|
|
7
|
+
*/
|
|
8
|
+
export * from "./http-transport.js";
|
|
9
|
+
export * from "./image-ref.js";
|
|
10
|
+
export * from "./atlascloud-transport.js";
|
|
11
|
+
//# sourceMappingURL=provider-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-transport.d.ts","sourceRoot":"","sources":["../../src/providers/provider-transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The transport surface node packages share with their runtime provider.
|
|
3
|
+
*
|
|
4
|
+
* Reached from a node package as `@nodetool-ai/runtime/provider-transport` — a
|
|
5
|
+
* leaf entry point, so importing the retry rules does not drag in the whole
|
|
6
|
+
* runtime.
|
|
7
|
+
*/
|
|
8
|
+
export * from "./http-transport.js";
|
|
9
|
+
export * from "./image-ref.js";
|
|
10
|
+
export * from "./atlascloud-transport.js";
|
|
11
|
+
//# sourceMappingURL=provider-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-transport.js","sourceRoot":"","sources":["../../src/providers/provider-transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC"}
|
|
@@ -6,17 +6,24 @@
|
|
|
6
6
|
* and proxies all BaseProvider methods through the bridge.
|
|
7
7
|
*/
|
|
8
8
|
import { BaseProvider } from "./base-provider.js";
|
|
9
|
-
import type { LanguageModel, ImageModel, TTSModel, ASRModel, EmbeddingModel, VideoModel, Message, ProviderTool, ProviderStreamItem, StreamingAudioChunk, TextToImageParams, ImageToImageParams } from "./types.js";
|
|
10
|
-
import type {
|
|
9
|
+
import type { LanguageModel, ImageModel, TTSModel, ASRModel, EmbeddingModel, VideoModel, MusicModel, Message, ProviderTool, ProviderStreamItem, StreamingAudioChunk, TextToImageParams, ImageToImageParams, TextToSpeechParams, TextToVideoParams, ImageToVideoParams, ReferenceToVideoInputs, ReferenceToVideoParams, TextToMusicParams, EncodedAudioResult } from "./types.js";
|
|
10
|
+
import type { PythonBridgeBase } from "../python-bridge-base.js";
|
|
11
11
|
type PythonProviderOptions = Record<string, unknown> & {
|
|
12
12
|
_id: string;
|
|
13
|
-
_bridge:
|
|
13
|
+
_bridge: PythonBridgeBase;
|
|
14
|
+
/** Provider id understood by the Python worker when the public id is aliased. */
|
|
15
|
+
_bridgeProviderId?: string;
|
|
16
|
+
/** Operations advertised by the Python worker for this provider. */
|
|
17
|
+
_capabilities?: string[];
|
|
14
18
|
};
|
|
15
19
|
export declare class PythonProvider extends BaseProvider {
|
|
16
20
|
private _bridge;
|
|
17
21
|
private _pythonProviderId;
|
|
18
22
|
private _secrets;
|
|
19
|
-
|
|
23
|
+
private _supportsStreamingTTS;
|
|
24
|
+
private _supportsEncodedTTS;
|
|
25
|
+
private _workerCapabilities;
|
|
26
|
+
constructor(providerId: string, bridge: PythonBridgeBase, secrets?: Record<string, string>);
|
|
20
27
|
constructor(options: PythonProviderOptions);
|
|
21
28
|
static requiredSecrets(): string[];
|
|
22
29
|
getAvailableLanguageModels(): Promise<LanguageModel[]>;
|
|
@@ -25,6 +32,7 @@ export declare class PythonProvider extends BaseProvider {
|
|
|
25
32
|
getAvailableASRModels(): Promise<ASRModel[]>;
|
|
26
33
|
getAvailableEmbeddingModels(): Promise<EmbeddingModel[]>;
|
|
27
34
|
getAvailableVideoModels(): Promise<VideoModel[]>;
|
|
35
|
+
getAvailableMusicModels(): Promise<MusicModel[]>;
|
|
28
36
|
private _getModels;
|
|
29
37
|
generateMessage(args: {
|
|
30
38
|
messages: Message[];
|
|
@@ -49,14 +57,14 @@ export declare class PythonProvider extends BaseProvider {
|
|
|
49
57
|
audio?: Record<string, unknown>;
|
|
50
58
|
}): AsyncGenerator<ProviderStreamItem>;
|
|
51
59
|
textToImage(params: TextToImageParams): Promise<Uint8Array>;
|
|
52
|
-
imageToImage(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
imageToImage(images: Uint8Array[], params: ImageToImageParams): Promise<Uint8Array>;
|
|
61
|
+
textToVideo(params: TextToVideoParams): Promise<Uint8Array>;
|
|
62
|
+
imageToVideo(image: Uint8Array, params: ImageToVideoParams): Promise<Uint8Array>;
|
|
63
|
+
referenceToVideo(inputs: ReferenceToVideoInputs, params: ReferenceToVideoParams): Promise<Uint8Array>;
|
|
64
|
+
textToSpeech(args: TextToSpeechParams): AsyncGenerator<StreamingAudioChunk>;
|
|
65
|
+
supportsStreamingTextToSpeech(): boolean;
|
|
66
|
+
textToSpeechEncoded(args: TextToSpeechParams): Promise<EncodedAudioResult | null>;
|
|
67
|
+
textToMusic(params: TextToMusicParams): Promise<EncodedAudioResult>;
|
|
60
68
|
automaticSpeechRecognition(args: {
|
|
61
69
|
audio: Uint8Array;
|
|
62
70
|
model: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python-provider.d.ts","sourceRoot":"","sources":["../../src/providers/python-provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,QAAQ,
|
|
1
|
+
{"version":3,"file":"python-provider.d.ts","sourceRoot":"","sources":["../../src/providers/python-provider.ts"],"names":[],"mappings":"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"}
|