@nodetool-ai/runtime 0.8.1 → 0.8.3
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/dist/.nodetool-build-stamp +1 -1
- package/dist/context.d.ts +31 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +369 -160
- package/dist/context.js.map +1 -1
- package/dist/generation-registry.d.ts +8 -0
- package/dist/generation-registry.d.ts.map +1 -1
- package/dist/generation-registry.js +18 -0
- package/dist/generation-registry.js.map +1 -1
- package/dist/host-binaries.d.ts.map +1 -1
- package/dist/host-binaries.js +18 -10
- package/dist/host-binaries.js.map +1 -1
- package/dist/image-codec.d.ts +2 -0
- package/dist/image-codec.d.ts.map +1 -1
- package/dist/image-codec.js +23 -3
- package/dist/image-codec.js.map +1 -1
- package/dist/image-model-tasks.d.ts +35 -0
- package/dist/image-model-tasks.d.ts.map +1 -0
- package/dist/image-model-tasks.js +67 -0
- package/dist/image-model-tasks.js.map +1 -0
- package/dist/index.d.ts +14 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/media-ref-bytes.d.ts +18 -2
- package/dist/media-ref-bytes.d.ts.map +1 -1
- package/dist/media-ref-bytes.js +26 -16
- package/dist/media-ref-bytes.js.map +1 -1
- package/dist/node-executor.d.ts +6 -0
- package/dist/node-executor.d.ts.map +1 -1
- package/dist/prompt-asset-refs.d.ts +12 -1
- package/dist/prompt-asset-refs.d.ts.map +1 -1
- package/dist/prompt-asset-refs.js +9 -4
- package/dist/prompt-asset-refs.js.map +1 -1
- package/dist/providers/aki-provider.d.ts +2 -0
- package/dist/providers/aki-provider.d.ts.map +1 -1
- package/dist/providers/aki-provider.js +6 -0
- package/dist/providers/aki-provider.js.map +1 -1
- package/dist/providers/api-route-provider.d.ts +22 -0
- package/dist/providers/api-route-provider.d.ts.map +1 -0
- package/dist/providers/api-route-provider.js +56 -0
- package/dist/providers/api-route-provider.js.map +1 -0
- package/dist/providers/atlascloud-provider.d.ts +2 -0
- package/dist/providers/atlascloud-provider.d.ts.map +1 -1
- package/dist/providers/atlascloud-provider.js +22 -0
- package/dist/providers/atlascloud-provider.js.map +1 -1
- package/dist/providers/base-provider.d.ts +36 -24
- package/dist/providers/base-provider.d.ts.map +1 -1
- package/dist/providers/base-provider.js +145 -150
- package/dist/providers/base-provider.js.map +1 -1
- package/dist/providers/chatgpt-provider.d.ts +48 -0
- package/dist/providers/chatgpt-provider.d.ts.map +1 -0
- package/dist/providers/chatgpt-provider.js +506 -0
- package/dist/providers/chatgpt-provider.js.map +1 -0
- package/dist/providers/claude-agent-provider.d.ts +6 -36
- package/dist/providers/claude-agent-provider.d.ts.map +1 -1
- package/dist/providers/claude-agent-provider.js +208 -26
- package/dist/providers/claude-agent-provider.js.map +1 -1
- package/dist/providers/codex-provider.d.ts +2 -0
- package/dist/providers/codex-provider.d.ts.map +1 -1
- package/dist/providers/codex-provider.js +15 -2
- package/dist/providers/codex-provider.js.map +1 -1
- package/dist/providers/cohere-provider.d.ts +2 -1
- package/dist/providers/cohere-provider.d.ts.map +1 -1
- package/dist/providers/cohere-provider.js +5 -0
- package/dist/providers/cohere-provider.js.map +1 -1
- package/dist/providers/context-window.d.ts.map +1 -1
- package/dist/providers/context-window.js +1 -0
- package/dist/providers/context-window.js.map +1 -1
- package/dist/providers/core-tools.d.ts +2 -1
- package/dist/providers/core-tools.d.ts.map +1 -1
- package/dist/providers/core-tools.js +2 -1
- package/dist/providers/core-tools.js.map +1 -1
- package/dist/providers/cost-calculator.d.ts.map +1 -1
- package/dist/providers/cost-calculator.js +9 -0
- package/dist/providers/cost-calculator.js.map +1 -1
- package/dist/providers/credential-check.d.ts +8 -0
- package/dist/providers/credential-check.d.ts.map +1 -1
- package/dist/providers/credential-check.js +27 -0
- package/dist/providers/credential-check.js.map +1 -1
- package/dist/providers/custom-openai-provider.d.ts +2 -0
- package/dist/providers/custom-openai-provider.d.ts.map +1 -1
- package/dist/providers/custom-openai-provider.js +27 -1
- package/dist/providers/custom-openai-provider.js.map +1 -1
- 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 +64 -0
- package/dist/providers/dreamina-provider.d.ts.map +1 -0
- package/dist/providers/dreamina-provider.js +1001 -0
- package/dist/providers/dreamina-provider.js.map +1 -0
- package/dist/providers/elevenlabs-provider.d.ts +2 -1
- package/dist/providers/elevenlabs-provider.d.ts.map +1 -1
- package/dist/providers/elevenlabs-provider.js +5 -0
- package/dist/providers/elevenlabs-provider.js.map +1 -1
- package/dist/providers/evolink-provider.d.ts +2 -0
- package/dist/providers/evolink-provider.d.ts.map +1 -1
- package/dist/providers/evolink-provider.js +8 -0
- package/dist/providers/evolink-provider.js.map +1 -1
- package/dist/providers/extension-tab.d.ts +29 -0
- package/dist/providers/extension-tab.d.ts.map +1 -0
- package/dist/providers/extension-tab.js +144 -0
- package/dist/providers/extension-tab.js.map +1 -0
- package/dist/providers/fake-provider.d.ts +5 -2
- package/dist/providers/fake-provider.d.ts.map +1 -1
- package/dist/providers/fake-provider.js +73 -9
- package/dist/providers/fake-provider.js.map +1 -1
- package/dist/providers/fake-schema-answer.d.ts +10 -0
- package/dist/providers/fake-schema-answer.d.ts.map +1 -0
- package/dist/providers/fake-schema-answer.js +64 -0
- package/dist/providers/fake-schema-answer.js.map +1 -0
- package/dist/providers/fal-provider.d.ts +2 -1
- package/dist/providers/fal-provider.d.ts.map +1 -1
- package/dist/providers/fal-provider.js +32 -2
- package/dist/providers/fal-provider.js.map +1 -1
- package/dist/providers/gemini-provider.d.ts +2 -1
- package/dist/providers/gemini-provider.d.ts.map +1 -1
- package/dist/providers/gemini-provider.js +15 -0
- package/dist/providers/gemini-provider.js.map +1 -1
- package/dist/providers/gemini-web-provider.d.ts +76 -0
- package/dist/providers/gemini-web-provider.d.ts.map +1 -0
- package/dist/providers/gemini-web-provider.js +752 -0
- package/dist/providers/gemini-web-provider.js.map +1 -0
- package/dist/providers/higgsfield-provider.d.ts +2 -1
- package/dist/providers/higgsfield-provider.d.ts.map +1 -1
- package/dist/providers/higgsfield-provider.js +12 -0
- package/dist/providers/higgsfield-provider.js.map +1 -1
- package/dist/providers/huggingface-provider.d.ts +2 -1
- package/dist/providers/huggingface-provider.d.ts.map +1 -1
- package/dist/providers/huggingface-provider.js +27 -1
- package/dist/providers/huggingface-provider.js.map +1 -1
- package/dist/providers/index.d.ts +14 -3
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +48 -9
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/jina-provider.d.ts +2 -1
- package/dist/providers/jina-provider.d.ts.map +1 -1
- package/dist/providers/jina-provider.js +5 -0
- package/dist/providers/jina-provider.js.map +1 -1
- package/dist/providers/kie-provider.d.ts +2 -1
- package/dist/providers/kie-provider.d.ts.map +1 -1
- package/dist/providers/kie-provider.js +14 -0
- package/dist/providers/kie-provider.js.map +1 -1
- package/dist/providers/llama-provider.d.ts +12 -1
- package/dist/providers/llama-provider.d.ts.map +1 -1
- package/dist/providers/llama-provider.js +29 -5
- package/dist/providers/llama-provider.js.map +1 -1
- package/dist/providers/lmstudio-provider.js +2 -2
- 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 +2 -12
- package/dist/providers/manifest-models.d.ts.map +1 -1
- package/dist/providers/manifest-models.js +45 -3
- package/dist/providers/manifest-models.js.map +1 -1
- package/dist/providers/meshy-provider.d.ts +2 -1
- package/dist/providers/meshy-provider.d.ts.map +1 -1
- package/dist/providers/meshy-provider.js +6 -0
- package/dist/providers/meshy-provider.js.map +1 -1
- package/dist/providers/meta-provider.d.ts +53 -6
- package/dist/providers/meta-provider.d.ts.map +1 -1
- package/dist/providers/meta-provider.js +289 -6
- package/dist/providers/meta-provider.js.map +1 -1
- package/dist/providers/meta-segmentation.d.ts +27 -0
- package/dist/providers/meta-segmentation.d.ts.map +1 -0
- package/dist/providers/meta-segmentation.js +141 -0
- package/dist/providers/meta-segmentation.js.map +1 -0
- package/dist/providers/meta-transcription.d.ts +31 -0
- package/dist/providers/meta-transcription.d.ts.map +1 -0
- package/dist/providers/meta-transcription.js +187 -0
- package/dist/providers/meta-transcription.js.map +1 -0
- package/dist/providers/minimax-provider.d.ts +2 -0
- package/dist/providers/minimax-provider.d.ts.map +1 -1
- package/dist/providers/minimax-provider.js +11 -0
- package/dist/providers/minimax-provider.js.map +1 -1
- package/dist/providers/mistral-provider.d.ts +2 -0
- package/dist/providers/mistral-provider.d.ts.map +1 -1
- package/dist/providers/mistral-provider.js +5 -0
- package/dist/providers/mistral-provider.js.map +1 -1
- package/dist/providers/node-llama-cpp-provider.d.ts +8 -4
- package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -1
- package/dist/providers/node-llama-cpp-provider.js +83 -61
- package/dist/providers/node-llama-cpp-provider.js.map +1 -1
- package/dist/providers/nodetool-provider.d.ts +1 -1
- package/dist/providers/nodetool-provider.d.ts.map +1 -1
- package/dist/providers/nodetool-provider.js +0 -2
- package/dist/providers/nodetool-provider.js.map +1 -1
- package/dist/providers/ollama-provider.d.ts +25 -1
- package/dist/providers/ollama-provider.d.ts.map +1 -1
- package/dist/providers/ollama-provider.js +145 -27
- package/dist/providers/ollama-provider.js.map +1 -1
- package/dist/providers/openai-compat/client.d.ts +10 -1
- package/dist/providers/openai-compat/client.d.ts.map +1 -1
- package/dist/providers/openai-compat/client.js +21 -3
- package/dist/providers/openai-compat/client.js.map +1 -1
- package/dist/providers/openai-compat/index.d.ts +1 -1
- package/dist/providers/openai-compat/index.d.ts.map +1 -1
- package/dist/providers/openai-compat/index.js +1 -1
- package/dist/providers/openai-compat/index.js.map +1 -1
- package/dist/providers/openai-compat/types.d.ts +4 -0
- package/dist/providers/openai-compat/types.d.ts.map +1 -1
- package/dist/providers/openai-compat-provider.d.ts +11 -0
- package/dist/providers/openai-compat-provider.d.ts.map +1 -1
- package/dist/providers/openai-compat-provider.js +47 -2
- package/dist/providers/openai-compat-provider.js.map +1 -1
- package/dist/providers/openai-provider.d.ts +23 -2
- package/dist/providers/openai-provider.d.ts.map +1 -1
- package/dist/providers/openai-provider.js +102 -21
- package/dist/providers/openai-provider.js.map +1 -1
- package/dist/providers/openrouter-provider.d.ts +52 -1
- package/dist/providers/openrouter-provider.d.ts.map +1 -1
- package/dist/providers/openrouter-provider.js +372 -11
- package/dist/providers/openrouter-provider.js.map +1 -1
- package/dist/providers/opper-provider.d.ts +31 -0
- package/dist/providers/opper-provider.d.ts.map +1 -0
- package/dist/providers/opper-provider.js +91 -0
- package/dist/providers/opper-provider.js.map +1 -0
- package/dist/providers/provider-error.d.ts.map +1 -1
- package/dist/providers/provider-error.js +7 -1
- package/dist/providers/provider-error.js.map +1 -1
- package/dist/providers/provider-generations.d.ts +2 -2
- package/dist/providers/provider-generations.js +2 -2
- package/dist/providers/provider-request-log.d.ts.map +1 -1
- package/dist/providers/provider-request-log.js +19 -7
- package/dist/providers/provider-request-log.js.map +1 -1
- package/dist/providers/python-provider.d.ts +6 -1
- package/dist/providers/python-provider.d.ts.map +1 -1
- package/dist/providers/python-provider.js +35 -14
- package/dist/providers/python-provider.js.map +1 -1
- package/dist/providers/replicate-provider.d.ts +2 -1
- package/dist/providers/replicate-provider.d.ts.map +1 -1
- package/dist/providers/replicate-provider.js +22 -0
- package/dist/providers/replicate-provider.js.map +1 -1
- 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 +12 -2
- package/dist/providers/responses-api.d.ts.map +1 -1
- package/dist/providers/responses-api.js +54 -3
- package/dist/providers/responses-api.js.map +1 -1
- package/dist/providers/reve-provider.d.ts +2 -1
- package/dist/providers/reve-provider.d.ts.map +1 -1
- package/dist/providers/reve-provider.js +6 -0
- package/dist/providers/reve-provider.js.map +1 -1
- package/dist/providers/rodin-provider.d.ts +2 -1
- package/dist/providers/rodin-provider.d.ts.map +1 -1
- package/dist/providers/rodin-provider.js +6 -0
- package/dist/providers/rodin-provider.js.map +1 -1
- package/dist/providers/scripted-provider.d.ts.map +1 -1
- package/dist/providers/scripted-provider.js +6 -1
- package/dist/providers/scripted-provider.js.map +1 -1
- 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 +5 -8
- package/dist/providers/together-provider.d.ts.map +1 -1
- package/dist/providers/together-provider.js +54 -159
- package/dist/providers/together-provider.js.map +1 -1
- package/dist/providers/topaz-provider.d.ts +2 -1
- package/dist/providers/topaz-provider.d.ts.map +1 -1
- package/dist/providers/topaz-provider.js +5 -0
- package/dist/providers/topaz-provider.js.map +1 -1
- package/dist/providers/types.d.ts +54 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/providers/useapi-provider.d.ts +2 -1
- package/dist/providers/useapi-provider.d.ts.map +1 -1
- package/dist/providers/useapi-provider.js +8 -0
- package/dist/providers/useapi-provider.js.map +1 -1
- package/dist/providers/vllm-provider.d.ts +9 -4
- package/dist/providers/vllm-provider.d.ts.map +1 -1
- package/dist/providers/vllm-provider.js +16 -8
- package/dist/providers/vllm-provider.js.map +1 -1
- package/dist/providers/voyage-provider.d.ts +2 -1
- package/dist/providers/voyage-provider.d.ts.map +1 -1
- package/dist/providers/voyage-provider.js +5 -0
- package/dist/providers/voyage-provider.js.map +1 -1
- package/dist/providers/xai-provider.d.ts +2 -0
- package/dist/providers/xai-provider.d.ts.map +1 -1
- package/dist/providers/xai-provider.js +8 -0
- package/dist/providers/xai-provider.js.map +1 -1
- package/dist/python-bridge-base.d.ts +16 -6
- package/dist/python-bridge-base.d.ts.map +1 -1
- package/dist/python-bridge-base.js +117 -40
- package/dist/python-bridge-base.js.map +1 -1
- package/dist/python-bridge-codec.d.ts +16 -1
- package/dist/python-bridge-codec.d.ts.map +1 -1
- package/dist/python-bridge-codec.js +60 -2
- package/dist/python-bridge-codec.js.map +1 -1
- package/dist/python-bridge-framing.d.ts +10 -1
- package/dist/python-bridge-framing.d.ts.map +1 -1
- package/dist/python-bridge-framing.js +33 -8
- package/dist/python-bridge-framing.js.map +1 -1
- package/dist/python-bridge-types.d.ts +26 -5
- package/dist/python-bridge-types.d.ts.map +1 -1
- package/dist/python-bridge-types.js.map +1 -1
- package/dist/python-node-executor.d.ts +14 -3
- package/dist/python-node-executor.d.ts.map +1 -1
- package/dist/python-node-executor.js +185 -3
- package/dist/python-node-executor.js.map +1 -1
- package/dist/python-stdio-bridge.d.ts +6 -0
- package/dist/python-stdio-bridge.d.ts.map +1 -1
- package/dist/python-stdio-bridge.js +25 -2
- package/dist/python-stdio-bridge.js.map +1 -1
- package/dist/recommended-models.d.ts.map +1 -1
- package/dist/recommended-models.js +20 -0
- package/dist/recommended-models.js.map +1 -1
- 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 +5 -0
- package/dist/run-trace-context.d.ts.map +1 -0
- package/dist/run-trace-context.js +33 -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 +418 -0
- package/dist/run-trace-processor.js.map +1 -0
- package/dist/run-trace-scope.d.ts +28 -0
- package/dist/run-trace-scope.d.ts.map +1 -0
- package/dist/run-trace-scope.js +51 -0
- package/dist/run-trace-scope.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 +114 -0
- package/dist/run-trace-serialization.js.map +1 -0
- package/dist/span-record.d.ts +4 -0
- package/dist/span-record.d.ts.map +1 -0
- package/dist/span-record.js +48 -0
- package/dist/span-record.js.map +1 -0
- package/dist/storage-workspace.d.ts +3 -0
- package/dist/storage-workspace.d.ts.map +1 -1
- package/dist/storage-workspace.js +32 -17
- package/dist/storage-workspace.js.map +1 -1
- package/dist/swappable-python-bridge.d.ts +6 -6
- package/dist/swappable-python-bridge.d.ts.map +1 -1
- package/dist/swappable-python-bridge.js +10 -10
- package/dist/swappable-python-bridge.js.map +1 -1
- package/dist/telemetry.d.ts +9 -3
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +53 -20
- package/dist/telemetry.js.map +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +55 -3
- package/dist/testing.js.map +1 -1
- package/dist/trace-exporters.d.ts +2 -30
- package/dist/trace-exporters.d.ts.map +1 -1
- package/dist/trace-exporters.js +4 -42
- package/dist/trace-exporters.js.map +1 -1
- package/dist/traced-storage.d.ts +17 -0
- package/dist/traced-storage.d.ts.map +1 -0
- package/dist/traced-storage.js +41 -0
- package/dist/traced-storage.js.map +1 -0
- package/dist/tracing-helpers.d.ts +15 -22
- package/dist/tracing-helpers.d.ts.map +1 -1
- package/dist/tracing-helpers.js +38 -6
- 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/package.json +21 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-provider.d.ts","sourceRoot":"","sources":["../../src/providers/meta-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EACjC,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"meta-provider.d.ts","sourceRoot":"","sources":["../../src/providers/meta-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EACjC,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAahE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AA2EpB;;;;;;;;;;;GAWG;AACH,qBAAa,YAAa,SAAQ,oBAAoB;IACpD,OAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;IAED,YACE,OAAO,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,EAClC,OAAO,GAAE,2BAAgC,EAe1C;IAEQ,eAAe;QACb,YAAY;MACtB;IAEc,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE9D;IAED;;;OAGG;IACH,UAAmB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1D;IAED,IAAa,uBAAuB,IAAI,OAAO,CAE9C;IAED,cAAuB,wBAAwB,IAAI,OAAO,CAEzD;IAED,IAAa,kBAAkB,IAAI,OAAO,CAEzC;IAED,UAAmB,qBAAqB,IAAI,qBAAqB,CAEhE;IAED,UAAmB,oBAAoB,IAAI,SAAS,kBAAkB,EAAE,CAOvE;IAEc,0BAA0B,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAKpE;IAEc,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAe9D;IAEc,qBAAqB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAQ1D;IAEc,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAGzE;IAEc,YAAY,CACzB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,EAAE,CAAC,CAmBvB;IAEc,YAAY,CACzB,MAAM,EAAE,UAAU,EAAE,EACpB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,UAAU,CAAC,CAGrB;IAED;;;OAGG;IACY,aAAa,CAC1B,MAAM,EAAE,UAAU,EAAE,EACpB,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,EAAE,CAAC,CAmCvB;IAED;;;OAGG;IACY,0BAA0B,CAAC,IAAI,EAAE;QAC9C,KAAK,EAAE,UAAU,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GAAG,OAAO,CAAC,SAAS,CAAC,CAmDrB;IAED;;;OAGG;IACY,YAAY,CACzB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA4ClC;YAEa,aAAa;YAoBb,QAAQ;YAuBR,QAAQ;IAUtB,OAAO,CAAC,sBAAsB;CAO/B"}
|
|
@@ -1,22 +1,78 @@
|
|
|
1
1
|
import { OpenAICompatProvider } from "./openai-compat-provider.js";
|
|
2
|
+
import { extractResponsesText } from "./responses-api.js";
|
|
3
|
+
import { bytesToImageDataUri } from "./image-mime.js";
|
|
4
|
+
import { displayedImageSize, samMasksFromOutput, samPromptText } from "./meta-segmentation.js";
|
|
5
|
+
import { decodeTranscribeResponse, keywordsFromPrompt, languageBiasName, toTranscribeWav } from "./meta-transcription.js";
|
|
2
6
|
import { PROVIDER_IDS } from "./types.js";
|
|
7
|
+
import { isRecord, isString } from "@nodetool-ai/protocol";
|
|
3
8
|
const META_BASE_URL = "https://api.meta.ai/v1";
|
|
9
|
+
/** Muse Image: text-to-image and image editing. */
|
|
10
|
+
const MUSE_IMAGE_MODEL = "muse-image-1.0";
|
|
11
|
+
/** Muse Voice Transcribe: speech to text over `/v1/asr/transcribe`. */
|
|
12
|
+
const MUSE_TRANSCRIBE_MODEL = "muse-voice-transcribe-1.0";
|
|
13
|
+
/** SAM 3.1: text- or object-prompted segmentation over the Responses API. */
|
|
14
|
+
const SAM_MODEL = "sam-3.1";
|
|
15
|
+
/** Images per request on `/v1/images/generations` and `/v1/images/edits`. */
|
|
16
|
+
const MAX_IMAGES_PER_REQUEST = 10;
|
|
4
17
|
/**
|
|
5
18
|
* Models Meta serves when `/v1/models` cannot be reached (no network, key not
|
|
6
19
|
* yet accepted). Keeps the model menu usable so a user can pick one and let
|
|
7
20
|
* the call itself report the real error. See https://dev.meta.ai/docs/models.
|
|
8
21
|
*/
|
|
9
22
|
const META_FALLBACK_MODELS = [
|
|
23
|
+
"muse-spark-1.3",
|
|
10
24
|
"muse-spark-1.2",
|
|
11
25
|
"muse-spark-1.2-contributor",
|
|
12
26
|
"muse-spark-1.1"
|
|
13
27
|
];
|
|
14
28
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
29
|
+
* Whether `model` is a Muse Spark chat model rather than one of the media
|
|
30
|
+
* models the same `/v1/models` listing can carry.
|
|
31
|
+
*/
|
|
32
|
+
function isMetaChatModel(model) {
|
|
33
|
+
return !/^(muse-image|muse-voice|sam-)/i.test(model);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Meta's Images API reads `size` as an aspect ratio, not exact pixels. Pixel
|
|
37
|
+
* sizes pass through; a ratio becomes a size with a 1024-pixel short side.
|
|
38
|
+
*/
|
|
39
|
+
function imageSize(width, height, aspectRatio) {
|
|
40
|
+
if (width && height && width > 0 && height > 0) {
|
|
41
|
+
return `${Math.round(width)}x${Math.round(height)}`;
|
|
42
|
+
}
|
|
43
|
+
const match = aspectRatio ? /^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?)$/.exec(aspectRatio.trim()) : null;
|
|
44
|
+
if (!match)
|
|
45
|
+
return undefined;
|
|
46
|
+
const w = Number(match[1]);
|
|
47
|
+
const h = Number(match[2]);
|
|
48
|
+
if (!(w > 0 && h > 0))
|
|
49
|
+
return undefined;
|
|
50
|
+
return w >= h
|
|
51
|
+
? `${Math.round((1024 * w) / h)}x1024`
|
|
52
|
+
: `1024x${Math.round((1024 * h) / w)}`;
|
|
53
|
+
}
|
|
54
|
+
function promptWithNegative(prompt, negativePrompt) {
|
|
55
|
+
return negativePrompt?.trim()
|
|
56
|
+
? `${prompt.trim()}\n\nDo not include: ${negativePrompt.trim()}`
|
|
57
|
+
: prompt;
|
|
58
|
+
}
|
|
59
|
+
function imageCount(n) {
|
|
60
|
+
if (!Number.isInteger(n) || n < 1 || n > MAX_IMAGES_PER_REQUEST) {
|
|
61
|
+
throw new Error(`Meta image requests return 1 to ${MAX_IMAGES_PER_REQUEST} images, got ${n}.`);
|
|
62
|
+
}
|
|
63
|
+
return n;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Meta AI provider for the Muse family at https://api.meta.ai/v1.
|
|
67
|
+
*
|
|
68
|
+
* Chat runs on Meta's Responses API, the only protocol that serves its hosted
|
|
69
|
+
* tools: a `web_search` tool is answered by Meta's own search grounding, and
|
|
70
|
+
* tools marked `deferLoading` are loaded on demand by its hosted
|
|
71
|
+
* `tool_search`. Muse Spark reads video and audio parts natively.
|
|
72
|
+
*
|
|
73
|
+
* Media runs on Meta's dedicated endpoints: Muse Image for text-to-image and
|
|
74
|
+
* editing, Muse Voice Transcribe for speech to text, and SAM 3.1 for image
|
|
75
|
+
* segmentation. See https://dev.meta.ai/docs/overview.
|
|
20
76
|
*/
|
|
21
77
|
export class MetaProvider extends OpenAICompatProvider {
|
|
22
78
|
static requiredSecrets() {
|
|
@@ -39,10 +95,237 @@ export class MetaProvider extends OpenAICompatProvider {
|
|
|
39
95
|
async hasToolSupport(_model) {
|
|
40
96
|
return true;
|
|
41
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Muse Spark chat goes through the Responses API. Search grounding and tool
|
|
100
|
+
* search exist only there, not on Meta's Chat Completions endpoint.
|
|
101
|
+
*/
|
|
102
|
+
usesResponsesApi(model) {
|
|
103
|
+
return isMetaChatModel(model);
|
|
104
|
+
}
|
|
105
|
+
get supportsNativeWebSearch() {
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
get supportsNativeToolSearch() {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
get supportsVideoInput() {
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
responsesInputOptions() {
|
|
115
|
+
return { video: true, audio: true };
|
|
116
|
+
}
|
|
117
|
+
declaredCapabilities() {
|
|
118
|
+
return [
|
|
119
|
+
"text_to_image",
|
|
120
|
+
"image_to_image",
|
|
121
|
+
"segment_image",
|
|
122
|
+
"automatic_speech_recognition"
|
|
123
|
+
];
|
|
124
|
+
}
|
|
42
125
|
async getAvailableLanguageModels() {
|
|
43
|
-
const models = await this.listCompatModels();
|
|
126
|
+
const models = (await this.listCompatModels()).filter((model) => isMetaChatModel(model.id));
|
|
44
127
|
return models.length > 0 ? models : this.fallbackLanguageModels();
|
|
45
128
|
}
|
|
129
|
+
async getAvailableImageModels() {
|
|
130
|
+
return [
|
|
131
|
+
{
|
|
132
|
+
id: MUSE_IMAGE_MODEL,
|
|
133
|
+
name: "Muse Image 1.0",
|
|
134
|
+
provider: PROVIDER_IDS.META,
|
|
135
|
+
supportedTasks: ["text_to_image", "image_to_image"]
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
id: SAM_MODEL,
|
|
139
|
+
name: "SAM 3.1",
|
|
140
|
+
provider: PROVIDER_IDS.META,
|
|
141
|
+
supportedTasks: ["segment"]
|
|
142
|
+
}
|
|
143
|
+
];
|
|
144
|
+
}
|
|
145
|
+
async getAvailableASRModels() {
|
|
146
|
+
return [
|
|
147
|
+
{
|
|
148
|
+
id: MUSE_TRANSCRIBE_MODEL,
|
|
149
|
+
name: "Muse Voice Transcribe 1.0",
|
|
150
|
+
provider: PROVIDER_IDS.META
|
|
151
|
+
}
|
|
152
|
+
];
|
|
153
|
+
}
|
|
154
|
+
async textToImage(params) {
|
|
155
|
+
const [image] = await this.textToImages(params, 1);
|
|
156
|
+
return image;
|
|
157
|
+
}
|
|
158
|
+
async textToImages(params, numImages) {
|
|
159
|
+
if (!params.prompt?.trim()) {
|
|
160
|
+
throw new Error("The input prompt cannot be empty.");
|
|
161
|
+
}
|
|
162
|
+
const request = {
|
|
163
|
+
model: params.model.id,
|
|
164
|
+
prompt: promptWithNegative(params.prompt, params.negativePrompt),
|
|
165
|
+
n: imageCount(numImages),
|
|
166
|
+
response_format: "b64_json",
|
|
167
|
+
output_format: "png"
|
|
168
|
+
};
|
|
169
|
+
const size = imageSize(params.width, params.height, params.aspectRatio);
|
|
170
|
+
if (size)
|
|
171
|
+
request.size = size;
|
|
172
|
+
return this.requestImages("images/generations", request, params.model.id, params.signal);
|
|
173
|
+
}
|
|
174
|
+
async imageToImage(images, params) {
|
|
175
|
+
const [image] = await this.imageToImages(images, params, 1);
|
|
176
|
+
return image;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Edit or compose 1–10 source images. The edits endpoint's JSON form takes
|
|
180
|
+
* each image as a data URL; it rejects masks.
|
|
181
|
+
*/
|
|
182
|
+
async imageToImages(images, params, numImages) {
|
|
183
|
+
const sources = images.filter((image) => image && image.length > 0);
|
|
184
|
+
if (sources.length === 0) {
|
|
185
|
+
throw new Error("image must not be empty.");
|
|
186
|
+
}
|
|
187
|
+
if (sources.length > MAX_IMAGES_PER_REQUEST) {
|
|
188
|
+
throw new Error(`Meta image edits accept at most ${MAX_IMAGES_PER_REQUEST} source images, got ${sources.length}.`);
|
|
189
|
+
}
|
|
190
|
+
if (!params.prompt?.trim()) {
|
|
191
|
+
throw new Error("The input prompt cannot be empty.");
|
|
192
|
+
}
|
|
193
|
+
const request = {
|
|
194
|
+
model: params.model.id,
|
|
195
|
+
prompt: promptWithNegative(params.prompt, params.negativePrompt),
|
|
196
|
+
images: sources.map((image) => ({
|
|
197
|
+
image_url: bytesToImageDataUri(image)
|
|
198
|
+
})),
|
|
199
|
+
n: imageCount(numImages),
|
|
200
|
+
response_format: "b64_json",
|
|
201
|
+
output_format: "png"
|
|
202
|
+
};
|
|
203
|
+
const size = imageSize(params.targetWidth, params.targetHeight, params.aspectRatio);
|
|
204
|
+
if (size)
|
|
205
|
+
request.size = size;
|
|
206
|
+
return this.requestImages("images/edits", request, params.model.id, params.signal);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Transcribe a recording with Muse Voice Transcribe. ENDPOINTING mode splits
|
|
210
|
+
* the transcript into turns, which come back as timed chunks.
|
|
211
|
+
*/
|
|
212
|
+
async automaticSpeechRecognition(args) {
|
|
213
|
+
if (!args.audio || args.audio.length === 0) {
|
|
214
|
+
throw new Error("audio must not be empty");
|
|
215
|
+
}
|
|
216
|
+
if (args.word_timestamps) {
|
|
217
|
+
throw new Error("Meta transcription has no word-level timestamps; it returns turn timings.");
|
|
218
|
+
}
|
|
219
|
+
const wav = await toTranscribeWav(args.audio);
|
|
220
|
+
const settings = {
|
|
221
|
+
mode: "ENDPOINTING",
|
|
222
|
+
model: args.model,
|
|
223
|
+
audioEncoding: "WAV"
|
|
224
|
+
};
|
|
225
|
+
if (args.language?.trim()) {
|
|
226
|
+
settings.languageBias = [languageBiasName(args.language)];
|
|
227
|
+
}
|
|
228
|
+
const keywords = args.prompt ? keywordsFromPrompt(args.prompt) : [];
|
|
229
|
+
if (keywords.length > 0)
|
|
230
|
+
settings.keywords = keywords;
|
|
231
|
+
const form = new FormData();
|
|
232
|
+
form.append("request", new Blob([JSON.stringify(settings)], { type: "application/json" }));
|
|
233
|
+
form.append("audio", new Blob([Buffer.from(wav)], { type: "audio/wav" }), "audio.wav");
|
|
234
|
+
this.recordRequestPayload(settings);
|
|
235
|
+
const response = await this.compatFetch(`${META_BASE_URL}/asr/transcribe`, {
|
|
236
|
+
method: "POST",
|
|
237
|
+
headers: {
|
|
238
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
239
|
+
Accept: "application/json"
|
|
240
|
+
},
|
|
241
|
+
body: form
|
|
242
|
+
});
|
|
243
|
+
const payload = await this.readJson(response, "transcription");
|
|
244
|
+
const { result, audioDurationMs } = decodeTranscribeResponse(payload);
|
|
245
|
+
if (audioDurationMs !== null) {
|
|
246
|
+
// Billed per whole second of audio, rounded down.
|
|
247
|
+
this.trackUsage(args.model, {
|
|
248
|
+
durationSeconds: Math.floor(audioDurationMs / 1000)
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
return result;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Segment an image with SAM 3.1. A text prompt finds every instance of a
|
|
255
|
+
* concept; a box or points pick out one object.
|
|
256
|
+
*/
|
|
257
|
+
async segmentImage(image, params) {
|
|
258
|
+
if (image.length === 0) {
|
|
259
|
+
throw new Error("segmentImage requires a non-empty image");
|
|
260
|
+
}
|
|
261
|
+
const size = await displayedImageSize(image);
|
|
262
|
+
const promptText = samPromptText(params, size);
|
|
263
|
+
const request = {
|
|
264
|
+
model: params.model.id,
|
|
265
|
+
input: [
|
|
266
|
+
{
|
|
267
|
+
type: "message",
|
|
268
|
+
role: "user",
|
|
269
|
+
content: [
|
|
270
|
+
{ type: "input_text", text: promptText },
|
|
271
|
+
{ type: "input_image", image_url: bytesToImageDataUri(image) }
|
|
272
|
+
]
|
|
273
|
+
}
|
|
274
|
+
],
|
|
275
|
+
stream: false
|
|
276
|
+
};
|
|
277
|
+
const payload = await this.postJson("responses", request, "segmentation", params.signal);
|
|
278
|
+
const outputText = isRecord(payload) && isString(payload.output_text)
|
|
279
|
+
? payload.output_text
|
|
280
|
+
: extractResponsesText(isRecord(payload) ? payload.output : undefined);
|
|
281
|
+
let masks = await samMasksFromOutput(outputText, size, {
|
|
282
|
+
label: params.prompt?.trim() || null
|
|
283
|
+
});
|
|
284
|
+
const minConfidence = params.minConfidence;
|
|
285
|
+
if (minConfidence != null) {
|
|
286
|
+
masks = masks.filter((mask) => mask.confidence == null || mask.confidence >= minConfidence);
|
|
287
|
+
}
|
|
288
|
+
if (params.maxMasks != null && params.maxMasks >= 0) {
|
|
289
|
+
masks = masks.slice(0, params.maxMasks);
|
|
290
|
+
}
|
|
291
|
+
return masks;
|
|
292
|
+
}
|
|
293
|
+
async requestImages(endpoint, request, model, signal) {
|
|
294
|
+
const payload = await this.postJson(endpoint, request, "image", signal);
|
|
295
|
+
const data = isRecord(payload) ? payload.data : undefined;
|
|
296
|
+
const images = (Array.isArray(data) ? data : [])
|
|
297
|
+
.filter(isRecord)
|
|
298
|
+
.map((item) => item.b64_json)
|
|
299
|
+
.filter(isString)
|
|
300
|
+
.map((b64) => new Uint8Array(Buffer.from(b64, "base64")));
|
|
301
|
+
if (images.length === 0) {
|
|
302
|
+
throw new Error("Meta image generation returned no image data.");
|
|
303
|
+
}
|
|
304
|
+
this.trackUsage(model, { imageCount: images.length });
|
|
305
|
+
return images;
|
|
306
|
+
}
|
|
307
|
+
async postJson(endpoint, body, what, signal) {
|
|
308
|
+
this.recordRequestPayload(body);
|
|
309
|
+
const init = {
|
|
310
|
+
method: "POST",
|
|
311
|
+
headers: {
|
|
312
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
313
|
+
"Content-Type": "application/json"
|
|
314
|
+
},
|
|
315
|
+
body: JSON.stringify(body)
|
|
316
|
+
};
|
|
317
|
+
if (signal)
|
|
318
|
+
init.signal = signal;
|
|
319
|
+
const response = await this.compatFetch(`${META_BASE_URL}/${endpoint}`, init);
|
|
320
|
+
return this.readJson(response, what);
|
|
321
|
+
}
|
|
322
|
+
async readJson(response, what) {
|
|
323
|
+
if (!response.ok) {
|
|
324
|
+
const detail = await response.text().catch(() => "");
|
|
325
|
+
throw new Error(`Meta ${what} request failed: ${response.status}${detail ? ` ${detail}` : ""}`);
|
|
326
|
+
}
|
|
327
|
+
return response.json();
|
|
328
|
+
}
|
|
46
329
|
fallbackLanguageModels() {
|
|
47
330
|
return META_FALLBACK_MODELS.map((id) => ({
|
|
48
331
|
id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-provider.js","sourceRoot":"","sources":["../../src/providers/meta-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAsB,MAAM,YAAY,CAAC;AAE9D,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,oBAAoB,GAAG;IAC3B,gBAAgB;IAChB,4BAA4B;IAC5B,gBAAgB;CACR,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IACpD,MAAM,CAAU,eAAe;QAC7B,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1B,CAAC;IAED,YACE,OAAkC,EAClC,OAAO,GAAgC,EAAE;QAEzC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;QACpC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,CACH;YACE,UAAU,EAAE,YAAY,CAAC,IAAI;YAC7B,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;YACrB,OAAO,EAAE,aAAa;SACvB,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAEQ,eAAe;QACtB,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,MAAc;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,KAAK,CAAC,0BAA0B;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACpE,CAAC;IAEO,sBAAsB;QAC5B,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACvC,EAAE;YACF,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,YAAY,CAAC,IAAI;SAC5B,CAAC,CAAC,CAAC;IACN,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"meta-provider.js","sourceRoot":"","sources":["../../src/providers/meta-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ImageSegmentationMask, SegmentImageParams } from "./types.js";
|
|
2
|
+
export interface ImageSize {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The image's size as displayed, which is the space SAM reads prompt
|
|
8
|
+
* coordinates in and reports boxes in. EXIF orientations 5–8 rotate by a
|
|
9
|
+
* quarter turn, so the stored width and height swap.
|
|
10
|
+
*/
|
|
11
|
+
export declare function displayedImageSize(image: Uint8Array): Promise<ImageSize>;
|
|
12
|
+
/**
|
|
13
|
+
* The `input_text` for a segmentation request. A text prompt wins: SAM's API
|
|
14
|
+
* refuses a request that mixes a noun phrase with object prompts. Without
|
|
15
|
+
* one, the box and points become a single object's prompt on frame 0.
|
|
16
|
+
*/
|
|
17
|
+
export declare function samPromptText(params: Pick<SegmentImageParams, "prompt" | "box" | "points">, size: ImageSize): string;
|
|
18
|
+
/**
|
|
19
|
+
* Decode SAM's output text into one full-frame mask per object, in the order
|
|
20
|
+
* the model reported them. Each mask raster covers only its object's box, so
|
|
21
|
+
* it is placed at that box on a black canvas the size of the source image.
|
|
22
|
+
* Empty output is SAM's answer for "no match" and yields an empty list.
|
|
23
|
+
*/
|
|
24
|
+
export declare function samMasksFromOutput(outputText: string, size: ImageSize, options?: {
|
|
25
|
+
label?: string | null;
|
|
26
|
+
}): Promise<ImageSegmentationMask[]>;
|
|
27
|
+
//# sourceMappingURL=meta-segmentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-segmentation.d.ts","sourceRoot":"","sources":["../../src/providers/meta-segmentation.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAapB,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAU9E;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC,EAC7D,IAAI,EAAE,SAAS,GACd,MAAM,CAgCR;AAUD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GACtC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAoDlC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request text and response decoding for Meta's SAM 3.1 segmentation model.
|
|
3
|
+
*
|
|
4
|
+
* SAM 3.1 runs on Meta's Responses API. The request carries one image and an
|
|
5
|
+
* `input_text` prompt: a short noun phrase, or an object prompt built from a
|
|
6
|
+
* box and points. The answer is not JSON but one line of special-token text,
|
|
7
|
+
* `<0f>` followed by `id<|box;…|><|mask;…|>` records, whose masks use a custom
|
|
8
|
+
* base85 encoding. `@meta-sam/parser` is Meta's own reader for that grammar;
|
|
9
|
+
* this module turns its records into full-frame mask PNGs.
|
|
10
|
+
* See https://dev.meta.ai/docs/media-segmentation and
|
|
11
|
+
* https://dev.meta.ai/docs/sam/reading-segmentation.
|
|
12
|
+
*/
|
|
13
|
+
import { buildObjectPrompt, decodeMaskToRaster, parseImageStream, recordsOfKind } from "@meta-sam/parser";
|
|
14
|
+
import { importHidden } from "@nodetool-ai/config";
|
|
15
|
+
async function loadSharp() {
|
|
16
|
+
const mod = await importHidden("sharp");
|
|
17
|
+
if (!mod)
|
|
18
|
+
throw new Error("Meta segmentation requires sharp");
|
|
19
|
+
return "default" in mod ? mod.default : mod;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The image's size as displayed, which is the space SAM reads prompt
|
|
23
|
+
* coordinates in and reports boxes in. EXIF orientations 5–8 rotate by a
|
|
24
|
+
* quarter turn, so the stored width and height swap.
|
|
25
|
+
*/
|
|
26
|
+
export async function displayedImageSize(image) {
|
|
27
|
+
const sharp = await loadSharp();
|
|
28
|
+
const meta = await sharp(Buffer.from(image)).metadata();
|
|
29
|
+
if (!meta.width || !meta.height) {
|
|
30
|
+
throw new Error("Meta segmentation could not read the image size");
|
|
31
|
+
}
|
|
32
|
+
const rotated = (meta.orientation ?? 1) >= 5;
|
|
33
|
+
return rotated
|
|
34
|
+
? { width: meta.height, height: meta.width }
|
|
35
|
+
: { width: meta.width, height: meta.height };
|
|
36
|
+
}
|
|
37
|
+
function clampInt(value, min, max) {
|
|
38
|
+
return Math.max(min, Math.min(max, Math.floor(value)));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The `input_text` for a segmentation request. A text prompt wins: SAM's API
|
|
42
|
+
* refuses a request that mixes a noun phrase with object prompts. Without
|
|
43
|
+
* one, the box and points become a single object's prompt on frame 0.
|
|
44
|
+
*/
|
|
45
|
+
export function samPromptText(params, size) {
|
|
46
|
+
const prompt = params.prompt?.trim();
|
|
47
|
+
if (prompt)
|
|
48
|
+
return prompt;
|
|
49
|
+
const framePrompt = {};
|
|
50
|
+
if (params.box) {
|
|
51
|
+
const left = clampInt(params.box.x, 0, size.width - 1);
|
|
52
|
+
const top = clampInt(params.box.y, 0, size.height - 1);
|
|
53
|
+
framePrompt.box = {
|
|
54
|
+
left,
|
|
55
|
+
top,
|
|
56
|
+
right: clampInt(params.box.x + params.box.width, left + 1, size.width),
|
|
57
|
+
bottom: clampInt(params.box.y + params.box.height, top + 1, size.height)
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (params.points && params.points.length > 0) {
|
|
61
|
+
framePrompt.points = params.points.map((point) => ({
|
|
62
|
+
x: clampInt(point.x, 0, size.width - 1),
|
|
63
|
+
y: clampInt(point.y, 0, size.height - 1),
|
|
64
|
+
label: point.include ? "positive" : "negative"
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
if (!framePrompt.box && !framePrompt.points) {
|
|
68
|
+
throw new Error("Meta SAM 3.1 needs a text prompt (a short noun phrase), a box, or points");
|
|
69
|
+
}
|
|
70
|
+
return buildObjectPrompt({
|
|
71
|
+
size,
|
|
72
|
+
objects: [{ id: 1, prompts: [{ frame: 0, ...framePrompt }] }]
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/** The parser reads a Responses event stream; a complete answer is one delta. */
|
|
76
|
+
async function* outputTextEvents(text) {
|
|
77
|
+
const lane = { item_id: "output", output_index: 0, content_index: 0 };
|
|
78
|
+
yield { type: "response.output_text.delta", delta: text, ...lane };
|
|
79
|
+
yield { type: "response.output_text.done", text, ...lane };
|
|
80
|
+
yield { type: "response.completed" };
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Decode SAM's output text into one full-frame mask per object, in the order
|
|
84
|
+
* the model reported them. Each mask raster covers only its object's box, so
|
|
85
|
+
* it is placed at that box on a black canvas the size of the source image.
|
|
86
|
+
* Empty output is SAM's answer for "no match" and yields an empty list.
|
|
87
|
+
*/
|
|
88
|
+
export async function samMasksFromOutput(outputText, size, options = {}) {
|
|
89
|
+
if (!outputText.trim())
|
|
90
|
+
return [];
|
|
91
|
+
const result = await parseImageStream(outputTextEvents(outputText))
|
|
92
|
+
.finalResult;
|
|
93
|
+
const maskRecords = recordsOfKind(result.records, "mask");
|
|
94
|
+
const errors = result.diagnostics.filter((d) => d.severity === "error");
|
|
95
|
+
if (maskRecords.length === 0 && errors.length > 0) {
|
|
96
|
+
throw new Error(`Meta SAM 3.1 returned output that could not be read: ${errors
|
|
97
|
+
.map((d) => `${d.code}: ${d.message}`)
|
|
98
|
+
.join("; ")}`);
|
|
99
|
+
}
|
|
100
|
+
const sharp = await loadSharp();
|
|
101
|
+
const masks = [];
|
|
102
|
+
for (const record of maskRecords) {
|
|
103
|
+
const raster = decodeMaskToRaster(record.mask);
|
|
104
|
+
const { width: rasterWidth, height: rasterHeight } = record.mask;
|
|
105
|
+
const canvas = new Uint8Array(size.width * size.height);
|
|
106
|
+
for (let row = 0; row < rasterHeight; row++) {
|
|
107
|
+
const y = record.bounds.top + row;
|
|
108
|
+
if (y < 0 || y >= size.height)
|
|
109
|
+
continue;
|
|
110
|
+
for (let col = 0; col < rasterWidth; col++) {
|
|
111
|
+
const x = record.bounds.left + col;
|
|
112
|
+
if (x < 0 || x >= size.width)
|
|
113
|
+
continue;
|
|
114
|
+
if (raster[row * rasterWidth + col] === 1) {
|
|
115
|
+
canvas[y * size.width + x] = 255;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const png = await sharp(Buffer.from(canvas), {
|
|
120
|
+
raw: { width: size.width, height: size.height, channels: 1 }
|
|
121
|
+
})
|
|
122
|
+
.png()
|
|
123
|
+
.toBuffer();
|
|
124
|
+
masks.push({
|
|
125
|
+
mask: new Uint8Array(png),
|
|
126
|
+
mimeType: "image/png",
|
|
127
|
+
width: size.width,
|
|
128
|
+
height: size.height,
|
|
129
|
+
label: options.label ?? null,
|
|
130
|
+
confidence: record.confidence ?? null,
|
|
131
|
+
box: {
|
|
132
|
+
x: record.bounds.left,
|
|
133
|
+
y: record.bounds.top,
|
|
134
|
+
width: record.bounds.right - record.bounds.left,
|
|
135
|
+
height: record.bounds.bottom - record.bounds.top
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
return masks;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=meta-segmentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-segmentation.js","sourceRoot":"","sources":["../../src/providers/meta-segmentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ASRResult } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Whether `bytes` is a WAV file the transcribe endpoint accepts unchanged.
|
|
4
|
+
* Walks the RIFF chunks by their declared sizes (word-aligned) to find `fmt `,
|
|
5
|
+
* and answers false for anything it cannot read, which sends the audio
|
|
6
|
+
* through ffmpeg rather than to a 400.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isTranscribeReadyWav(bytes: Uint8Array): boolean;
|
|
9
|
+
/** ffmpeg is not installed. Names what needed it and the way out. */
|
|
10
|
+
export declare class TranscribeAudioConversionUnavailableError extends Error {
|
|
11
|
+
constructor();
|
|
12
|
+
}
|
|
13
|
+
/** `bytes` in the one WAV shape the transcribe endpoint accepts. */
|
|
14
|
+
export declare function toTranscribeWav(bytes: Uint8Array, signal?: AbortSignal): Promise<Uint8Array>;
|
|
15
|
+
/**
|
|
16
|
+
* Meta's `languageBias` takes English language names ("English", "French"),
|
|
17
|
+
* while NodeTool's ASR callers pass ISO 639 codes ("en", "fr-CA"). A value
|
|
18
|
+
* that is already a name, or a code Intl cannot name, passes through.
|
|
19
|
+
*/
|
|
20
|
+
export declare function languageBiasName(language: string): string;
|
|
21
|
+
/** Recognition-bias terms from a free-text prompt: comma or line separated. */
|
|
22
|
+
export declare function keywordsFromPrompt(prompt: string): string[];
|
|
23
|
+
/**
|
|
24
|
+
* Decode the transcribe endpoint's JSON answer. `turns` carry millisecond
|
|
25
|
+
* timings in ENDPOINTING and DIARIZATION modes and become chunks in seconds.
|
|
26
|
+
*/
|
|
27
|
+
export declare function decodeTranscribeResponse(payload: unknown): {
|
|
28
|
+
result: ASRResult;
|
|
29
|
+
audioDurationMs: number | null;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=meta-transcription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-transcription.d.ts","sourceRoot":"","sources":["../../src/providers/meta-transcription.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,YAAY,CAAC;AASxD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CA2B/D;AAED,qEAAqE;AACrE,qBAAa,yCAA0C,SAAQ,KAAK;IAClE,cAQC;CACF;AAkED,oEAAoE;AACpE,wBAAsB,eAAe,CACnC,KAAK,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAezD;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAK3D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG;IAC1D,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CA6BA"}
|