@copilotkit/aimock 1.45.0 → 1.46.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +24 -0
- package/README.md +7 -1
- package/dist/agui-mock.cjs +25 -25
- package/dist/agui-mock.cjs.map +1 -1
- package/dist/agui-mock.d.cts.map +1 -1
- package/dist/agui-mock.d.ts.map +1 -1
- package/dist/agui-mock.js +25 -25
- package/dist/agui-mock.js.map +1 -1
- package/dist/agui-types.d.ts.map +1 -1
- package/dist/aimock-cli.cjs +15 -1
- package/dist/aimock-cli.cjs.map +1 -1
- package/dist/aimock-cli.d.cts.map +1 -1
- package/dist/aimock-cli.d.ts.map +1 -1
- package/dist/aimock-cli.js +16 -2
- package/dist/aimock-cli.js.map +1 -1
- package/dist/api-key-auth.cjs +10 -9
- package/dist/api-key-auth.cjs.map +1 -1
- package/dist/api-key-auth.d.cts.map +1 -1
- package/dist/api-key-auth.d.ts.map +1 -1
- package/dist/api-key-auth.js +11 -10
- package/dist/api-key-auth.js.map +1 -1
- package/dist/batches.cjs +2 -4
- package/dist/batches.cjs.map +1 -1
- package/dist/batches.d.cts.map +1 -1
- package/dist/batches.d.ts.map +1 -1
- package/dist/batches.js +2 -4
- package/dist/batches.js.map +1 -1
- package/dist/bedrock-converse.cjs +61 -80
- package/dist/bedrock-converse.cjs.map +1 -1
- package/dist/bedrock-converse.d.cts.map +1 -1
- package/dist/bedrock-converse.d.ts.map +1 -1
- package/dist/bedrock-converse.js +58 -77
- package/dist/bedrock-converse.js.map +1 -1
- package/dist/bedrock.cjs +65 -97
- package/dist/bedrock.cjs.map +1 -1
- package/dist/bedrock.d.cts.map +1 -1
- package/dist/bedrock.d.ts.map +1 -1
- package/dist/bedrock.js +62 -94
- package/dist/bedrock.js.map +1 -1
- package/dist/byteplus-video.cjs +11 -10
- package/dist/byteplus-video.cjs.map +1 -1
- package/dist/byteplus-video.d.cts.map +1 -1
- package/dist/byteplus-video.d.ts.map +1 -1
- package/dist/byteplus-video.js +5 -4
- package/dist/byteplus-video.js.map +1 -1
- package/dist/chaos.cjs +5 -4
- package/dist/chaos.cjs.map +1 -1
- package/dist/chaos.d.cts.map +1 -1
- package/dist/chaos.d.ts.map +1 -1
- package/dist/chaos.js +5 -4
- package/dist/chaos.js.map +1 -1
- package/dist/cli.cjs +15 -0
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +15 -0
- package/dist/cli.js.map +1 -1
- package/dist/cohere.cjs +49 -74
- package/dist/cohere.cjs.map +1 -1
- package/dist/cohere.d.cts.map +1 -1
- package/dist/cohere.d.ts.map +1 -1
- package/dist/cohere.js +47 -72
- package/dist/cohere.js.map +1 -1
- package/dist/config-loader.cjs +29 -1
- package/dist/config-loader.cjs.map +1 -1
- package/dist/config-loader.d.cts +7 -1
- package/dist/config-loader.d.cts.map +1 -1
- package/dist/config-loader.d.ts +7 -1
- package/dist/config-loader.d.ts.map +1 -1
- package/dist/config-loader.js +29 -2
- package/dist/config-loader.js.map +1 -1
- package/dist/count-tokens.cjs +146 -0
- package/dist/count-tokens.cjs.map +1 -0
- package/dist/count-tokens.js +146 -0
- package/dist/count-tokens.js.map +1 -0
- package/dist/elevenlabs-audio.cjs +36 -34
- package/dist/elevenlabs-audio.cjs.map +1 -1
- package/dist/elevenlabs-audio.d.cts.map +1 -1
- package/dist/elevenlabs-audio.d.ts.map +1 -1
- package/dist/elevenlabs-audio.js +33 -31
- package/dist/elevenlabs-audio.js.map +1 -1
- package/dist/elevenlabs-voice.cjs +38 -37
- package/dist/elevenlabs-voice.cjs.map +1 -1
- package/dist/elevenlabs-voice.d.cts.map +1 -1
- package/dist/elevenlabs-voice.d.ts.map +1 -1
- package/dist/elevenlabs-voice.js +33 -32
- package/dist/elevenlabs-voice.js.map +1 -1
- package/dist/embedding-request.cjs +16 -0
- package/dist/embedding-request.cjs.map +1 -0
- package/dist/embedding-request.js +14 -0
- package/dist/embedding-request.js.map +1 -0
- package/dist/embeddings.cjs +30 -20
- package/dist/embeddings.cjs.map +1 -1
- package/dist/embeddings.d.cts.map +1 -1
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/embeddings.js +30 -20
- package/dist/embeddings.js.map +1 -1
- package/dist/fal-audio.cjs +45 -43
- package/dist/fal-audio.cjs.map +1 -1
- package/dist/fal-audio.d.cts.map +1 -1
- package/dist/fal-audio.d.ts.map +1 -1
- package/dist/fal-audio.js +42 -40
- package/dist/fal-audio.js.map +1 -1
- package/dist/fal.cjs +17 -15
- package/dist/fal.cjs.map +1 -1
- package/dist/fal.js +16 -14
- package/dist/fal.js.map +1 -1
- package/dist/files.cjs +2 -4
- package/dist/files.cjs.map +1 -1
- package/dist/files.d.cts.map +1 -1
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +2 -4
- package/dist/files.js.map +1 -1
- package/dist/fine-tuning.cjs +2 -4
- package/dist/fine-tuning.cjs.map +1 -1
- package/dist/fine-tuning.d.cts.map +1 -1
- package/dist/fine-tuning.d.ts.map +1 -1
- package/dist/fine-tuning.js +2 -4
- package/dist/fine-tuning.js.map +1 -1
- package/dist/fixture-loader.cjs +37 -42
- package/dist/fixture-loader.cjs.map +1 -1
- package/dist/fixture-loader.d.cts.map +1 -1
- package/dist/fixture-loader.d.ts.map +1 -1
- package/dist/fixture-loader.js +37 -42
- package/dist/fixture-loader.js.map +1 -1
- package/dist/gemini-embeddings.cjs +26 -24
- package/dist/gemini-embeddings.cjs.map +1 -1
- package/dist/gemini-embeddings.js +26 -24
- package/dist/gemini-embeddings.js.map +1 -1
- package/dist/gemini-interactions.cjs +50 -35
- package/dist/gemini-interactions.cjs.map +1 -1
- package/dist/gemini-interactions.d.cts +0 -1
- package/dist/gemini-interactions.d.cts.map +1 -1
- package/dist/gemini-interactions.d.ts +0 -1
- package/dist/gemini-interactions.d.ts.map +1 -1
- package/dist/gemini-interactions.js +49 -34
- package/dist/gemini-interactions.js.map +1 -1
- package/dist/gemini.cjs +57 -67
- package/dist/gemini.cjs.map +1 -1
- package/dist/gemini.d.cts.map +1 -1
- package/dist/gemini.d.ts.map +1 -1
- package/dist/gemini.js +56 -67
- package/dist/gemini.js.map +1 -1
- package/dist/grok-video.cjs +14 -12
- package/dist/grok-video.cjs.map +1 -1
- package/dist/grok-video.d.cts.map +1 -1
- package/dist/grok-video.d.ts.map +1 -1
- package/dist/grok-video.js +8 -6
- package/dist/grok-video.js.map +1 -1
- package/dist/helpers.cjs +11 -68
- package/dist/helpers.cjs.map +1 -1
- package/dist/helpers.d.cts.map +1 -1
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +12 -67
- package/dist/helpers.js.map +1 -1
- package/dist/images.cjs +30 -28
- package/dist/images.cjs.map +1 -1
- package/dist/images.d.cts.map +1 -1
- package/dist/images.d.ts.map +1 -1
- package/dist/images.js +27 -25
- package/dist/images.js.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/journal.cjs +3 -1
- package/dist/journal.cjs.map +1 -1
- package/dist/journal.d.cts.map +1 -1
- package/dist/journal.d.ts.map +1 -1
- package/dist/journal.js +2 -1
- package/dist/journal.js.map +1 -1
- package/dist/llmock.cjs +3 -0
- package/dist/llmock.cjs.map +1 -1
- package/dist/llmock.d.cts.map +1 -1
- package/dist/llmock.d.ts.map +1 -1
- package/dist/llmock.js +3 -0
- package/dist/llmock.js.map +1 -1
- package/dist/mcp-fakes.d.cts.map +1 -1
- package/dist/mcp-handler.cjs +14 -4
- package/dist/mcp-handler.cjs.map +1 -1
- package/dist/mcp-handler.js +14 -4
- package/dist/mcp-handler.js.map +1 -1
- package/dist/mcp-recorder.cjs +2 -1
- package/dist/mcp-recorder.cjs.map +1 -1
- package/dist/mcp-recorder.js +3 -2
- package/dist/mcp-recorder.js.map +1 -1
- package/dist/messages.cjs +111 -96
- package/dist/messages.cjs.map +1 -1
- package/dist/messages.d.cts.map +1 -1
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +109 -95
- package/dist/messages.js.map +1 -1
- package/dist/metrics.cjs +5 -2
- package/dist/metrics.cjs.map +1 -1
- package/dist/metrics.d.cts.map +1 -1
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +6 -3
- package/dist/metrics.js.map +1 -1
- package/dist/model-utils.cjs +1 -0
- package/dist/model-utils.cjs.map +1 -1
- package/dist/model-utils.js +1 -1
- package/dist/model-utils.js.map +1 -1
- package/dist/moderation.cjs +15 -12
- package/dist/moderation.cjs.map +1 -1
- package/dist/moderation.js +14 -11
- package/dist/moderation.js.map +1 -1
- package/dist/ollama.cjs +128 -68
- package/dist/ollama.cjs.map +1 -1
- package/dist/ollama.d.cts.map +1 -1
- package/dist/ollama.d.ts.map +1 -1
- package/dist/ollama.js +124 -64
- package/dist/ollama.js.map +1 -1
- package/dist/openapi.cjs +323 -3
- package/dist/openapi.cjs.map +1 -1
- package/dist/openapi.d.cts.map +1 -1
- package/dist/openapi.d.ts.map +1 -1
- package/dist/openapi.js +324 -4
- package/dist/openapi.js.map +1 -1
- package/dist/openrouter-chat.cjs +11 -155
- package/dist/openrouter-chat.cjs.map +1 -1
- package/dist/openrouter-chat.js +11 -155
- package/dist/openrouter-chat.js.map +1 -1
- package/dist/openrouter-video.cjs +76 -71
- package/dist/openrouter-video.cjs.map +1 -1
- package/dist/openrouter-video.d.cts.map +1 -1
- package/dist/openrouter-video.d.ts.map +1 -1
- package/dist/openrouter-video.js +63 -58
- package/dist/openrouter-video.js.map +1 -1
- package/dist/recorder.cjs +176 -95
- package/dist/recorder.cjs.map +1 -1
- package/dist/recorder.d.cts.map +1 -1
- package/dist/recorder.d.ts.map +1 -1
- package/dist/recorder.js +176 -95
- package/dist/recorder.js.map +1 -1
- package/dist/rerank.cjs +13 -11
- package/dist/rerank.cjs.map +1 -1
- package/dist/rerank.js +12 -10
- package/dist/rerank.js.map +1 -1
- package/dist/response/catalog/anthropic-page.cjs +39 -0
- package/dist/response/catalog/anthropic-page.cjs.map +1 -0
- package/dist/response/catalog/anthropic-page.js +38 -0
- package/dist/response/catalog/anthropic-page.js.map +1 -0
- package/dist/response/catalog/collect.cjs +61 -0
- package/dist/response/catalog/collect.cjs.map +1 -0
- package/dist/response/catalog/collect.js +59 -0
- package/dist/response/catalog/collect.js.map +1 -0
- package/dist/response/catalog/gemini-page.cjs +25 -0
- package/dist/response/catalog/gemini-page.cjs.map +1 -0
- package/dist/response/catalog/gemini-page.js +24 -0
- package/dist/response/catalog/gemini-page.js.map +1 -0
- package/dist/response/catalog/render.cjs +182 -0
- package/dist/response/catalog/render.cjs.map +1 -0
- package/dist/response/catalog/render.js +171 -0
- package/dist/response/catalog/render.js.map +1 -0
- package/dist/response/errors.cjs +225 -0
- package/dist/response/errors.cjs.map +1 -0
- package/dist/response/errors.js +224 -0
- package/dist/response/errors.js.map +1 -0
- package/dist/response/finish.cjs +39 -0
- package/dist/response/finish.cjs.map +1 -0
- package/dist/response/finish.js +35 -0
- package/dist/response/finish.js.map +1 -0
- package/dist/response/policy.cjs +126 -0
- package/dist/response/policy.cjs.map +1 -0
- package/dist/response/policy.js +120 -0
- package/dist/response/policy.js.map +1 -0
- package/dist/response/profiles.cjs +69 -0
- package/dist/response/profiles.cjs.map +1 -0
- package/dist/response/profiles.js +65 -0
- package/dist/response/profiles.js.map +1 -0
- package/dist/response/usage/codecs/anthropic.cjs +52 -0
- package/dist/response/usage/codecs/anthropic.cjs.map +1 -0
- package/dist/response/usage/codecs/anthropic.js +50 -0
- package/dist/response/usage/codecs/anthropic.js.map +1 -0
- package/dist/response/usage/codecs/cohere.cjs +36 -0
- package/dist/response/usage/codecs/cohere.cjs.map +1 -0
- package/dist/response/usage/codecs/cohere.js +35 -0
- package/dist/response/usage/codecs/cohere.js.map +1 -0
- package/dist/response/usage/codecs/converse.cjs +16 -0
- package/dist/response/usage/codecs/converse.cjs.map +1 -0
- package/dist/response/usage/codecs/converse.js +15 -0
- package/dist/response/usage/codecs/converse.js.map +1 -0
- package/dist/response/usage/codecs/gemini.cjs +31 -0
- package/dist/response/usage/codecs/gemini.cjs.map +1 -0
- package/dist/response/usage/codecs/gemini.js +31 -0
- package/dist/response/usage/codecs/gemini.js.map +1 -0
- package/dist/response/usage/codecs/interactions.cjs +22 -0
- package/dist/response/usage/codecs/interactions.cjs.map +1 -0
- package/dist/response/usage/codecs/interactions.js +21 -0
- package/dist/response/usage/codecs/interactions.js.map +1 -0
- package/dist/response/usage/codecs/ollama.cjs +17 -0
- package/dist/response/usage/codecs/ollama.cjs.map +1 -0
- package/dist/response/usage/codecs/ollama.js +17 -0
- package/dist/response/usage/codecs/ollama.js.map +1 -0
- package/dist/response/usage/codecs/openai.cjs +52 -0
- package/dist/response/usage/codecs/openai.cjs.map +1 -0
- package/dist/response/usage/codecs/openai.js +50 -0
- package/dist/response/usage/codecs/openai.js.map +1 -0
- package/dist/response/usage/codecs/openrouter.cjs +68 -0
- package/dist/response/usage/codecs/openrouter.cjs.map +1 -0
- package/dist/response/usage/codecs/openrouter.js +67 -0
- package/dist/response/usage/codecs/openrouter.js.map +1 -0
- package/dist/response/usage/codecs/realtime.cjs +19 -0
- package/dist/response/usage/codecs/realtime.cjs.map +1 -0
- package/dist/response/usage/codecs/realtime.js +18 -0
- package/dist/response/usage/codecs/realtime.js.map +1 -0
- package/dist/response/usage/codecs/responses.cjs +21 -0
- package/dist/response/usage/codecs/responses.cjs.map +1 -0
- package/dist/response/usage/codecs/responses.js +20 -0
- package/dist/response/usage/codecs/responses.js.map +1 -0
- package/dist/response/usage/estimate.cjs +23 -0
- package/dist/response/usage/estimate.cjs.map +1 -0
- package/dist/response/usage/estimate.js +21 -0
- package/dist/response/usage/estimate.js.map +1 -0
- package/dist/response/usage/fields.cjs +72 -0
- package/dist/response/usage/fields.cjs.map +1 -0
- package/dist/response/usage/fields.js +70 -0
- package/dist/response/usage/fields.js.map +1 -0
- package/dist/response/usage/recording.cjs +52 -0
- package/dist/response/usage/recording.cjs.map +1 -0
- package/dist/response/usage/recording.js +52 -0
- package/dist/response/usage/recording.js.map +1 -0
- package/dist/responses.cjs +45 -58
- package/dist/responses.cjs.map +1 -1
- package/dist/responses.d.cts.map +1 -1
- package/dist/responses.d.ts.map +1 -1
- package/dist/responses.js +44 -57
- package/dist/responses.js.map +1 -1
- package/dist/route-registry.cjs +45 -0
- package/dist/route-registry.cjs.map +1 -1
- package/dist/route-registry.d.cts.map +1 -1
- package/dist/route-registry.d.ts.map +1 -1
- package/dist/route-registry.js +41 -1
- package/dist/route-registry.js.map +1 -1
- package/dist/router.cjs +4 -0
- package/dist/router.cjs.map +1 -1
- package/dist/router.d.cts.map +1 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +3 -0
- package/dist/router.js.map +1 -1
- package/dist/search.cjs +13 -11
- package/dist/search.cjs.map +1 -1
- package/dist/search.js +12 -10
- package/dist/search.js.map +1 -1
- package/dist/server.cjs +222 -146
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +223 -147
- package/dist/server.js.map +1 -1
- package/dist/speech.cjs +20 -18
- package/dist/speech.cjs.map +1 -1
- package/dist/speech.d.cts.map +1 -1
- package/dist/speech.d.ts.map +1 -1
- package/dist/speech.js +19 -17
- package/dist/speech.js.map +1 -1
- package/dist/sse-writer.cjs +7 -0
- package/dist/sse-writer.cjs.map +1 -1
- package/dist/sse-writer.d.cts.map +1 -1
- package/dist/sse-writer.d.ts.map +1 -1
- package/dist/sse-writer.js +7 -1
- package/dist/sse-writer.js.map +1 -1
- package/dist/stream-collapse.cjs +118 -11
- package/dist/stream-collapse.cjs.map +1 -1
- package/dist/stream-collapse.d.cts +10 -9
- package/dist/stream-collapse.d.cts.map +1 -1
- package/dist/stream-collapse.d.ts +10 -9
- package/dist/stream-collapse.d.ts.map +1 -1
- package/dist/stream-collapse.js +118 -11
- package/dist/stream-collapse.js.map +1 -1
- package/dist/transcription.cjs +12 -10
- package/dist/transcription.cjs.map +1 -1
- package/dist/transcription.d.cts.map +1 -1
- package/dist/transcription.d.ts.map +1 -1
- package/dist/transcription.js +11 -9
- package/dist/transcription.js.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +62 -3
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +62 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vector-mock.cjs +3 -8
- package/dist/vector-mock.cjs.map +1 -1
- package/dist/vector-mock.d.cts.map +1 -1
- package/dist/vector-mock.d.ts.map +1 -1
- package/dist/vector-mock.js +3 -8
- package/dist/vector-mock.js.map +1 -1
- package/dist/vector-stores.cjs +2 -4
- package/dist/vector-stores.cjs.map +1 -1
- package/dist/vector-stores.d.cts.map +1 -1
- package/dist/vector-stores.d.ts.map +1 -1
- package/dist/vector-stores.js +2 -4
- package/dist/vector-stores.js.map +1 -1
- package/dist/veo-video.cjs +16 -14
- package/dist/veo-video.cjs.map +1 -1
- package/dist/veo-video.js +10 -8
- package/dist/veo-video.js.map +1 -1
- package/dist/video.cjs +21 -19
- package/dist/video.cjs.map +1 -1
- package/dist/video.d.cts.map +1 -1
- package/dist/video.d.ts.map +1 -1
- package/dist/video.js +20 -18
- package/dist/video.js.map +1 -1
- package/dist/ws-gemini-live.cjs +11 -3
- package/dist/ws-gemini-live.cjs.map +1 -1
- package/dist/ws-gemini-live.d.cts +0 -1
- package/dist/ws-gemini-live.d.cts.map +1 -1
- package/dist/ws-gemini-live.d.ts +0 -1
- package/dist/ws-gemini-live.d.ts.map +1 -1
- package/dist/ws-gemini-live.js +10 -2
- package/dist/ws-gemini-live.js.map +1 -1
- package/dist/ws-live.cjs +6 -5
- package/dist/ws-live.cjs.map +1 -1
- package/dist/ws-live.js +5 -4
- package/dist/ws-live.js.map +1 -1
- package/dist/ws-realtime.cjs +28 -54
- package/dist/ws-realtime.cjs.map +1 -1
- package/dist/ws-realtime.d.cts.map +1 -1
- package/dist/ws-realtime.d.ts.map +1 -1
- package/dist/ws-realtime.js +25 -51
- package/dist/ws-realtime.js.map +1 -1
- package/dist/ws-responses.cjs +8 -6
- package/dist/ws-responses.cjs.map +1 -1
- package/dist/ws-responses.js +7 -5
- package/dist/ws-responses.js.map +1 -1
- package/package.json +4 -1
- package/skills/write-fixtures/SKILL.md +25 -16
package/dist/bedrock-converse.js
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { renderError } from "./response/errors.js";
|
|
2
|
+
import { resolveRequestDecisions, strictOverrideField } from "./response/policy.js";
|
|
3
|
+
import { InvalidToolArgumentsError, estimatePromptTokens, estimateTokens, extractOverrides, flattenHeaders, generateToolUseId, getContext, getTestId, isCombinedFixtureResponse, isErrorResponse, isJsonObject, isTextResponse, isToolCallResponse, requireEmittedFunctionToolCalls, resolveFixtureBlockOutcome, resolveReasoningForModel, resolveResponse, servedToolArgs, strictNoMatchLogLine, strictNoMatchMessage, toolArgsForWire } from "./helpers.js";
|
|
2
4
|
import { writeErrorResponse } from "./sse-writer.js";
|
|
3
5
|
import { applyChaosAsync } from "./chaos.js";
|
|
4
6
|
import { planMisbehavior, recordMisbehaviorOutcome } from "./misbehavior.js";
|
|
5
7
|
import { matchFixtureDiagnostic, recordMatchOptions } from "./router.js";
|
|
6
8
|
import { proxyAndRecord } from "./recorder.js";
|
|
7
9
|
import { createInterruptionSignal } from "./interruption.js";
|
|
10
|
+
import { mapAnthropicFinish } from "./response/finish.js";
|
|
8
11
|
import { writeEventStream } from "./aws-event-stream.js";
|
|
12
|
+
import { render } from "./response/usage/codecs/converse.js";
|
|
9
13
|
|
|
10
14
|
//#region src/bedrock-converse.ts
|
|
11
15
|
function converseStopReason(overrideFinishReason, defaultReason) {
|
|
12
16
|
if (!overrideFinishReason) return defaultReason;
|
|
13
|
-
|
|
14
|
-
if (overrideFinishReason === "tool_calls") return "tool_use";
|
|
15
|
-
if (overrideFinishReason === "length") return "max_tokens";
|
|
16
|
-
return overrideFinishReason;
|
|
17
|
+
return mapAnthropicFinish(overrideFinishReason);
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
20
|
* Build Converse-format usage from fixture overrides.
|
|
@@ -24,18 +25,7 @@ function converseStopReason(overrideFinishReason, defaultReason) {
|
|
|
24
25
|
* usage should supply explicit `usage` overrides in their fixture.
|
|
25
26
|
*/
|
|
26
27
|
function converseUsage(overrides) {
|
|
27
|
-
|
|
28
|
-
inputTokens: 0,
|
|
29
|
-
outputTokens: 0,
|
|
30
|
-
totalTokens: 0
|
|
31
|
-
};
|
|
32
|
-
const inputTokens = overrides.usage.input_tokens ?? overrides.usage.prompt_tokens ?? 0;
|
|
33
|
-
const outputTokens = overrides.usage.output_tokens ?? overrides.usage.completion_tokens ?? 0;
|
|
34
|
-
return {
|
|
35
|
-
inputTokens,
|
|
36
|
-
outputTokens,
|
|
37
|
-
totalTokens: inputTokens + outputTokens
|
|
38
|
-
};
|
|
28
|
+
return render(overrides);
|
|
39
29
|
}
|
|
40
30
|
function parseConverseToolArgumentsForStream(toolCall, logger) {
|
|
41
31
|
return servedToolArgs(toolCall, "string", logger).text;
|
|
@@ -519,7 +509,7 @@ function prepareConverseMisbehavior(plan, request, stream, defaults, headers) {
|
|
|
519
509
|
} : block;
|
|
520
510
|
});
|
|
521
511
|
}
|
|
522
|
-
const reasoning = plan.reasoning ?? resolveReasoningForModel("reasoning" in response ? response.reasoning : void 0, request.model,
|
|
512
|
+
const reasoning = plan.reasoning ?? resolveReasoningForModel("reasoning" in response ? response.reasoning : void 0, request.model, resolveRequestDecisions(defaults.strict, headers).reasoningSuppression, defaults.logger) ?? "";
|
|
523
513
|
const servedToolCalls = blocks.flatMap((block) => block.type === "toolCall" ? [{
|
|
524
514
|
name: block.name,
|
|
525
515
|
arguments: block.arguments,
|
|
@@ -538,11 +528,10 @@ function prepareConverseMisbehavior(plan, request, stream, defaults, headers) {
|
|
|
538
528
|
blocks,
|
|
539
529
|
reasoning,
|
|
540
530
|
stopReason,
|
|
541
|
-
usage: {
|
|
542
|
-
inputTokens,
|
|
543
|
-
outputTokens
|
|
544
|
-
|
|
545
|
-
}
|
|
531
|
+
usage: render(void 0, {
|
|
532
|
+
input: inputTokens,
|
|
533
|
+
output: outputTokens
|
|
534
|
+
})
|
|
546
535
|
};
|
|
547
536
|
}
|
|
548
537
|
function buildConverseMisbehaviorResponse(prepared) {
|
|
@@ -651,10 +640,10 @@ async function handleConverse(req, res, raw, modelId, fixtures, journal, default
|
|
|
651
640
|
fixture: null
|
|
652
641
|
}
|
|
653
642
|
});
|
|
654
|
-
writeErrorResponse(res, 400,
|
|
643
|
+
writeErrorResponse(res, 400, renderError("bedrock", "validation", {
|
|
655
644
|
message: `Malformed JSON: ${detail}`,
|
|
656
645
|
type: "invalid_request_error"
|
|
657
|
-
}
|
|
646
|
+
}).body);
|
|
658
647
|
return;
|
|
659
648
|
}
|
|
660
649
|
if (!isJsonObject(converseReq)) {
|
|
@@ -668,10 +657,10 @@ async function handleConverse(req, res, raw, modelId, fixtures, journal, default
|
|
|
668
657
|
fixture: null
|
|
669
658
|
}
|
|
670
659
|
});
|
|
671
|
-
writeErrorResponse(res, 400,
|
|
660
|
+
writeErrorResponse(res, 400, renderError("bedrock", "validation", {
|
|
672
661
|
message: "Request body must be a JSON object",
|
|
673
662
|
type: "invalid_request_error"
|
|
674
|
-
}
|
|
663
|
+
}).body);
|
|
675
664
|
return;
|
|
676
665
|
}
|
|
677
666
|
const messageError = !Array.isArray(converseReq.messages) ? "Invalid request: messages array is required" : validateConverseMessages(converseReq) ?? validateConverseSystem(converseReq) ?? validateConverseTools(converseReq);
|
|
@@ -686,10 +675,10 @@ async function handleConverse(req, res, raw, modelId, fixtures, journal, default
|
|
|
686
675
|
fixture: null
|
|
687
676
|
}
|
|
688
677
|
});
|
|
689
|
-
writeErrorResponse(res, 400,
|
|
678
|
+
writeErrorResponse(res, 400, renderError("bedrock", "validation", {
|
|
690
679
|
message: messageError,
|
|
691
680
|
type: "invalid_request_error"
|
|
692
|
-
}
|
|
681
|
+
}).body);
|
|
693
682
|
return;
|
|
694
683
|
}
|
|
695
684
|
const completionReq = converseToCompletionRequest(converseReq, modelId, logger);
|
|
@@ -707,7 +696,7 @@ async function handleConverse(req, res, raw, modelId, fixtures, journal, default
|
|
|
707
696
|
body: completionReq
|
|
708
697
|
}, fixture ? "fixture" : "proxy", defaults.registry, defaults.logger)) return;
|
|
709
698
|
if (!fixture) {
|
|
710
|
-
if (
|
|
699
|
+
if (resolveRequestDecisions(defaults.strict, req.headers).fixtureMiss) {
|
|
711
700
|
const strictStatus = 503;
|
|
712
701
|
const strictMessage = strictNoMatchMessage(skippedBySequenceOrTurn);
|
|
713
702
|
logger.error(strictNoMatchLogLine(req.method ?? "POST", urlPath, skippedBySequenceOrTurn));
|
|
@@ -722,10 +711,10 @@ async function handleConverse(req, res, raw, modelId, fixtures, journal, default
|
|
|
722
711
|
...strictOverrideField(defaults.strict, req.headers)
|
|
723
712
|
}
|
|
724
713
|
});
|
|
725
|
-
writeErrorResponse(res, strictStatus,
|
|
714
|
+
writeErrorResponse(res, strictStatus, renderError("bedrock", "strict-miss", {
|
|
726
715
|
message: strictMessage,
|
|
727
716
|
type: "invalid_request_error"
|
|
728
|
-
}
|
|
717
|
+
}).body);
|
|
729
718
|
return;
|
|
730
719
|
}
|
|
731
720
|
if (defaults.record) {
|
|
@@ -757,10 +746,10 @@ async function handleConverse(req, res, raw, modelId, fixtures, journal, default
|
|
|
757
746
|
...strictOverrideField(defaults.strict, req.headers)
|
|
758
747
|
}
|
|
759
748
|
});
|
|
760
|
-
writeErrorResponse(res, 404,
|
|
749
|
+
writeErrorResponse(res, 404, renderError("bedrock", "fixture-miss", {
|
|
761
750
|
message: "No fixture matched",
|
|
762
751
|
type: "invalid_request_error"
|
|
763
|
-
}
|
|
752
|
+
}).body);
|
|
764
753
|
return;
|
|
765
754
|
}
|
|
766
755
|
const response = await resolveResponse(fixture, completionReq);
|
|
@@ -800,11 +789,11 @@ async function handleConverse(req, res, raw, modelId, fixtures, journal, default
|
|
|
800
789
|
});
|
|
801
790
|
const type = misbehavior.status === 400 ? "ValidationException" : "InternalServerException";
|
|
802
791
|
res.setHeader("x-amzn-errortype", type);
|
|
803
|
-
writeErrorResponse(res, misbehavior.status,
|
|
804
|
-
|
|
792
|
+
writeErrorResponse(res, misbehavior.status, renderError("bedrock-converse", "misbehavior", {
|
|
793
|
+
type,
|
|
805
794
|
message: misbehavior.message,
|
|
806
795
|
code: misbehavior.code
|
|
807
|
-
}));
|
|
796
|
+
}).body);
|
|
808
797
|
return;
|
|
809
798
|
}
|
|
810
799
|
if (misbehavior.kind === "applied") {
|
|
@@ -837,20 +826,16 @@ async function handleConverse(req, res, raw, modelId, fixtures, journal, default
|
|
|
837
826
|
fixture
|
|
838
827
|
}
|
|
839
828
|
});
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
message: response.error.message
|
|
845
|
-
}
|
|
846
|
-
};
|
|
847
|
-
writeErrorResponse(res, status, JSON.stringify(errBody), { retryAfter: response.retryAfter });
|
|
829
|
+
writeErrorResponse(res, status, renderError("bedrock", "fixture", {
|
|
830
|
+
message: response.error.message,
|
|
831
|
+
type: response.error.type ?? "invalid_request_error"
|
|
832
|
+
}).body, { retryAfter: response.retryAfter });
|
|
848
833
|
return;
|
|
849
834
|
}
|
|
850
835
|
if (isCombinedFixtureResponse(response)) {
|
|
851
836
|
if (response.webSearches?.length) logger.warn("webSearches in fixture response are not supported for Bedrock Converse API — ignoring");
|
|
852
837
|
const overrides = extractOverrides(response);
|
|
853
|
-
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model,
|
|
838
|
+
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model, resolveRequestDecisions(defaults.strict, req.headers).reasoningSuppression, logger);
|
|
854
839
|
addResponseEntry({
|
|
855
840
|
method: req.method ?? "POST",
|
|
856
841
|
path: urlPath,
|
|
@@ -870,7 +855,7 @@ async function handleConverse(req, res, raw, modelId, fixtures, journal, default
|
|
|
870
855
|
if (isTextResponse(response)) {
|
|
871
856
|
if (response.webSearches?.length) logger.warn("webSearches in fixture response are not supported for Bedrock Converse API — ignoring");
|
|
872
857
|
const overrides = extractOverrides(response);
|
|
873
|
-
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model,
|
|
858
|
+
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model, resolveRequestDecisions(defaults.strict, req.headers).reasoningSuppression, logger);
|
|
874
859
|
addResponseEntry({
|
|
875
860
|
method: req.method ?? "POST",
|
|
876
861
|
path: urlPath,
|
|
@@ -889,7 +874,7 @@ async function handleConverse(req, res, raw, modelId, fixtures, journal, default
|
|
|
889
874
|
if (isToolCallResponse(response)) {
|
|
890
875
|
if (response.webSearches?.length) logger.warn("webSearches in fixture response are not supported for Bedrock Converse API — ignoring");
|
|
891
876
|
const overrides = extractOverrides(response);
|
|
892
|
-
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model,
|
|
877
|
+
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model, resolveRequestDecisions(defaults.strict, req.headers).reasoningSuppression, logger);
|
|
893
878
|
addResponseEntry({
|
|
894
879
|
method: req.method ?? "POST",
|
|
895
880
|
path: urlPath,
|
|
@@ -915,10 +900,10 @@ async function handleConverse(req, res, raw, modelId, fixtures, journal, default
|
|
|
915
900
|
fixture
|
|
916
901
|
}
|
|
917
902
|
});
|
|
918
|
-
writeErrorResponse(res, 500,
|
|
903
|
+
writeErrorResponse(res, 500, renderError("bedrock", "unknown-response", {
|
|
919
904
|
message: "Fixture response did not match any known type",
|
|
920
905
|
type: "server_error"
|
|
921
|
-
}
|
|
906
|
+
}).body);
|
|
922
907
|
}
|
|
923
908
|
async function handleConverseStream(req, res, raw, modelId, fixtures, journal, defaults, setCorsHeaders) {
|
|
924
909
|
const { logger } = defaults;
|
|
@@ -939,10 +924,10 @@ async function handleConverseStream(req, res, raw, modelId, fixtures, journal, d
|
|
|
939
924
|
fixture: null
|
|
940
925
|
}
|
|
941
926
|
});
|
|
942
|
-
writeErrorResponse(res, 400,
|
|
927
|
+
writeErrorResponse(res, 400, renderError("bedrock", "validation", {
|
|
943
928
|
message: `Malformed JSON: ${detail}`,
|
|
944
929
|
type: "invalid_request_error"
|
|
945
|
-
}
|
|
930
|
+
}).body);
|
|
946
931
|
return;
|
|
947
932
|
}
|
|
948
933
|
if (!isJsonObject(converseReq)) {
|
|
@@ -956,10 +941,10 @@ async function handleConverseStream(req, res, raw, modelId, fixtures, journal, d
|
|
|
956
941
|
fixture: null
|
|
957
942
|
}
|
|
958
943
|
});
|
|
959
|
-
writeErrorResponse(res, 400,
|
|
944
|
+
writeErrorResponse(res, 400, renderError("bedrock", "validation", {
|
|
960
945
|
message: "Request body must be a JSON object",
|
|
961
946
|
type: "invalid_request_error"
|
|
962
|
-
}
|
|
947
|
+
}).body);
|
|
963
948
|
return;
|
|
964
949
|
}
|
|
965
950
|
const messageError = !Array.isArray(converseReq.messages) ? "Invalid request: messages array is required" : validateConverseMessages(converseReq) ?? validateConverseSystem(converseReq) ?? validateConverseTools(converseReq);
|
|
@@ -974,10 +959,10 @@ async function handleConverseStream(req, res, raw, modelId, fixtures, journal, d
|
|
|
974
959
|
fixture: null
|
|
975
960
|
}
|
|
976
961
|
});
|
|
977
|
-
writeErrorResponse(res, 400,
|
|
962
|
+
writeErrorResponse(res, 400, renderError("bedrock", "validation", {
|
|
978
963
|
message: messageError,
|
|
979
964
|
type: "invalid_request_error"
|
|
980
|
-
}
|
|
965
|
+
}).body);
|
|
981
966
|
return;
|
|
982
967
|
}
|
|
983
968
|
const completionReq = converseToCompletionRequest(converseReq, modelId, logger);
|
|
@@ -996,7 +981,7 @@ async function handleConverseStream(req, res, raw, modelId, fixtures, journal, d
|
|
|
996
981
|
body: completionReq
|
|
997
982
|
}, fixture ? "fixture" : "proxy", defaults.registry, defaults.logger)) return;
|
|
998
983
|
if (!fixture) {
|
|
999
|
-
if (
|
|
984
|
+
if (resolveRequestDecisions(defaults.strict, req.headers).fixtureMiss) {
|
|
1000
985
|
const strictStatus = 503;
|
|
1001
986
|
const strictMessage = strictNoMatchMessage(skippedBySequenceOrTurn);
|
|
1002
987
|
logger.error(strictNoMatchLogLine(req.method ?? "POST", urlPath, skippedBySequenceOrTurn));
|
|
@@ -1011,10 +996,10 @@ async function handleConverseStream(req, res, raw, modelId, fixtures, journal, d
|
|
|
1011
996
|
...strictOverrideField(defaults.strict, req.headers)
|
|
1012
997
|
}
|
|
1013
998
|
});
|
|
1014
|
-
writeErrorResponse(res, strictStatus,
|
|
999
|
+
writeErrorResponse(res, strictStatus, renderError("bedrock", "strict-miss", {
|
|
1015
1000
|
message: strictMessage,
|
|
1016
1001
|
type: "invalid_request_error"
|
|
1017
|
-
}
|
|
1002
|
+
}).body);
|
|
1018
1003
|
return;
|
|
1019
1004
|
}
|
|
1020
1005
|
if (defaults.record) {
|
|
@@ -1046,10 +1031,10 @@ async function handleConverseStream(req, res, raw, modelId, fixtures, journal, d
|
|
|
1046
1031
|
...strictOverrideField(defaults.strict, req.headers)
|
|
1047
1032
|
}
|
|
1048
1033
|
});
|
|
1049
|
-
writeErrorResponse(res, 404,
|
|
1034
|
+
writeErrorResponse(res, 404, renderError("bedrock", "fixture-miss", {
|
|
1050
1035
|
message: "No fixture matched",
|
|
1051
1036
|
type: "invalid_request_error"
|
|
1052
|
-
}
|
|
1037
|
+
}).body);
|
|
1053
1038
|
return;
|
|
1054
1039
|
}
|
|
1055
1040
|
const response = await resolveResponse(fixture, completionReq);
|
|
@@ -1089,11 +1074,11 @@ async function handleConverseStream(req, res, raw, modelId, fixtures, journal, d
|
|
|
1089
1074
|
});
|
|
1090
1075
|
const type = misbehavior.status === 400 ? "ValidationException" : "InternalServerException";
|
|
1091
1076
|
res.setHeader("x-amzn-errortype", type);
|
|
1092
|
-
writeErrorResponse(res, misbehavior.status,
|
|
1093
|
-
|
|
1077
|
+
writeErrorResponse(res, misbehavior.status, renderError("bedrock-converse", "misbehavior", {
|
|
1078
|
+
type,
|
|
1094
1079
|
message: misbehavior.message,
|
|
1095
1080
|
code: misbehavior.code
|
|
1096
|
-
}));
|
|
1081
|
+
}).body);
|
|
1097
1082
|
return;
|
|
1098
1083
|
}
|
|
1099
1084
|
const latency = fixture.latency ?? defaults.latency;
|
|
@@ -1140,20 +1125,16 @@ async function handleConverseStream(req, res, raw, modelId, fixtures, journal, d
|
|
|
1140
1125
|
fixture
|
|
1141
1126
|
}
|
|
1142
1127
|
});
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
message: response.error.message
|
|
1148
|
-
}
|
|
1149
|
-
};
|
|
1150
|
-
writeErrorResponse(res, status, JSON.stringify(errBody), { retryAfter: response.retryAfter });
|
|
1128
|
+
writeErrorResponse(res, status, renderError("bedrock", "fixture", {
|
|
1129
|
+
message: response.error.message,
|
|
1130
|
+
type: response.error.type ?? "invalid_request_error"
|
|
1131
|
+
}).body, { retryAfter: response.retryAfter });
|
|
1151
1132
|
return;
|
|
1152
1133
|
}
|
|
1153
1134
|
if (isCombinedFixtureResponse(response)) {
|
|
1154
1135
|
if (response.webSearches?.length) logger.warn("webSearches in fixture response are not supported for Bedrock Converse API — ignoring");
|
|
1155
1136
|
const overrides = extractOverrides(response);
|
|
1156
|
-
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model,
|
|
1137
|
+
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model, resolveRequestDecisions(defaults.strict, req.headers).reasoningSuppression, logger);
|
|
1157
1138
|
const journalEntry = addResponseEntry({
|
|
1158
1139
|
method: req.method ?? "POST",
|
|
1159
1140
|
path: urlPath,
|
|
@@ -1185,7 +1166,7 @@ async function handleConverseStream(req, res, raw, modelId, fixtures, journal, d
|
|
|
1185
1166
|
if (isTextResponse(response)) {
|
|
1186
1167
|
if (response.webSearches?.length) logger.warn("webSearches in fixture response are not supported for Bedrock Converse API — ignoring");
|
|
1187
1168
|
const overrides = extractOverrides(response);
|
|
1188
|
-
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model,
|
|
1169
|
+
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model, resolveRequestDecisions(defaults.strict, req.headers).reasoningSuppression, logger);
|
|
1189
1170
|
const journalEntry = addResponseEntry({
|
|
1190
1171
|
method: req.method ?? "POST",
|
|
1191
1172
|
path: urlPath,
|
|
@@ -1216,7 +1197,7 @@ async function handleConverseStream(req, res, raw, modelId, fixtures, journal, d
|
|
|
1216
1197
|
if (isToolCallResponse(response)) {
|
|
1217
1198
|
if (response.webSearches?.length) logger.warn("webSearches in fixture response are not supported for Bedrock Converse API — ignoring");
|
|
1218
1199
|
const overrides = extractOverrides(response);
|
|
1219
|
-
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model,
|
|
1200
|
+
const effReasoning = resolveReasoningForModel(response.reasoning, completionReq.model, resolveRequestDecisions(defaults.strict, req.headers).reasoningSuppression, logger);
|
|
1220
1201
|
const journalEntry = addResponseEntry({
|
|
1221
1202
|
method: req.method ?? "POST",
|
|
1222
1203
|
path: urlPath,
|
|
@@ -1254,10 +1235,10 @@ async function handleConverseStream(req, res, raw, modelId, fixtures, journal, d
|
|
|
1254
1235
|
fixture
|
|
1255
1236
|
}
|
|
1256
1237
|
});
|
|
1257
|
-
writeErrorResponse(res, 500,
|
|
1238
|
+
writeErrorResponse(res, 500, renderError("bedrock", "unknown-response", {
|
|
1258
1239
|
message: "Fixture response did not match any known type",
|
|
1259
1240
|
type: "server_error"
|
|
1260
|
-
}
|
|
1241
|
+
}).body);
|
|
1261
1242
|
}
|
|
1262
1243
|
|
|
1263
1244
|
//#endregion
|