@llumiverse/drivers 1.3.0 → 1.4.0
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/lib/{types/adobe → adobe}/firefly.d.ts +2 -1
- package/lib/adobe/firefly.d.ts.map +1 -0
- package/lib/adobe/firefly.js +120 -0
- package/lib/adobe/firefly.js.map +1 -0
- package/lib/{types/anthropic → anthropic}/index.d.ts +4 -2
- package/lib/anthropic/index.d.ts.map +1 -0
- package/lib/{esm/anthropic → anthropic}/index.js +19 -8
- package/lib/anthropic/index.js.map +1 -0
- package/lib/{types/azure → azure}/azure_foundry.d.ts +9 -7
- package/lib/azure/azure_foundry.d.ts.map +1 -0
- package/lib/{esm/azure → azure}/azure_foundry.js +138 -124
- package/lib/azure/azure_foundry.js.map +1 -0
- package/lib/{types/bedrock → bedrock}/converse.d.ts +2 -2
- package/lib/bedrock/converse.d.ts.map +1 -0
- package/lib/{esm/bedrock → bedrock}/converse.js +86 -79
- package/lib/bedrock/converse.js.map +1 -0
- package/lib/bedrock/embeddings.d.ts +4 -0
- package/lib/bedrock/embeddings.d.ts.map +1 -0
- package/lib/bedrock/embeddings.js +359 -0
- package/lib/bedrock/embeddings.js.map +1 -0
- package/lib/{types/bedrock → bedrock}/index.d.ts +33 -9
- package/lib/bedrock/index.d.ts.map +1 -0
- package/lib/{esm/bedrock → bedrock}/index.js +599 -324
- package/lib/bedrock/index.js.map +1 -0
- package/lib/{types/bedrock → bedrock}/nova-image-payload.d.ts +5 -5
- package/lib/bedrock/nova-image-payload.d.ts.map +1 -0
- package/lib/{esm/bedrock → bedrock}/nova-image-payload.js +31 -36
- package/lib/bedrock/nova-image-payload.js.map +1 -0
- package/lib/{types/bedrock → bedrock}/payloads.d.ts +1 -1
- package/lib/bedrock/payloads.d.ts.map +1 -0
- package/lib/{cjs/bedrock → bedrock}/payloads.js.map +1 -1
- package/lib/{types/bedrock → bedrock}/s3.d.ts +3 -2
- package/lib/bedrock/s3.d.ts.map +1 -0
- package/lib/{esm/bedrock → bedrock}/s3.js +27 -23
- package/lib/bedrock/s3.js.map +1 -0
- package/lib/{types/bedrock → bedrock}/twelvelabs.d.ts +8 -9
- package/lib/bedrock/twelvelabs.d.ts.map +1 -0
- package/lib/{esm/bedrock → bedrock}/twelvelabs.js +17 -21
- package/lib/bedrock/twelvelabs.js.map +1 -0
- package/lib/{types/groq → groq}/index.d.ts +6 -4
- package/lib/groq/index.d.ts.map +1 -0
- package/lib/{esm/groq → groq}/index.js +72 -39
- package/lib/groq/index.js.map +1 -0
- package/lib/{types/huggingface_ie.d.ts → huggingface_ie.d.ts} +4 -3
- package/lib/huggingface_ie.d.ts.map +1 -0
- package/lib/{esm/huggingface_ie.js → huggingface_ie.js} +32 -31
- package/lib/huggingface_ie.js.map +1 -0
- package/lib/index.d.ts +16 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +16 -0
- package/lib/index.js.map +1 -0
- package/lib/{types/mistral → mistral}/index.d.ts +6 -5
- package/lib/mistral/index.d.ts.map +1 -0
- package/lib/{esm/mistral → mistral}/index.js +66 -38
- package/lib/mistral/index.js.map +1 -0
- package/lib/{types/mistral → mistral}/types.d.ts +1 -0
- package/lib/mistral/types.d.ts.map +1 -0
- package/lib/mistral/types.js.map +1 -0
- package/lib/{types/openai → openai}/azure_openai.d.ts +5 -4
- package/lib/openai/azure_openai.d.ts.map +1 -0
- package/lib/{esm/openai → openai}/azure_openai.js +17 -14
- package/lib/openai/azure_openai.js.map +1 -0
- package/lib/openai/drivers.d.ts +4 -0
- package/lib/openai/drivers.d.ts.map +1 -0
- package/lib/openai/drivers.js +9 -0
- package/lib/openai/drivers.js.map +1 -0
- package/lib/{types/openai → openai}/index.d.ts +16 -5
- package/lib/openai/index.d.ts.map +1 -0
- package/lib/{esm/openai → openai}/index.js +242 -141
- package/lib/openai/index.js.map +1 -0
- package/lib/{types/openai → openai}/openai.d.ts +3 -3
- package/lib/openai/openai.d.ts.map +1 -0
- package/lib/openai/openai.js +15 -0
- package/lib/openai/openai.js.map +1 -0
- package/lib/{types/openai → openai}/openai_compatible.d.ts +3 -3
- package/lib/openai/openai_compatible.d.ts.map +1 -0
- package/lib/{esm/openai → openai}/openai_compatible.js +14 -11
- package/lib/openai/openai_compatible.js.map +1 -0
- package/lib/{types/openai → openai}/openai_format.d.ts +3 -2
- package/lib/openai/openai_format.d.ts.map +1 -0
- package/lib/{esm/openai → openai}/openai_format.js +66 -24
- package/lib/openai/openai_format.js.map +1 -0
- package/lib/{types/replicate.d.ts → replicate.d.ts} +3 -2
- package/lib/replicate.d.ts.map +1 -0
- package/lib/{esm/replicate.js → replicate.js} +59 -49
- package/lib/replicate.js.map +1 -0
- package/lib/{types/shared → shared}/claude-messages.d.ts +25 -1
- package/lib/shared/claude-messages.d.ts.map +1 -0
- package/lib/{esm/shared → shared}/claude-messages.js +212 -59
- package/lib/shared/claude-messages.js.map +1 -0
- package/lib/{types/shared → shared}/claude-thinking.d.ts +1 -1
- package/lib/shared/claude-thinking.d.ts.map +1 -0
- package/lib/{esm/shared → shared}/claude-thinking.js +5 -7
- package/lib/shared/claude-thinking.js.map +1 -0
- package/lib/shared/debug-prompt.d.ts +5 -0
- package/lib/shared/debug-prompt.d.ts.map +1 -0
- package/lib/shared/debug-prompt.js +25 -0
- package/lib/shared/debug-prompt.js.map +1 -0
- package/lib/{types/test-driver → test-driver}/TestErrorCompletionStream.d.ts +1 -1
- package/lib/test-driver/TestErrorCompletionStream.d.ts.map +1 -0
- package/lib/test-driver/TestErrorCompletionStream.js +16 -0
- package/lib/test-driver/TestErrorCompletionStream.js.map +1 -0
- package/lib/{types/test-driver → test-driver}/TestValidationErrorCompletionStream.d.ts +1 -1
- package/lib/test-driver/TestValidationErrorCompletionStream.d.ts.map +1 -0
- package/lib/{esm/test-driver → test-driver}/TestValidationErrorCompletionStream.js +4 -4
- package/lib/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
- package/lib/{types/test-driver → test-driver}/index.d.ts +3 -3
- package/lib/test-driver/index.d.ts.map +1 -0
- package/lib/{esm/test-driver → test-driver}/index.js +20 -20
- package/lib/test-driver/index.js.map +1 -0
- package/lib/{types/test-driver → test-driver}/utils.d.ts +1 -1
- package/lib/test-driver/utils.d.ts.map +1 -0
- package/lib/{esm/test-driver → test-driver}/utils.js +4 -4
- package/lib/test-driver/utils.js.map +1 -0
- package/lib/togetherai/index.d.ts +15 -0
- package/lib/togetherai/index.d.ts.map +1 -0
- package/lib/togetherai/index.js +54 -0
- package/lib/togetherai/index.js.map +1 -0
- package/lib/{types/togetherai → togetherai}/interfaces.d.ts +1 -1
- package/lib/togetherai/interfaces.d.ts.map +1 -0
- package/lib/{cjs/watsonx → togetherai}/interfaces.js.map +1 -1
- package/lib/vertexai/debug.d.ts +2 -0
- package/lib/vertexai/debug.d.ts.map +1 -0
- package/lib/{esm/vertexai → vertexai}/debug.js +1 -1
- package/lib/vertexai/debug.js.map +1 -0
- package/lib/vertexai/embeddings/embed-legacy-multimodal.d.ts +9 -0
- package/lib/vertexai/embeddings/embed-legacy-multimodal.d.ts.map +1 -0
- package/lib/vertexai/embeddings/embed-legacy-multimodal.js +141 -0
- package/lib/vertexai/embeddings/embed-legacy-multimodal.js.map +1 -0
- package/lib/vertexai/embeddings/embed.d.ts +13 -0
- package/lib/vertexai/embeddings/embed.d.ts.map +1 -0
- package/lib/vertexai/embeddings/embed.js +162 -0
- package/lib/vertexai/embeddings/embed.js.map +1 -0
- package/lib/vertexai/embeddings/source-utils.d.ts +9 -0
- package/lib/vertexai/embeddings/source-utils.d.ts.map +1 -0
- package/lib/vertexai/embeddings/source-utils.js +18 -0
- package/lib/vertexai/embeddings/source-utils.js.map +1 -0
- package/lib/{types/vertexai → vertexai}/index.d.ts +31 -19
- package/lib/vertexai/index.d.ts.map +1 -0
- package/lib/{esm/vertexai → vertexai}/index.js +221 -159
- package/lib/vertexai/index.js.map +1 -0
- package/lib/{types/vertexai → vertexai}/models/claude.d.ts +4 -4
- package/lib/vertexai/models/claude.d.ts.map +1 -0
- package/lib/{esm/vertexai → vertexai}/models/claude.js +17 -20
- package/lib/vertexai/models/claude.js.map +1 -0
- package/lib/{types/vertexai → vertexai}/models/gemini.d.ts +28 -4
- package/lib/vertexai/models/gemini.d.ts.map +1 -0
- package/lib/{esm/vertexai → vertexai}/models/gemini.js +238 -116
- package/lib/vertexai/models/gemini.js.map +1 -0
- package/lib/{types/vertexai → vertexai}/models/imagen.d.ts +12 -11
- package/lib/vertexai/models/imagen.d.ts.map +1 -0
- package/lib/{esm/vertexai → vertexai}/models/imagen.js +74 -47
- package/lib/vertexai/models/imagen.js.map +1 -0
- package/lib/{types/vertexai → vertexai}/models/llama.d.ts +4 -4
- package/lib/vertexai/models/llama.d.ts.map +1 -0
- package/lib/{esm/vertexai → vertexai}/models/llama.js +37 -33
- package/lib/vertexai/models/llama.js.map +1 -0
- package/lib/vertexai/models.d.ts +21 -0
- package/lib/vertexai/models.d.ts.map +1 -0
- package/lib/{esm/vertexai → vertexai}/models.js +12 -9
- package/lib/vertexai/models.js.map +1 -0
- package/lib/{types/watsonx → watsonx}/index.d.ts +4 -3
- package/lib/watsonx/index.d.ts.map +1 -0
- package/lib/{esm/watsonx → watsonx}/index.js +69 -41
- package/lib/watsonx/index.js.map +1 -0
- package/lib/watsonx/interfaces.d.ts.map +1 -0
- package/lib/{esm/watsonx → watsonx}/interfaces.js.map +1 -1
- package/lib/{types/xai → xai}/index.d.ts +4 -4
- package/lib/xai/index.d.ts.map +1 -0
- package/lib/{esm/xai → xai}/index.js +22 -18
- package/lib/xai/index.js.map +1 -0
- package/package.json +87 -36
- package/src/adobe/firefly.ts +60 -43
- package/src/anthropic/index.ts +37 -20
- package/src/azure/azure_foundry.ts +210 -165
- package/src/bedrock/converse.ts +124 -101
- package/src/bedrock/embeddings.test.ts +508 -0
- package/src/bedrock/embeddings.ts +517 -0
- package/src/bedrock/error-handling.test.ts +62 -14
- package/src/bedrock/index.ts +832 -466
- package/src/bedrock/nova-image-payload.ts +98 -91
- package/src/bedrock/payloads.ts +9 -9
- package/src/bedrock/s3.test.ts +39 -0
- package/src/bedrock/s3.ts +57 -38
- package/src/bedrock/streaming-tool-use.test.ts +86 -69
- package/src/bedrock/twelvelabs.ts +35 -32
- package/src/groq/index.ts +143 -60
- package/src/http-timeout-wiring.test.ts +263 -0
- package/src/huggingface_ie.ts +45 -61
- package/src/index.ts +15 -16
- package/src/mistral/index.ts +97 -48
- package/src/mistral/types.ts +13 -12
- package/src/openai/azure_openai.ts +35 -27
- package/src/openai/drivers.ts +9 -0
- package/src/openai/error-handling.test.ts +308 -113
- package/src/openai/index.ts +378 -248
- package/src/openai/openai.ts +6 -13
- package/src/openai/openai_compatible.ts +35 -25
- package/src/openai/openai_format.ts +90 -40
- package/src/replicate.ts +108 -86
- package/src/shared/claude-messages.test.ts +37 -0
- package/src/shared/claude-messages.ts +303 -97
- package/src/shared/claude-thinking.ts +6 -12
- package/src/shared/debug-prompt.ts +28 -0
- package/src/test-driver/TestErrorCompletionStream.ts +9 -10
- package/src/test-driver/TestValidationErrorCompletionStream.ts +9 -10
- package/src/test-driver/index.ts +43 -27
- package/src/test-driver/utils.ts +8 -8
- package/src/togetherai/index.test.ts +32 -0
- package/src/togetherai/index.ts +64 -128
- package/src/togetherai/interfaces.ts +5 -5
- package/src/vertexai/debug.ts +3 -3
- package/src/vertexai/embeddings/embed-legacy-multimodal.ts +211 -0
- package/src/vertexai/embeddings/embed.ts +206 -0
- package/src/vertexai/embeddings/embeddings.test.ts +497 -0
- package/src/vertexai/embeddings/source-utils.test.ts +54 -0
- package/src/vertexai/embeddings/source-utils.ts +29 -0
- package/src/vertexai/index.ts +331 -244
- package/src/vertexai/models/claude-error-handling.test.ts +83 -36
- package/src/vertexai/models/claude-streaming-spacing.test.ts +82 -75
- package/src/vertexai/models/claude.ts +55 -40
- package/src/vertexai/models/gemini-conversation-mutation.test.ts +65 -23
- package/src/vertexai/models/gemini-error-handling.test.ts +126 -10
- package/src/vertexai/models/gemini-orphaned-tool-result.test.ts +118 -0
- package/src/vertexai/models/gemini.ts +349 -172
- package/src/vertexai/models/imagen.ts +164 -100
- package/src/vertexai/models/llama.ts +70 -48
- package/src/vertexai/models.ts +36 -16
- package/src/watsonx/index.ts +101 -65
- package/src/watsonx/interfaces.ts +10 -15
- package/src/xai/index.ts +30 -30
- package/lib/cjs/adobe/firefly.js +0 -120
- package/lib/cjs/adobe/firefly.js.map +0 -1
- package/lib/cjs/anthropic/index.js +0 -64
- package/lib/cjs/anthropic/index.js.map +0 -1
- package/lib/cjs/azure/azure_foundry.js +0 -432
- package/lib/cjs/azure/azure_foundry.js.map +0 -1
- package/lib/cjs/bedrock/converse.js +0 -359
- package/lib/cjs/bedrock/converse.js.map +0 -1
- package/lib/cjs/bedrock/index.js +0 -1508
- package/lib/cjs/bedrock/index.js.map +0 -1
- package/lib/cjs/bedrock/nova-image-payload.js +0 -207
- package/lib/cjs/bedrock/nova-image-payload.js.map +0 -1
- package/lib/cjs/bedrock/payloads.js +0 -3
- package/lib/cjs/bedrock/s3.js +0 -107
- package/lib/cjs/bedrock/s3.js.map +0 -1
- package/lib/cjs/bedrock/twelvelabs.js +0 -87
- package/lib/cjs/bedrock/twelvelabs.js.map +0 -1
- package/lib/cjs/groq/index.js +0 -328
- package/lib/cjs/groq/index.js.map +0 -1
- package/lib/cjs/huggingface_ie.js +0 -201
- package/lib/cjs/huggingface_ie.js.map +0 -1
- package/lib/cjs/index.js +0 -32
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/mistral/index.js +0 -176
- package/lib/cjs/mistral/index.js.map +0 -1
- package/lib/cjs/mistral/types.js +0 -83
- package/lib/cjs/mistral/types.js.map +0 -1
- package/lib/cjs/openai/azure_openai.js +0 -72
- package/lib/cjs/openai/azure_openai.js.map +0 -1
- package/lib/cjs/openai/index.js +0 -1135
- package/lib/cjs/openai/index.js.map +0 -1
- package/lib/cjs/openai/openai.js +0 -21
- package/lib/cjs/openai/openai.js.map +0 -1
- package/lib/cjs/openai/openai_compatible.js +0 -63
- package/lib/cjs/openai/openai_compatible.js.map +0 -1
- package/lib/cjs/openai/openai_format.js +0 -131
- package/lib/cjs/openai/openai_format.js.map +0 -1
- package/lib/cjs/package.json +0 -3
- package/lib/cjs/replicate.js +0 -275
- package/lib/cjs/replicate.js.map +0 -1
- package/lib/cjs/shared/claude-messages.js +0 -737
- package/lib/cjs/shared/claude-messages.js.map +0 -1
- package/lib/cjs/shared/claude-thinking.js +0 -60
- package/lib/cjs/shared/claude-thinking.js.map +0 -1
- package/lib/cjs/test-driver/TestErrorCompletionStream.js +0 -20
- package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +0 -1
- package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +0 -24
- package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
- package/lib/cjs/test-driver/index.js +0 -109
- package/lib/cjs/test-driver/index.js.map +0 -1
- package/lib/cjs/test-driver/utils.js +0 -30
- package/lib/cjs/test-driver/utils.js.map +0 -1
- package/lib/cjs/togetherai/index.js +0 -126
- package/lib/cjs/togetherai/index.js.map +0 -1
- package/lib/cjs/togetherai/interfaces.js +0 -3
- package/lib/cjs/togetherai/interfaces.js.map +0 -1
- package/lib/cjs/vertexai/debug.js +0 -12
- package/lib/cjs/vertexai/debug.js.map +0 -1
- package/lib/cjs/vertexai/embeddings/embeddings-image.js +0 -27
- package/lib/cjs/vertexai/embeddings/embeddings-image.js.map +0 -1
- package/lib/cjs/vertexai/embeddings/embeddings-text.js +0 -23
- package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +0 -1
- package/lib/cjs/vertexai/index.js +0 -644
- package/lib/cjs/vertexai/index.js.map +0 -1
- package/lib/cjs/vertexai/models/claude.js +0 -72
- package/lib/cjs/vertexai/models/claude.js.map +0 -1
- package/lib/cjs/vertexai/models/gemini.js +0 -864
- package/lib/cjs/vertexai/models/gemini.js.map +0 -1
- package/lib/cjs/vertexai/models/imagen.js +0 -303
- package/lib/cjs/vertexai/models/imagen.js.map +0 -1
- package/lib/cjs/vertexai/models/llama.js +0 -183
- package/lib/cjs/vertexai/models/llama.js.map +0 -1
- package/lib/cjs/vertexai/models.js +0 -35
- package/lib/cjs/vertexai/models.js.map +0 -1
- package/lib/cjs/watsonx/index.js +0 -161
- package/lib/cjs/watsonx/index.js.map +0 -1
- package/lib/cjs/watsonx/interfaces.js +0 -3
- package/lib/cjs/xai/index.js +0 -65
- package/lib/cjs/xai/index.js.map +0 -1
- package/lib/esm/adobe/firefly.js +0 -116
- package/lib/esm/adobe/firefly.js.map +0 -1
- package/lib/esm/anthropic/index.js.map +0 -1
- package/lib/esm/azure/azure_foundry.js.map +0 -1
- package/lib/esm/bedrock/converse.js.map +0 -1
- package/lib/esm/bedrock/index.js.map +0 -1
- package/lib/esm/bedrock/nova-image-payload.js.map +0 -1
- package/lib/esm/bedrock/payloads.js.map +0 -1
- package/lib/esm/bedrock/s3.js.map +0 -1
- package/lib/esm/bedrock/twelvelabs.js.map +0 -1
- package/lib/esm/groq/index.js.map +0 -1
- package/lib/esm/huggingface_ie.js.map +0 -1
- package/lib/esm/index.js +0 -16
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/mistral/index.js.map +0 -1
- package/lib/esm/mistral/types.js.map +0 -1
- package/lib/esm/openai/azure_openai.js.map +0 -1
- package/lib/esm/openai/index.js.map +0 -1
- package/lib/esm/openai/openai.js +0 -14
- package/lib/esm/openai/openai.js.map +0 -1
- package/lib/esm/openai/openai_compatible.js.map +0 -1
- package/lib/esm/openai/openai_format.js.map +0 -1
- package/lib/esm/replicate.js.map +0 -1
- package/lib/esm/shared/claude-messages.js.map +0 -1
- package/lib/esm/shared/claude-thinking.js.map +0 -1
- package/lib/esm/test-driver/TestErrorCompletionStream.js +0 -16
- package/lib/esm/test-driver/TestErrorCompletionStream.js.map +0 -1
- package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
- package/lib/esm/test-driver/index.js.map +0 -1
- package/lib/esm/test-driver/utils.js.map +0 -1
- package/lib/esm/togetherai/index.js +0 -122
- package/lib/esm/togetherai/index.js.map +0 -1
- package/lib/esm/togetherai/interfaces.js.map +0 -1
- package/lib/esm/vertexai/debug.js.map +0 -1
- package/lib/esm/vertexai/embeddings/embeddings-image.js +0 -24
- package/lib/esm/vertexai/embeddings/embeddings-image.js.map +0 -1
- package/lib/esm/vertexai/embeddings/embeddings-text.js +0 -20
- package/lib/esm/vertexai/embeddings/embeddings-text.js.map +0 -1
- package/lib/esm/vertexai/index.js.map +0 -1
- package/lib/esm/vertexai/models/claude.js.map +0 -1
- package/lib/esm/vertexai/models/gemini.js.map +0 -1
- package/lib/esm/vertexai/models/imagen.js.map +0 -1
- package/lib/esm/vertexai/models/llama.js.map +0 -1
- package/lib/esm/vertexai/models.js.map +0 -1
- package/lib/esm/watsonx/index.js.map +0 -1
- package/lib/esm/xai/index.js.map +0 -1
- package/lib/types/adobe/firefly.d.ts.map +0 -1
- package/lib/types/anthropic/index.d.ts.map +0 -1
- package/lib/types/azure/azure_foundry.d.ts.map +0 -1
- package/lib/types/bedrock/converse.d.ts.map +0 -1
- package/lib/types/bedrock/index.d.ts.map +0 -1
- package/lib/types/bedrock/nova-image-payload.d.ts.map +0 -1
- package/lib/types/bedrock/payloads.d.ts.map +0 -1
- package/lib/types/bedrock/s3.d.ts.map +0 -1
- package/lib/types/bedrock/twelvelabs.d.ts.map +0 -1
- package/lib/types/groq/index.d.ts.map +0 -1
- package/lib/types/huggingface_ie.d.ts.map +0 -1
- package/lib/types/index.d.ts +0 -16
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/mistral/index.d.ts.map +0 -1
- package/lib/types/mistral/types.d.ts.map +0 -1
- package/lib/types/openai/azure_openai.d.ts.map +0 -1
- package/lib/types/openai/index.d.ts.map +0 -1
- package/lib/types/openai/openai.d.ts.map +0 -1
- package/lib/types/openai/openai_compatible.d.ts.map +0 -1
- package/lib/types/openai/openai_format.d.ts.map +0 -1
- package/lib/types/replicate.d.ts.map +0 -1
- package/lib/types/shared/claude-messages.d.ts.map +0 -1
- package/lib/types/shared/claude-thinking.d.ts.map +0 -1
- package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +0 -1
- package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +0 -1
- package/lib/types/test-driver/index.d.ts.map +0 -1
- package/lib/types/test-driver/utils.d.ts.map +0 -1
- package/lib/types/togetherai/index.d.ts +0 -23
- package/lib/types/togetherai/index.d.ts.map +0 -1
- package/lib/types/togetherai/interfaces.d.ts.map +0 -1
- package/lib/types/vertexai/debug.d.ts +0 -2
- package/lib/types/vertexai/debug.d.ts.map +0 -1
- package/lib/types/vertexai/embeddings/embeddings-image.d.ts +0 -11
- package/lib/types/vertexai/embeddings/embeddings-image.d.ts.map +0 -1
- package/lib/types/vertexai/embeddings/embeddings-text.d.ts +0 -10
- package/lib/types/vertexai/embeddings/embeddings-text.d.ts.map +0 -1
- package/lib/types/vertexai/index.d.ts.map +0 -1
- package/lib/types/vertexai/models/claude.d.ts.map +0 -1
- package/lib/types/vertexai/models/gemini.d.ts.map +0 -1
- package/lib/types/vertexai/models/imagen.d.ts.map +0 -1
- package/lib/types/vertexai/models/llama.d.ts.map +0 -1
- package/lib/types/vertexai/models.d.ts +0 -20
- package/lib/types/vertexai/models.d.ts.map +0 -1
- package/lib/types/watsonx/index.d.ts.map +0 -1
- package/lib/types/watsonx/interfaces.d.ts.map +0 -1
- package/lib/types/xai/index.d.ts.map +0 -1
- package/src/vertexai/embeddings/embeddings-image.ts +0 -52
- package/src/vertexai/embeddings/embeddings-text.ts +0 -54
- /package/lib/{esm/bedrock → bedrock}/payloads.js +0 -0
- /package/lib/{esm/mistral → mistral}/types.js +0 -0
- /package/lib/{esm/togetherai → togetherai}/interfaces.js +0 -0
- /package/lib/{types/watsonx → watsonx}/interfaces.d.ts +0 -0
- /package/lib/{esm/watsonx → watsonx}/interfaces.js +0 -0
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import { BEDROCK_DEFAULT_EMBEDDING_MODEL } from '@llumiverse/common';
|
|
2
|
+
import { Base64DataSource, buildEmbeddingsResult, dataSourceToBase64, LlumiverseError, normalizeEmbeddingsOptions, } from '@llumiverse/core';
|
|
3
|
+
/** Matches s3[.region].amazonaws.com or bucket.s3[.region].amazonaws.com — anchored to prevent subdomain spoofing. */
|
|
4
|
+
const S3_HOSTNAME_RE = /^(?:[^.]+\.)?s3(?:\.[a-z0-9-]+)?\.amazonaws\.com$/;
|
|
5
|
+
function isS3Url(url) {
|
|
6
|
+
if (url.startsWith('s3://'))
|
|
7
|
+
return true;
|
|
8
|
+
try {
|
|
9
|
+
const parsed = new URL(url);
|
|
10
|
+
return S3_HOSTNAME_RE.test(parsed.hostname);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Converts an S3 HTTPS URL to s3:// URI form. Handles both addressing styles:
|
|
18
|
+
* virtual-hosted: https://bucket.s3[.region].amazonaws.com/key
|
|
19
|
+
* path-style: https://s3[.region].amazonaws.com/bucket/key
|
|
20
|
+
*/
|
|
21
|
+
function toS3Uri(url) {
|
|
22
|
+
if (url.startsWith('s3://'))
|
|
23
|
+
return url;
|
|
24
|
+
const parsed = new URL(url);
|
|
25
|
+
// Virtual-hosted style: bucket.s3[.region].amazonaws.com
|
|
26
|
+
const virtualHostedMatch = parsed.hostname.match(/^([^.]+)\.s3(?:\.[a-z0-9-]+)?\.amazonaws\.com$/);
|
|
27
|
+
if (virtualHostedMatch) {
|
|
28
|
+
const bucket = virtualHostedMatch[1];
|
|
29
|
+
const key = parsed.pathname.replace(/^\/+/, '');
|
|
30
|
+
return `s3://${bucket}/${key}`;
|
|
31
|
+
}
|
|
32
|
+
// Path-style: s3[.region].amazonaws.com/bucket/key
|
|
33
|
+
const pathParts = parsed.pathname.replace(/^\/+/, '').split('/');
|
|
34
|
+
const bucket = pathParts[0];
|
|
35
|
+
const key = pathParts.slice(1).join('/');
|
|
36
|
+
return `s3://${bucket}/${key}`;
|
|
37
|
+
}
|
|
38
|
+
async function dataSourceToBedrockMediaSource(ds) {
|
|
39
|
+
const url = await ds.getURL().catch(() => undefined);
|
|
40
|
+
if (url && isS3Url(url)) {
|
|
41
|
+
return { s3Location: { uri: toS3Uri(url) } };
|
|
42
|
+
}
|
|
43
|
+
if (ds instanceof Base64DataSource) {
|
|
44
|
+
return { base64String: ds.getBase64() };
|
|
45
|
+
}
|
|
46
|
+
return { base64String: await dataSourceToBase64(ds) };
|
|
47
|
+
}
|
|
48
|
+
async function invokeJson(driver, modelId, body) {
|
|
49
|
+
const executor = driver.getExecutor();
|
|
50
|
+
const res = await executor.invokeModel({
|
|
51
|
+
modelId,
|
|
52
|
+
contentType: 'application/json',
|
|
53
|
+
accept: 'application/json',
|
|
54
|
+
body: JSON.stringify(body),
|
|
55
|
+
});
|
|
56
|
+
if (!res.body)
|
|
57
|
+
throw new Error(`InvokeModel returned empty response body for model: ${modelId}`);
|
|
58
|
+
return JSON.parse(new TextDecoder().decode(res.body));
|
|
59
|
+
}
|
|
60
|
+
// ── Shared format lookup maps ───────────────────────────────────────────────
|
|
61
|
+
const MIME_TO_IMAGE_FORMAT = {
|
|
62
|
+
'image/jpeg': 'jpeg',
|
|
63
|
+
'image/jpg': 'jpeg',
|
|
64
|
+
'image/png': 'png',
|
|
65
|
+
'image/gif': 'gif',
|
|
66
|
+
'image/webp': 'webp',
|
|
67
|
+
};
|
|
68
|
+
const MIME_TO_AUDIO_FORMAT = {
|
|
69
|
+
'audio/mpeg': 'mp3',
|
|
70
|
+
'audio/mp3': 'mp3',
|
|
71
|
+
'audio/wav': 'wav',
|
|
72
|
+
'audio/wave': 'wav',
|
|
73
|
+
'audio/x-wav': 'wav',
|
|
74
|
+
'audio/ogg': 'ogg',
|
|
75
|
+
};
|
|
76
|
+
const MIME_TO_VIDEO_FORMAT = {
|
|
77
|
+
'video/mp4': 'mp4',
|
|
78
|
+
'video/quicktime': 'mov',
|
|
79
|
+
'video/x-matroska': 'mkv',
|
|
80
|
+
'video/webm': 'webm',
|
|
81
|
+
'video/x-flv': 'flv',
|
|
82
|
+
'video/mpeg': 'mpeg',
|
|
83
|
+
'video/mpg': 'mpg',
|
|
84
|
+
'video/x-ms-wmv': 'wmv',
|
|
85
|
+
'video/3gpp': '3gp',
|
|
86
|
+
};
|
|
87
|
+
function requireFormat(map, mime, label) {
|
|
88
|
+
const fmt = map[mime.toLowerCase()];
|
|
89
|
+
if (!fmt)
|
|
90
|
+
throw new Error(`Unsupported ${label} MIME type for Bedrock: '${mime}'`);
|
|
91
|
+
return fmt;
|
|
92
|
+
}
|
|
93
|
+
function toNovaEmbeddingPurpose(taskType) {
|
|
94
|
+
return taskType === 'query' ? 'GENERIC_RETRIEVAL' : 'GENERIC_INDEX';
|
|
95
|
+
}
|
|
96
|
+
async function toNovaSource(ds) {
|
|
97
|
+
const url = await ds.getURL().catch(() => undefined);
|
|
98
|
+
if (url && isS3Url(url))
|
|
99
|
+
return { s3Location: { uri: toS3Uri(url) } };
|
|
100
|
+
const bytes = ds instanceof Base64DataSource ? ds.getBase64() : await dataSourceToBase64(ds);
|
|
101
|
+
return { bytes };
|
|
102
|
+
}
|
|
103
|
+
async function buildNovaParams(input) {
|
|
104
|
+
switch (input.type) {
|
|
105
|
+
case 'text':
|
|
106
|
+
return { text: { truncationMode: 'END', value: input.text } };
|
|
107
|
+
case 'image': {
|
|
108
|
+
const source = await toNovaSource(input.source);
|
|
109
|
+
return { image: { format: requireFormat(MIME_TO_IMAGE_FORMAT, input.source.mime_type, 'image'), source } };
|
|
110
|
+
}
|
|
111
|
+
case 'audio': {
|
|
112
|
+
const source = await toNovaSource(input.source);
|
|
113
|
+
return { audio: { format: requireFormat(MIME_TO_AUDIO_FORMAT, input.source.mime_type, 'audio'), source } };
|
|
114
|
+
}
|
|
115
|
+
case 'video': {
|
|
116
|
+
// Sync path supports video up to 30 s / 100 MB via S3 (or 25 MB inline base64).
|
|
117
|
+
// Longer video requires StartAsyncInvoke with segmentationConfig — not implemented.
|
|
118
|
+
const source = await toNovaSource(input.source);
|
|
119
|
+
return {
|
|
120
|
+
video: {
|
|
121
|
+
format: requireFormat(MIME_TO_VIDEO_FORMAT, input.source.mime_type, 'video'),
|
|
122
|
+
source,
|
|
123
|
+
embeddingMode: 'AUDIO_VIDEO_COMBINED',
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async function generateNovaEmbeddings(driver, options, modelId) {
|
|
130
|
+
const items = [];
|
|
131
|
+
for (const input of options.inputs) {
|
|
132
|
+
const inputTaskType = input.type === 'text' ? input.task_type : undefined;
|
|
133
|
+
const purpose = toNovaEmbeddingPurpose(inputTaskType ?? options.task_type);
|
|
134
|
+
const modalParams = await buildNovaParams(input);
|
|
135
|
+
const request = {
|
|
136
|
+
taskType: 'SINGLE_EMBEDDING',
|
|
137
|
+
singleEmbeddingParams: {
|
|
138
|
+
embeddingPurpose: purpose,
|
|
139
|
+
...(options.dimensions ? { embeddingDimension: options.dimensions } : {}),
|
|
140
|
+
...modalParams,
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
const response = await invokeJson(driver, modelId, request);
|
|
144
|
+
const item = response.embeddings?.[0];
|
|
145
|
+
if (!item?.embedding) {
|
|
146
|
+
throw new Error(`Nova embeddings response missing 'embeddings[0].embedding' for input type '${input.type}'`);
|
|
147
|
+
}
|
|
148
|
+
items.push({ outputs: [{ values: item.embedding, modality: input.type }] });
|
|
149
|
+
}
|
|
150
|
+
return buildEmbeddingsResult(modelId, items);
|
|
151
|
+
}
|
|
152
|
+
async function generateTitanEmbeddings(driver, options, modelId) {
|
|
153
|
+
const isImageModel = modelId.includes('titan-embed-image');
|
|
154
|
+
const items = [];
|
|
155
|
+
let totalTokens;
|
|
156
|
+
for (const input of options.inputs) {
|
|
157
|
+
if (input.type === 'video' || input.type === 'audio') {
|
|
158
|
+
throw new Error(`Titan embeddings do not support '${input.type}' input`);
|
|
159
|
+
}
|
|
160
|
+
if (isImageModel) {
|
|
161
|
+
const body = {};
|
|
162
|
+
if (input.type === 'text')
|
|
163
|
+
body.inputText = input.text;
|
|
164
|
+
if (input.type === 'image')
|
|
165
|
+
body.inputImage = await dataSourceToBase64(input.source);
|
|
166
|
+
if (options.dimensions)
|
|
167
|
+
body.embeddingConfig = { outputEmbeddingLength: options.dimensions };
|
|
168
|
+
const res = await invokeJson(driver, modelId, body);
|
|
169
|
+
if (res.message)
|
|
170
|
+
throw new Error(`Titan image embedding error: ${res.message}`);
|
|
171
|
+
if (!res.embedding)
|
|
172
|
+
throw new Error(`Titan image embedding response missing 'embedding'`);
|
|
173
|
+
items.push({
|
|
174
|
+
outputs: [{ values: res.embedding, modality: input.type }],
|
|
175
|
+
input_tokens: res.inputTextTokenCount,
|
|
176
|
+
});
|
|
177
|
+
if (typeof res.inputTextTokenCount === 'number')
|
|
178
|
+
totalTokens = (totalTokens ?? 0) + res.inputTextTokenCount;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
if (input.type !== 'text') {
|
|
182
|
+
throw new Error(`Titan text embeddings model '${modelId}' only supports text input`);
|
|
183
|
+
}
|
|
184
|
+
const body = { inputText: input.text };
|
|
185
|
+
if (options.dimensions)
|
|
186
|
+
body.dimensions = options.dimensions;
|
|
187
|
+
const res = await invokeJson(driver, modelId, body);
|
|
188
|
+
if (!res.embedding)
|
|
189
|
+
throw new Error(`Titan text embedding response missing 'embedding' (model ${modelId})`);
|
|
190
|
+
items.push({
|
|
191
|
+
outputs: [{ values: res.embedding, modality: 'text' }],
|
|
192
|
+
input_tokens: res.inputTextTokenCount,
|
|
193
|
+
});
|
|
194
|
+
if (typeof res.inputTextTokenCount === 'number')
|
|
195
|
+
totalTokens = (totalTokens ?? 0) + res.inputTextTokenCount;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
const usage = totalTokens !== undefined ? { input_tokens: totalTokens } : undefined;
|
|
199
|
+
return buildEmbeddingsResult(modelId, items, usage);
|
|
200
|
+
}
|
|
201
|
+
function cohereInputType(taskType) {
|
|
202
|
+
switch (taskType) {
|
|
203
|
+
case 'query':
|
|
204
|
+
return 'search_query';
|
|
205
|
+
case 'document':
|
|
206
|
+
return 'search_document';
|
|
207
|
+
default:
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
async function generateCohereEmbeddings(driver, options, modelId) {
|
|
212
|
+
const textInputs = [];
|
|
213
|
+
const imageInputs = [];
|
|
214
|
+
options.inputs.forEach((input, index) => {
|
|
215
|
+
if (input.type === 'text')
|
|
216
|
+
textInputs.push({ index, input });
|
|
217
|
+
else if (input.type === 'image')
|
|
218
|
+
imageInputs.push({ index, input });
|
|
219
|
+
else
|
|
220
|
+
throw new Error(`Cohere embeddings do not support '${input.type}' input`);
|
|
221
|
+
});
|
|
222
|
+
const items = new Array(options.inputs.length);
|
|
223
|
+
// Group texts by their effective input_type so per-input task_type overrides are respected.
|
|
224
|
+
const textGroups = new Map();
|
|
225
|
+
for (const entry of textInputs) {
|
|
226
|
+
const key = cohereInputType(entry.input.task_type ?? options.task_type);
|
|
227
|
+
if (!textGroups.has(key))
|
|
228
|
+
textGroups.set(key, []);
|
|
229
|
+
textGroups.get(key)?.push(entry);
|
|
230
|
+
}
|
|
231
|
+
for (const [groupInputType, group] of textGroups) {
|
|
232
|
+
const body = {
|
|
233
|
+
texts: group.map((t) => t.input.text),
|
|
234
|
+
input_type: groupInputType,
|
|
235
|
+
};
|
|
236
|
+
const res = await invokeJson(driver, modelId, body);
|
|
237
|
+
if (res.embeddings.length !== group.length) {
|
|
238
|
+
driver.logger.warn(`[Bedrock/Cohere] Embedding count mismatch: expected ${group.length}, got ${res.embeddings.length} (model ${modelId})`);
|
|
239
|
+
throw new Error(`Cohere returned ${res.embeddings.length} embeddings for ${group.length} texts (model ${modelId})`);
|
|
240
|
+
}
|
|
241
|
+
group.forEach((entry, i) => {
|
|
242
|
+
items[entry.index] = { outputs: [{ values: res.embeddings[i], modality: 'text' }] };
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
// Cohere accepts exactly one image per call; images must be data URIs.
|
|
246
|
+
for (const entry of imageInputs) {
|
|
247
|
+
const base64 = await dataSourceToBase64(entry.input.source);
|
|
248
|
+
const dataUri = `data:${entry.input.source.mime_type};base64,${base64}`;
|
|
249
|
+
const body = { images: [dataUri], input_type: 'image' };
|
|
250
|
+
const res = await invokeJson(driver, modelId, body);
|
|
251
|
+
if (!res.embeddings[0]) {
|
|
252
|
+
throw new Error(`Cohere returned no embedding for image input (model ${modelId})`);
|
|
253
|
+
}
|
|
254
|
+
items[entry.index] = { outputs: [{ values: res.embeddings[0], modality: 'image' }] };
|
|
255
|
+
}
|
|
256
|
+
return buildEmbeddingsResult(modelId, items);
|
|
257
|
+
}
|
|
258
|
+
function isMarengoEnvelope(r) {
|
|
259
|
+
return Array.isArray(r.embeddings);
|
|
260
|
+
}
|
|
261
|
+
async function generateMarengoEmbeddings(driver, options, modelId) {
|
|
262
|
+
const items = [];
|
|
263
|
+
for (const input of options.inputs) {
|
|
264
|
+
const request = await buildMarengoRequest(input);
|
|
265
|
+
const response = await invokeJson(driver, modelId, request);
|
|
266
|
+
const segments = isMarengoEnvelope(response) ? response.embeddings : [response];
|
|
267
|
+
const outputs = segments
|
|
268
|
+
.filter((seg) => Array.isArray(seg.embedding))
|
|
269
|
+
.map((seg) => ({
|
|
270
|
+
values: seg.embedding,
|
|
271
|
+
modality: input.type === 'text' ? 'text' : input.type,
|
|
272
|
+
start_sec: seg.startSec,
|
|
273
|
+
end_sec: seg.endSec,
|
|
274
|
+
embedding_option: seg.embeddingOption,
|
|
275
|
+
}));
|
|
276
|
+
if (outputs.length === 0) {
|
|
277
|
+
throw new Error(`Marengo response did not contain embedding values for input type '${input.type}'`);
|
|
278
|
+
}
|
|
279
|
+
items.push({ outputs });
|
|
280
|
+
}
|
|
281
|
+
return buildEmbeddingsResult(modelId, items);
|
|
282
|
+
}
|
|
283
|
+
async function buildMarengoRequest(input) {
|
|
284
|
+
switch (input.type) {
|
|
285
|
+
case 'text':
|
|
286
|
+
return { inputType: 'text', inputText: input.text };
|
|
287
|
+
case 'image': {
|
|
288
|
+
const media = await dataSourceToBedrockMediaSource(input.source);
|
|
289
|
+
return { inputType: 'image', mediaSource: media };
|
|
290
|
+
}
|
|
291
|
+
case 'video': {
|
|
292
|
+
const media = await dataSourceToBedrockMediaSource(input.source);
|
|
293
|
+
const request = { inputType: 'video', mediaSource: media };
|
|
294
|
+
if (input.start_sec !== undefined)
|
|
295
|
+
request.startSec = input.start_sec;
|
|
296
|
+
if (input.length_sec !== undefined)
|
|
297
|
+
request.lengthSec = input.length_sec;
|
|
298
|
+
if (input.use_fixed_length_sec !== undefined)
|
|
299
|
+
request.useFixedLengthSec = input.use_fixed_length_sec;
|
|
300
|
+
if (input.min_clip_sec !== undefined)
|
|
301
|
+
request.minClipSec = input.min_clip_sec;
|
|
302
|
+
// Marengo accepts at most one embedding_option per request.
|
|
303
|
+
// For multiple views (e.g. visual-text + audio), submit separate inputs — one per option.
|
|
304
|
+
if (input.embedding_option) {
|
|
305
|
+
if (input.embedding_option.length > 1) {
|
|
306
|
+
throw new Error(`Marengo accepts only one embedding_option per request; ` +
|
|
307
|
+
`received [${input.embedding_option.join(', ')}]. ` +
|
|
308
|
+
`Submit separate inputs, one per option.`);
|
|
309
|
+
}
|
|
310
|
+
if (input.embedding_option.length === 1) {
|
|
311
|
+
request.embeddingOption = input.embedding_option[0];
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return request;
|
|
315
|
+
}
|
|
316
|
+
case 'audio': {
|
|
317
|
+
const media = await dataSourceToBedrockMediaSource(input.source);
|
|
318
|
+
const request = { inputType: 'audio', mediaSource: media };
|
|
319
|
+
if (input.start_sec !== undefined)
|
|
320
|
+
request.startSec = input.start_sec;
|
|
321
|
+
if (input.length_sec !== undefined)
|
|
322
|
+
request.lengthSec = input.length_sec;
|
|
323
|
+
return request;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
// =================== Routing ===================
|
|
328
|
+
export async function generateBedrockEmbeddings(driver, options) {
|
|
329
|
+
const normalized = normalizeEmbeddingsOptions(options);
|
|
330
|
+
const modelId = normalized.model ?? BEDROCK_DEFAULT_EMBEDDING_MODEL;
|
|
331
|
+
driver.logger.info(`[Bedrock] Generating embeddings with model ${modelId} for ${normalized.inputs.length} input(s)`);
|
|
332
|
+
try {
|
|
333
|
+
if (modelId.includes('twelvelabs.marengo')) {
|
|
334
|
+
return await generateMarengoEmbeddings(driver, normalized, modelId);
|
|
335
|
+
}
|
|
336
|
+
if (modelId.startsWith('cohere.embed')) {
|
|
337
|
+
return await generateCohereEmbeddings(driver, normalized, modelId);
|
|
338
|
+
}
|
|
339
|
+
if (modelId.includes('titan-embed')) {
|
|
340
|
+
return await generateTitanEmbeddings(driver, normalized, modelId);
|
|
341
|
+
}
|
|
342
|
+
return await generateNovaEmbeddings(driver, normalized, modelId);
|
|
343
|
+
}
|
|
344
|
+
catch (error) {
|
|
345
|
+
if (LlumiverseError.isLlumiverseError(error))
|
|
346
|
+
throw error;
|
|
347
|
+
// Re-throw plain validation errors (thrown before any HTTP call) as-is.
|
|
348
|
+
if (error instanceof Error &&
|
|
349
|
+
typeof error.$metadata === 'undefined' &&
|
|
350
|
+
typeof error.status !== 'number')
|
|
351
|
+
throw error;
|
|
352
|
+
throw driver.formatLlumiverseError(error, {
|
|
353
|
+
provider: 'bedrock',
|
|
354
|
+
model: modelId,
|
|
355
|
+
operation: 'execute',
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
//# sourceMappingURL=embeddings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/bedrock/embeddings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Bedrock, type FoundationModelSummary } from
|
|
2
|
-
import { BedrockRuntime, type ConverseRequest, type ConverseResponse, type ConverseStreamOutput, type Message } from
|
|
3
|
-
import type { AwsCredentialIdentity, Provider } from
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { type
|
|
1
|
+
import { Bedrock, type FoundationModelSummary } from '@aws-sdk/client-bedrock';
|
|
2
|
+
import { BedrockRuntime, type ConverseRequest, type ConverseResponse, type ConverseStreamOutput, type Message } from '@aws-sdk/client-bedrock-runtime';
|
|
3
|
+
import type { AwsCredentialIdentity, Provider } from '@aws-sdk/types';
|
|
4
|
+
import { type AIModel, type Completion, type CompletionChunkObject, type DataSource, type DriverOptions, type EmbeddingsOptions, type EmbeddingsResult, type ExecutionOptions, type HttpTimeoutOptions, LlumiverseError, type LlumiverseErrorContext, type PromptSegment, type TrainingJob, type TrainingOptions } from '@llumiverse/core';
|
|
5
|
+
import { AbstractDriver } from '@llumiverse/core/driver';
|
|
6
|
+
import { type NovaMessagesPrompt } from '@llumiverse/core/formatters';
|
|
7
|
+
import { type TwelvelabsPegasusRequest } from './twelvelabs.js';
|
|
7
8
|
export interface BedrockModelCapabilities {
|
|
8
9
|
name: string;
|
|
9
10
|
canStream: boolean;
|
|
@@ -35,9 +36,19 @@ export declare class BedrockDriver extends AbstractDriver<BedrockDriverOptions,
|
|
|
35
36
|
private _service?;
|
|
36
37
|
private _service_region?;
|
|
37
38
|
constructor(options: BedrockDriverOptions);
|
|
38
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Build a Smithy `requestHandler` config from the driver's
|
|
41
|
+
* `httpTimeout` so AWS SDK calls fail fast on hung upstream Bedrock
|
|
42
|
+
* endpoints instead of using the AWS default (no request timeout).
|
|
43
|
+
* Returns a partial config the SDK merges into its default handler.
|
|
44
|
+
*/
|
|
45
|
+
private getBedrockRequestHandlerConfig;
|
|
46
|
+
private createExecutor;
|
|
47
|
+
getExecutor(httpTimeout?: HttpTimeoutOptions): BedrockRuntime;
|
|
48
|
+
private getScopedExecutor;
|
|
39
49
|
getService(region?: string): Bedrock;
|
|
40
50
|
protected formatPrompt(segments: PromptSegment[], opts: ExecutionOptions): Promise<BedrockPrompt>;
|
|
51
|
+
formatDebugPrompt(prompt: BedrockPrompt): BedrockPrompt;
|
|
41
52
|
/**
|
|
42
53
|
* Format AWS Bedrock errors into LlumiverseError with proper status codes and retryability.
|
|
43
54
|
*
|
|
@@ -104,8 +115,7 @@ export declare class BedrockDriver extends AbstractDriver<BedrockDriverOptions,
|
|
|
104
115
|
listTrainableModels(): Promise<AIModel<string>[]>;
|
|
105
116
|
listModels(): Promise<AIModel[]>;
|
|
106
117
|
_listModels(foundationFilter?: (m: FoundationModelSummary) => boolean): Promise<AIModel[]>;
|
|
107
|
-
generateEmbeddings(
|
|
108
|
-
private generateTwelvelabsMarengoEmbeddings;
|
|
118
|
+
generateEmbeddings(options: EmbeddingsOptions): Promise<EmbeddingsResult>;
|
|
109
119
|
/**
|
|
110
120
|
* Cleanup AWS SDK clients when the driver is evicted from the cache.
|
|
111
121
|
*/
|
|
@@ -135,4 +145,18 @@ export declare function convertToolBlocksToText(messages: Message[]): Message[];
|
|
|
135
145
|
* the tools were interrupted, allowing the conversation to continue.
|
|
136
146
|
*/
|
|
137
147
|
export declare function fixOrphanedToolUse(messages: Message[]): Message[];
|
|
148
|
+
/**
|
|
149
|
+
* Drop toolResult blocks whose toolUseId has no matching toolUse in the
|
|
150
|
+
* immediately-preceding assistant message. Mirror of {@link fixOrphanedToolUse}:
|
|
151
|
+
* that function synthesizes results for an unanswered toolUse (e.g. a cancelled
|
|
152
|
+
* run); this one removes results left dangling after their toolUse was dropped
|
|
153
|
+
* (e.g. by conversation compaction/trimming).
|
|
154
|
+
*
|
|
155
|
+
* Without this, the AWS Converse API rejects the request because every
|
|
156
|
+
* toolResult must correspond to a toolUse in the previous message. Bedrock
|
|
157
|
+
* conversations are already role-alternating, so a compaction that drops an
|
|
158
|
+
* assistant toolUse turn leaves an orphaned toolResult (and a user/user
|
|
159
|
+
* adjacency); dropping the orphan — and the now-empty message — repairs both.
|
|
160
|
+
*/
|
|
161
|
+
export declare function fixOrphanedToolResults(messages: Message[]): Message[];
|
|
138
162
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bedrock/index.ts"],"names":[],"mappings":"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"}
|