@nodetool-ai/runtime 0.7.0-rc.23 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/agent-memory.d.ts +118 -0
- package/dist/agent-memory.d.ts.map +1 -0
- package/dist/agent-memory.js +186 -0
- package/dist/agent-memory.js.map +1 -0
- package/dist/async-local-storage.d.ts +20 -0
- package/dist/async-local-storage.d.ts.map +1 -0
- package/dist/async-local-storage.js +28 -0
- package/dist/async-local-storage.js.map +1 -0
- package/dist/blender-executor.d.ts +93 -0
- package/dist/blender-executor.d.ts.map +1 -0
- package/dist/blender-executor.js +294 -0
- package/dist/blender-executor.js.map +1 -0
- package/dist/comfy-executor.d.ts +23 -1
- package/dist/comfy-executor.d.ts.map +1 -1
- package/dist/comfy-executor.js +234 -55
- package/dist/comfy-executor.js.map +1 -1
- package/dist/context-packer.d.ts +1 -1
- package/dist/context-packer.d.ts.map +1 -1
- package/dist/context-packer.js +23 -25
- package/dist/context-packer.js.map +1 -1
- package/dist/context.d.ts +982 -127
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +2649 -530
- package/dist/context.js.map +1 -1
- package/dist/cost-reconciler.d.ts +32 -0
- package/dist/cost-reconciler.d.ts.map +1 -0
- package/dist/cost-reconciler.js +21 -0
- package/dist/cost-reconciler.js.map +1 -0
- package/dist/entities.d.ts +33 -0
- package/dist/entities.d.ts.map +1 -0
- package/dist/entities.js +43 -0
- package/dist/entities.js.map +1 -0
- package/dist/external-media-fetch.d.ts +29 -0
- package/dist/external-media-fetch.d.ts.map +1 -0
- package/dist/external-media-fetch.js +38 -0
- package/dist/external-media-fetch.js.map +1 -0
- package/dist/generation-receipt.d.ts +86 -0
- package/dist/generation-receipt.d.ts.map +1 -0
- package/dist/generation-receipt.js +137 -0
- package/dist/generation-receipt.js.map +1 -0
- package/dist/generation-registry.d.ts +75 -0
- package/dist/generation-registry.d.ts.map +1 -0
- package/dist/generation-registry.js +144 -0
- package/dist/generation-registry.js.map +1 -0
- package/dist/google/client.d.ts +196 -0
- package/dist/google/client.d.ts.map +1 -0
- package/dist/google/client.js +396 -0
- package/dist/google/client.js.map +1 -0
- package/dist/google/index.d.ts +3 -0
- package/dist/google/index.d.ts.map +1 -0
- package/dist/google/index.js +3 -0
- package/dist/google/index.js.map +1 -0
- package/dist/google/token.d.ts +15 -0
- package/dist/google/token.d.ts.map +1 -0
- package/dist/google/token.js +24 -0
- package/dist/google/token.js.map +1 -0
- package/dist/host-binaries.d.ts +106 -0
- package/dist/host-binaries.d.ts.map +1 -0
- package/dist/host-binaries.js +352 -0
- package/dist/host-binaries.js.map +1 -0
- package/dist/image-codec.d.ts +76 -0
- package/dist/image-codec.d.ts.map +1 -0
- package/dist/image-codec.js +293 -0
- package/dist/image-codec.js.map +1 -0
- package/dist/image-model-tasks.d.ts +15 -0
- package/dist/image-model-tasks.d.ts.map +1 -0
- package/dist/image-model-tasks.js +24 -0
- package/dist/image-model-tasks.js.map +1 -0
- package/dist/index.d.ts +67 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -4
- package/dist/index.js.map +1 -1
- package/dist/invocation-account.d.ts +43 -0
- package/dist/invocation-account.d.ts.map +1 -0
- package/dist/invocation-account.js +60 -0
- package/dist/invocation-account.js.map +1 -0
- package/dist/media-ref-bytes.d.ts +35 -0
- package/dist/media-ref-bytes.d.ts.map +1 -0
- package/dist/media-ref-bytes.js +191 -0
- package/dist/media-ref-bytes.js.map +1 -0
- package/dist/node-executor.d.ts +119 -2
- package/dist/node-executor.d.ts.map +1 -1
- package/dist/permission-gate.d.ts +152 -0
- package/dist/permission-gate.d.ts.map +1 -0
- package/dist/permission-gate.js +87 -0
- package/dist/permission-gate.js.map +1 -0
- package/dist/prefixed-storage-adapter.d.ts +33 -0
- package/dist/prefixed-storage-adapter.d.ts.map +1 -0
- package/dist/prefixed-storage-adapter.js +70 -0
- package/dist/prefixed-storage-adapter.js.map +1 -0
- package/dist/prompt-asset-refs.d.ts +222 -0
- package/dist/prompt-asset-refs.d.ts.map +1 -0
- package/dist/prompt-asset-refs.js +751 -0
- package/dist/prompt-asset-refs.js.map +1 -0
- package/dist/provider-cache.d.ts +3 -0
- package/dist/provider-cache.d.ts.map +1 -0
- package/dist/provider-cache.js +8 -0
- package/dist/provider-cache.js.map +1 -0
- package/dist/providers/aki-provider.d.ts +35 -10
- package/dist/providers/aki-provider.d.ts.map +1 -1
- package/dist/providers/aki-provider.js +90 -77
- package/dist/providers/aki-provider.js.map +1 -1
- package/dist/providers/alibaba-provider.d.ts +39 -0
- package/dist/providers/alibaba-provider.d.ts.map +1 -0
- package/dist/providers/alibaba-provider.js +86 -0
- package/dist/providers/alibaba-provider.js.map +1 -0
- package/dist/providers/anthropic-provider.d.ts +52 -3
- package/dist/providers/anthropic-provider.d.ts.map +1 -1
- package/dist/providers/anthropic-provider.js +1020 -338
- package/dist/providers/anthropic-provider.js.map +1 -1
- package/dist/providers/atlascloud-provider.d.ts +103 -0
- package/dist/providers/atlascloud-provider.d.ts.map +1 -0
- package/dist/providers/atlascloud-provider.js +1031 -0
- package/dist/providers/atlascloud-provider.js.map +1 -0
- package/dist/providers/atlascloud-transport.d.ts +100 -0
- package/dist/providers/atlascloud-transport.d.ts.map +1 -0
- package/dist/providers/atlascloud-transport.js +364 -0
- package/dist/providers/atlascloud-transport.js.map +1 -0
- package/dist/providers/atlascloud-webhook-registry.d.ts +35 -0
- package/dist/providers/atlascloud-webhook-registry.d.ts.map +1 -0
- package/dist/providers/atlascloud-webhook-registry.js +104 -0
- package/dist/providers/atlascloud-webhook-registry.js.map +1 -0
- package/dist/providers/audio-mime.d.ts +11 -0
- package/dist/providers/audio-mime.d.ts.map +1 -0
- package/dist/providers/audio-mime.js +46 -0
- package/dist/providers/audio-mime.js.map +1 -0
- package/dist/providers/base-provider.d.ts +501 -32
- package/dist/providers/base-provider.d.ts.map +1 -1
- package/dist/providers/base-provider.js +1280 -87
- package/dist/providers/base-provider.js.map +1 -1
- package/dist/providers/cassette-provider.d.ts +217 -0
- package/dist/providers/cassette-provider.d.ts.map +1 -0
- package/dist/providers/cassette-provider.js +502 -0
- package/dist/providers/cassette-provider.js.map +1 -0
- package/dist/providers/cerebras-provider.d.ts +6 -12
- package/dist/providers/cerebras-provider.d.ts.map +1 -1
- package/dist/providers/cerebras-provider.js +8 -33
- package/dist/providers/cerebras-provider.js.map +1 -1
- package/dist/providers/claude-agent-provider.d.ts +107 -74
- package/dist/providers/claude-agent-provider.d.ts.map +1 -1
- package/dist/providers/claude-agent-provider.js +1279 -517
- package/dist/providers/claude-agent-provider.js.map +1 -1
- package/dist/providers/codex-provider.d.ts +84 -0
- package/dist/providers/codex-provider.d.ts.map +1 -0
- package/dist/providers/codex-provider.js +505 -0
- package/dist/providers/codex-provider.js.map +1 -0
- package/dist/providers/cohere-provider.d.ts +7 -3
- package/dist/providers/cohere-provider.d.ts.map +1 -1
- package/dist/providers/cohere-provider.js +14 -2
- package/dist/providers/cohere-provider.js.map +1 -1
- package/dist/providers/comfy-cloud-provider.d.ts +30 -0
- package/dist/providers/comfy-cloud-provider.d.ts.map +1 -0
- package/dist/providers/comfy-cloud-provider.js +42 -0
- package/dist/providers/comfy-cloud-provider.js.map +1 -0
- package/dist/providers/content-filter.d.ts +46 -0
- package/dist/providers/content-filter.d.ts.map +1 -0
- package/dist/providers/content-filter.js +92 -0
- package/dist/providers/content-filter.js.map +1 -0
- package/dist/providers/context-exceeded.d.ts +37 -0
- package/dist/providers/context-exceeded.d.ts.map +1 -0
- package/dist/providers/context-exceeded.js +114 -0
- package/dist/providers/context-exceeded.js.map +1 -0
- package/dist/providers/context-window.d.ts +44 -0
- package/dist/providers/context-window.d.ts.map +1 -0
- package/dist/providers/context-window.js +145 -0
- package/dist/providers/context-window.js.map +1 -0
- package/dist/providers/contract/index.d.ts +4 -0
- package/dist/providers/contract/index.d.ts.map +1 -0
- package/dist/providers/contract/index.js +4 -0
- package/dist/providers/contract/index.js.map +1 -0
- package/dist/providers/contract/probe-manifest.d.ts +75 -0
- package/dist/providers/contract/probe-manifest.d.ts.map +1 -0
- package/dist/providers/contract/probe-manifest.js +379 -0
- package/dist/providers/contract/probe-manifest.js.map +1 -0
- package/dist/providers/contract/probe-runner.d.ts +57 -0
- package/dist/providers/contract/probe-runner.d.ts.map +1 -0
- package/dist/providers/contract/probe-runner.js +180 -0
- package/dist/providers/contract/probe-runner.js.map +1 -0
- package/dist/providers/contract/redact.d.ts +29 -0
- package/dist/providers/contract/redact.d.ts.map +1 -0
- package/dist/providers/contract/redact.js +113 -0
- package/dist/providers/contract/redact.js.map +1 -0
- package/dist/providers/core-tools.d.ts +75 -0
- package/dist/providers/core-tools.d.ts.map +1 -0
- package/dist/providers/core-tools.js +128 -0
- package/dist/providers/core-tools.js.map +1 -0
- package/dist/providers/cost-calculator.d.ts +69 -50
- package/dist/providers/cost-calculator.d.ts.map +1 -1
- package/dist/providers/cost-calculator.js +207 -397
- package/dist/providers/cost-calculator.js.map +1 -1
- package/dist/providers/credential-check.d.ts +45 -0
- package/dist/providers/credential-check.d.ts.map +1 -0
- package/dist/providers/credential-check.js +164 -0
- package/dist/providers/credential-check.js.map +1 -0
- package/dist/providers/custom-model-kinds.d.ts +33 -0
- package/dist/providers/custom-model-kinds.d.ts.map +1 -0
- package/dist/providers/custom-model-kinds.js +96 -0
- package/dist/providers/custom-model-kinds.js.map +1 -0
- package/dist/providers/custom-openai-provider.d.ts +83 -0
- package/dist/providers/custom-openai-provider.d.ts.map +1 -0
- package/dist/providers/custom-openai-provider.js +190 -0
- package/dist/providers/custom-openai-provider.js.map +1 -0
- package/dist/providers/custom-provider-registry.d.ts +19 -0
- package/dist/providers/custom-provider-registry.d.ts.map +1 -0
- package/dist/providers/custom-provider-registry.js +52 -0
- package/dist/providers/custom-provider-registry.js.map +1 -0
- package/dist/providers/deepseek-provider.d.ts +8 -14
- package/dist/providers/deepseek-provider.d.ts.map +1 -1
- package/dist/providers/deepseek-provider.js +6 -35
- package/dist/providers/deepseek-provider.js.map +1 -1
- package/dist/providers/defaults.d.ts +12 -0
- package/dist/providers/defaults.d.ts.map +1 -0
- package/dist/providers/defaults.js +12 -0
- package/dist/providers/defaults.js.map +1 -0
- package/dist/providers/dreamina-models.d.ts +5 -0
- package/dist/providers/dreamina-models.d.ts.map +1 -0
- package/dist/providers/dreamina-models.js +57 -0
- package/dist/providers/dreamina-models.js.map +1 -0
- package/dist/providers/dreamina-music.d.ts +52 -0
- package/dist/providers/dreamina-music.d.ts.map +1 -0
- package/dist/providers/dreamina-music.js +115 -0
- package/dist/providers/dreamina-music.js.map +1 -0
- package/dist/providers/dreamina-provider.d.ts +62 -0
- package/dist/providers/dreamina-provider.d.ts.map +1 -0
- package/dist/providers/dreamina-provider.js +790 -0
- package/dist/providers/dreamina-provider.js.map +1 -0
- package/dist/providers/elevenlabs-provider.d.ts +50 -0
- package/dist/providers/elevenlabs-provider.d.ts.map +1 -0
- package/dist/providers/elevenlabs-provider.js +147 -0
- package/dist/providers/elevenlabs-provider.js.map +1 -0
- package/dist/providers/entity-references.d.ts +31 -0
- package/dist/providers/entity-references.d.ts.map +1 -0
- package/dist/providers/entity-references.js +113 -0
- package/dist/providers/entity-references.js.map +1 -0
- package/dist/providers/evolink-provider.d.ts +40 -0
- package/dist/providers/evolink-provider.d.ts.map +1 -0
- package/dist/providers/evolink-provider.js +312 -0
- package/dist/providers/evolink-provider.js.map +1 -0
- package/dist/providers/fake-provider.d.ts +74 -2
- package/dist/providers/fake-provider.d.ts.map +1 -1
- package/dist/providers/fake-provider.js +213 -1
- package/dist/providers/fake-provider.js.map +1 -1
- package/dist/providers/fal-generations.d.ts +106 -0
- package/dist/providers/fal-generations.d.ts.map +1 -0
- package/dist/providers/fal-generations.js +286 -0
- package/dist/providers/fal-generations.js.map +1 -0
- package/dist/providers/fal-provider.d.ts +173 -8
- package/dist/providers/fal-provider.d.ts.map +1 -1
- package/dist/providers/fal-provider.js +1396 -64
- package/dist/providers/fal-provider.js.map +1 -1
- package/dist/providers/fal-queue.d.ts +47 -0
- package/dist/providers/fal-queue.d.ts.map +1 -0
- package/dist/providers/fal-queue.js +231 -0
- package/dist/providers/fal-queue.js.map +1 -0
- package/dist/providers/gemini-provider.d.ts +150 -9
- package/dist/providers/gemini-provider.d.ts.map +1 -1
- package/dist/providers/gemini-provider.js +1515 -316
- package/dist/providers/gemini-provider.js.map +1 -1
- package/dist/providers/gmi-provider.d.ts +21 -0
- package/dist/providers/gmi-provider.d.ts.map +1 -0
- package/dist/providers/gmi-provider.js +34 -0
- package/dist/providers/gmi-provider.js.map +1 -0
- package/dist/providers/gpt-image-size.d.ts +3 -0
- package/dist/providers/gpt-image-size.d.ts.map +1 -0
- package/dist/providers/gpt-image-size.js +37 -0
- package/dist/providers/gpt-image-size.js.map +1 -0
- package/dist/providers/groq-provider.d.ts +9 -12
- package/dist/providers/groq-provider.d.ts.map +1 -1
- package/dist/providers/groq-provider.js +19 -33
- package/dist/providers/groq-provider.js.map +1 -1
- package/dist/providers/groq-request.d.ts +38 -0
- package/dist/providers/groq-request.d.ts.map +1 -0
- package/dist/providers/groq-request.js +138 -0
- package/dist/providers/groq-request.js.map +1 -0
- package/dist/providers/higgsfield-provider.d.ts +31 -0
- package/dist/providers/higgsfield-provider.d.ts.map +1 -0
- package/dist/providers/higgsfield-provider.js +143 -0
- package/dist/providers/higgsfield-provider.js.map +1 -0
- package/dist/providers/higgsfield-transport.d.ts +106 -0
- package/dist/providers/higgsfield-transport.d.ts.map +1 -0
- package/dist/providers/higgsfield-transport.js +182 -0
- package/dist/providers/higgsfield-transport.js.map +1 -0
- package/dist/providers/http-transport.d.ts +74 -0
- package/dist/providers/http-transport.d.ts.map +1 -0
- package/dist/providers/http-transport.js +152 -0
- package/dist/providers/http-transport.js.map +1 -0
- package/dist/providers/huggingface-provider.d.ts +73 -4
- package/dist/providers/huggingface-provider.d.ts.map +1 -1
- package/dist/providers/huggingface-provider.js +240 -34
- package/dist/providers/huggingface-provider.js.map +1 -1
- package/dist/providers/image-mime.d.ts +39 -0
- package/dist/providers/image-mime.d.ts.map +1 -0
- package/dist/providers/image-mime.js +111 -0
- package/dist/providers/image-mime.js.map +1 -0
- package/dist/providers/image-ref.d.ts +21 -0
- package/dist/providers/image-ref.d.ts.map +1 -0
- package/dist/providers/image-ref.js +44 -0
- package/dist/providers/image-ref.js.map +1 -0
- package/dist/providers/index.d.ts +87 -8
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +250 -56
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/jina-provider.d.ts +12 -3
- package/dist/providers/jina-provider.d.ts.map +1 -1
- package/dist/providers/jina-provider.js +21 -7
- package/dist/providers/jina-provider.js.map +1 -1
- package/dist/providers/kie-provider.d.ts +172 -10
- package/dist/providers/kie-provider.d.ts.map +1 -1
- package/dist/providers/kie-provider.js +1190 -228
- package/dist/providers/kie-provider.js.map +1 -1
- package/dist/providers/kie-webhook-registry.d.ts +28 -0
- package/dist/providers/kie-webhook-registry.d.ts.map +1 -0
- package/dist/providers/kie-webhook-registry.js +91 -0
- package/dist/providers/kie-webhook-registry.js.map +1 -0
- package/dist/providers/llama-provider.d.ts +23 -36
- package/dist/providers/llama-provider.d.ts.map +1 -1
- package/dist/providers/llama-provider.js +50 -355
- package/dist/providers/llama-provider.js.map +1 -1
- package/dist/providers/lmstudio-provider.d.ts +4 -7
- package/dist/providers/lmstudio-provider.d.ts.map +1 -1
- package/dist/providers/lmstudio-provider.js +24 -15
- package/dist/providers/lmstudio-provider.js.map +1 -1
- package/dist/providers/loop-tracing.d.ts +17 -0
- package/dist/providers/loop-tracing.d.ts.map +1 -0
- package/dist/providers/loop-tracing.js +132 -0
- package/dist/providers/loop-tracing.js.map +1 -0
- package/dist/providers/manifest-models.d.ts +341 -1
- package/dist/providers/manifest-models.d.ts.map +1 -1
- package/dist/providers/manifest-models.js +1106 -22
- package/dist/providers/manifest-models.js.map +1 -1
- package/dist/providers/media-mime.d.ts +14 -0
- package/dist/providers/media-mime.d.ts.map +1 -0
- package/dist/providers/media-mime.js +35 -0
- package/dist/providers/media-mime.js.map +1 -0
- package/dist/providers/meshy-provider.d.ts +16 -2
- package/dist/providers/meshy-provider.d.ts.map +1 -1
- package/dist/providers/meshy-provider.js +82 -46
- package/dist/providers/meshy-provider.js.map +1 -1
- package/dist/providers/meta-provider.d.ts +22 -0
- package/dist/providers/meta-provider.d.ts.map +1 -0
- package/dist/providers/meta-provider.js +54 -0
- package/dist/providers/meta-provider.js.map +1 -0
- package/dist/providers/minimax-provider.d.ts +27 -18
- package/dist/providers/minimax-provider.d.ts.map +1 -1
- package/dist/providers/minimax-provider.js +222 -72
- package/dist/providers/minimax-provider.js.map +1 -1
- package/dist/providers/mistral-provider.d.ts +8 -12
- package/dist/providers/mistral-provider.d.ts.map +1 -1
- package/dist/providers/mistral-provider.js +15 -34
- package/dist/providers/mistral-provider.js.map +1 -1
- package/dist/providers/moonshot-provider.d.ts +11 -15
- package/dist/providers/moonshot-provider.d.ts.map +1 -1
- package/dist/providers/moonshot-provider.js +33 -23
- package/dist/providers/moonshot-provider.js.map +1 -1
- package/dist/providers/node-llama-cpp-provider.d.ts +99 -0
- package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -0
- package/dist/providers/node-llama-cpp-provider.js +484 -0
- package/dist/providers/node-llama-cpp-provider.js.map +1 -0
- package/dist/providers/nodetool-provider.d.ts +49 -0
- package/dist/providers/nodetool-provider.d.ts.map +1 -0
- package/dist/providers/nodetool-provider.js +222 -0
- package/dist/providers/nodetool-provider.js.map +1 -0
- package/dist/providers/oauth/browser-launcher.d.ts +23 -0
- package/dist/providers/oauth/browser-launcher.d.ts.map +1 -0
- package/dist/providers/oauth/browser-launcher.js +45 -0
- package/dist/providers/oauth/browser-launcher.js.map +1 -0
- package/dist/providers/oauth/claude-code-credentials.d.ts +74 -0
- package/dist/providers/oauth/claude-code-credentials.d.ts.map +1 -0
- package/dist/providers/oauth/claude-code-credentials.js +133 -0
- package/dist/providers/oauth/claude-code-credentials.js.map +1 -0
- package/dist/providers/oauth/claude-code-login.d.ts +124 -0
- package/dist/providers/oauth/claude-code-login.d.ts.map +1 -0
- package/dist/providers/oauth/claude-code-login.js +230 -0
- package/dist/providers/oauth/claude-code-login.js.map +1 -0
- package/dist/providers/oauth/claude-code-oauth-client.d.ts +111 -0
- package/dist/providers/oauth/claude-code-oauth-client.d.ts.map +1 -0
- package/dist/providers/oauth/claude-code-oauth-client.js +207 -0
- package/dist/providers/oauth/claude-code-oauth-client.js.map +1 -0
- package/dist/providers/oauth/errors.d.ts +54 -0
- package/dist/providers/oauth/errors.d.ts.map +1 -0
- package/dist/providers/oauth/errors.js +79 -0
- package/dist/providers/oauth/errors.js.map +1 -0
- package/dist/providers/oauth/index.d.ts +105 -0
- package/dist/providers/oauth/index.d.ts.map +1 -0
- package/dist/providers/oauth/index.js +167 -0
- package/dist/providers/oauth/index.js.map +1 -0
- package/dist/providers/oauth/jwt-claims.d.ts +23 -0
- package/dist/providers/oauth/jwt-claims.d.ts.map +1 -0
- package/dist/providers/oauth/jwt-claims.js +67 -0
- package/dist/providers/oauth/jwt-claims.js.map +1 -0
- package/dist/providers/oauth/local-callback-server.d.ts +60 -0
- package/dist/providers/oauth/local-callback-server.d.ts.map +1 -0
- package/dist/providers/oauth/local-callback-server.js +148 -0
- package/dist/providers/oauth/local-callback-server.js.map +1 -0
- package/dist/providers/oauth/oauth-client.d.ts +55 -0
- package/dist/providers/oauth/oauth-client.d.ts.map +1 -0
- package/dist/providers/oauth/oauth-client.js +161 -0
- package/dist/providers/oauth/oauth-client.js.map +1 -0
- package/dist/providers/oauth/openai-oauth-provider.d.ts +129 -0
- package/dist/providers/oauth/openai-oauth-provider.d.ts.map +1 -0
- package/dist/providers/oauth/openai-oauth-provider.js +265 -0
- package/dist/providers/oauth/openai-oauth-provider.js.map +1 -0
- package/dist/providers/oauth/pkce-helper.d.ts +43 -0
- package/dist/providers/oauth/pkce-helper.d.ts.map +1 -0
- package/dist/providers/oauth/pkce-helper.js +57 -0
- package/dist/providers/oauth/pkce-helper.js.map +1 -0
- package/dist/providers/oauth/redaction.d.ts +22 -0
- package/dist/providers/oauth/redaction.d.ts.map +1 -0
- package/dist/providers/oauth/redaction.js +59 -0
- package/dist/providers/oauth/redaction.js.map +1 -0
- package/dist/providers/oauth/secure-credential-store.d.ts +67 -0
- package/dist/providers/oauth/secure-credential-store.d.ts.map +1 -0
- package/dist/providers/oauth/secure-credential-store.js +73 -0
- package/dist/providers/oauth/secure-credential-store.js.map +1 -0
- package/dist/providers/oauth/token-store.d.ts +53 -0
- package/dist/providers/oauth/token-store.d.ts.map +1 -0
- package/dist/providers/oauth/token-store.js +78 -0
- package/dist/providers/oauth/token-store.js.map +1 -0
- package/dist/providers/oauth/types.d.ts +64 -0
- package/dist/providers/oauth/types.d.ts.map +1 -0
- package/dist/providers/oauth/types.js +12 -0
- package/dist/providers/oauth/types.js.map +1 -0
- package/dist/providers/object-tracking.d.ts +47 -0
- package/dist/providers/object-tracking.d.ts.map +1 -0
- package/dist/providers/object-tracking.js +46 -0
- package/dist/providers/object-tracking.js.map +1 -0
- package/dist/providers/offline-model-index.d.ts +20 -0
- package/dist/providers/offline-model-index.d.ts.map +1 -0
- package/dist/providers/offline-model-index.js +112 -0
- package/dist/providers/offline-model-index.js.map +1 -0
- package/dist/providers/ollama-provider.d.ts +30 -2
- package/dist/providers/ollama-provider.d.ts.map +1 -1
- package/dist/providers/ollama-provider.js +198 -43
- package/dist/providers/ollama-provider.js.map +1 -1
- package/dist/providers/openai-compat/client.d.ts +57 -0
- package/dist/providers/openai-compat/client.d.ts.map +1 -0
- package/dist/providers/openai-compat/client.js +157 -0
- package/dist/providers/openai-compat/client.js.map +1 -0
- package/dist/providers/openai-compat/decode.d.ts +36 -0
- package/dist/providers/openai-compat/decode.d.ts.map +1 -0
- package/dist/providers/openai-compat/decode.js +55 -0
- package/dist/providers/openai-compat/decode.js.map +1 -0
- package/dist/providers/openai-compat/errors.d.ts +54 -0
- package/dist/providers/openai-compat/errors.d.ts.map +1 -0
- package/dist/providers/openai-compat/errors.js +144 -0
- package/dist/providers/openai-compat/errors.js.map +1 -0
- package/dist/providers/openai-compat/index.d.ts +8 -0
- package/dist/providers/openai-compat/index.d.ts.map +1 -0
- package/dist/providers/openai-compat/index.js +5 -0
- package/dist/providers/openai-compat/index.js.map +1 -0
- package/dist/providers/openai-compat/sse.d.ts +14 -0
- package/dist/providers/openai-compat/sse.d.ts.map +1 -0
- package/dist/providers/openai-compat/sse.js +69 -0
- package/dist/providers/openai-compat/sse.js.map +1 -0
- package/dist/providers/openai-compat/types.d.ts +75 -0
- package/dist/providers/openai-compat/types.d.ts.map +1 -0
- package/dist/providers/openai-compat/types.js +9 -0
- package/dist/providers/openai-compat/types.js.map +1 -0
- package/dist/providers/openai-compat-provider.d.ts +90 -0
- package/dist/providers/openai-compat-provider.d.ts.map +1 -0
- package/dist/providers/openai-compat-provider.js +282 -0
- package/dist/providers/openai-compat-provider.js.map +1 -0
- package/dist/providers/openai-provider.d.ts +98 -27
- package/dist/providers/openai-provider.d.ts.map +1 -1
- package/dist/providers/openai-provider.js +1037 -105
- package/dist/providers/openai-provider.js.map +1 -1
- package/dist/providers/openrouter-provider.d.ts +58 -13
- package/dist/providers/openrouter-provider.d.ts.map +1 -1
- package/dist/providers/openrouter-provider.js +383 -51
- package/dist/providers/openrouter-provider.js.map +1 -1
- package/dist/providers/provider-call-failure.d.ts +39 -0
- package/dist/providers/provider-call-failure.d.ts.map +1 -0
- package/dist/providers/provider-call-failure.js +132 -0
- package/dist/providers/provider-call-failure.js.map +1 -0
- package/dist/providers/provider-error.d.ts +59 -0
- package/dist/providers/provider-error.d.ts.map +1 -0
- package/dist/providers/provider-error.js +171 -0
- package/dist/providers/provider-error.js.map +1 -0
- package/dist/providers/provider-generations.d.ts +99 -0
- package/dist/providers/provider-generations.d.ts.map +1 -0
- package/dist/providers/provider-generations.js +71 -0
- package/dist/providers/provider-generations.js.map +1 -0
- package/dist/providers/provider-queue.d.ts +62 -0
- package/dist/providers/provider-queue.d.ts.map +1 -0
- package/dist/providers/provider-queue.js +28 -0
- package/dist/providers/provider-queue.js.map +1 -0
- package/dist/providers/provider-registry.d.ts +33 -14
- package/dist/providers/provider-registry.d.ts.map +1 -1
- package/dist/providers/provider-registry.js +85 -68
- package/dist/providers/provider-registry.js.map +1 -1
- package/dist/providers/provider-request-log.d.ts +53 -0
- package/dist/providers/provider-request-log.d.ts.map +1 -0
- package/dist/providers/provider-request-log.js +168 -0
- package/dist/providers/provider-request-log.js.map +1 -0
- package/dist/providers/provider-session.d.ts +3 -0
- package/dist/providers/provider-session.d.ts.map +1 -0
- package/dist/providers/provider-session.js +10 -0
- package/dist/providers/provider-session.js.map +1 -0
- package/dist/providers/provider-transport.d.ts +11 -0
- package/dist/providers/provider-transport.d.ts.map +1 -0
- package/dist/providers/provider-transport.js +11 -0
- package/dist/providers/provider-transport.js.map +1 -0
- package/dist/providers/python-provider.d.ts +26 -13
- package/dist/providers/python-provider.d.ts.map +1 -1
- package/dist/providers/python-provider.js +204 -25
- package/dist/providers/python-provider.js.map +1 -1
- package/dist/providers/replicate-provider.d.ts +91 -8
- package/dist/providers/replicate-provider.d.ts.map +1 -1
- package/dist/providers/replicate-provider.js +823 -65
- package/dist/providers/replicate-provider.js.map +1 -1
- package/dist/providers/replicate-retry.d.ts +30 -0
- package/dist/providers/replicate-retry.d.ts.map +1 -0
- package/dist/providers/replicate-retry.js +97 -0
- package/dist/providers/replicate-retry.js.map +1 -0
- package/dist/providers/requesty-provider.d.ts +30 -0
- package/dist/providers/requesty-provider.d.ts.map +1 -0
- package/dist/providers/requesty-provider.js +87 -0
- package/dist/providers/requesty-provider.js.map +1 -0
- package/dist/providers/responses-api.d.ts +27 -0
- package/dist/providers/responses-api.d.ts.map +1 -0
- package/dist/providers/responses-api.js +297 -0
- package/dist/providers/responses-api.js.map +1 -0
- package/dist/providers/reve-provider.d.ts +46 -0
- package/dist/providers/reve-provider.d.ts.map +1 -0
- package/dist/providers/reve-provider.js +165 -0
- package/dist/providers/reve-provider.js.map +1 -0
- package/dist/providers/rodin-provider.d.ts +25 -2
- package/dist/providers/rodin-provider.d.ts.map +1 -1
- package/dist/providers/rodin-provider.js +95 -51
- package/dist/providers/rodin-provider.js.map +1 -1
- package/dist/providers/safe-url.d.ts +70 -0
- package/dist/providers/safe-url.d.ts.map +1 -0
- package/dist/providers/safe-url.js +277 -0
- package/dist/providers/safe-url.js.map +1 -0
- package/dist/providers/scripted-provider.d.ts +9 -0
- package/dist/providers/scripted-provider.d.ts.map +1 -1
- package/dist/providers/scripted-provider.js +86 -10
- package/dist/providers/scripted-provider.js.map +1 -1
- package/dist/providers/structured-output.d.ts +42 -0
- package/dist/providers/structured-output.d.ts.map +1 -0
- package/dist/providers/structured-output.js +83 -0
- package/dist/providers/structured-output.js.map +1 -0
- package/dist/providers/together-operations.d.ts +27 -0
- package/dist/providers/together-operations.d.ts.map +1 -0
- package/dist/providers/together-operations.js +95 -0
- package/dist/providers/together-operations.js.map +1 -0
- package/dist/providers/together-provider.d.ts +18 -18
- package/dist/providers/together-provider.d.ts.map +1 -1
- package/dist/providers/together-provider.js +140 -367
- package/dist/providers/together-provider.js.map +1 -1
- package/dist/providers/topaz-provider.d.ts +45 -0
- package/dist/providers/topaz-provider.d.ts.map +1 -0
- package/dist/providers/topaz-provider.js +244 -0
- package/dist/providers/topaz-provider.js.map +1 -0
- package/dist/providers/types.d.ts +641 -4
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +81 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/providers/useapi-provider.d.ts +28 -0
- package/dist/providers/useapi-provider.d.ts.map +1 -0
- package/dist/providers/useapi-provider.js +274 -0
- package/dist/providers/useapi-provider.js.map +1 -0
- package/dist/providers/video-duration.d.ts +6 -0
- package/dist/providers/video-duration.d.ts.map +1 -0
- package/dist/providers/video-duration.js +63 -0
- package/dist/providers/video-duration.js.map +1 -0
- package/dist/providers/video-frame-fallback.d.ts +39 -0
- package/dist/providers/video-frame-fallback.d.ts.map +1 -0
- package/dist/providers/video-frame-fallback.js +155 -0
- package/dist/providers/video-frame-fallback.js.map +1 -0
- package/dist/providers/video-frames.d.ts +61 -0
- package/dist/providers/video-frames.d.ts.map +1 -0
- package/dist/providers/video-frames.js +208 -0
- package/dist/providers/video-frames.js.map +1 -0
- package/dist/providers/video-mime.d.ts +14 -0
- package/dist/providers/video-mime.d.ts.map +1 -0
- package/dist/providers/video-mime.js +44 -0
- package/dist/providers/video-mime.js.map +1 -0
- package/dist/providers/video-to-audio.d.ts +34 -0
- package/dist/providers/video-to-audio.d.ts.map +1 -0
- package/dist/providers/video-to-audio.js +62 -0
- package/dist/providers/video-to-audio.js.map +1 -0
- package/dist/providers/vllm-provider.d.ts +20 -8
- package/dist/providers/vllm-provider.d.ts.map +1 -1
- package/dist/providers/vllm-provider.js +44 -23
- package/dist/providers/vllm-provider.js.map +1 -1
- package/dist/providers/voyage-provider.d.ts +12 -3
- package/dist/providers/voyage-provider.d.ts.map +1 -1
- package/dist/providers/voyage-provider.js +21 -7
- package/dist/providers/voyage-provider.js.map +1 -1
- package/dist/providers/xai-provider.d.ts +56 -13
- package/dist/providers/xai-provider.d.ts.map +1 -1
- package/dist/providers/xai-provider.js +307 -22
- package/dist/providers/xai-provider.js.map +1 -1
- package/dist/python-bridge-base.d.ts +358 -0
- package/dist/python-bridge-base.d.ts.map +1 -0
- package/dist/python-bridge-base.js +1557 -0
- package/dist/python-bridge-base.js.map +1 -0
- package/dist/python-bridge-codec.d.ts +28 -0
- package/dist/python-bridge-codec.d.ts.map +1 -0
- package/dist/python-bridge-codec.js +39 -0
- package/dist/python-bridge-codec.js.map +1 -0
- package/dist/python-bridge-factory.d.ts +52 -0
- package/dist/python-bridge-factory.d.ts.map +1 -0
- package/dist/python-bridge-factory.js +69 -0
- package/dist/python-bridge-factory.js.map +1 -0
- package/dist/python-bridge-framing.d.ts +68 -0
- package/dist/python-bridge-framing.d.ts.map +1 -0
- package/dist/python-bridge-framing.js +91 -0
- package/dist/python-bridge-framing.js.map +1 -0
- package/dist/python-bridge-types.d.ts +545 -2
- package/dist/python-bridge-types.d.ts.map +1 -1
- package/dist/python-bridge-types.js +49 -1
- package/dist/python-bridge-types.js.map +1 -1
- package/dist/python-graph-resolver.d.ts +57 -0
- package/dist/python-graph-resolver.d.ts.map +1 -0
- package/dist/python-graph-resolver.js +79 -0
- package/dist/python-graph-resolver.js.map +1 -0
- package/dist/python-node-executor.d.ts +36 -4
- package/dist/python-node-executor.d.ts.map +1 -1
- package/dist/python-node-executor.js +177 -86
- package/dist/python-node-executor.js.map +1 -1
- package/dist/python-stdio-bridge.d.ts +18 -37
- package/dist/python-stdio-bridge.d.ts.map +1 -1
- package/dist/python-stdio-bridge.js +148 -475
- package/dist/python-stdio-bridge.js.map +1 -1
- package/dist/python-websocket-bridge.d.ts +140 -0
- package/dist/python-websocket-bridge.d.ts.map +1 -0
- package/dist/python-websocket-bridge.js +561 -0
- package/dist/python-websocket-bridge.js.map +1 -0
- package/dist/python-worker-stderr.d.ts +4 -0
- package/dist/python-worker-stderr.d.ts.map +1 -0
- package/dist/python-worker-stderr.js +24 -0
- package/dist/python-worker-stderr.js.map +1 -0
- package/dist/recommended-models.d.ts +2 -2
- package/dist/recommended-models.d.ts.map +1 -1
- package/dist/recommended-models.js +44 -4
- package/dist/recommended-models.js.map +1 -1
- package/dist/recoverable-node-error.d.ts +31 -0
- package/dist/recoverable-node-error.d.ts.map +1 -0
- package/dist/recoverable-node-error.js +37 -0
- package/dist/recoverable-node-error.js.map +1 -0
- package/dist/redact-params.d.ts +13 -0
- package/dist/redact-params.d.ts.map +1 -0
- package/dist/redact-params.js +57 -0
- package/dist/redact-params.js.map +1 -0
- package/dist/run-context.d.ts +20 -0
- package/dist/run-context.d.ts.map +1 -0
- package/dist/run-context.js +18 -0
- package/dist/run-context.js.map +1 -0
- package/dist/run-trace-context.d.ts +30 -0
- package/dist/run-trace-context.d.ts.map +1 -0
- package/dist/run-trace-context.js +80 -0
- package/dist/run-trace-context.js.map +1 -0
- package/dist/run-trace-processor.d.ts +65 -0
- package/dist/run-trace-processor.d.ts.map +1 -0
- package/dist/run-trace-processor.js +417 -0
- package/dist/run-trace-processor.js.map +1 -0
- package/dist/run-trace-serialization.d.ts +5 -0
- package/dist/run-trace-serialization.d.ts.map +1 -0
- package/dist/run-trace-serialization.js +113 -0
- package/dist/run-trace-serialization.js.map +1 -0
- package/dist/sandbox-module-catalog.d.ts +43 -0
- package/dist/sandbox-module-catalog.d.ts.map +1 -0
- package/dist/sandbox-module-catalog.js +25 -0
- package/dist/sandbox-module-catalog.js.map +1 -0
- package/dist/storage-workspace.d.ts +62 -0
- package/dist/storage-workspace.d.ts.map +1 -0
- package/dist/storage-workspace.js +441 -0
- package/dist/storage-workspace.js.map +1 -0
- package/dist/swappable-python-bridge.d.ts +83 -0
- package/dist/swappable-python-bridge.d.ts.map +1 -0
- package/dist/swappable-python-bridge.js +246 -0
- package/dist/swappable-python-bridge.js.map +1 -0
- package/dist/telemetry.d.ts +16 -3
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +76 -20
- package/dist/telemetry.js.map +1 -1
- package/dist/testing.d.ts +81 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +130 -0
- package/dist/testing.js.map +1 -0
- package/dist/token-counter.d.ts +30 -0
- package/dist/token-counter.d.ts.map +1 -0
- package/dist/token-counter.js +156 -0
- package/dist/token-counter.js.map +1 -0
- package/dist/trace-exporters.d.ts +11 -28
- package/dist/trace-exporters.d.ts.map +1 -1
- package/dist/trace-exporters.js +69 -22
- package/dist/trace-exporters.js.map +1 -1
- package/dist/tracing-helpers.d.ts +60 -26
- package/dist/tracing-helpers.d.ts.map +1 -1
- package/dist/tracing-helpers.js +100 -25
- package/dist/tracing-helpers.js.map +1 -1
- package/dist/trim-video-window.d.ts +8 -0
- package/dist/trim-video-window.d.ts.map +1 -0
- package/dist/trim-video-window.js +50 -0
- package/dist/trim-video-window.js.map +1 -0
- package/dist/turn-budget.d.ts +278 -0
- package/dist/turn-budget.d.ts.map +1 -0
- package/dist/turn-budget.js +365 -0
- package/dist/turn-budget.js.map +1 -0
- package/dist/variable-channel.d.ts +48 -0
- package/dist/variable-channel.d.ts.map +1 -0
- package/dist/variable-channel.js +110 -0
- package/dist/variable-channel.js.map +1 -0
- package/dist/workspace.d.ts +119 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +112 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +121 -19
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blender worker executor — runs a `BlenderJob` on a GPU worker over the
|
|
3
|
+
* Python bridge, the transport half of Stage 4a (D6).
|
|
4
|
+
*
|
|
5
|
+
* This is the worker-tier counterpart of `LocalBlenderRunner` in
|
|
6
|
+
* `@nodetool-ai/blender-nodes` (which this package must not import — the
|
|
7
|
+
* dependency runs the other way, so the job travels here as a structural
|
|
8
|
+
* type). `WorkerBlenderRunner` (Stage 4b) wraps this function behind the
|
|
9
|
+
* `BlenderRunner` interface; nodes never call it directly.
|
|
10
|
+
*
|
|
11
|
+
* Contract, mirroring the local tier step for step (D6):
|
|
12
|
+
*
|
|
13
|
+
* - inputs travel as bridge blobs: the request carries the verbatim `job`,
|
|
14
|
+
* an `inputs` manifest mapping each logical input name to its blob key,
|
|
15
|
+
* the input bytes under those keys, and a worker-side `timeout`.
|
|
16
|
+
* - outputs come back as bridge blobs on the terminal `result` frame.
|
|
17
|
+
* - the same output caps apply as on the local tier, enforced from the
|
|
18
|
+
* worker's declared `sizes` BEFORE any blob bytes are consumed — and
|
|
19
|
+
* re-checked against the actual byte lengths, so a lying worker cannot
|
|
20
|
+
* bypass them either way.
|
|
21
|
+
* - a name in the worker's result that the job did not declare is ignored
|
|
22
|
+
* and logged at warn, exactly as `LocalBlenderRunner` does.
|
|
23
|
+
* - `blender.event` progress frames become `onProgress(frame, total)` calls.
|
|
24
|
+
* - the run is abortable through an `AbortSignal`: aborting sends the
|
|
25
|
+
* worker a `cancel` frame for this exact request (it does not just abandon
|
|
26
|
+
* the local promise) and rejects with the signal's reason, unwrapped —
|
|
27
|
+
* the same way the local tier rejects with the abort reason.
|
|
28
|
+
*
|
|
29
|
+
* Error codes are the local tier's codes verbatim (`render_failed`,
|
|
30
|
+
* `missing_output`, `output_too_large`, `bad_job`, `bad_result`, …): the
|
|
31
|
+
* worker's op failure (`ok: false`) preserves its code, and a transport or
|
|
32
|
+
* malformed-result failure is `bad_result`, the way a crashed Blender is.
|
|
33
|
+
* Stage 4b maps these into `BlenderJobError`; this module cannot throw that
|
|
34
|
+
* class itself without a dependency cycle.
|
|
35
|
+
*/
|
|
36
|
+
import { randomUUID } from "node:crypto";
|
|
37
|
+
import { createLogger } from "@nodetool-ai/config";
|
|
38
|
+
import { isNumber, isString } from "@nodetool-ai/protocol";
|
|
39
|
+
const log = createLogger("runtime:blender-executor");
|
|
40
|
+
/**
|
|
41
|
+
* Worker-tier Blender failure. `code` is the local tier's code for the same
|
|
42
|
+
* case, so Stage 4b can map it one-to-one into `BlenderJobError`.
|
|
43
|
+
*/
|
|
44
|
+
export class BlenderExecutorError extends Error {
|
|
45
|
+
code;
|
|
46
|
+
constructor(code, message) {
|
|
47
|
+
super(message);
|
|
48
|
+
this.name = "BlenderExecutorError";
|
|
49
|
+
this.code = code;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Run one Blender job on a worker bridge and collect its outputs.
|
|
54
|
+
*
|
|
55
|
+
* Route only to a bridge whose {@link PythonBridge.supportsBlender} is true —
|
|
56
|
+
* an older worker answers `blender.execute` with `Unknown message type`,
|
|
57
|
+
* which surfaces here as `bad_result`.
|
|
58
|
+
*/
|
|
59
|
+
export async function executeBlender(bridge, job, inputs, options) {
|
|
60
|
+
const { timeoutMs, signal, onProgress, maxOutputBytes, maxTotalOutputBytes, extraBlobs } = options;
|
|
61
|
+
// Mirror the local tier: an input the job did not declare is `bad_job`
|
|
62
|
+
// before anything is sent.
|
|
63
|
+
for (const name of Object.keys(inputs)) {
|
|
64
|
+
if (!(name in job.inputs)) {
|
|
65
|
+
throw new BlenderExecutorError("bad_job", `Input "${name}" is not declared in job.inputs.`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// The blob key for an input is its logical name: unambiguous, and the
|
|
69
|
+
// manifest still declares the mapping for workers that stage by key.
|
|
70
|
+
const manifest = {};
|
|
71
|
+
const blobs = {};
|
|
72
|
+
for (const [name, bytes] of Object.entries(inputs)) {
|
|
73
|
+
manifest[name] = name;
|
|
74
|
+
blobs[name] = bytes;
|
|
75
|
+
}
|
|
76
|
+
for (const [key, bytes] of Object.entries(extraBlobs ?? {})) {
|
|
77
|
+
if (key in blobs) {
|
|
78
|
+
throw new BlenderExecutorError("bad_job", `Additional Blender blob "${key}" conflicts with a declared input.`);
|
|
79
|
+
}
|
|
80
|
+
blobs[key] = bytes;
|
|
81
|
+
}
|
|
82
|
+
const requestId = randomUUID();
|
|
83
|
+
const timeout = Math.max(1, Math.ceil(timeoutMs / 1000));
|
|
84
|
+
return new Promise((resolve, reject) => {
|
|
85
|
+
let settled = false;
|
|
86
|
+
let timeoutHandle;
|
|
87
|
+
const cleanup = () => {
|
|
88
|
+
if (signal && abortHandler) {
|
|
89
|
+
signal.removeEventListener("abort", abortHandler);
|
|
90
|
+
}
|
|
91
|
+
if (timeoutHandle !== undefined) {
|
|
92
|
+
clearTimeout(timeoutHandle);
|
|
93
|
+
timeoutHandle = undefined;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
const cancel = () => {
|
|
97
|
+
try {
|
|
98
|
+
bridge.cancelBlenderExecute(requestId);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Worker may already be gone; cancel is best-effort.
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
const abortHandler = () => {
|
|
105
|
+
if (settled)
|
|
106
|
+
return;
|
|
107
|
+
settled = true;
|
|
108
|
+
cleanup();
|
|
109
|
+
// The abort reaches the worker: without the cancel frame the Blender
|
|
110
|
+
// process would keep rendering a run nobody reads.
|
|
111
|
+
cancel();
|
|
112
|
+
// Unwrapped, the way the local tier rejects with the abort reason.
|
|
113
|
+
reject(signal?.reason ??
|
|
114
|
+
new Error(`Blender execution "${requestId}" was aborted.`));
|
|
115
|
+
};
|
|
116
|
+
const timeoutHandler = () => {
|
|
117
|
+
if (settled)
|
|
118
|
+
return;
|
|
119
|
+
settled = true;
|
|
120
|
+
cleanup();
|
|
121
|
+
// The worker receives its own timeout, but the transport promise must
|
|
122
|
+
// also have a local deadline in case the worker stops responding.
|
|
123
|
+
cancel();
|
|
124
|
+
reject(new BlenderExecutorError("timeout", `Blender render timed out after ${timeoutMs}ms. ` +
|
|
125
|
+
"The worker did not complete the request in time."));
|
|
126
|
+
};
|
|
127
|
+
if (signal?.aborted) {
|
|
128
|
+
abortHandler();
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (signal) {
|
|
132
|
+
signal.addEventListener("abort", abortHandler, { once: true });
|
|
133
|
+
}
|
|
134
|
+
timeoutHandle = setTimeout(timeoutHandler, Math.max(1, timeoutMs));
|
|
135
|
+
Promise.resolve()
|
|
136
|
+
.then(() => {
|
|
137
|
+
// An abort can fire after executeBlender returns but before this
|
|
138
|
+
// microtask dispatches the bridge request.
|
|
139
|
+
if (settled) {
|
|
140
|
+
throw signal?.reason ?? new Error("Blender execution was aborted.");
|
|
141
|
+
}
|
|
142
|
+
return bridge.blenderExecute(job, manifest, { blobs, timeout }, (event) => {
|
|
143
|
+
if (event.event === "progress" &&
|
|
144
|
+
onProgress &&
|
|
145
|
+
isNumber(event.frame) &&
|
|
146
|
+
isNumber(event.total)) {
|
|
147
|
+
onProgress(event.frame, event.total);
|
|
148
|
+
}
|
|
149
|
+
}, requestId);
|
|
150
|
+
})
|
|
151
|
+
.then((result) => {
|
|
152
|
+
if (settled)
|
|
153
|
+
return;
|
|
154
|
+
settled = true;
|
|
155
|
+
cleanup();
|
|
156
|
+
try {
|
|
157
|
+
resolve(collectBlenderOutputs(job, result, {
|
|
158
|
+
maxOutputBytes,
|
|
159
|
+
maxTotalOutputBytes
|
|
160
|
+
}));
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
reject(err);
|
|
164
|
+
}
|
|
165
|
+
}, (err) => {
|
|
166
|
+
if (settled)
|
|
167
|
+
return;
|
|
168
|
+
settled = true;
|
|
169
|
+
cleanup();
|
|
170
|
+
// A terminal `error` frame (worker crash, unknown message type) is
|
|
171
|
+
// `bad_result`, the way a crashed Blender with no result.json is.
|
|
172
|
+
reject(new BlenderExecutorError("bad_result", messageOf(err)));
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* An `ok: false` result. The op's `{code, message}` passes through verbatim;
|
|
178
|
+
* whatever the worker did send survives into the message, so a frame with
|
|
179
|
+
* only a code, or an `error` that is a bare string, is not flattened to a
|
|
180
|
+
* generic "no payload" text.
|
|
181
|
+
*/
|
|
182
|
+
function failureError(result) {
|
|
183
|
+
const raw = result.error;
|
|
184
|
+
if (isString(raw)) {
|
|
185
|
+
return new BlenderExecutorError("bad_result", raw);
|
|
186
|
+
}
|
|
187
|
+
const error = raw != null && typeof raw === "object" ? raw : {};
|
|
188
|
+
const code = error.code;
|
|
189
|
+
const message = error.message;
|
|
190
|
+
if (isString(message) && message !== "") {
|
|
191
|
+
return new BlenderExecutorError(isString(code) && code !== "" ? code : "bad_result", message);
|
|
192
|
+
}
|
|
193
|
+
if (isString(code) && code !== "") {
|
|
194
|
+
return new BlenderExecutorError(code, `Blender worker failed with code "${code}" and no message.`);
|
|
195
|
+
}
|
|
196
|
+
return new BlenderExecutorError("bad_result", "Blender worker reported failure without an error payload " +
|
|
197
|
+
`(fields: ${Object.keys(result).join(", ") || "none"}).`);
|
|
198
|
+
}
|
|
199
|
+
function messageOf(err) {
|
|
200
|
+
return err instanceof Error ? err.message : String(err);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Turn the terminal `result` into outputs, enforcing the local tier's step 5.
|
|
204
|
+
* A name the job did not declare is ignored at warn; a declared output that
|
|
205
|
+
* is missing, or above either cap, throws the local tier's code with the
|
|
206
|
+
* local tier's message shape.
|
|
207
|
+
*/
|
|
208
|
+
function collectBlenderOutputs(job, result, caps) {
|
|
209
|
+
const { maxOutputBytes, maxTotalOutputBytes } = caps;
|
|
210
|
+
// The bridge delivers blobs inline in the terminal frame, so "before
|
|
211
|
+
// transfer" means before any blob entry is consumed: the declared-size
|
|
212
|
+
// pass below throws before a single output byte is read.
|
|
213
|
+
if (!result.ok) {
|
|
214
|
+
throw failureError(result);
|
|
215
|
+
}
|
|
216
|
+
if (!Array.isArray(result.produced)) {
|
|
217
|
+
throw new BlenderExecutorError("bad_result", "Blender worker returned ok without a produced list " +
|
|
218
|
+
`(fields: ${Object.keys(result).join(", ") || "none"}).`);
|
|
219
|
+
}
|
|
220
|
+
const stats = readStats(result.stats);
|
|
221
|
+
const declared = Object.entries(job.outputs);
|
|
222
|
+
const produced = new Set(result.produced);
|
|
223
|
+
for (const name of result.produced) {
|
|
224
|
+
if (!(name in job.outputs)) {
|
|
225
|
+
log.warn(`Blender produced undeclared output "${name}"; ignoring.`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// Declared sizes first: refuse an oversize result without pulling blob
|
|
229
|
+
// bytes into the outputs record. Entries without a usable declared size
|
|
230
|
+
// fall through to the actual-length check below.
|
|
231
|
+
let declaredTotal = 0;
|
|
232
|
+
for (const [name] of declared) {
|
|
233
|
+
if (!produced.has(name)) {
|
|
234
|
+
throw new BlenderExecutorError("missing_output", `Blender did not produce declared output "${name}" (file "${job.outputs[name]}").`);
|
|
235
|
+
}
|
|
236
|
+
const size = result.sizes?.[name];
|
|
237
|
+
if (isNumber(size) && size >= 0) {
|
|
238
|
+
if (size > maxOutputBytes) {
|
|
239
|
+
throw new BlenderExecutorError("output_too_large", `Output "${name}" is ${size} bytes, above the ${maxOutputBytes}-byte per-output cap.`);
|
|
240
|
+
}
|
|
241
|
+
declaredTotal += size;
|
|
242
|
+
if (declaredTotal > maxTotalOutputBytes) {
|
|
243
|
+
throw new BlenderExecutorError("output_too_large", `Outputs total ${declaredTotal} bytes, above the ${maxTotalOutputBytes}-byte total cap (reached at "${name}").`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
// Then the bytes themselves: a missing blob, a non-bytes entry, or an
|
|
248
|
+
// actual length above either cap fails the same way, so a worker that
|
|
249
|
+
// lies in `sizes` gains nothing.
|
|
250
|
+
const outputs = {};
|
|
251
|
+
let actualTotal = 0;
|
|
252
|
+
for (const [name] of declared) {
|
|
253
|
+
const raw = result.blobs?.[name];
|
|
254
|
+
if (!(raw instanceof Uint8Array)) {
|
|
255
|
+
throw new BlenderExecutorError("missing_output", `Blender worker returned no bytes for declared output "${name}".`);
|
|
256
|
+
}
|
|
257
|
+
if (raw.byteLength > maxOutputBytes) {
|
|
258
|
+
throw new BlenderExecutorError("output_too_large", `Output "${name}" is ${raw.byteLength} bytes, above the ${maxOutputBytes}-byte per-output cap.`);
|
|
259
|
+
}
|
|
260
|
+
actualTotal += raw.byteLength;
|
|
261
|
+
if (actualTotal > maxTotalOutputBytes) {
|
|
262
|
+
throw new BlenderExecutorError("output_too_large", `Outputs total ${actualTotal} bytes, above the ${maxTotalOutputBytes}-byte total cap (reached at "${name}").`);
|
|
263
|
+
}
|
|
264
|
+
// Normalize to a plain Uint8Array: the bridge codec hands back Buffers
|
|
265
|
+
// on Node, and the local tier wraps its reads the same way, so both
|
|
266
|
+
// tiers hand callers the same type.
|
|
267
|
+
outputs[name] = new Uint8Array(raw);
|
|
268
|
+
}
|
|
269
|
+
return { outputs, stats };
|
|
270
|
+
}
|
|
271
|
+
/** Narrow the worker's stats record to the local tier's stats shape. */
|
|
272
|
+
function readStats(stats) {
|
|
273
|
+
if (!stats ||
|
|
274
|
+
!isString(stats["blender_version"]) ||
|
|
275
|
+
!isNumber(stats["render_seconds"])) {
|
|
276
|
+
throw new BlenderExecutorError("bad_result", "Blender worker returned ok without usable stats.");
|
|
277
|
+
}
|
|
278
|
+
const out = {
|
|
279
|
+
blender_version: stats["blender_version"],
|
|
280
|
+
render_seconds: stats["render_seconds"]
|
|
281
|
+
};
|
|
282
|
+
for (const key of ["frames", "objects"]) {
|
|
283
|
+
if (isNumber(stats[key]))
|
|
284
|
+
out[key] = stats[key];
|
|
285
|
+
}
|
|
286
|
+
for (const key of ["depth_near", "depth_far"]) {
|
|
287
|
+
if (isNumber(stats[key]))
|
|
288
|
+
out[key] = stats[key];
|
|
289
|
+
}
|
|
290
|
+
if (isString(stats["camera"]))
|
|
291
|
+
out["camera"] = stats["camera"];
|
|
292
|
+
return out;
|
|
293
|
+
}
|
|
294
|
+
//# sourceMappingURL=blender-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blender-executor.js","sourceRoot":"","sources":["../src/blender-executor.ts"],"names":[],"mappings":"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"}
|
package/dist/comfy-executor.d.ts
CHANGED
|
@@ -3,9 +3,25 @@ export interface ComfyImage {
|
|
|
3
3
|
data: string;
|
|
4
4
|
filename: string;
|
|
5
5
|
}
|
|
6
|
+
/** A single file produced by a ComfyUI output node (image, audio, or video). */
|
|
7
|
+
export interface ComfyFileOutput {
|
|
8
|
+
/** base64-encoded file bytes */
|
|
9
|
+
data: string;
|
|
10
|
+
filename: string;
|
|
11
|
+
mimeType: string;
|
|
12
|
+
}
|
|
13
|
+
/** Outputs produced by one ComfyUI node, grouped by media kind. */
|
|
14
|
+
export interface ComfyNodeOutputs {
|
|
15
|
+
images?: ComfyFileOutput[];
|
|
16
|
+
audio?: ComfyFileOutput[];
|
|
17
|
+
video?: ComfyFileOutput[];
|
|
18
|
+
}
|
|
6
19
|
export interface ComfyExecutorResult {
|
|
7
20
|
status: "completed" | "failed";
|
|
21
|
+
/** Flat list of all output images, across every node (legacy convenience). */
|
|
8
22
|
images?: ComfyImage[];
|
|
23
|
+
/** Per-node outputs keyed by ComfyUI node id, grouped by media kind. */
|
|
24
|
+
nodeOutputs?: Record<string, ComfyNodeOutputs>;
|
|
9
25
|
raw_output?: Record<string, unknown>;
|
|
10
26
|
error?: string;
|
|
11
27
|
}
|
|
@@ -36,6 +52,12 @@ export interface ComfyExecutionHandle {
|
|
|
36
52
|
*
|
|
37
53
|
* Returns a handle with a result promise and a cancel() method.
|
|
38
54
|
*/
|
|
39
|
-
export declare function executeComfy(prompt: ComfyPrompt, addr: string, onProgress?: (event: ComfyProgressEvent) => void, timeoutMs?: number): ComfyExecutionHandle;
|
|
55
|
+
export declare function executeComfy(prompt: ComfyPrompt, addr: string, onProgress?: (event: ComfyProgressEvent) => void, timeoutMs?: number, onNodeOutput?: (nodeId: string, outputs: ComfyNodeOutputs) => void): ComfyExecutionHandle;
|
|
56
|
+
/**
|
|
57
|
+
* Upload a file to a ComfyUI server's input folder via `/upload/image`
|
|
58
|
+
* (ComfyUI accepts arbitrary input files on this endpoint, not just images).
|
|
59
|
+
* Returns the stored filename to reference from a Load* node's input.
|
|
60
|
+
*/
|
|
61
|
+
export declare function uploadComfyFile(addr: string, bytes: Uint8Array, filename: string, mimeType?: string): Promise<string>;
|
|
40
62
|
export {};
|
|
41
63
|
//# sourceMappingURL=comfy-executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comfy-executor.d.ts","sourceRoot":"","sources":["../src/comfy-executor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"comfy-executor.d.ts","sourceRoot":"","sources":["../src/comfy-executor.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AASD,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EACA,WAAW,GACX,UAAU,GACV,UAAU,GACV,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,GACjB,uBAAuB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,KAAK,WAAW,GAAG,MAAM,CACvB,MAAM,EACN;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CACxD,CAAC;AAEF,gEAAgE;AAChE,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,uEAAuE;IACvE,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAeD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,EAChD,SAAS,SAAS,EAClB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,IAAI,GACjE,oBAAoB,CAwLtB;AA2UD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAA6B,GACpC,OAAO,CAAC,MAAM,CAAC,CAwBjB"}
|