@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,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comfy Cloud Provider — the registry entry behind the `COMFY_API_KEY` secret.
|
|
3
|
+
*
|
|
4
|
+
* It runs no generation itself. The `lib.comfy` nodes submit ComfyUI graphs to
|
|
5
|
+
* cloud.comfy.org through the Comfy SDK and do all the work; this class exists
|
|
6
|
+
* for what registration gives every provider: credential resolution, the
|
|
7
|
+
* settings card in Settings → Models & Providers, `isProviderConfigured`,
|
|
8
|
+
* `getContainerEnv` for deployments, and a provider id to write on cost
|
|
9
|
+
* records.
|
|
10
|
+
*
|
|
11
|
+
* No `getAvailable*Models` overrides. The Comfy API v2 enumerates no models —
|
|
12
|
+
* a ComfyUI graph names its own checkpoints — so the derived capability list
|
|
13
|
+
* is deliberately just chat's two entries, and chat itself throws.
|
|
14
|
+
*
|
|
15
|
+
* The same key authenticates partner API nodes inside a submitted graph, which
|
|
16
|
+
* the SDK passes as `extra_data.api_key_comfy_org`.
|
|
17
|
+
*
|
|
18
|
+
* API keys: https://platform.comfy.org
|
|
19
|
+
*/
|
|
20
|
+
import { BaseProvider } from "./base-provider.js";
|
|
21
|
+
import { PROVIDER_IDS } from "@nodetool-ai/protocol";
|
|
22
|
+
export class ComfyCloudProvider extends BaseProvider {
|
|
23
|
+
apiKey;
|
|
24
|
+
static requiredSecrets() {
|
|
25
|
+
return ["COMFY_API_KEY"];
|
|
26
|
+
}
|
|
27
|
+
constructor(secrets = {}) {
|
|
28
|
+
super(PROVIDER_IDS.COMFY_CLOUD);
|
|
29
|
+
this.apiKey = secrets["COMFY_API_KEY"] ?? "";
|
|
30
|
+
}
|
|
31
|
+
getContainerEnv() {
|
|
32
|
+
return { COMFY_API_KEY: this.apiKey };
|
|
33
|
+
}
|
|
34
|
+
async generateMessage(_args) {
|
|
35
|
+
throw new Error("comfy_cloud does not support chat generation");
|
|
36
|
+
}
|
|
37
|
+
// eslint-disable-next-line require-yield
|
|
38
|
+
async *generateMessages(_args) {
|
|
39
|
+
throw new Error("comfy_cloud does not support chat generation");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=comfy-cloud-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comfy-cloud-provider.js","sourceRoot":"","sources":["../../src/providers/comfy-cloud-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IACjC,MAAM,CAAS;IAEhC,MAAM,CAAU,eAAe;QAC7B,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY,OAAO,GAA4B,EAAE;QAC/C,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAI,OAAO,CAAC,eAAe,CAAY,IAAI,EAAE,CAAC;IAC3D,CAAC;IAEQ,eAAe;QACtB,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAqD;QAErD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,CAAC,gBAAgB,CACrB,KAAsD;QAEtD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content-filter refusals, as a class apart from hard errors.
|
|
3
|
+
*
|
|
4
|
+
* Veo 3.1 filtered one shot of a five-shot trailer on an ordinary cinematic
|
|
5
|
+
* prompt ("a lighthouse in a storm"), the same prompt passed on retry, and the
|
|
6
|
+
* blocked take was not charged. Classified as a hard error, that refusal fails
|
|
7
|
+
* the node, fails the run, and discards the four shots already generated and
|
|
8
|
+
* paid for.
|
|
9
|
+
*
|
|
10
|
+
* So a refusal gets its own class. `ProcessingContext.runProviderPrediction`
|
|
11
|
+
* retries it a bounded number of times, and the kernel actor drops the item
|
|
12
|
+
* instead of the run when the invocation is one item of a fan-out.
|
|
13
|
+
*
|
|
14
|
+
* A provider that gives us structured evidence (Veo's `raiMediaFilteredReasons`)
|
|
15
|
+
* throws the class directly. For the rest, {@link isContentFilterRefusal}
|
|
16
|
+
* matches the message text, because that is all a provider hands back.
|
|
17
|
+
*/
|
|
18
|
+
/** Extra attempts after a refusal, before the refusal reaches the node. */
|
|
19
|
+
export declare const CONTENT_FILTER_MAX_RETRIES = 2;
|
|
20
|
+
/** Delay before attempt N+1 after a refusal. */
|
|
21
|
+
export declare function contentFilterRetryDelayMs(attempt: number): number;
|
|
22
|
+
/**
|
|
23
|
+
* A provider refused to generate because its content filter rejected the
|
|
24
|
+
* prompt or the result. Not a failure of the request — the same request often
|
|
25
|
+
* succeeds on a retry.
|
|
26
|
+
*/
|
|
27
|
+
export declare class ContentFilterRefusal extends Error {
|
|
28
|
+
/** Provider id as the runtime knows it (e.g. `gemini`). */
|
|
29
|
+
readonly provider?: string;
|
|
30
|
+
readonly model?: string;
|
|
31
|
+
/** Provider-supplied reason codes, when it gives any. */
|
|
32
|
+
readonly reasons?: readonly string[];
|
|
33
|
+
constructor(message: string, opts?: {
|
|
34
|
+
provider?: string;
|
|
35
|
+
model?: string;
|
|
36
|
+
reasons?: readonly string[];
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/** True for {@link ContentFilterRefusal} from any copy of this package. */
|
|
40
|
+
export declare function isContentFilterRefusalError(error: unknown): error is ContentFilterRefusal;
|
|
41
|
+
/**
|
|
42
|
+
* True when this failure is a content-filter refusal — the class, or a message
|
|
43
|
+
* carrying one of the phrasings providers use for it.
|
|
44
|
+
*/
|
|
45
|
+
export declare function isContentFilterRefusal(error: unknown): boolean;
|
|
46
|
+
//# sourceMappingURL=content-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-filter.d.ts","sourceRoot":"","sources":["../../src/providers/content-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,gDAAgD;AAChD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAErC,YACE,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACxB,EAOP;CACF;AA6BD,2EAA2E;AAC3E,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oBAAoB,CAE/B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI9D"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content-filter refusals, as a class apart from hard errors.
|
|
3
|
+
*
|
|
4
|
+
* Veo 3.1 filtered one shot of a five-shot trailer on an ordinary cinematic
|
|
5
|
+
* prompt ("a lighthouse in a storm"), the same prompt passed on retry, and the
|
|
6
|
+
* blocked take was not charged. Classified as a hard error, that refusal fails
|
|
7
|
+
* the node, fails the run, and discards the four shots already generated and
|
|
8
|
+
* paid for.
|
|
9
|
+
*
|
|
10
|
+
* So a refusal gets its own class. `ProcessingContext.runProviderPrediction`
|
|
11
|
+
* retries it a bounded number of times, and the kernel actor drops the item
|
|
12
|
+
* instead of the run when the invocation is one item of a fan-out.
|
|
13
|
+
*
|
|
14
|
+
* A provider that gives us structured evidence (Veo's `raiMediaFilteredReasons`)
|
|
15
|
+
* throws the class directly. For the rest, {@link isContentFilterRefusal}
|
|
16
|
+
* matches the message text, because that is all a provider hands back.
|
|
17
|
+
*/
|
|
18
|
+
import { isObjectLike, isString } from "@nodetool-ai/protocol";
|
|
19
|
+
/** Extra attempts after a refusal, before the refusal reaches the node. */
|
|
20
|
+
export const CONTENT_FILTER_MAX_RETRIES = 2;
|
|
21
|
+
/** Delay before attempt N+1 after a refusal. */
|
|
22
|
+
export function contentFilterRetryDelayMs(attempt) {
|
|
23
|
+
return Math.min(1_000 * 2 ** (attempt - 1), 8_000);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A provider refused to generate because its content filter rejected the
|
|
27
|
+
* prompt or the result. Not a failure of the request — the same request often
|
|
28
|
+
* succeeds on a retry.
|
|
29
|
+
*/
|
|
30
|
+
export class ContentFilterRefusal extends Error {
|
|
31
|
+
/** Provider id as the runtime knows it (e.g. `gemini`). */
|
|
32
|
+
provider;
|
|
33
|
+
model;
|
|
34
|
+
/** Provider-supplied reason codes, when it gives any. */
|
|
35
|
+
reasons;
|
|
36
|
+
constructor(message, opts = {}) {
|
|
37
|
+
super(message);
|
|
38
|
+
this.name = "ContentFilterRefusal";
|
|
39
|
+
this.provider = opts.provider;
|
|
40
|
+
this.model = opts.model;
|
|
41
|
+
this.reasons = opts.reasons;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Phrasings providers use when their filter — not the request — is what
|
|
46
|
+
* failed. Each entry names the provider it came from.
|
|
47
|
+
*/
|
|
48
|
+
const REFUSAL_PATTERNS = [
|
|
49
|
+
// Google Veo / Vertex RAI: "... videos were filtered out because they
|
|
50
|
+
// violated Vertex AI's usage guidelines", and the raw response field.
|
|
51
|
+
/filtered out because .*violat/i,
|
|
52
|
+
/\brai[_ ]?(?:media[_ ]?)?filtered/i,
|
|
53
|
+
// Gemini text and image: blocked prompt / blocked candidate.
|
|
54
|
+
/\bPROHIBITED_CONTENT\b/,
|
|
55
|
+
/blocked (?:due to|by) (?:the )?safety/i,
|
|
56
|
+
// OpenAI images and moderation.
|
|
57
|
+
/rejected as a result of our safety system/i,
|
|
58
|
+
/\bcontent[_ ]policy[_ ]violation\b/i,
|
|
59
|
+
/\bmoderation_blocked\b/i,
|
|
60
|
+
// Azure OpenAI.
|
|
61
|
+
/content management policy/i,
|
|
62
|
+
// FAL / Replicate / KIE image and video models.
|
|
63
|
+
/\bnsfw\b[^.]*\bdetect/i,
|
|
64
|
+
/flagged as sensitive/i,
|
|
65
|
+
/\bsensitive words?\b/i,
|
|
66
|
+
// Phrasings shared across providers.
|
|
67
|
+
/\b(?:content|safety) filters?\b/i,
|
|
68
|
+
/violates? (?:our |the )?(?:content|usage) (?:polic|guideline)/i
|
|
69
|
+
];
|
|
70
|
+
/** True for {@link ContentFilterRefusal} from any copy of this package. */
|
|
71
|
+
export function isContentFilterRefusalError(error) {
|
|
72
|
+
return error instanceof Error && error.name === "ContentFilterRefusal";
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* True when this failure is a content-filter refusal — the class, or a message
|
|
76
|
+
* carrying one of the phrasings providers use for it.
|
|
77
|
+
*/
|
|
78
|
+
export function isContentFilterRefusal(error) {
|
|
79
|
+
if (isContentFilterRefusalError(error))
|
|
80
|
+
return true;
|
|
81
|
+
const message = refusalText(error);
|
|
82
|
+
return message !== "" && REFUSAL_PATTERNS.some((p) => p.test(message));
|
|
83
|
+
}
|
|
84
|
+
function refusalText(error) {
|
|
85
|
+
if (isString(error))
|
|
86
|
+
return error;
|
|
87
|
+
if (isObjectLike(error) && "message" in error && isString(error.message)) {
|
|
88
|
+
return error.message;
|
|
89
|
+
}
|
|
90
|
+
return "";
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=content-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-filter.js","sourceRoot":"","sources":["../../src/providers/content-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE/D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAE5C,gDAAgD;AAChD,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,2DAA2D;IAClD,QAAQ,CAAU;IAClB,KAAK,CAAU;IACxB,yDAAyD;IAChD,OAAO,CAAqB;IAErC,YACE,OAAe,EACf,IAAI,GAIA,EAAE;QAEN,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,gBAAgB,GAAsB;IAC1C,sEAAsE;IACtE,sEAAsE;IACtE,gCAAgC;IAChC,oCAAoC;IACpC,6DAA6D;IAC7D,wBAAwB;IACxB,wCAAwC;IACxC,gCAAgC;IAChC,4CAA4C;IAC5C,qCAAqC;IACrC,yBAAyB;IACzB,gBAAgB;IAChB,4BAA4B;IAC5B,gDAAgD;IAChD,wBAAwB;IACxB,uBAAuB;IACvB,uBAAuB;IACvB,qCAAqC;IACrC,kCAAkC;IAClC,gEAAgE;CACjE,CAAC;AAEF,2EAA2E;AAC3E,MAAM,UAAU,2BAA2B,CACzC,KAAc;IAEd,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,2BAA2B,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,OAAO,KAAK,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,SAAS,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recognizing "the prompt did not fit the model's context window".
|
|
3
|
+
*
|
|
4
|
+
* Each provider reports the overflow its own way, and a caller that cannot tell
|
|
5
|
+
* it apart from any other failure has nothing to do but hand the user a
|
|
6
|
+
* provider error they cannot act on. Mapping every provider's signal onto one
|
|
7
|
+
* code is what lets the caller shorten the transcript and try again.
|
|
8
|
+
*
|
|
9
|
+
* A recognizer takes what its provider produces on that failure — the parsed
|
|
10
|
+
* error body from the wire, or the `Error` the provider threw carrying it — and
|
|
11
|
+
* names the signal that fired, so a check can tell a match on the provider's
|
|
12
|
+
* documented field apart from a match on its English message text.
|
|
13
|
+
*
|
|
14
|
+
* Where the signals come from:
|
|
15
|
+
* - **Anthropic**: `stop_reason: "model_context_window_exceeded"` (the SDK's
|
|
16
|
+
* `BetaStopReason` union) when generation runs into the window, and a 400
|
|
17
|
+
* `invalid_request_error` reading "prompt is too long" when the input alone
|
|
18
|
+
* overflows it. Both are stated in the Claude API's "Context window overflow
|
|
19
|
+
* behavior". Older models answer the same overflow with "input length and
|
|
20
|
+
* `max_tokens` exceed context limit".
|
|
21
|
+
* - **OpenAI**: `error.code: "context_length_exceeded"` on a 400
|
|
22
|
+
* `invalid_request_error`; the `openai` SDK lifts that field onto
|
|
23
|
+
* `APIError.code`. The message reads "This model's maximum context length
|
|
24
|
+
* is …".
|
|
25
|
+
* - **Gemini**: HTTP 400 `INVALID_ARGUMENT` whose message reads "The input
|
|
26
|
+
* token count (N) exceeds the maximum number of tokens allowed (M)". Google's
|
|
27
|
+
* error reference enumerates no code for it, so the message is the signal.
|
|
28
|
+
*/
|
|
29
|
+
/** Which of a provider's signals identified the overflow. */
|
|
30
|
+
export type ContextExceededSignal = "stop_reason" | "error_code" | "message";
|
|
31
|
+
/** @see {@link ContextExceededSignal} for what the return value names. */
|
|
32
|
+
export declare function anthropicContextExceeded(raw: unknown): ContextExceededSignal | null;
|
|
33
|
+
/** @see {@link ContextExceededSignal} for what the return value names. */
|
|
34
|
+
export declare function openAIContextExceeded(raw: unknown): ContextExceededSignal | null;
|
|
35
|
+
/** @see {@link ContextExceededSignal} for what the return value names. */
|
|
36
|
+
export declare function geminiContextExceeded(raw: unknown): ContextExceededSignal | null;
|
|
37
|
+
//# sourceMappingURL=context-exceeded.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-exceeded.d.ts","sourceRoot":"","sources":["../../src/providers/context-exceeded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,6DAA6D;AAC7D,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;AAqC7E,0EAA0E;AAC1E,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,OAAO,GACX,qBAAqB,GAAG,IAAI,CAQ9B;AAKD,0EAA0E;AAC1E,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,GACX,qBAAqB,GAAG,IAAI,CAK9B;AA+BD,0EAA0E;AAC1E,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,GACX,qBAAqB,GAAG,IAAI,CAG9B"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recognizing "the prompt did not fit the model's context window".
|
|
3
|
+
*
|
|
4
|
+
* Each provider reports the overflow its own way, and a caller that cannot tell
|
|
5
|
+
* it apart from any other failure has nothing to do but hand the user a
|
|
6
|
+
* provider error they cannot act on. Mapping every provider's signal onto one
|
|
7
|
+
* code is what lets the caller shorten the transcript and try again.
|
|
8
|
+
*
|
|
9
|
+
* A recognizer takes what its provider produces on that failure — the parsed
|
|
10
|
+
* error body from the wire, or the `Error` the provider threw carrying it — and
|
|
11
|
+
* names the signal that fired, so a check can tell a match on the provider's
|
|
12
|
+
* documented field apart from a match on its English message text.
|
|
13
|
+
*
|
|
14
|
+
* Where the signals come from:
|
|
15
|
+
* - **Anthropic**: `stop_reason: "model_context_window_exceeded"` (the SDK's
|
|
16
|
+
* `BetaStopReason` union) when generation runs into the window, and a 400
|
|
17
|
+
* `invalid_request_error` reading "prompt is too long" when the input alone
|
|
18
|
+
* overflows it. Both are stated in the Claude API's "Context window overflow
|
|
19
|
+
* behavior". Older models answer the same overflow with "input length and
|
|
20
|
+
* `max_tokens` exceed context limit".
|
|
21
|
+
* - **OpenAI**: `error.code: "context_length_exceeded"` on a 400
|
|
22
|
+
* `invalid_request_error`; the `openai` SDK lifts that field onto
|
|
23
|
+
* `APIError.code`. The message reads "This model's maximum context length
|
|
24
|
+
* is …".
|
|
25
|
+
* - **Gemini**: HTTP 400 `INVALID_ARGUMENT` whose message reads "The input
|
|
26
|
+
* token count (N) exceeds the maximum number of tokens allowed (M)". Google's
|
|
27
|
+
* error reference enumerates no code for it, so the message is the signal.
|
|
28
|
+
*/
|
|
29
|
+
import { isRecord, isString } from "@nodetool-ai/protocol";
|
|
30
|
+
function stringField(source, key) {
|
|
31
|
+
const value = source[key];
|
|
32
|
+
return isString(value) ? value : "";
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The fields to test, read from either shape a recognizer is handed: a parsed
|
|
36
|
+
* response body, which nests the failure under `error`, or an SDK error object,
|
|
37
|
+
* which carries that nested body on `.error` and lifts `code` onto itself.
|
|
38
|
+
*/
|
|
39
|
+
function failureFields(raw) {
|
|
40
|
+
const roots = [];
|
|
41
|
+
if (isRecord(raw)) {
|
|
42
|
+
roots.push(raw);
|
|
43
|
+
if (isRecord(raw.error))
|
|
44
|
+
roots.push(raw.error);
|
|
45
|
+
}
|
|
46
|
+
const fields = { message: "", code: "", stopReason: "" };
|
|
47
|
+
for (const root of roots) {
|
|
48
|
+
fields.message = fields.message || stringField(root, "message");
|
|
49
|
+
fields.code = fields.code || stringField(root, "code");
|
|
50
|
+
fields.stopReason = fields.stopReason || stringField(root, "stop_reason");
|
|
51
|
+
}
|
|
52
|
+
return fields;
|
|
53
|
+
}
|
|
54
|
+
const ANTHROPIC_STOP_REASON = "model_context_window_exceeded";
|
|
55
|
+
const ANTHROPIC_OVERFLOW = /prompt is too long|exceed context limit|exceeds context limit/i;
|
|
56
|
+
/** @see {@link ContextExceededSignal} for what the return value names. */
|
|
57
|
+
export function anthropicContextExceeded(raw) {
|
|
58
|
+
const { message, stopReason } = failureFields(raw);
|
|
59
|
+
// The provider turns that stop reason into an error of its own, so the name
|
|
60
|
+
// is matched in text as well as in the field it arrived on.
|
|
61
|
+
if (stopReason === ANTHROPIC_STOP_REASON)
|
|
62
|
+
return "stop_reason";
|
|
63
|
+
if (message.includes(ANTHROPIC_STOP_REASON))
|
|
64
|
+
return "stop_reason";
|
|
65
|
+
if (ANTHROPIC_OVERFLOW.test(message))
|
|
66
|
+
return "message";
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
const OPENAI_ERROR_CODE = "context_length_exceeded";
|
|
70
|
+
const OPENAI_OVERFLOW = /maximum context length|context window of this model/i;
|
|
71
|
+
/** @see {@link ContextExceededSignal} for what the return value names. */
|
|
72
|
+
export function openAIContextExceeded(raw) {
|
|
73
|
+
const { message, code } = failureFields(raw);
|
|
74
|
+
if (code === OPENAI_ERROR_CODE)
|
|
75
|
+
return "error_code";
|
|
76
|
+
if (OPENAI_OVERFLOW.test(message))
|
|
77
|
+
return "message";
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
const GEMINI_MAX_TOKENS = "exceeds the maximum number of tokens allowed";
|
|
81
|
+
const GEMINI_TOKEN_COUNT = "input token count";
|
|
82
|
+
const GEMINI_EXCEEDS = "exceeds";
|
|
83
|
+
/**
|
|
84
|
+
* Gemini's overflow message, scanned rather than matched with a pattern.
|
|
85
|
+
*
|
|
86
|
+
* The wildcard form of this — `input token count[^.]*exceeds` — is quadratic on
|
|
87
|
+
* a message that repeats "input token count" and never says "exceeds": each
|
|
88
|
+
* repetition is another start position from which the engine runs to the end
|
|
89
|
+
* and backtracks. On 20 000 repetitions it takes ten seconds. The message is
|
|
90
|
+
* provider text, so its shape is not ours to bound, which is why the pattern is
|
|
91
|
+
* replaced rather than annotated.
|
|
92
|
+
*
|
|
93
|
+
* Scanning says the same thing in linear time: the count and the verb in one
|
|
94
|
+
* sentence. Only the first occurrence is considered, which is the one in the
|
|
95
|
+
* message Google documents; walking every occurrence would restore the
|
|
96
|
+
* quadratic scan this exists to remove.
|
|
97
|
+
*/
|
|
98
|
+
function geminiOverflowMessage(message) {
|
|
99
|
+
const text = message.toLowerCase();
|
|
100
|
+
if (text.includes(GEMINI_MAX_TOKENS))
|
|
101
|
+
return true;
|
|
102
|
+
const start = text.indexOf(GEMINI_TOKEN_COUNT);
|
|
103
|
+
if (start === -1)
|
|
104
|
+
return false;
|
|
105
|
+
const rest = text.slice(start + GEMINI_TOKEN_COUNT.length);
|
|
106
|
+
const stop = rest.indexOf(".");
|
|
107
|
+
return (stop === -1 ? rest : rest.slice(0, stop)).includes(GEMINI_EXCEEDS);
|
|
108
|
+
}
|
|
109
|
+
/** @see {@link ContextExceededSignal} for what the return value names. */
|
|
110
|
+
export function geminiContextExceeded(raw) {
|
|
111
|
+
const { message } = failureFields(raw);
|
|
112
|
+
return geminiOverflowMessage(message) ? "message" : null;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=context-exceeded.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-exceeded.js","sourceRoot":"","sources":["../../src/providers/context-exceeded.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many input tokens a provider route accepts for one model.
|
|
3
|
+
*
|
|
4
|
+
* Chat compaction fires at a fraction of this number, so a wrong answer is a
|
|
5
|
+
* thread that either compacts far too early (a 1M window treated as 200k) or
|
|
6
|
+
* never compacts before the provider refuses it. The sources, most trusted
|
|
7
|
+
* first:
|
|
8
|
+
*
|
|
9
|
+
* 1. The provider's own Models API ({@link BaseProvider.getContextWindow}),
|
|
10
|
+
* e.g. Anthropic's `max_input_tokens`, which also reflects the betas the
|
|
11
|
+
* provider sends with every request.
|
|
12
|
+
* 2. models.dev, keyed by provider route and model. The same model has
|
|
13
|
+
* different limits on different routes, so a model id alone is never
|
|
14
|
+
* looked up across providers.
|
|
15
|
+
* 3. {@link CONTEXT_WINDOW_FALLBACK}, logged as a warning, when neither knows.
|
|
16
|
+
*/
|
|
17
|
+
import type { BaseProvider } from "./base-provider.js";
|
|
18
|
+
/**
|
|
19
|
+
* Window assumed when no source knows the model. Conservative on purpose: an
|
|
20
|
+
* early compaction costs one summarizer call, a late one costs the turn.
|
|
21
|
+
*/
|
|
22
|
+
export declare const CONTEXT_WINDOW_FALLBACK = 128000;
|
|
23
|
+
export declare const MODELS_DEV_URL = "https://models.dev/api.json";
|
|
24
|
+
/** Drop the cached models.dev catalog. Tests use it between cases. */
|
|
25
|
+
export declare function resetModelsDevCache(): void;
|
|
26
|
+
/**
|
|
27
|
+
* The input limit models.dev lists for one model on one provider route, or
|
|
28
|
+
* null. `limit.input` is preferred over `limit.context` because a route that
|
|
29
|
+
* reserves part of the window for output lists the smaller number as input.
|
|
30
|
+
*/
|
|
31
|
+
export declare function modelsDevContextWindow(providerId: string, model: string, fetchFn?: typeof fetch): Promise<number | null>;
|
|
32
|
+
export type ContextWindowSource = "provider" | "models.dev" | "fallback";
|
|
33
|
+
export interface ContextWindow {
|
|
34
|
+
tokens: number;
|
|
35
|
+
source: ContextWindowSource;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve the input window for `model` on `provider`. Never throws: every
|
|
39
|
+
* source is best-effort, and the last one is a constant.
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveContextWindow(provider: BaseProvider, model: string, options?: {
|
|
42
|
+
fetchFn?: typeof fetch;
|
|
43
|
+
}): Promise<ContextWindow>;
|
|
44
|
+
//# sourceMappingURL=context-window.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-window.d.ts","sourceRoot":"","sources":["../../src/providers/context-window.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAE/C,eAAO,MAAM,cAAc,gCAAgC,CAAC;AA8C5D,sEAAsE;AACtE,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAyCD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,OAAO,KAAyC,GACxD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;AAEzE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GACvC,OAAO,CAAC,aAAa,CAAC,CA2BxB"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many input tokens a provider route accepts for one model.
|
|
3
|
+
*
|
|
4
|
+
* Chat compaction fires at a fraction of this number, so a wrong answer is a
|
|
5
|
+
* thread that either compacts far too early (a 1M window treated as 200k) or
|
|
6
|
+
* never compacts before the provider refuses it. The sources, most trusted
|
|
7
|
+
* first:
|
|
8
|
+
*
|
|
9
|
+
* 1. The provider's own Models API ({@link BaseProvider.getContextWindow}),
|
|
10
|
+
* e.g. Anthropic's `max_input_tokens`, which also reflects the betas the
|
|
11
|
+
* provider sends with every request.
|
|
12
|
+
* 2. models.dev, keyed by provider route and model. The same model has
|
|
13
|
+
* different limits on different routes, so a model id alone is never
|
|
14
|
+
* looked up across providers.
|
|
15
|
+
* 3. {@link CONTEXT_WINDOW_FALLBACK}, logged as a warning, when neither knows.
|
|
16
|
+
*/
|
|
17
|
+
import { createLogger } from "@nodetool-ai/config";
|
|
18
|
+
import { PROVIDER_IDS } from "@nodetool-ai/protocol";
|
|
19
|
+
const log = createLogger("nodetool.runtime.providers.context-window");
|
|
20
|
+
/**
|
|
21
|
+
* Window assumed when no source knows the model. Conservative on purpose: an
|
|
22
|
+
* early compaction costs one summarizer call, a late one costs the turn.
|
|
23
|
+
*/
|
|
24
|
+
export const CONTEXT_WINDOW_FALLBACK = 128_000;
|
|
25
|
+
export const MODELS_DEV_URL = "https://models.dev/api.json";
|
|
26
|
+
/** How long a fetched catalog is trusted before it is fetched again. */
|
|
27
|
+
const CATALOG_TTL_MS = 24 * 60 * 60 * 1000;
|
|
28
|
+
/** How long a failed fetch is remembered, so an offline machine is not retried every turn. */
|
|
29
|
+
const CATALOG_FAILURE_TTL_MS = 10 * 60 * 1000;
|
|
30
|
+
const CATALOG_TIMEOUT_MS = 5_000;
|
|
31
|
+
/**
|
|
32
|
+
* NodeTool provider id → models.dev provider key, for the ids that differ or
|
|
33
|
+
* that models.dev lists. A provider missing here has no route entry there
|
|
34
|
+
* (local runtimes, NodeTool's own managed models) and falls through.
|
|
35
|
+
*/
|
|
36
|
+
const MODELS_DEV_PROVIDER = {
|
|
37
|
+
[PROVIDER_IDS.OPENAI]: "openai",
|
|
38
|
+
[PROVIDER_IDS.ANTHROPIC]: "anthropic",
|
|
39
|
+
[PROVIDER_IDS.GEMINI]: "google",
|
|
40
|
+
[PROVIDER_IDS.GROQ]: "groq",
|
|
41
|
+
[PROVIDER_IDS.MISTRAL]: "mistral",
|
|
42
|
+
[PROVIDER_IDS.MOONSHOT]: "moonshotai",
|
|
43
|
+
[PROVIDER_IDS.MINIMAX]: "minimax",
|
|
44
|
+
[PROVIDER_IDS.DEEPSEEK]: "deepseek",
|
|
45
|
+
[PROVIDER_IDS.XAI]: "xai",
|
|
46
|
+
[PROVIDER_IDS.COHERE]: "cohere",
|
|
47
|
+
[PROVIDER_IDS.OPENROUTER]: "openrouter",
|
|
48
|
+
[PROVIDER_IDS.TOGETHER]: "togetherai",
|
|
49
|
+
[PROVIDER_IDS.ALIBABA]: "alibaba",
|
|
50
|
+
[PROVIDER_IDS.CEREBRAS]: "cerebras",
|
|
51
|
+
[PROVIDER_IDS.META]: "llama",
|
|
52
|
+
[PROVIDER_IDS.HUGGINGFACE]: "huggingface"
|
|
53
|
+
};
|
|
54
|
+
let catalogCache = null;
|
|
55
|
+
let catalogInFlight = null;
|
|
56
|
+
/** Drop the cached models.dev catalog. Tests use it between cases. */
|
|
57
|
+
export function resetModelsDevCache() {
|
|
58
|
+
catalogCache = null;
|
|
59
|
+
catalogInFlight = null;
|
|
60
|
+
}
|
|
61
|
+
async function loadModelsDevCatalog(fetchFn) {
|
|
62
|
+
if (catalogCache && catalogCache.expires > Date.now()) {
|
|
63
|
+
return catalogCache.catalog;
|
|
64
|
+
}
|
|
65
|
+
if (catalogInFlight)
|
|
66
|
+
return catalogInFlight;
|
|
67
|
+
catalogInFlight = (async () => {
|
|
68
|
+
try {
|
|
69
|
+
const response = await fetchFn(MODELS_DEV_URL, {
|
|
70
|
+
signal: AbortSignal.timeout(CATALOG_TIMEOUT_MS)
|
|
71
|
+
});
|
|
72
|
+
if (!response.ok)
|
|
73
|
+
throw new Error(`HTTP ${response.status}`);
|
|
74
|
+
const catalog = (await response.json());
|
|
75
|
+
catalogCache = { catalog, expires: Date.now() + CATALOG_TTL_MS };
|
|
76
|
+
return catalog;
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
log.warn("models.dev catalog unavailable", {
|
|
80
|
+
error: err instanceof Error ? err.message : String(err)
|
|
81
|
+
});
|
|
82
|
+
catalogCache = {
|
|
83
|
+
catalog: null,
|
|
84
|
+
expires: Date.now() + CATALOG_FAILURE_TTL_MS
|
|
85
|
+
};
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
catalogInFlight = null;
|
|
90
|
+
}
|
|
91
|
+
})();
|
|
92
|
+
return catalogInFlight;
|
|
93
|
+
}
|
|
94
|
+
/** A positive integer token count, or null for anything else. */
|
|
95
|
+
function tokenCount(value) {
|
|
96
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0
|
|
97
|
+
? Math.floor(value)
|
|
98
|
+
: null;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The input limit models.dev lists for one model on one provider route, or
|
|
102
|
+
* null. `limit.input` is preferred over `limit.context` because a route that
|
|
103
|
+
* reserves part of the window for output lists the smaller number as input.
|
|
104
|
+
*/
|
|
105
|
+
export async function modelsDevContextWindow(providerId, model, fetchFn = globalThis.fetch.bind(globalThis)) {
|
|
106
|
+
const route = MODELS_DEV_PROVIDER[providerId];
|
|
107
|
+
if (!route)
|
|
108
|
+
return null;
|
|
109
|
+
const catalog = await loadModelsDevCatalog(fetchFn);
|
|
110
|
+
const models = catalog?.[route]?.models;
|
|
111
|
+
if (!models)
|
|
112
|
+
return null;
|
|
113
|
+
const entry = models[model] ?? models[model.replace(/^models\//, "")];
|
|
114
|
+
return tokenCount(entry?.limit?.input) ?? tokenCount(entry?.limit?.context);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Resolve the input window for `model` on `provider`. Never throws: every
|
|
118
|
+
* source is best-effort, and the last one is a constant.
|
|
119
|
+
*/
|
|
120
|
+
export async function resolveContextWindow(provider, model, options = {}) {
|
|
121
|
+
try {
|
|
122
|
+
const fromProvider = tokenCount(await provider.getContextWindow(model));
|
|
123
|
+
if (fromProvider !== null) {
|
|
124
|
+
return { tokens: fromProvider, source: "provider" };
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
log.debug("Provider context window lookup failed", {
|
|
129
|
+
provider: provider.provider,
|
|
130
|
+
model,
|
|
131
|
+
error: err instanceof Error ? err.message : String(err)
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
const fromCatalog = await modelsDevContextWindow(provider.provider, model, options.fetchFn);
|
|
135
|
+
if (fromCatalog !== null) {
|
|
136
|
+
return { tokens: fromCatalog, source: "models.dev" };
|
|
137
|
+
}
|
|
138
|
+
log.warn("Context window unknown; assuming the fallback", {
|
|
139
|
+
provider: provider.provider,
|
|
140
|
+
model,
|
|
141
|
+
tokens: CONTEXT_WINDOW_FALLBACK
|
|
142
|
+
});
|
|
143
|
+
return { tokens: CONTEXT_WINDOW_FALLBACK, source: "fallback" };
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=context-window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-window.js","sourceRoot":"","sources":["../../src/providers/context-window.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,MAAM,GAAG,GAAG,YAAY,CAAC,2CAA2C,CAAC,CAAC;AAEtE;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAG,6BAA6B,CAAC;AAE5D,wEAAwE;AACxE,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,8FAA8F;AAC9F,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC9C,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC;;;;GAIG;AACH,MAAM,mBAAmB,GAAqC;IAC5D,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC/B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,WAAW;IACrC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC/B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,SAAS;IACjC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,YAAY;IACrC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,SAAS;IACjC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU;IACnC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK;IACzB,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC/B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,YAAY;IACvC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,YAAY;IACrC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,SAAS;IACjC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU;IACnC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO;IAC5B,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,aAAa;CAC1C,CAAC;AAUF,IAAI,YAAY,GAGL,IAAI,CAAC;AAChB,IAAI,eAAe,GAA4C,IAAI,CAAC;AAEpE,sEAAsE;AACtE,MAAM,UAAU,mBAAmB;IACjC,YAAY,GAAG,IAAI,CAAC;IACpB,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,OAAqB;IAErB,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACtD,OAAO,YAAY,CAAC,OAAO,CAAC;IAC9B,CAAC;IACD,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC;IAC5C,eAAe,GAAG,CAAC,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE;gBAC7C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;aAChD,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqB,CAAC;YAC5D,YAAY,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;YACjE,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE;gBACzC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,YAAY,GAAG;gBACb,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,sBAAsB;aAC7C,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,eAAe,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,iEAAiE;AACjE,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAkB,EAClB,KAAa,EACb,OAAO,GAAiB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;IAEzD,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AASD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAsB,EACtB,KAAa,EACb,OAAO,GAA+B,EAAE;IAExC,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE;YACjD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,KAAK;YACL,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAC9C,QAAQ,CAAC,QAAQ,EACjB,KAAK,EACL,OAAO,CAAC,OAAO,CAChB,CAAC;IACF,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACvD,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,+CAA+C,EAAE;QACxD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,KAAK;QACL,MAAM,EAAE,uBAAuB;KAChC,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { PROBE_MANIFEST, probeProviders, type LiveProbeSpec, type ProbeManifestEntry, type ProbeProvider } from "./probe-manifest.js";
|
|
2
|
+
export { formatProbeReport, runProbes, type ProbeReport, type ProbeResult, type ProbeStatus, type RunProbesOptions } from "./probe-runner.js";
|
|
3
|
+
export { redactText, summarizeShape, SHAPE_LITERAL_KEYS } from "./redact.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EAIf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,SAAS,EAKV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
|