@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,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The permission gate contract: the mode, the category, the decision matrix,
|
|
3
|
+
* the approval callback, and the context key a host publishes its gate under.
|
|
4
|
+
*
|
|
5
|
+
* It lives here rather than in `@nodetool-ai/agents` because the hosts that
|
|
6
|
+
* run a workflow (`@nodetool-ai/execution`, the headless job runner) sit
|
|
7
|
+
* below `agents` in the package graph and still have to set a gate on the
|
|
8
|
+
* context they build. The ladder that reads the gate, the classification of
|
|
9
|
+
* tool names, and the loops that gate through it stay in `agents`; this is
|
|
10
|
+
* only what a host needs to say "this run is headless".
|
|
11
|
+
*
|
|
12
|
+
* Design: docs/AGENTS.md § "The permission gate",
|
|
13
|
+
* packages/agents/AGENTS.md § "Where the permission gate is set".
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* ProcessingContext variable key under which a host publishes the
|
|
17
|
+
* `PermissionGateOptions` every loop under it must gate through.
|
|
18
|
+
*
|
|
19
|
+
* The gate has to reach loops the host never constructs: an `AgentNode` a chat
|
|
20
|
+
* turn started through `run_node`, a JS script, a sub-agent several levels
|
|
21
|
+
* down. The context bag is the one channel all of them already carry, and
|
|
22
|
+
* `ProcessingContext.copy()` shallow-copies it, so a child context shares the
|
|
23
|
+
* host's gate object rather than a clone — which is what makes
|
|
24
|
+
* `set_permission_mode` mid-turn reach a node that started before it
|
|
25
|
+
* (invariant I-1).
|
|
26
|
+
*
|
|
27
|
+
* Read it with `gateFromContext` in `@nodetool-ai/agents`, never directly: a
|
|
28
|
+
* context with no gate on it is a host that forgot to set one, and the answer
|
|
29
|
+
* there is a gate that denies every call past read, not "ungated".
|
|
30
|
+
*/
|
|
31
|
+
export const PERMISSION_GATE_CONTEXT_KEY = "nodetool_permission_gate";
|
|
32
|
+
/**
|
|
33
|
+
* The matrix: `read` always runs; in `auto` everything runs; in `plan`
|
|
34
|
+
* anything actionable is blocked; in `default` actionable calls ask.
|
|
35
|
+
*/
|
|
36
|
+
export function decidePermission(mode, category) {
|
|
37
|
+
if (category === "read") {
|
|
38
|
+
return "allow";
|
|
39
|
+
}
|
|
40
|
+
if (mode === "auto") {
|
|
41
|
+
return "allow";
|
|
42
|
+
}
|
|
43
|
+
if (mode === "plan") {
|
|
44
|
+
return "block";
|
|
45
|
+
}
|
|
46
|
+
return "ask";
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Why a headless host refuses an escalation, in one sentence naming it.
|
|
50
|
+
*
|
|
51
|
+
* Exported because two callers need the same words: the gate reports it when
|
|
52
|
+
* it denies, and a host that runs headless on purpose (the CLI behind a pipe)
|
|
53
|
+
* prints it once up front so the user is not left guessing why a later call
|
|
54
|
+
* was refused.
|
|
55
|
+
*/
|
|
56
|
+
export function headlessDenialReason(hostName) {
|
|
57
|
+
return (`${hostName} runs without a user to ask, so calls the permission ladder ` +
|
|
58
|
+
`escalates are denied.`);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The gate for a host with nobody to ask: `auto`, denying every escalation.
|
|
62
|
+
*
|
|
63
|
+
* `decidePermission` allows read, write, execute and external outright in
|
|
64
|
+
* `auto`, so this approver is reached only by a request the ladder itself
|
|
65
|
+
* raises — a security-monitor consult, or a category that starts asking in
|
|
66
|
+
* `auto` later. Denying is the only answer a host with no user can give
|
|
67
|
+
* honestly: resolving `"allow"` would grant exactly what the escalation was
|
|
68
|
+
* raised to withhold, and never resolving would hang the run (invariant I-4).
|
|
69
|
+
*
|
|
70
|
+
* `hostName` names the caller so the refusal says which host had no one to
|
|
71
|
+
* ask, rather than only that something was refused.
|
|
72
|
+
*/
|
|
73
|
+
export function headlessGate(hostName) {
|
|
74
|
+
const reason = headlessDenialReason(hostName);
|
|
75
|
+
const headlessDeny = async (request) => {
|
|
76
|
+
// Loud on the refusal (I-4): a denial nobody can see reads as a tool that
|
|
77
|
+
// silently did nothing.
|
|
78
|
+
console.warn(`Denied \`${request.toolName}\` without asking: ${reason}`);
|
|
79
|
+
return "deny";
|
|
80
|
+
};
|
|
81
|
+
return {
|
|
82
|
+
mode: "auto",
|
|
83
|
+
sessionAllow: new Set(),
|
|
84
|
+
requestApproval: headlessDeny
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=permission-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-gate.js","sourceRoot":"","sources":["../src/permission-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,0BAA0B,CAAC;AActE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAoB,EACpB,QAA4B;IAE5B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAgGD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,CACL,GAAG,QAAQ,8DAA8D;QACzE,uBAAuB,CACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAoB,KAAK,EAAE,OAAO,EAAE,EAAE;QACtD,0EAA0E;QAC1E,wBAAwB;QACxB,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,QAAQ,sBAAsB,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,IAAI,GAAG,EAAU;QAC/B,eAAe,EAAE,YAAY;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type StorageAdapter, type StorageListResult, type StorageStat } from "./context.js";
|
|
2
|
+
/**
|
|
3
|
+
* A `StorageAdapter` that carves a key prefix out of another one.
|
|
4
|
+
*
|
|
5
|
+
* Cloud deployments keep one bucket. Giving each user a workspace inside it
|
|
6
|
+
* means their keys have to be namespaced, and the namespacing has to be
|
|
7
|
+
* invisible to whatever holds the adapter — a caller that stores `notes.md`
|
|
8
|
+
* must read it back as `notes.md`, not as `workspaces/u1/notes.md`. Every key
|
|
9
|
+
* going in gains the prefix and every key coming out loses it again.
|
|
10
|
+
*
|
|
11
|
+
* The prefix is applied to *keys*, never to URIs: a URI is opaque and already
|
|
12
|
+
* carries the full key, so it passes through untouched.
|
|
13
|
+
*/
|
|
14
|
+
export declare class PrefixedStorageAdapter implements StorageAdapter {
|
|
15
|
+
private readonly inner;
|
|
16
|
+
/** Normalized prefix with no trailing slash. */
|
|
17
|
+
readonly prefix: string;
|
|
18
|
+
constructor(inner: StorageAdapter, prefix: string);
|
|
19
|
+
private scope;
|
|
20
|
+
/** Strip the prefix from a key the inner adapter reported. */
|
|
21
|
+
private unscope;
|
|
22
|
+
store(key: string, data: Uint8Array, contentType?: string): Promise<string>;
|
|
23
|
+
retrieve(uri: string): Promise<Uint8Array | null>;
|
|
24
|
+
exists(uri: string): Promise<boolean>;
|
|
25
|
+
uriForKey(key: string): string;
|
|
26
|
+
list(prefix: string, opts?: {
|
|
27
|
+
delimiter?: string;
|
|
28
|
+
}): Promise<StorageListResult>;
|
|
29
|
+
delete(uri: string): Promise<boolean>;
|
|
30
|
+
stat(uri: string): Promise<StorageStat | null>;
|
|
31
|
+
localPath(uri: string): Promise<string | null>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=prefixed-storage-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefixed-storage-adapter.d.ts","sourceRoot":"","sources":["../src/prefixed-storage-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAuB,YAAW,cAAc;IAKzD,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YACmB,KAAK,EAAE,cAAc,EACtC,MAAM,EAAE,MAAM,EAGf;IAED,OAAO,CAAC,KAAK;IAIb,8DAA8D;IAC9D,OAAO,CAAC,OAAO;IAKf,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE1E;IAED,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAEhD;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpC;IAED,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7B;IAEK,IAAI,CACR,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAe5B;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpC;IAEK,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAKnD;IAED,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE7C;CACF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { normalizeStorageKey } from "./context.js";
|
|
2
|
+
/**
|
|
3
|
+
* A `StorageAdapter` that carves a key prefix out of another one.
|
|
4
|
+
*
|
|
5
|
+
* Cloud deployments keep one bucket. Giving each user a workspace inside it
|
|
6
|
+
* means their keys have to be namespaced, and the namespacing has to be
|
|
7
|
+
* invisible to whatever holds the adapter — a caller that stores `notes.md`
|
|
8
|
+
* must read it back as `notes.md`, not as `workspaces/u1/notes.md`. Every key
|
|
9
|
+
* going in gains the prefix and every key coming out loses it again.
|
|
10
|
+
*
|
|
11
|
+
* The prefix is applied to *keys*, never to URIs: a URI is opaque and already
|
|
12
|
+
* carries the full key, so it passes through untouched.
|
|
13
|
+
*/
|
|
14
|
+
export class PrefixedStorageAdapter {
|
|
15
|
+
inner;
|
|
16
|
+
/** Normalized prefix with no trailing slash. */
|
|
17
|
+
prefix;
|
|
18
|
+
constructor(inner, prefix) {
|
|
19
|
+
this.inner = inner;
|
|
20
|
+
this.prefix = normalizeStorageKey(prefix);
|
|
21
|
+
}
|
|
22
|
+
scope(key) {
|
|
23
|
+
return `${this.prefix}/${normalizeStorageKey(key)}`;
|
|
24
|
+
}
|
|
25
|
+
/** Strip the prefix from a key the inner adapter reported. */
|
|
26
|
+
unscope(key) {
|
|
27
|
+
const head = `${this.prefix}/`;
|
|
28
|
+
return key.startsWith(head) ? key.slice(head.length) : null;
|
|
29
|
+
}
|
|
30
|
+
store(key, data, contentType) {
|
|
31
|
+
return this.inner.store(this.scope(key), data, contentType);
|
|
32
|
+
}
|
|
33
|
+
retrieve(uri) {
|
|
34
|
+
return this.inner.retrieve(uri);
|
|
35
|
+
}
|
|
36
|
+
exists(uri) {
|
|
37
|
+
return this.inner.exists(uri);
|
|
38
|
+
}
|
|
39
|
+
uriForKey(key) {
|
|
40
|
+
return this.inner.uriForKey(this.scope(key));
|
|
41
|
+
}
|
|
42
|
+
async list(prefix, opts = {}) {
|
|
43
|
+
// An empty prefix means "everything in the workspace", which is the
|
|
44
|
+
// adapter's own prefix rather than the bucket root.
|
|
45
|
+
const scoped = prefix ? this.scope(prefix) : this.prefix;
|
|
46
|
+
const result = await this.inner.list(scoped, opts);
|
|
47
|
+
const head = `${this.prefix}/`;
|
|
48
|
+
return {
|
|
49
|
+
entries: result.entries.flatMap((entry) => {
|
|
50
|
+
const key = this.unscope(entry.key);
|
|
51
|
+
return key ? [{ ...entry, key }] : [];
|
|
52
|
+
}),
|
|
53
|
+
commonPrefixes: result.commonPrefixes.flatMap((p) => p.startsWith(head) ? [p.slice(head.length)] : [])
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
delete(uri) {
|
|
57
|
+
return this.inner.delete(uri);
|
|
58
|
+
}
|
|
59
|
+
async stat(uri) {
|
|
60
|
+
const st = await this.inner.stat(uri);
|
|
61
|
+
if (!st)
|
|
62
|
+
return null;
|
|
63
|
+
const key = this.unscope(st.key);
|
|
64
|
+
return key ? { ...st, key } : st;
|
|
65
|
+
}
|
|
66
|
+
localPath(uri) {
|
|
67
|
+
return this.inner.localPath(uri);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=prefixed-storage-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefixed-storage-adapter.js","sourceRoot":"","sources":["../src/prefixed-storage-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAIpB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,sBAAsB;IAKd,KAAK;IAJxB,gDAAgD;IACvC,MAAM,CAAS;IAExB,YACmB,KAAqB,EACtC,MAAc;qBADG,KAAK;QAGtB,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,GAAW;QACvB,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;IACtD,CAAC;IAED,8DAA8D;IACtD,OAAO,CAAC,GAAW;QACzB,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;QAC/B,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,IAAgB,EAAE,WAAoB;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAAc,EACd,IAAI,GAA2B,EAAE;QAEjC,oEAAoE;QACpE,oDAAoD;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,CAAC,CAAC;YACF,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAClD,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACjD;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline asset references in prompt text.
|
|
3
|
+
*
|
|
4
|
+
* Prompt-style surfaces (the Prompt composer, chat) let users mention an asset
|
|
5
|
+
* with `@`, which encodes as an `asset://<id>.<ext>` token inside the plain
|
|
6
|
+
* prompt string. Text-generation tasks expand these tokens into multimodal
|
|
7
|
+
* image / audio message blocks before the provider call. This module is the
|
|
8
|
+
* shared, provider-agnostic parser so other task types (e.g. image-to-image)
|
|
9
|
+
* can pull the same referenced media out of a prompt and route it to a typed
|
|
10
|
+
* input instead of leaving a dangling `asset://` URI in the text.
|
|
11
|
+
*
|
|
12
|
+
* The low-level parsing is resolution-free — callers hand the verbatim
|
|
13
|
+
* `asset://` URI to {@link loadMediaRefBytes} / `resolveMessageMediaUris`,
|
|
14
|
+
* which dereference it to bytes / a data URI just before it is consumed. The
|
|
15
|
+
* higher-level {@link mapPromptAssetsToInputs} does resolve, so provider nodes
|
|
16
|
+
* (FAL / KIE / Replicate / image-to-image) can route a mentioned image / audio
|
|
17
|
+
* / video into a typed asset input with bytes already in hand.
|
|
18
|
+
*
|
|
19
|
+
* A mentioned plain-text document (`.md`, `.txt`, `.csv`, `.json`, …) has no
|
|
20
|
+
* typed input to route to — {@link inlineTextAssetRefs} substitutes its decoded
|
|
21
|
+
* contents into the prompt text in place of the token.
|
|
22
|
+
*/
|
|
23
|
+
import type { AssetInfoEntry, ProcessingContext } from "./context.js";
|
|
24
|
+
import type { MessageContent } from "./providers/types.js";
|
|
25
|
+
export type AssetMediaKind = "image" | "audio" | "video";
|
|
26
|
+
/**
|
|
27
|
+
* Classify an `asset://<id>.<ext>` token by its extension. Image, audio and
|
|
28
|
+
* video are provider-consumable media (reference-to-video / lipsync models take
|
|
29
|
+
* a video clip); everything else (text, unknown) returns null so the reference
|
|
30
|
+
* is left for the text-inlining pass or kept as literal text in the prompt.
|
|
31
|
+
*/
|
|
32
|
+
export declare function classifyAssetToken(token: string): {
|
|
33
|
+
kind: AssetMediaKind;
|
|
34
|
+
mime: string;
|
|
35
|
+
} | null;
|
|
36
|
+
/**
|
|
37
|
+
* Classify an `asset://<id>.<ext>` token as a plain-text document. Returns null
|
|
38
|
+
* for non-text tokens (media, folders, unknown) so they are left untouched by
|
|
39
|
+
* the text-inlining pass.
|
|
40
|
+
*/
|
|
41
|
+
export declare function classifyTextToken(token: string): {
|
|
42
|
+
mime: string;
|
|
43
|
+
} | null;
|
|
44
|
+
/**
|
|
45
|
+
* Convert a media / document ref — the `{ type, uri, asset_id, mimeType }` shape
|
|
46
|
+
* image / audio / video / document outputs carry — into the inline
|
|
47
|
+
* `asset://<id>.<ext>` token the prompt-expansion machinery understands.
|
|
48
|
+
*
|
|
49
|
+
* This lets an asset wired into a Prompt node's `{{ variable }}` flow through
|
|
50
|
+
* the same path as an inline `@`-mention: once rendered, the token is picked up
|
|
51
|
+
* by {@link expandAssetReferences} (LLM message blocks), `mapPromptAssetsToInputs`
|
|
52
|
+
* (typed provider inputs), or {@link inlineTextAssetRefs} (text documents),
|
|
53
|
+
* instead of stringifying to `"[object Object]"`.
|
|
54
|
+
*
|
|
55
|
+
* Returns null for values that aren't asset refs (strings, numbers, plain
|
|
56
|
+
* objects with no `uri`/`asset_id`) so callers fall back to normal stringify.
|
|
57
|
+
* A ref pointing only at a non-asset uri (http / data / file) yields that uri
|
|
58
|
+
* verbatim — it won't route as media, but it still beats `"[object Object]"`.
|
|
59
|
+
*/
|
|
60
|
+
export declare function assetRefToPromptToken(value: unknown): string | null;
|
|
61
|
+
export interface PromptAssetRef {
|
|
62
|
+
/** Full `asset://<id>.<ext>` token, trailing sentence punctuation trimmed. */
|
|
63
|
+
uri: string;
|
|
64
|
+
kind: AssetMediaKind;
|
|
65
|
+
mime: string;
|
|
66
|
+
/** Start offset of the token in the source prompt. */
|
|
67
|
+
index: number;
|
|
68
|
+
/** Length of the (trimmed) token in the source prompt. */
|
|
69
|
+
length: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Find every classifiable media reference in a prompt, in source order.
|
|
73
|
+
*
|
|
74
|
+
* Unclassifiable tokens (no/unknown extension, e.g. `asset://doc.txt`) are
|
|
75
|
+
* skipped and remain literal text — text documents are handled separately by
|
|
76
|
+
* {@link findTextAssetRefs} / {@link inlineTextAssetRefs}.
|
|
77
|
+
*/
|
|
78
|
+
export declare function findAssetRefs(prompt: string): PromptAssetRef[];
|
|
79
|
+
/** A text-document reference found inline in a prompt. */
|
|
80
|
+
export interface TextAssetRef {
|
|
81
|
+
uri: string;
|
|
82
|
+
mime: string;
|
|
83
|
+
index: number;
|
|
84
|
+
length: number;
|
|
85
|
+
}
|
|
86
|
+
/** Find every plain-text document reference in a prompt, in source order. */
|
|
87
|
+
export declare function findTextAssetRefs(prompt: string): TextAssetRef[];
|
|
88
|
+
/**
|
|
89
|
+
* Replace each plain-text document mention in `prompt` with the asset's decoded
|
|
90
|
+
* UTF-8 contents, inline. A mention that can't be resolved to bytes is left as
|
|
91
|
+
* its literal token (never silently dropped). Media mentions are untouched.
|
|
92
|
+
*/
|
|
93
|
+
export declare function inlineTextAssetRefs(prompt: string, context?: ProcessingContext): Promise<string>;
|
|
94
|
+
/** Convenience: only the image references in a prompt. */
|
|
95
|
+
export declare function findImageAssetRefs(prompt: string): PromptAssetRef[];
|
|
96
|
+
/**
|
|
97
|
+
* Split a prompt containing inline `asset://<id>.<ext>` references into a
|
|
98
|
+
* multimodal content array: text segments interleaved with image / audio
|
|
99
|
+
* blocks that carry the `asset://` URI verbatim. The blocks are NOT resolved
|
|
100
|
+
* here — {@link ProcessingContext.resolveMessageMediaUris} dereferences the
|
|
101
|
+
* URIs to data URIs just before the provider call. Tokens that aren't a
|
|
102
|
+
* supported chat media type (video, unknown) stay as literal text so the
|
|
103
|
+
* model still sees the mention.
|
|
104
|
+
*/
|
|
105
|
+
export declare function expandAssetReferences(prompt: string): MessageContent[];
|
|
106
|
+
/**
|
|
107
|
+
* Remove the given references from the prompt, collapsing the horizontal
|
|
108
|
+
* whitespace left behind so the remaining text reads as a clean instruction.
|
|
109
|
+
* Refs must come from {@link findAssetRefs} on the same string. Newlines are
|
|
110
|
+
* preserved.
|
|
111
|
+
*/
|
|
112
|
+
export declare function stripAssetRefs(prompt: string, refs: PromptAssetRef[]): string;
|
|
113
|
+
/** A free-text field whose value should be scanned for asset mentions. */
|
|
114
|
+
export interface PromptAssetTextField {
|
|
115
|
+
name: string;
|
|
116
|
+
value: string;
|
|
117
|
+
}
|
|
118
|
+
/** A typed media input the node exposes (image/audio), with its current state. */
|
|
119
|
+
export interface PromptAssetInputField {
|
|
120
|
+
name: string;
|
|
121
|
+
/**
|
|
122
|
+
* Token used to reference this input back in the prompt text once a mention
|
|
123
|
+
* is routed into it (e.g. the API param name `image_url`). Defaults to
|
|
124
|
+
* `name`. List inputs are indexed: `${label}[0]`, `${label}[1]`, …
|
|
125
|
+
*/
|
|
126
|
+
label?: string;
|
|
127
|
+
kind: AssetMediaKind;
|
|
128
|
+
/** True for `list[...]` fields that accept multiple refs. */
|
|
129
|
+
list?: boolean;
|
|
130
|
+
/** True when the field already holds a real source (wired/set upstream). */
|
|
131
|
+
hasSource: boolean;
|
|
132
|
+
}
|
|
133
|
+
/** A resolved media ref ready to drop into a node's asset input. */
|
|
134
|
+
export interface InjectedAssetRef {
|
|
135
|
+
type: AssetMediaKind;
|
|
136
|
+
/** The original `asset://` URI, kept for provenance / fallback resolution. */
|
|
137
|
+
uri: string;
|
|
138
|
+
mimeType: string;
|
|
139
|
+
/** base64 of the resolved bytes; present when resolution succeeded. */
|
|
140
|
+
data?: string;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* What entity-mention expansion needs from its caller: owned-asset lookup.
|
|
144
|
+
* `ProcessingContext` satisfies this structurally; standalone surfaces that
|
|
145
|
+
* have no context instance (the direct media-generation RPC) supply their own.
|
|
146
|
+
*/
|
|
147
|
+
export interface EntityRefResolver {
|
|
148
|
+
getAssetInfo(assetId: string): Promise<AssetInfoEntry | null>;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Expand `entity://<id>` mentions (entities are library assets tagged with a
|
|
152
|
+
* `nodetool_entity` marker; the `@`-mention pickers encode them as this token).
|
|
153
|
+
*
|
|
154
|
+
* Each token is replaced inline with the entity's **name** so the sentence
|
|
155
|
+
* still reads naturally, and every mentioned entity contributes once to a
|
|
156
|
+
* trailing `Consistency references:` block carrying its canonical descriptor —
|
|
157
|
+
* the same shape the Apply Entities node produces. With `includeImageRefs`,
|
|
158
|
+
* each entity's reference image is appended as an `asset://<id>.<ext>` token so
|
|
159
|
+
* the normal media-mention machinery routes it into a typed image input.
|
|
160
|
+
*
|
|
161
|
+
* Resolution happens here, at generation time, so later edits to an entity's
|
|
162
|
+
* descriptor or image propagate to every prompt that mentions it. A token that
|
|
163
|
+
* cannot be resolved (unknown id, no marker, no context) is dropped.
|
|
164
|
+
*/
|
|
165
|
+
export declare function expandEntityRefs(text: string, context: EntityRefResolver | undefined, includeImageRefs: boolean): Promise<string>;
|
|
166
|
+
/** The result of {@link expandEntitiesForGeneration}. */
|
|
167
|
+
export interface ExpandedEntityPrompt {
|
|
168
|
+
/** The prompt with entity mentions expanded; no `entity://` tokens remain. */
|
|
169
|
+
prompt: string;
|
|
170
|
+
/**
|
|
171
|
+
* Reference images contributed by mentioned entities, as `asset://` refs.
|
|
172
|
+
* Callers with image inputs resolve these to bytes and pass them alongside
|
|
173
|
+
* any source image; callers without inputs drop them (the descriptor text
|
|
174
|
+
* has already been folded into `prompt`).
|
|
175
|
+
*/
|
|
176
|
+
referenceImages: PromptAssetRef[];
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Expand the entity mentions in a generation prompt and separate what the
|
|
180
|
+
* provider call needs from it: the seasoned text (names inline + a
|
|
181
|
+
* Consistency references block) and the entities' reference images as typed
|
|
182
|
+
* refs — never left in the text as dangling tokens.
|
|
183
|
+
*
|
|
184
|
+
* This is the direct-generation counterpart of what node prompts get through
|
|
185
|
+
* {@link mapPromptAssetsToInputs}: same expansion rule, but returning the
|
|
186
|
+
* routed images instead of writing them onto node input fields. Image
|
|
187
|
+
* mentions that were already in the caller's text are left untouched — only
|
|
188
|
+
* tokens this expansion itself produced are extracted and stripped.
|
|
189
|
+
*/
|
|
190
|
+
export declare function expandEntitiesForGeneration(prompt: string, resolver: EntityRefResolver): Promise<ExpandedEntityPrompt>;
|
|
191
|
+
/**
|
|
192
|
+
* Map media mentioned inline in a node's text inputs onto its typed media
|
|
193
|
+
* inputs. This is the generalized form of what text-generation tasks do when
|
|
194
|
+
* they expand `asset://` references into image / audio message blocks.
|
|
195
|
+
*
|
|
196
|
+
* A mention may be a single asset or a folder: folder mentions are expanded
|
|
197
|
+
* recursively to their member assets first (see {@link expandFolderRefs}), so a
|
|
198
|
+
* referenced folder fills as many inputs as it can.
|
|
199
|
+
*
|
|
200
|
+
* For every media kind the node actually accepts (derived from `assetFields`):
|
|
201
|
+
* - mentions of that kind are pulled out of the text inputs, in order;
|
|
202
|
+
* - each still-empty input of that kind is filled with the next mention,
|
|
203
|
+
* resolved to bytes (`data`) so the provider's normal `data` path uploads
|
|
204
|
+
* it — no provider needs to learn the `asset://` scheme;
|
|
205
|
+
* - `list[...]` inputs absorb all remaining mentions of their kind;
|
|
206
|
+
* - each placed mention is rewritten in the text to the input label it now
|
|
207
|
+
* lives in (`image_url`, `reference_image_urls[0]`, …) so the model can
|
|
208
|
+
* tell which slot holds which image; mentions that could not be placed
|
|
209
|
+
* (an input was already wired, or capacity ran out) are dropped rather
|
|
210
|
+
* than left as a dangling URI.
|
|
211
|
+
*
|
|
212
|
+
* Plain-text document mentions are inlined into the prompt as their decoded
|
|
213
|
+
* contents (see {@link inlineTextAssetRefs}). This applies even when the node
|
|
214
|
+
* has no media inputs at all (e.g. a text-to-image prompt referencing a brief).
|
|
215
|
+
*
|
|
216
|
+
* Inputs that already carry a source are left untouched. Returns a flat map of
|
|
217
|
+
* field name → replacement value (cleaned string for text fields, an
|
|
218
|
+
* {@link InjectedAssetRef} or array for asset fields); fields that did not
|
|
219
|
+
* change are absent, so callers do `overrides[name] ?? instance[name]`.
|
|
220
|
+
*/
|
|
221
|
+
export declare function mapPromptAssetsToInputs(textFields: PromptAssetTextField[], assetFields: PromptAssetInputField[], context?: ProcessingContext): Promise<Record<string, unknown>>;
|
|
222
|
+
//# sourceMappingURL=prompt-asset-refs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-asset-refs.d.ts","sourceRoot":"","sources":["../src/prompt-asset-refs.ts"],"names":[],"mappings":"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"}
|