@copilotkit/aimock 1.45.1 → 1.47.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 +25 -1
- package/README.md +11 -2
- 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.cts.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/aws-event-stream.cjs +20 -23
- package/dist/aws-event-stream.cjs.map +1 -1
- package/dist/aws-event-stream.d.cts +0 -1
- package/dist/aws-event-stream.d.ts +0 -1
- package/dist/aws-event-stream.js +20 -24
- package/dist/aws-event-stream.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 +139 -161
- 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 +137 -159
- package/dist/bedrock-converse.js.map +1 -1
- package/dist/bedrock.cjs +175 -216
- 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 +172 -213
- 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 +107 -180
- 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 +106 -179
- 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 +140 -44
- 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 +141 -46
- 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 +113 -156
- 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 +113 -156
- package/dist/gemini-interactions.js.map +1 -1
- package/dist/gemini.cjs +295 -218
- 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 +295 -219
- 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 +411 -75
- package/dist/helpers.cjs.map +1 -1
- package/dist/helpers.d.cts +51 -1
- package/dist/helpers.d.cts.map +1 -1
- package/dist/helpers.d.ts +51 -1
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +402 -74
- 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.cjs +4 -2
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -4
- 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 +7 -3
- package/dist/mcp-handler.cjs.map +1 -1
- package/dist/mcp-handler.js +7 -3
- 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 +235 -202
- 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 +234 -202
- 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/misbehavior.cjs +62 -3
- package/dist/misbehavior.cjs.map +1 -1
- package/dist/misbehavior.d.cts.map +1 -1
- package/dist/misbehavior.d.ts.map +1 -1
- package/dist/misbehavior.js +63 -4
- package/dist/misbehavior.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/ndjson-writer.cjs +21 -23
- package/dist/ndjson-writer.cjs.map +1 -1
- package/dist/ndjson-writer.d.cts +0 -1
- package/dist/ndjson-writer.d.cts.map +1 -1
- package/dist/ndjson-writer.d.ts +0 -1
- package/dist/ndjson-writer.d.ts.map +1 -1
- package/dist/ndjson-writer.js +21 -24
- package/dist/ndjson-writer.js.map +1 -1
- package/dist/ollama.cjs +276 -210
- 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 +273 -207
- 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 +51 -74
- 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 +37 -60
- package/dist/openrouter-video.js.map +1 -1
- package/dist/raw-validation.cjs +177 -0
- package/dist/raw-validation.cjs.map +1 -0
- package/dist/raw-validation.js +176 -0
- package/dist/raw-validation.js.map +1 -0
- 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/deliver.cjs +144 -0
- package/dist/response/deliver.cjs.map +1 -0
- package/dist/response/deliver.js +143 -0
- package/dist/response/deliver.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/frame-loop.cjs +102 -0
- package/dist/response/frame-loop.cjs.map +1 -0
- package/dist/response/frame-loop.js +100 -0
- package/dist/response/frame-loop.js.map +1 -0
- package/dist/response/lifecycle.cjs +223 -0
- package/dist/response/lifecycle.cjs.map +1 -0
- package/dist/response/lifecycle.js +211 -0
- package/dist/response/lifecycle.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/proxy.cjs +71 -0
- package/dist/response/proxy.cjs.map +1 -0
- package/dist/response/proxy.js +70 -0
- package/dist/response/proxy.js.map +1 -0
- package/dist/response/raw.cjs +228 -0
- package/dist/response/raw.cjs.map +1 -0
- package/dist/response/raw.js +227 -0
- package/dist/response/raw.js.map +1 -0
- package/dist/response/timing.cjs +157 -0
- package/dist/response/timing.cjs.map +1 -0
- package/dist/response/timing.js +150 -0
- package/dist/response/timing.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 +304 -196
- 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 +303 -195
- 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 +24 -4
- package/dist/router.cjs.map +1 -1
- package/dist/router.d.cts +7 -1
- package/dist/router.d.cts.map +1 -1
- package/dist/router.d.ts +7 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +24 -5
- 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 +293 -248
- 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 +294 -249
- 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 +56 -30
- package/dist/sse-writer.cjs.map +1 -1
- package/dist/sse-writer.d.cts +0 -1
- package/dist/sse-writer.d.cts.map +1 -1
- package/dist/sse-writer.d.ts +0 -1
- package/dist/sse-writer.d.ts.map +1 -1
- package/dist/sse-writer.js +55 -31
- 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 +31 -43
- 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 +31 -43
- package/dist/transcription.js.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +231 -9
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +231 -9
- 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-framing.cjs +12 -6
- package/dist/ws-framing.cjs.map +1 -1
- package/dist/ws-framing.d.cts +2 -0
- package/dist/ws-framing.d.cts.map +1 -1
- package/dist/ws-framing.d.ts +2 -0
- package/dist/ws-framing.d.ts.map +1 -1
- package/dist/ws-framing.js +12 -6
- package/dist/ws-framing.js.map +1 -1
- package/dist/ws-gemini-live.cjs +131 -96
- 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 +130 -95
- 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 +108 -124
- 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 +105 -121
- package/dist/ws-realtime.js.map +1 -1
- package/dist/ws-responses.cjs +80 -59
- package/dist/ws-responses.cjs.map +1 -1
- package/dist/ws-responses.d.cts.map +1 -1
- package/dist/ws-responses.d.ts.map +1 -1
- package/dist/ws-responses.js +79 -58
- package/dist/ws-responses.js.map +1 -1
- package/package.json +4 -1
- package/skills/write-fixtures/SKILL.md +57 -16
package/dist/fixture-loader.cjs
CHANGED
|
@@ -3,7 +3,9 @@ const require_constants = require('./constants.cjs');
|
|
|
3
3
|
const require_message_text = require('./message-text.cjs');
|
|
4
4
|
const require_helpers = require('./helpers.cjs');
|
|
5
5
|
const require_live_fixture = require('./live-fixture.cjs');
|
|
6
|
+
const require_raw_validation = require('./raw-validation.cjs');
|
|
6
7
|
const require_chaos = require('./chaos.cjs');
|
|
8
|
+
const require_fields = require('./response/usage/fields.cjs');
|
|
7
9
|
const require_misbehavior = require('./misbehavior.cjs');
|
|
8
10
|
let node_fs = require("node:fs");
|
|
9
11
|
let node_path = require("node:path");
|
|
@@ -70,6 +72,7 @@ function entryToFixture(entry, logger, liveOptions, source) {
|
|
|
70
72
|
userMessage: entry.match.userMessage,
|
|
71
73
|
systemMessage: entry.match.systemMessage,
|
|
72
74
|
inputText: entry.match.inputText,
|
|
75
|
+
...entry.match.embeddingRequest !== void 0 && { embeddingRequest: entry.match.embeddingRequest },
|
|
73
76
|
toolCallId: entry.match.toolCallId,
|
|
74
77
|
toolResultContains: entry.match.toolResultContains,
|
|
75
78
|
toolName: entry.match.toolName,
|
|
@@ -91,6 +94,8 @@ function entryToFixture(entry, logger, liveOptions, source) {
|
|
|
91
94
|
...entry.replaySpeed != null && { replaySpeed: entry.replaySpeed },
|
|
92
95
|
...entry.chaos !== void 0 && { chaos: entry.chaos },
|
|
93
96
|
...entry.openRouterProcessing !== void 0 && { openRouterProcessing: entry.openRouterProcessing },
|
|
97
|
+
...entry.nonStreamingTiming !== void 0 && { nonStreamingTiming: entry.nonStreamingTiming },
|
|
98
|
+
...entry.nonStreamingTimingAllProviders !== void 0 && { nonStreamingTimingAllProviders: entry.nonStreamingTimingAllProviders },
|
|
94
99
|
...entry.metadata !== void 0 && { metadata: entry.metadata }
|
|
95
100
|
};
|
|
96
101
|
if (source) require_misbehavior.setFixtureMisbehaviorPosition(fixture, `${source.file}#${source.index}`);
|
|
@@ -298,6 +303,52 @@ function validateReasoning(response, fixtureIndex, results) {
|
|
|
298
303
|
});
|
|
299
304
|
}
|
|
300
305
|
}
|
|
306
|
+
/** The wires that read `files` and `citations`; every other wire ignores them. */
|
|
307
|
+
const CITATIONS_FILES_WIRES = "Chat Completions, Anthropic Messages, Gemini or the OpenAI Responses API";
|
|
308
|
+
/**
|
|
309
|
+
* Generated `files` and source `citations`. A malformed value is not a load
|
|
310
|
+
* error (registration never throws for it, as in the release that added the
|
|
311
|
+
* keys); each request the fixture serves on Chat Completions, Anthropic,
|
|
312
|
+
* Gemini or the Responses API answers a coded 500 instead, so warn here with
|
|
313
|
+
* the same message. Citations are checked against the text they cite when
|
|
314
|
+
* served ({@link citedText}). A turn with no text (tool calls only, blocks
|
|
315
|
+
* with no text block, or empty content) has nothing to cite, so any
|
|
316
|
+
* non-empty `citations` there is reported exactly as the wires report it.
|
|
317
|
+
*/
|
|
318
|
+
function validateCitationsAndFiles(response, fixtureIndex, results) {
|
|
319
|
+
const filesProblem = require_helpers.fixtureFilesProblem(response.files);
|
|
320
|
+
if (filesProblem !== void 0) results.push({
|
|
321
|
+
severity: "warning",
|
|
322
|
+
fixtureIndex,
|
|
323
|
+
message: `${filesProblem} — requests it serves on ${CITATIONS_FILES_WIRES} answer a 500 (aimock_invalid_fixture_file)`
|
|
324
|
+
});
|
|
325
|
+
const text = citedText(response);
|
|
326
|
+
if (text === void 0) return;
|
|
327
|
+
const citationsProblem = require_helpers.fixtureCitationsProblem(response.citations, text);
|
|
328
|
+
if (citationsProblem !== void 0) results.push({
|
|
329
|
+
severity: "warning",
|
|
330
|
+
fixtureIndex,
|
|
331
|
+
message: `${citationsProblem} — requests it serves on ${CITATIONS_FILES_WIRES} answer a 500 (aimock_invalid_fixture_citation)`
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* The text a fixture's citations index when served: the joined text of every
|
|
336
|
+
* text block when `responsesBlocks` or `blocks` is non-empty (through the
|
|
337
|
+
* same {@link resolveServedBlockOutcome} the providers use; empty when no
|
|
338
|
+
* block is text), else a string `content`, else empty for a tool-only turn.
|
|
339
|
+
* Empty text means a turn with nothing to cite. Undefined for a response
|
|
340
|
+
* that is neither (validated elsewhere) and for a malformed blocks array,
|
|
341
|
+
* which `validateBlocks` reports as an error.
|
|
342
|
+
*/
|
|
343
|
+
function citedText(response) {
|
|
344
|
+
if (Array.isArray(response.blocks) && response.blocks.length > 0 || Array.isArray(response.responsesBlocks) && response.responsesBlocks.length > 0) try {
|
|
345
|
+
return require_helpers.resolveServedBlockOutcome(response)?.content;
|
|
346
|
+
} catch {
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
349
|
+
if (typeof response.content === "string") return response.content;
|
|
350
|
+
if (Array.isArray(response.toolCalls) || Array.isArray(response.customToolCalls)) return "";
|
|
351
|
+
}
|
|
301
352
|
function validateWebSearches(response, fixtureIndex, results) {
|
|
302
353
|
if (response.webSearches !== void 0) if (!Array.isArray(response.webSearches)) results.push({
|
|
303
354
|
severity: "error",
|
|
@@ -680,11 +731,29 @@ function validateFixtures(fixtures, liveOptions) {
|
|
|
680
731
|
});
|
|
681
732
|
}
|
|
682
733
|
if (typeof response === "function") {} else {
|
|
683
|
-
if (!require_helpers.isCombinedFixtureResponse(response) && !require_helpers.isTextResponse(response) && !require_helpers.isToolCallResponse(response) && !require_helpers.isErrorResponse(response) && !require_helpers.isEmbeddingResponse(response) && !require_helpers.isImageResponse(response) && !require_helpers.isAudioResponse(response) && !require_helpers.isTranscriptionResponse(response) && !require_helpers.isVideoResponse(response) && !require_helpers.isJSONResponse(response) && !require_helpers.isLiveResponse(response)) results.push({
|
|
734
|
+
if (!require_helpers.isCombinedFixtureResponse(response) && !require_helpers.isTextResponse(response) && !require_helpers.isToolCallResponse(response) && !require_helpers.isErrorResponse(response) && !require_helpers.isEmbeddingResponse(response) && !require_helpers.isImageResponse(response) && !require_helpers.isAudioResponse(response) && !require_helpers.isTranscriptionResponse(response) && !require_helpers.isVideoResponse(response) && !require_helpers.isJSONResponse(response) && !require_helpers.isLiveResponse(response) && !require_helpers.isRawResponse(response)) results.push({
|
|
684
735
|
severity: "error",
|
|
685
736
|
fixtureIndex: i,
|
|
686
|
-
message: "response is not a recognized type (must have content, toolCalls, error, embedding, image, audio, transcription, video, json, or
|
|
737
|
+
message: "response is not a recognized type (must have content, toolCalls, error, embedding, image, audio, transcription, video, json, live, or raw)"
|
|
687
738
|
});
|
|
739
|
+
if (require_helpers.isRawResponse(response)) {
|
|
740
|
+
const context = rawFixtureContext(original, response);
|
|
741
|
+
for (const finding of require_raw_validation.checkRawResponse(response.raw, context)) results.push({
|
|
742
|
+
severity: finding.severity,
|
|
743
|
+
fixtureIndex: i,
|
|
744
|
+
message: finding.message
|
|
745
|
+
});
|
|
746
|
+
if (f.chunkSize !== void 0) results.push({
|
|
747
|
+
severity: "warning",
|
|
748
|
+
fixtureIndex: i,
|
|
749
|
+
message: "chunkSize is ignored for raw fixtures: each event is one frame"
|
|
750
|
+
});
|
|
751
|
+
if (f.openRouterProcessing !== void 0) results.push({
|
|
752
|
+
severity: "warning",
|
|
753
|
+
fixtureIndex: i,
|
|
754
|
+
message: "openRouterProcessing is ignored for raw fixtures"
|
|
755
|
+
});
|
|
756
|
+
}
|
|
688
757
|
const hasNonEmptyBlocks = Array.isArray(response.blocks) && response.blocks.length > 0 || Array.isArray(response.responsesBlocks) && response.responsesBlocks.length > 0;
|
|
689
758
|
const hasCustomToolCalls = Array.isArray(response.customToolCalls) && response.customToolCalls.length > 0;
|
|
690
759
|
if (require_helpers.isTextResponse(response)) {
|
|
@@ -733,6 +802,7 @@ function validateFixtures(fixtures, liveOptions) {
|
|
|
733
802
|
}
|
|
734
803
|
validateBlocks(response, i, results);
|
|
735
804
|
validateResponsesToolKeys(response, i, results);
|
|
805
|
+
validateCitationsAndFiles(response, i, results);
|
|
736
806
|
if (require_helpers.isToolCallResponse(response)) {
|
|
737
807
|
if (response.toolCalls.length === 0 && !hasCustomToolCalls) results.push({
|
|
738
808
|
severity: "warning",
|
|
@@ -830,6 +900,11 @@ function validateFixtures(fixtures, liveOptions) {
|
|
|
830
900
|
fixtureIndex: i,
|
|
831
901
|
message: `override "role" must be a string, got ${typeof r.role}`
|
|
832
902
|
});
|
|
903
|
+
if (r.phase !== void 0 && r.phase !== "commentary" && r.phase !== "final_answer") results.push({
|
|
904
|
+
severity: "error",
|
|
905
|
+
fixtureIndex: i,
|
|
906
|
+
message: "override \"phase\" must be \"commentary\" or \"final_answer\""
|
|
907
|
+
});
|
|
833
908
|
if (r.systemFingerprint !== void 0 && typeof r.systemFingerprint !== "string") results.push({
|
|
834
909
|
severity: "error",
|
|
835
910
|
fixtureIndex: i,
|
|
@@ -840,52 +915,38 @@ function validateFixtures(fixtures, liveOptions) {
|
|
|
840
915
|
fixtureIndex: i,
|
|
841
916
|
message: `override "usage" must be an object`
|
|
842
917
|
});
|
|
843
|
-
else {
|
|
844
|
-
const
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
for (const key of Object.keys(r.usage)) {
|
|
859
|
-
const val = r.usage[key];
|
|
860
|
-
if (val === void 0) continue;
|
|
861
|
-
if (objectUsageFields.has(key)) if (typeof val !== "object" || val === null || Array.isArray(val)) results.push({
|
|
862
|
-
severity: "error",
|
|
863
|
-
fixtureIndex: i,
|
|
864
|
-
message: `override "usage.${key}" must be an object, got ${Array.isArray(val) ? "array" : typeof val}`
|
|
865
|
-
});
|
|
866
|
-
else {
|
|
867
|
-
const inner = val;
|
|
868
|
-
for (const innerKey of numericInnerFields[key]) {
|
|
869
|
-
const innerVal = inner[innerKey];
|
|
870
|
-
if (innerVal !== void 0 && typeof innerVal !== "number") results.push({
|
|
871
|
-
severity: "error",
|
|
872
|
-
fixtureIndex: i,
|
|
873
|
-
message: `override "usage.${key}.${innerKey}" must be a number, got ${typeof innerVal}`
|
|
874
|
-
});
|
|
875
|
-
}
|
|
876
|
-
}
|
|
877
|
-
else if (key === "is_byok") {
|
|
878
|
-
if (typeof val !== "boolean") results.push({
|
|
918
|
+
else for (const key of Object.keys(r.usage)) {
|
|
919
|
+
const val = r.usage[key];
|
|
920
|
+
if (val === void 0) continue;
|
|
921
|
+
const definition = require_fields.getUsageFieldDefinition(key);
|
|
922
|
+
if (definition.kind === "number-or-object" && typeof val === "number") continue;
|
|
923
|
+
if (definition.kind === "object" || definition.kind === "number-or-object") if (typeof val !== "object" || val === null || Array.isArray(val)) results.push({
|
|
924
|
+
severity: "error",
|
|
925
|
+
fixtureIndex: i,
|
|
926
|
+
message: `override "usage.${key}" must be ${definition.kind === "number-or-object" ? "a number or object" : "an object"}, got ${Array.isArray(val) ? "array" : typeof val}`
|
|
927
|
+
});
|
|
928
|
+
else {
|
|
929
|
+
const inner = val;
|
|
930
|
+
for (const innerKey of definition.numericMembers) {
|
|
931
|
+
const innerVal = inner[innerKey];
|
|
932
|
+
if (innerVal !== void 0 && typeof innerVal !== "number") results.push({
|
|
879
933
|
severity: "error",
|
|
880
934
|
fixtureIndex: i,
|
|
881
|
-
message: `override "usage
|
|
935
|
+
message: `override "usage.${key}.${innerKey}" must be a number, got ${typeof innerVal}`
|
|
882
936
|
});
|
|
883
|
-
}
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
else if (definition.kind === "boolean") {
|
|
940
|
+
if (typeof val !== "boolean") results.push({
|
|
884
941
|
severity: "error",
|
|
885
942
|
fixtureIndex: i,
|
|
886
|
-
message: `override "usage
|
|
943
|
+
message: `override "usage.is_byok" must be a boolean, got ${typeof val}`
|
|
887
944
|
});
|
|
888
|
-
}
|
|
945
|
+
} else if (typeof val !== "number") results.push({
|
|
946
|
+
severity: "error",
|
|
947
|
+
fixtureIndex: i,
|
|
948
|
+
message: `override "usage.${key}" must be a number, got ${typeof val}`
|
|
949
|
+
});
|
|
889
950
|
}
|
|
890
951
|
}
|
|
891
952
|
}
|
|
@@ -909,6 +970,14 @@ function validateFixtures(fixtures, liveOptions) {
|
|
|
909
970
|
fixtureIndex: i,
|
|
910
971
|
message: "disconnectAfterMs must be >= 0"
|
|
911
972
|
});
|
|
973
|
+
for (const flag of ["nonStreamingTiming", "nonStreamingTimingAllProviders"]) {
|
|
974
|
+
const value = f[flag];
|
|
975
|
+
if (value !== void 0 && typeof value !== "boolean") results.push({
|
|
976
|
+
severity: "warning",
|
|
977
|
+
fixtureIndex: i,
|
|
978
|
+
message: `${flag} must be a boolean, got ${typeof value} — the opt-in is ignored`
|
|
979
|
+
});
|
|
980
|
+
}
|
|
912
981
|
if (f.streamingProfile !== void 0) {
|
|
913
982
|
const sp = f.streamingProfile;
|
|
914
983
|
if (sp.ttft !== void 0 && sp.ttft < 0) results.push({
|
|
@@ -1037,7 +1106,8 @@ function validateFixtures(fixtures, liveOptions) {
|
|
|
1037
1106
|
m.sequenceIndex,
|
|
1038
1107
|
m.turnIndex,
|
|
1039
1108
|
m.hasToolResult,
|
|
1040
|
-
...m.toolNamespace !== void 0 ? [`toolNamespace=${m.toolNamespace}`] : []
|
|
1109
|
+
...m.toolNamespace !== void 0 ? [`toolNamespace=${m.toolNamespace}`] : [],
|
|
1110
|
+
...m.embeddingRequest !== void 0 ? [JSON.stringify(m.embeddingRequest)] : []
|
|
1041
1111
|
].map((v) => v === void 0 ? "" : String(v)).join("|");
|
|
1042
1112
|
const prev = seenUserMessages.get(dedupKey);
|
|
1043
1113
|
if (prev !== void 0) {
|
|
@@ -1055,7 +1125,7 @@ function validateFixtures(fixtures, liveOptions) {
|
|
|
1055
1125
|
} else seenUserMessages.set(dedupKey, i);
|
|
1056
1126
|
}
|
|
1057
1127
|
const match = f.match;
|
|
1058
|
-
if (!(match.endpoint !== void 0 || match.context !== void 0 || match.userMessage !== void 0 || match.systemMessage !== void 0 || match.inputText !== void 0 || match.responseFormat !== void 0 || match.toolCallId !== void 0 || match.toolResultContains !== void 0 || match.toolName !== void 0 || match.toolNamespace !== void 0 || match.model !== void 0 || match.predicate !== void 0 || match.turnIndex !== void 0 || match.sequenceIndex !== void 0 || match.hasToolResult !== void 0) && i < fixtures.length - 1) {
|
|
1128
|
+
if (!(match.endpoint !== void 0 || match.context !== void 0 || match.userMessage !== void 0 || match.systemMessage !== void 0 || match.inputText !== void 0 || match.embeddingRequest !== void 0 || match.responseFormat !== void 0 || match.toolCallId !== void 0 || match.toolResultContains !== void 0 || match.toolName !== void 0 || match.toolNamespace !== void 0 || match.model !== void 0 || match.predicate !== void 0 || match.turnIndex !== void 0 || match.sequenceIndex !== void 0 || match.hasToolResult !== void 0) && i < fixtures.length - 1) {
|
|
1059
1129
|
const ref = {
|
|
1060
1130
|
rule: "catch-all-not-last",
|
|
1061
1131
|
shadowsFrom: i + 1,
|
|
@@ -1299,6 +1369,11 @@ const misbehaviorEnabledFixtures = /* @__PURE__ */ new WeakSet();
|
|
|
1299
1369
|
function enableHeldFixtureMisbehavior(fixture) {
|
|
1300
1370
|
const held = heldFixtureMisbehavior.get(fixture);
|
|
1301
1371
|
if (held === void 0) return;
|
|
1372
|
+
if (typeof fixture.response !== "function" && require_helpers.isRawResponse(fixture.response)) throw new MisbehaviorConfigError({
|
|
1373
|
+
rule: "misbehavior/not-applicable",
|
|
1374
|
+
file: held.file,
|
|
1375
|
+
detail: `${held.path}: misbehavior does not apply to raw fixtures`
|
|
1376
|
+
});
|
|
1302
1377
|
const parsed = require_misbehavior.parseMisbehavior(held.value, held.path);
|
|
1303
1378
|
if (parsed.ok) fixture.misbehavior = parsed.config;
|
|
1304
1379
|
const issue = parsed.ok ? require_misbehavior.validateFixtureMisbehavior(fixture, held.path) : parsed.issue;
|
|
@@ -1311,6 +1386,26 @@ function enableHeldFixtureMisbehavior(fixture) {
|
|
|
1311
1386
|
misbehaviorEnabledFixtures.add(fixture);
|
|
1312
1387
|
}
|
|
1313
1388
|
/**
|
|
1389
|
+
* @internal The facts about a raw fixture that {@link checkRawResponse} checks
|
|
1390
|
+
* beyond `raw` itself, for `served`, the response as this server reads it.
|
|
1391
|
+
* Load validation and serve time both use it, so they agree:
|
|
1392
|
+
*
|
|
1393
|
+
* - `otherResponseKeys`: top-level keys of the fixture's response as written
|
|
1394
|
+
* that `served` lacks. Only `customToolCalls` / `responsesBlocks` are ever
|
|
1395
|
+
* dropped (on a legacy server), and a fixture that writes either next to
|
|
1396
|
+
* `raw` is not a raw fixture to the router.
|
|
1397
|
+
* - `fixtureMisbehavior`: the fixture sets its own `misbehavior`, recognized
|
|
1398
|
+
* or still held.
|
|
1399
|
+
*/
|
|
1400
|
+
function rawFixtureContext(fixture, served) {
|
|
1401
|
+
const source = responsesToolsViewSource(fixture);
|
|
1402
|
+
const written = fixture.response;
|
|
1403
|
+
return {
|
|
1404
|
+
otherResponseKeys: typeof written === "function" ? [] : Object.keys(written).filter((key) => !(key in served)),
|
|
1405
|
+
fixtureMisbehavior: fixture.misbehavior !== void 0 || heldFixtureMisbehavior.has(source)
|
|
1406
|
+
};
|
|
1407
|
+
}
|
|
1408
|
+
/**
|
|
1314
1409
|
* @internal Mark a fixture whose `misbehavior` a server with misbehavior
|
|
1315
1410
|
* enabled has recognized, so `validateFixtures` checks it.
|
|
1316
1411
|
*/
|
|
@@ -1338,6 +1433,7 @@ exports.markFixtureResponsesToolsExtended = markFixtureResponsesToolsExtended;
|
|
|
1338
1433
|
exports.normalizeResponse = normalizeResponse;
|
|
1339
1434
|
exports.normalizeResponsesToolsKeys = normalizeResponsesToolsKeys;
|
|
1340
1435
|
exports.queueOneShotError = queueOneShotError;
|
|
1436
|
+
exports.rawFixtureContext = rawFixtureContext;
|
|
1341
1437
|
exports.readFixtureJson = readFixtureJson;
|
|
1342
1438
|
exports.releaseOneShotError = releaseOneShotError;
|
|
1343
1439
|
exports.renderValidationRef = renderValidationRef;
|