@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter-video.d.cts","names":[],"sources":["../src/openrouter-video.ts"],"sourcesContent":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"openrouter-video.d.cts","names":[],"sources":["../src/openrouter-video.ts"],"sourcesContent":[],"mappings":";;;;;cAgFa,4BAAA;KAGR,qBAAA;AAHL,UAKU,wBAAA,CAL+B;EAGpC,IAAA,EAAA,QAAA;EAEK,KAAA,EAAA,MAAA;EAAwB,MAAA,EAGxB,qBAHwB;;WAWzB,EAAA,MAAA;EAAa;EAyBZ,qBAAA,EAAA,MAAwB;EAAA;sBAYxB,EAAA,MAAA;;EAWM,KAAA,EAhDP,aAgDO,CAAA,OAAA,CAAA;EAwBJ;;;;EAAwE,gBAAA,CAAA,EAAA,OAAA;EAoBvE;;;;;AAqNb;EAAiD,mBAAA,CAAA,EAAA,OAAA;;;;;;;;;;AAgKjD;;UAxbU,wBAAA,CAybE;MACL,EAAA,QAAK;;OAGA,EAAA,MAAA;;;;;AA8lBZ;;;;QAGY,EAlhCF,qBAkhCE;;eAEA,EAAA,MAAA;;oBAET,EAAA,MAAA;EAAO;AAkIV;;;;;OAKW,EAlpCF,OAkpCE,CAAA,OAAA,CAAA;;;;;;AAunBX;;;;;;;;;;;;;;;;;KAjvDY,kBAAA,GAAqB,2BAA2B;;;;;;;;;;;;;;cAoB/C,qBAAA;;;;;;;;;;;;oBAgBO;wBAUI;;;;;iBA2LF,2BAAA,MACf,MAAA,CAAK,sBACL,MAAA,CAAK,yCAEA,oBACD,mBACC,uCACY,MAAA,CAAK,+BACrB,wBACL;iBAuJmB,4BAAA,MACf,MAAA,CAAK,sBACL,MAAA,CAAK,wCAED,mBACC,uCACY,MAAA,CAAK,+BACrB,wBACL;;;;;;;;;;;;;;;iBA2lBmB,2BAAA,MACf,MAAA,CAAK,sBACL,MAAA,CAAK,0BACA,oBACD,mBACC,uCACY,MAAA,CAAK,0BAC1B;iBAkImB,2BAAA,MACf,MAAA,CAAK,sBACL,MAAA,CAAK,uCAEA,oBACD,mBACC,uCACY,MAAA,CAAK,+BACrB,wBACL;;;;;;;;;;;;;cAmnBU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter-video.d.ts","names":[],"sources":["../src/openrouter-video.ts"],"sourcesContent":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"openrouter-video.d.ts","names":[],"sources":["../src/openrouter-video.ts"],"sourcesContent":[],"mappings":";;;;;cAgFa,4BAAA;KAGR,qBAAA;AAHL,UAKU,wBAAA,CAL+B;EAGpC,IAAA,EAAA,QAAA;EAEK,KAAA,EAAA,MAAA;EAAwB,MAAA,EAGxB,qBAHwB;;WAWzB,EAAA,MAAA;EAAa;EAyBZ,qBAAA,EAAA,MAAwB;EAAA;sBAYxB,EAAA,MAAA;;EAWM,KAAA,EAhDP,aAgDO,CAAA,OAAA,CAAA;EAwBJ;;;;EAAwE,gBAAA,CAAA,EAAA,OAAA;EAoBvE;;;;;AAqNb;EAAiD,mBAAA,CAAA,EAAA,OAAA;;;;;;;;;;AAgKjD;;UAxbU,wBAAA,CAybE;MACL,EAAA,QAAK;;OAGA,EAAA,MAAA;;;;;AA8lBZ;;;;QAGY,EAlhCF,qBAkhCE;;eAEA,EAAA,MAAA;;oBAET,EAAA,MAAA;EAAO;AAkIV;;;;;OAKW,EAlpCF,OAkpCE,CAAA,OAAA,CAAA;;;;;;AAunBX;;;;;;;;;;;;;;;;;KAjvDY,kBAAA,GAAqB,2BAA2B;;;;;;;;;;;;;;cAoB/C,qBAAA;;;;;;;;;;;;oBAgBO;wBAUI;;;;;iBA2LF,2BAAA,MACf,MAAA,CAAK,sBACL,MAAA,CAAK,yCAEA,oBACD,mBACC,uCACY,MAAA,CAAK,+BACrB,wBACL;iBAuJmB,4BAAA,MACf,MAAA,CAAK,sBACL,MAAA,CAAK,wCAED,mBACC,uCACY,MAAA,CAAK,+BACrB,wBACL;;;;;;;;;;;;;;;iBA2lBmB,2BAAA,MACf,MAAA,CAAK,sBACL,MAAA,CAAK,0BACA,oBACD,mBACC,uCACY,MAAA,CAAK,0BAC1B;iBAkImB,2BAAA,MACf,MAAA,CAAK,sBACL,MAAA,CAAK,uCAEA,oBACD,mBACC,uCACY,MAAA,CAAK,+BACrB,wBACL;;;;;;;;;;;;;cAmnBU"}
|
package/dist/openrouter-video.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { renderError } from "./response/errors.js";
|
|
2
|
+
import { resolveRequestDecisions, strictOverrideField } from "./response/policy.js";
|
|
3
|
+
import { flattenHeaders, getContext, getTestId, isErrorResponse, isVideoResponse, resolveResponse, serializeErrorResponse, strictNoMatchLogLine, strictNoMatchMessage } from "./helpers.js";
|
|
2
4
|
import { writeErrorResponse } from "./sse-writer.js";
|
|
3
5
|
import { applyChaosAsync } from "./chaos.js";
|
|
4
6
|
import { matchFixtureDiagnostic } from "./router.js";
|
|
5
7
|
import { resolveUpstreamUrl } from "./url.js";
|
|
6
8
|
import { buildFixtureMatch, clampTimeout, persistFixture, prepareEgressHeaders, removeForwardHeader, sanitizeHeaderValue } from "./recorder.js";
|
|
9
|
+
import { OPENROUTER_VIDEO_SUNSET_MODELS, collect } from "./response/catalog/collect.js";
|
|
10
|
+
import { DEFAULT_OPENROUTER_VIDEO_MODEL, renderOpenRouterVideoModels } from "./response/catalog/render.js";
|
|
7
11
|
import { resolveProgression } from "./fal.js";
|
|
8
12
|
import { DEFAULT_UPSTREAM_TIMEOUT_MS, readBodyIdle, readEnvelopeText, requestBase, testIdSuffix, upstreamTimeoutSignal } from "./video-proxy-shared.js";
|
|
9
13
|
import crypto from "node:crypto";
|
|
10
14
|
|
|
11
15
|
//#region src/openrouter-video.ts
|
|
12
|
-
const DEFAULT_OPENROUTER_VIDEO_MODEL = "bytedance/seedance-2.0";
|
|
13
16
|
/**
|
|
14
17
|
* Video models OpenRouter has REMOVED (deprecation policy: a removed surface
|
|
15
18
|
* never mocks success — it serves the rejection the real API serves now).
|
|
@@ -20,7 +23,6 @@ const DEFAULT_OPENROUTER_VIDEO_MODEL = "bytedance/seedance-2.0";
|
|
|
20
23
|
* `{"error":{"message":"Model openai/sora-2 does not exist","code":400}}` —
|
|
21
24
|
* the same rejection OpenRouter gives any unknown model id.
|
|
22
25
|
*/
|
|
23
|
-
const OPENROUTER_VIDEO_SUNSET_MODELS = new Set(["openai/sora-2"]);
|
|
24
26
|
const OPENROUTER_VIDEO_MAX_ENTRIES = 1e4;
|
|
25
27
|
const OPENROUTER_VIDEO_TTL_MS = 36e5;
|
|
26
28
|
/**
|
|
@@ -226,7 +228,7 @@ async function handleOpenRouterVideoStatus(req, res, jobId, fixtures, journal, d
|
|
|
226
228
|
return;
|
|
227
229
|
}
|
|
228
230
|
if (job.kind === "record") {
|
|
229
|
-
if (
|
|
231
|
+
if (!resolveRequestDecisions(defaults.strict, req.headers).upstream) {
|
|
230
232
|
defaults.logger.error(`STRICT: video job ${jobId} is proxied live upstream (record mode) — refusing the upstream poll`);
|
|
231
233
|
journal.add({
|
|
232
234
|
method,
|
|
@@ -239,11 +241,11 @@ async function handleOpenRouterVideoStatus(req, res, jobId, fixtures, journal, d
|
|
|
239
241
|
...strictOverrideField(defaults.strict, req.headers)
|
|
240
242
|
}
|
|
241
243
|
});
|
|
242
|
-
writeErrorResponse(res, 503,
|
|
244
|
+
writeErrorResponse(res, 503, renderError("openai", "strict-miss", {
|
|
243
245
|
message: `Strict mode: video job ${jobId} is proxied live upstream (record mode) — nothing reaches an upstream under strict mode`,
|
|
244
246
|
type: "invalid_request_error",
|
|
245
247
|
code: "no_fixture_match"
|
|
246
|
-
}
|
|
248
|
+
}).body);
|
|
247
249
|
return;
|
|
248
250
|
}
|
|
249
251
|
await proxyOpenRouterVideoRecordPoll({
|
|
@@ -384,7 +386,7 @@ async function handleOpenRouterVideoContent(req, res, jobId, journal, defaults,
|
|
|
384
386
|
const queryIdx = path.indexOf("?");
|
|
385
387
|
const indexParam = queryIdx === -1 ? null : new URLSearchParams(path.slice(queryIdx + 1)).get("index");
|
|
386
388
|
if (job.kind === "record") {
|
|
387
|
-
if (
|
|
389
|
+
if (!resolveRequestDecisions(defaults.strict, req.headers).upstream) {
|
|
388
390
|
defaults.logger.error(`STRICT: video job ${jobId} content is proxied live upstream (record mode) — refusing the upstream fetch`);
|
|
389
391
|
journal.add({
|
|
390
392
|
method,
|
|
@@ -397,11 +399,11 @@ async function handleOpenRouterVideoContent(req, res, jobId, journal, defaults,
|
|
|
397
399
|
...strictOverrideField(defaults.strict, req.headers)
|
|
398
400
|
}
|
|
399
401
|
});
|
|
400
|
-
writeErrorResponse(res, 503,
|
|
402
|
+
writeErrorResponse(res, 503, renderError("openai", "strict-miss", {
|
|
401
403
|
message: `Strict mode: video job ${jobId} is proxied live upstream (record mode) — nothing reaches an upstream under strict mode`,
|
|
402
404
|
type: "invalid_request_error",
|
|
403
405
|
code: "no_fixture_match"
|
|
404
|
-
}
|
|
406
|
+
}).body);
|
|
405
407
|
return;
|
|
406
408
|
}
|
|
407
409
|
await proxyOpenRouterVideoRecordContent({
|
|
@@ -487,10 +489,10 @@ async function proxyOpenRouterVideoRecordContent(args) {
|
|
|
487
489
|
...strictOverrideField(defaults.strict, req.headers)
|
|
488
490
|
}
|
|
489
491
|
});
|
|
490
|
-
writeErrorResponse(res, 502,
|
|
492
|
+
writeErrorResponse(res, 502, renderError("openai", "transport-failure", {
|
|
491
493
|
message: `Proxy to upstream failed: ${msg}`,
|
|
492
494
|
type: "proxy_error"
|
|
493
|
-
}
|
|
495
|
+
}).body);
|
|
494
496
|
};
|
|
495
497
|
const record = defaults.record;
|
|
496
498
|
if (!record) {
|
|
@@ -658,25 +660,6 @@ async function proxyOpenRouterVideoRecordContent(args) {
|
|
|
658
660
|
reader.cancel().catch(() => {});
|
|
659
661
|
}
|
|
660
662
|
}
|
|
661
|
-
const DEFAULT_OPENROUTER_VIDEO_MODELS = [DEFAULT_OPENROUTER_VIDEO_MODEL];
|
|
662
|
-
function modelEntry(id) {
|
|
663
|
-
return {
|
|
664
|
-
id,
|
|
665
|
-
name: id,
|
|
666
|
-
supported_durations: [4, 8],
|
|
667
|
-
supported_resolutions: ["720p", "1080p"],
|
|
668
|
-
supported_aspect_ratios: [
|
|
669
|
-
"16:9",
|
|
670
|
-
"9:16",
|
|
671
|
-
"1:1"
|
|
672
|
-
],
|
|
673
|
-
supported_frame_images: [],
|
|
674
|
-
supported_sizes: [],
|
|
675
|
-
generate_audio: false,
|
|
676
|
-
seed: true,
|
|
677
|
-
pricing_skus: []
|
|
678
|
-
};
|
|
679
|
-
}
|
|
680
663
|
/**
|
|
681
664
|
* Synthesizes the OpenRouter video model listing from loaded fixtures —
|
|
682
665
|
* video-endpoint fixtures with a string `match.model` (mirrors the Ollama
|
|
@@ -704,7 +687,7 @@ async function handleOpenRouterVideoModels(req, res, fixtures, journal, defaults
|
|
|
704
687
|
const record = defaults.record;
|
|
705
688
|
const upstreamBase = record?.providers.openrouter;
|
|
706
689
|
let proxyAttemptFailed = false;
|
|
707
|
-
if (upstreamBase &&
|
|
690
|
+
if (upstreamBase && resolveRequestDecisions(defaults.strict, req.headers).upstream) {
|
|
708
691
|
let relay;
|
|
709
692
|
try {
|
|
710
693
|
const target = resolveUpstreamUrl(upstreamBase, "/api/v1/videos/models");
|
|
@@ -744,14 +727,9 @@ async function handleOpenRouterVideoModels(req, res, fixtures, journal, defaults
|
|
|
744
727
|
return;
|
|
745
728
|
}
|
|
746
729
|
}
|
|
747
|
-
const
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
sawVideoFixture = true;
|
|
751
|
-
if (f.match.model && typeof f.match.model === "string" && !OPENROUTER_VIDEO_SUNSET_MODELS.has(f.match.model)) modelIds.add(f.match.model);
|
|
752
|
-
}
|
|
753
|
-
if (modelIds.size === 0 && sawVideoFixture) defaults.logger.warn("No video fixture contributes a string model — serving the default video model set");
|
|
754
|
-
const ids = modelIds.size > 0 ? [...modelIds] : DEFAULT_OPENROUTER_VIDEO_MODELS;
|
|
730
|
+
const collection = collect(fixtures, "video-active");
|
|
731
|
+
if (collection.ids.length === 0 && collection.diagnostics.sawVideoFixture) defaults.logger.warn("No video fixture contributes a string model — serving the default video model set");
|
|
732
|
+
const body = renderOpenRouterVideoModels(collection.ids);
|
|
755
733
|
if (res.destroyed || res.writableEnded) return;
|
|
756
734
|
journal.add({
|
|
757
735
|
method,
|
|
@@ -766,7 +744,7 @@ async function handleOpenRouterVideoModels(req, res, fixtures, journal, defaults
|
|
|
766
744
|
}
|
|
767
745
|
});
|
|
768
746
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
769
|
-
res.end(JSON.stringify(
|
|
747
|
+
res.end(JSON.stringify(body));
|
|
770
748
|
}
|
|
771
749
|
async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, defaults, setCorsHeaders, jobs) {
|
|
772
750
|
setCorsHeaders(res);
|
|
@@ -787,11 +765,11 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
|
|
|
787
765
|
fixture: null
|
|
788
766
|
}
|
|
789
767
|
});
|
|
790
|
-
writeErrorResponse(res, 400,
|
|
768
|
+
writeErrorResponse(res, 400, renderError("openai", "validation", {
|
|
791
769
|
message: `Malformed JSON: ${detail}`,
|
|
792
770
|
type: "invalid_request_error",
|
|
793
771
|
code: "invalid_json"
|
|
794
|
-
}
|
|
772
|
+
}).body);
|
|
795
773
|
return;
|
|
796
774
|
}
|
|
797
775
|
if (videoReq === null || typeof videoReq !== "object" || Array.isArray(videoReq)) {
|
|
@@ -805,10 +783,10 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
|
|
|
805
783
|
fixture: null
|
|
806
784
|
}
|
|
807
785
|
});
|
|
808
|
-
writeErrorResponse(res, 400,
|
|
786
|
+
writeErrorResponse(res, 400, renderError("openai", "validation", {
|
|
809
787
|
message: "Request body must be a JSON object",
|
|
810
788
|
type: "invalid_request_error"
|
|
811
|
-
}
|
|
789
|
+
}).body);
|
|
812
790
|
return;
|
|
813
791
|
}
|
|
814
792
|
const parsedBody = validationJournalBody(videoReq);
|
|
@@ -823,11 +801,10 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
|
|
|
823
801
|
fixture: null
|
|
824
802
|
}
|
|
825
803
|
});
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
message,
|
|
804
|
+
writeErrorResponse(res, 400, renderError("openai", "validation", {
|
|
805
|
+
message: videoReq.prompt === void 0 ? "Missing required parameter: 'prompt'" : "Invalid type for parameter: 'prompt' must be a non-empty string",
|
|
829
806
|
type: "invalid_request_error"
|
|
830
|
-
}
|
|
807
|
+
}).body);
|
|
831
808
|
return;
|
|
832
809
|
}
|
|
833
810
|
if (videoReq.model !== void 0 && (typeof videoReq.model !== "string" || !videoReq.model)) {
|
|
@@ -841,10 +818,10 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
|
|
|
841
818
|
fixture: null
|
|
842
819
|
}
|
|
843
820
|
});
|
|
844
|
-
writeErrorResponse(res, 400,
|
|
821
|
+
writeErrorResponse(res, 400, renderError("openai", "validation", {
|
|
845
822
|
message: "Invalid type for parameter: 'model' must be a non-empty string",
|
|
846
823
|
type: "invalid_request_error"
|
|
847
|
-
}
|
|
824
|
+
}).body);
|
|
848
825
|
return;
|
|
849
826
|
}
|
|
850
827
|
if (videoReq.model !== void 0 && OPENROUTER_VIDEO_SUNSET_MODELS.has(videoReq.model)) {
|
|
@@ -887,9 +864,9 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
|
|
|
887
864
|
path,
|
|
888
865
|
headers: flattenHeaders(req.headers),
|
|
889
866
|
body: syntheticReq
|
|
890
|
-
}, fixture ? "fixture" :
|
|
867
|
+
}, fixture ? "fixture" : resolveRequestDecisions(defaults.strict, req.headers).fixtureMiss ? "internal" : defaults.record?.providers.openrouter ? "proxy" : "internal", defaults.registry, defaults.logger)) return;
|
|
891
868
|
if (!fixture) {
|
|
892
|
-
if (
|
|
869
|
+
if (resolveRequestDecisions(defaults.strict, req.headers).fixtureMiss) {
|
|
893
870
|
const strictMessage = strictNoMatchMessage(skippedBySequenceOrTurn);
|
|
894
871
|
defaults.logger.error(strictNoMatchLogLine(method, path, skippedBySequenceOrTurn));
|
|
895
872
|
journal.add({
|
|
@@ -903,11 +880,11 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
|
|
|
903
880
|
...strictOverrideField(defaults.strict, req.headers)
|
|
904
881
|
}
|
|
905
882
|
});
|
|
906
|
-
writeErrorResponse(res, 503,
|
|
883
|
+
writeErrorResponse(res, 503, renderError("openai", "strict-miss", {
|
|
907
884
|
message: strictMessage,
|
|
908
885
|
type: "invalid_request_error",
|
|
909
886
|
code: "no_fixture_match"
|
|
910
|
-
}
|
|
887
|
+
}).body);
|
|
911
888
|
return;
|
|
912
889
|
}
|
|
913
890
|
if (defaults.record) {
|
|
@@ -971,10 +948,10 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
|
|
|
971
948
|
fixture
|
|
972
949
|
}
|
|
973
950
|
});
|
|
974
|
-
writeErrorResponse(res, 500,
|
|
951
|
+
writeErrorResponse(res, 500, renderError("openai", "unknown-response", {
|
|
975
952
|
message: "Fixture response is not a video type",
|
|
976
953
|
type: "server_error"
|
|
977
|
-
}
|
|
954
|
+
}).body);
|
|
978
955
|
return;
|
|
979
956
|
}
|
|
980
957
|
if (res.destroyed || res.writableEnded) return;
|
|
@@ -1045,10 +1022,10 @@ async function proxyOpenRouterVideoSubmit(args) {
|
|
|
1045
1022
|
...strictOverrideField(defaults.strict, req.headers)
|
|
1046
1023
|
}
|
|
1047
1024
|
});
|
|
1048
|
-
writeErrorResponse(res, 502,
|
|
1025
|
+
writeErrorResponse(res, 502, renderError("openai", "transport-failure", {
|
|
1049
1026
|
message: `Proxy to upstream failed: ${msg}`,
|
|
1050
1027
|
type: "proxy_error"
|
|
1051
|
-
}
|
|
1028
|
+
}).body);
|
|
1052
1029
|
return "handled";
|
|
1053
1030
|
};
|
|
1054
1031
|
let submitUrl;
|
|
@@ -1213,10 +1190,10 @@ async function proxyOpenRouterVideoRecordPoll(args) {
|
|
|
1213
1190
|
logger.error(`OpenRouter video poll proxy failed: ${msg}`);
|
|
1214
1191
|
if (res.destroyed || res.writableEnded) return;
|
|
1215
1192
|
journalProxy(502);
|
|
1216
|
-
writeErrorResponse(res, 502,
|
|
1193
|
+
writeErrorResponse(res, 502, renderError("openai", "transport-failure", {
|
|
1217
1194
|
message: `Proxy to upstream failed: ${msg}`,
|
|
1218
1195
|
type: "proxy_error"
|
|
1219
|
-
}
|
|
1196
|
+
}).body);
|
|
1220
1197
|
};
|
|
1221
1198
|
const record = defaults.record;
|
|
1222
1199
|
if (!record) {
|