@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.
Files changed (492) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +25 -1
  4. package/README.md +11 -2
  5. package/dist/agui-mock.cjs +25 -25
  6. package/dist/agui-mock.cjs.map +1 -1
  7. package/dist/agui-mock.d.cts.map +1 -1
  8. package/dist/agui-mock.d.ts.map +1 -1
  9. package/dist/agui-mock.js +25 -25
  10. package/dist/agui-mock.js.map +1 -1
  11. package/dist/agui-types.d.cts.map +1 -1
  12. package/dist/aimock-cli.cjs +15 -1
  13. package/dist/aimock-cli.cjs.map +1 -1
  14. package/dist/aimock-cli.d.cts.map +1 -1
  15. package/dist/aimock-cli.d.ts.map +1 -1
  16. package/dist/aimock-cli.js +16 -2
  17. package/dist/aimock-cli.js.map +1 -1
  18. package/dist/api-key-auth.cjs +10 -9
  19. package/dist/api-key-auth.cjs.map +1 -1
  20. package/dist/api-key-auth.d.cts.map +1 -1
  21. package/dist/api-key-auth.d.ts.map +1 -1
  22. package/dist/api-key-auth.js +11 -10
  23. package/dist/api-key-auth.js.map +1 -1
  24. package/dist/aws-event-stream.cjs +20 -23
  25. package/dist/aws-event-stream.cjs.map +1 -1
  26. package/dist/aws-event-stream.d.cts +0 -1
  27. package/dist/aws-event-stream.d.ts +0 -1
  28. package/dist/aws-event-stream.js +20 -24
  29. package/dist/aws-event-stream.js.map +1 -1
  30. package/dist/batches.cjs +2 -4
  31. package/dist/batches.cjs.map +1 -1
  32. package/dist/batches.d.cts.map +1 -1
  33. package/dist/batches.d.ts.map +1 -1
  34. package/dist/batches.js +2 -4
  35. package/dist/batches.js.map +1 -1
  36. package/dist/bedrock-converse.cjs +139 -161
  37. package/dist/bedrock-converse.cjs.map +1 -1
  38. package/dist/bedrock-converse.d.cts.map +1 -1
  39. package/dist/bedrock-converse.d.ts.map +1 -1
  40. package/dist/bedrock-converse.js +137 -159
  41. package/dist/bedrock-converse.js.map +1 -1
  42. package/dist/bedrock.cjs +175 -216
  43. package/dist/bedrock.cjs.map +1 -1
  44. package/dist/bedrock.d.cts.map +1 -1
  45. package/dist/bedrock.d.ts.map +1 -1
  46. package/dist/bedrock.js +172 -213
  47. package/dist/bedrock.js.map +1 -1
  48. package/dist/byteplus-video.cjs +11 -10
  49. package/dist/byteplus-video.cjs.map +1 -1
  50. package/dist/byteplus-video.d.cts.map +1 -1
  51. package/dist/byteplus-video.d.ts.map +1 -1
  52. package/dist/byteplus-video.js +5 -4
  53. package/dist/byteplus-video.js.map +1 -1
  54. package/dist/chaos.cjs +5 -4
  55. package/dist/chaos.cjs.map +1 -1
  56. package/dist/chaos.d.cts.map +1 -1
  57. package/dist/chaos.d.ts.map +1 -1
  58. package/dist/chaos.js +5 -4
  59. package/dist/chaos.js.map +1 -1
  60. package/dist/cli.cjs +15 -0
  61. package/dist/cli.cjs.map +1 -1
  62. package/dist/cli.js +15 -0
  63. package/dist/cli.js.map +1 -1
  64. package/dist/cohere.cjs +107 -180
  65. package/dist/cohere.cjs.map +1 -1
  66. package/dist/cohere.d.cts.map +1 -1
  67. package/dist/cohere.d.ts.map +1 -1
  68. package/dist/cohere.js +106 -179
  69. package/dist/cohere.js.map +1 -1
  70. package/dist/config-loader.cjs +29 -1
  71. package/dist/config-loader.cjs.map +1 -1
  72. package/dist/config-loader.d.cts +7 -1
  73. package/dist/config-loader.d.cts.map +1 -1
  74. package/dist/config-loader.d.ts +7 -1
  75. package/dist/config-loader.d.ts.map +1 -1
  76. package/dist/config-loader.js +29 -2
  77. package/dist/config-loader.js.map +1 -1
  78. package/dist/count-tokens.cjs +146 -0
  79. package/dist/count-tokens.cjs.map +1 -0
  80. package/dist/count-tokens.js +146 -0
  81. package/dist/count-tokens.js.map +1 -0
  82. package/dist/elevenlabs-audio.cjs +36 -34
  83. package/dist/elevenlabs-audio.cjs.map +1 -1
  84. package/dist/elevenlabs-audio.d.cts.map +1 -1
  85. package/dist/elevenlabs-audio.d.ts.map +1 -1
  86. package/dist/elevenlabs-audio.js +33 -31
  87. package/dist/elevenlabs-audio.js.map +1 -1
  88. package/dist/elevenlabs-voice.cjs +38 -37
  89. package/dist/elevenlabs-voice.cjs.map +1 -1
  90. package/dist/elevenlabs-voice.d.cts.map +1 -1
  91. package/dist/elevenlabs-voice.d.ts.map +1 -1
  92. package/dist/elevenlabs-voice.js +33 -32
  93. package/dist/elevenlabs-voice.js.map +1 -1
  94. package/dist/embedding-request.cjs +16 -0
  95. package/dist/embedding-request.cjs.map +1 -0
  96. package/dist/embedding-request.js +14 -0
  97. package/dist/embedding-request.js.map +1 -0
  98. package/dist/embeddings.cjs +30 -20
  99. package/dist/embeddings.cjs.map +1 -1
  100. package/dist/embeddings.d.cts.map +1 -1
  101. package/dist/embeddings.d.ts.map +1 -1
  102. package/dist/embeddings.js +30 -20
  103. package/dist/embeddings.js.map +1 -1
  104. package/dist/fal-audio.cjs +45 -43
  105. package/dist/fal-audio.cjs.map +1 -1
  106. package/dist/fal-audio.d.cts.map +1 -1
  107. package/dist/fal-audio.d.ts.map +1 -1
  108. package/dist/fal-audio.js +42 -40
  109. package/dist/fal-audio.js.map +1 -1
  110. package/dist/fal.cjs +17 -15
  111. package/dist/fal.cjs.map +1 -1
  112. package/dist/fal.js +16 -14
  113. package/dist/fal.js.map +1 -1
  114. package/dist/files.cjs +2 -4
  115. package/dist/files.cjs.map +1 -1
  116. package/dist/files.d.cts.map +1 -1
  117. package/dist/files.d.ts.map +1 -1
  118. package/dist/files.js +2 -4
  119. package/dist/files.js.map +1 -1
  120. package/dist/fine-tuning.cjs +2 -4
  121. package/dist/fine-tuning.cjs.map +1 -1
  122. package/dist/fine-tuning.d.cts.map +1 -1
  123. package/dist/fine-tuning.d.ts.map +1 -1
  124. package/dist/fine-tuning.js +2 -4
  125. package/dist/fine-tuning.js.map +1 -1
  126. package/dist/fixture-loader.cjs +140 -44
  127. package/dist/fixture-loader.cjs.map +1 -1
  128. package/dist/fixture-loader.d.cts.map +1 -1
  129. package/dist/fixture-loader.d.ts.map +1 -1
  130. package/dist/fixture-loader.js +141 -46
  131. package/dist/fixture-loader.js.map +1 -1
  132. package/dist/gemini-embeddings.cjs +26 -24
  133. package/dist/gemini-embeddings.cjs.map +1 -1
  134. package/dist/gemini-embeddings.js +26 -24
  135. package/dist/gemini-embeddings.js.map +1 -1
  136. package/dist/gemini-interactions.cjs +113 -156
  137. package/dist/gemini-interactions.cjs.map +1 -1
  138. package/dist/gemini-interactions.d.cts +0 -1
  139. package/dist/gemini-interactions.d.cts.map +1 -1
  140. package/dist/gemini-interactions.d.ts +0 -1
  141. package/dist/gemini-interactions.d.ts.map +1 -1
  142. package/dist/gemini-interactions.js +113 -156
  143. package/dist/gemini-interactions.js.map +1 -1
  144. package/dist/gemini.cjs +295 -218
  145. package/dist/gemini.cjs.map +1 -1
  146. package/dist/gemini.d.cts.map +1 -1
  147. package/dist/gemini.d.ts.map +1 -1
  148. package/dist/gemini.js +295 -219
  149. package/dist/gemini.js.map +1 -1
  150. package/dist/grok-video.cjs +14 -12
  151. package/dist/grok-video.cjs.map +1 -1
  152. package/dist/grok-video.d.cts.map +1 -1
  153. package/dist/grok-video.d.ts.map +1 -1
  154. package/dist/grok-video.js +8 -6
  155. package/dist/grok-video.js.map +1 -1
  156. package/dist/helpers.cjs +411 -75
  157. package/dist/helpers.cjs.map +1 -1
  158. package/dist/helpers.d.cts +51 -1
  159. package/dist/helpers.d.cts.map +1 -1
  160. package/dist/helpers.d.ts +51 -1
  161. package/dist/helpers.d.ts.map +1 -1
  162. package/dist/helpers.js +402 -74
  163. package/dist/helpers.js.map +1 -1
  164. package/dist/images.cjs +30 -28
  165. package/dist/images.cjs.map +1 -1
  166. package/dist/images.d.cts.map +1 -1
  167. package/dist/images.d.ts.map +1 -1
  168. package/dist/images.js +27 -25
  169. package/dist/images.js.map +1 -1
  170. package/dist/index.cjs +4 -2
  171. package/dist/index.d.cts +4 -4
  172. package/dist/index.d.ts +4 -4
  173. package/dist/index.js +4 -4
  174. package/dist/journal.cjs +3 -1
  175. package/dist/journal.cjs.map +1 -1
  176. package/dist/journal.d.cts.map +1 -1
  177. package/dist/journal.d.ts.map +1 -1
  178. package/dist/journal.js +2 -1
  179. package/dist/journal.js.map +1 -1
  180. package/dist/llmock.cjs +3 -0
  181. package/dist/llmock.cjs.map +1 -1
  182. package/dist/llmock.d.cts.map +1 -1
  183. package/dist/llmock.d.ts.map +1 -1
  184. package/dist/llmock.js +3 -0
  185. package/dist/llmock.js.map +1 -1
  186. package/dist/mcp-fakes.d.cts.map +1 -1
  187. package/dist/mcp-handler.cjs +7 -3
  188. package/dist/mcp-handler.cjs.map +1 -1
  189. package/dist/mcp-handler.js +7 -3
  190. package/dist/mcp-handler.js.map +1 -1
  191. package/dist/mcp-recorder.cjs +2 -1
  192. package/dist/mcp-recorder.cjs.map +1 -1
  193. package/dist/mcp-recorder.js +3 -2
  194. package/dist/mcp-recorder.js.map +1 -1
  195. package/dist/messages.cjs +235 -202
  196. package/dist/messages.cjs.map +1 -1
  197. package/dist/messages.d.cts.map +1 -1
  198. package/dist/messages.d.ts.map +1 -1
  199. package/dist/messages.js +234 -202
  200. package/dist/messages.js.map +1 -1
  201. package/dist/metrics.cjs +5 -2
  202. package/dist/metrics.cjs.map +1 -1
  203. package/dist/metrics.d.cts.map +1 -1
  204. package/dist/metrics.d.ts.map +1 -1
  205. package/dist/metrics.js +6 -3
  206. package/dist/metrics.js.map +1 -1
  207. package/dist/misbehavior.cjs +62 -3
  208. package/dist/misbehavior.cjs.map +1 -1
  209. package/dist/misbehavior.d.cts.map +1 -1
  210. package/dist/misbehavior.d.ts.map +1 -1
  211. package/dist/misbehavior.js +63 -4
  212. package/dist/misbehavior.js.map +1 -1
  213. package/dist/model-utils.cjs +1 -0
  214. package/dist/model-utils.cjs.map +1 -1
  215. package/dist/model-utils.js +1 -1
  216. package/dist/model-utils.js.map +1 -1
  217. package/dist/moderation.cjs +15 -12
  218. package/dist/moderation.cjs.map +1 -1
  219. package/dist/moderation.js +14 -11
  220. package/dist/moderation.js.map +1 -1
  221. package/dist/ndjson-writer.cjs +21 -23
  222. package/dist/ndjson-writer.cjs.map +1 -1
  223. package/dist/ndjson-writer.d.cts +0 -1
  224. package/dist/ndjson-writer.d.cts.map +1 -1
  225. package/dist/ndjson-writer.d.ts +0 -1
  226. package/dist/ndjson-writer.d.ts.map +1 -1
  227. package/dist/ndjson-writer.js +21 -24
  228. package/dist/ndjson-writer.js.map +1 -1
  229. package/dist/ollama.cjs +276 -210
  230. package/dist/ollama.cjs.map +1 -1
  231. package/dist/ollama.d.cts.map +1 -1
  232. package/dist/ollama.d.ts.map +1 -1
  233. package/dist/ollama.js +273 -207
  234. package/dist/ollama.js.map +1 -1
  235. package/dist/openapi.cjs +323 -3
  236. package/dist/openapi.cjs.map +1 -1
  237. package/dist/openapi.d.cts.map +1 -1
  238. package/dist/openapi.d.ts.map +1 -1
  239. package/dist/openapi.js +324 -4
  240. package/dist/openapi.js.map +1 -1
  241. package/dist/openrouter-chat.cjs +11 -155
  242. package/dist/openrouter-chat.cjs.map +1 -1
  243. package/dist/openrouter-chat.js +11 -155
  244. package/dist/openrouter-chat.js.map +1 -1
  245. package/dist/openrouter-video.cjs +51 -74
  246. package/dist/openrouter-video.cjs.map +1 -1
  247. package/dist/openrouter-video.d.cts.map +1 -1
  248. package/dist/openrouter-video.d.ts.map +1 -1
  249. package/dist/openrouter-video.js +37 -60
  250. package/dist/openrouter-video.js.map +1 -1
  251. package/dist/raw-validation.cjs +177 -0
  252. package/dist/raw-validation.cjs.map +1 -0
  253. package/dist/raw-validation.js +176 -0
  254. package/dist/raw-validation.js.map +1 -0
  255. package/dist/recorder.cjs +176 -95
  256. package/dist/recorder.cjs.map +1 -1
  257. package/dist/recorder.d.cts.map +1 -1
  258. package/dist/recorder.d.ts.map +1 -1
  259. package/dist/recorder.js +176 -95
  260. package/dist/recorder.js.map +1 -1
  261. package/dist/rerank.cjs +13 -11
  262. package/dist/rerank.cjs.map +1 -1
  263. package/dist/rerank.js +12 -10
  264. package/dist/rerank.js.map +1 -1
  265. package/dist/response/catalog/anthropic-page.cjs +39 -0
  266. package/dist/response/catalog/anthropic-page.cjs.map +1 -0
  267. package/dist/response/catalog/anthropic-page.js +38 -0
  268. package/dist/response/catalog/anthropic-page.js.map +1 -0
  269. package/dist/response/catalog/collect.cjs +61 -0
  270. package/dist/response/catalog/collect.cjs.map +1 -0
  271. package/dist/response/catalog/collect.js +59 -0
  272. package/dist/response/catalog/collect.js.map +1 -0
  273. package/dist/response/catalog/gemini-page.cjs +25 -0
  274. package/dist/response/catalog/gemini-page.cjs.map +1 -0
  275. package/dist/response/catalog/gemini-page.js +24 -0
  276. package/dist/response/catalog/gemini-page.js.map +1 -0
  277. package/dist/response/catalog/render.cjs +182 -0
  278. package/dist/response/catalog/render.cjs.map +1 -0
  279. package/dist/response/catalog/render.js +171 -0
  280. package/dist/response/catalog/render.js.map +1 -0
  281. package/dist/response/deliver.cjs +144 -0
  282. package/dist/response/deliver.cjs.map +1 -0
  283. package/dist/response/deliver.js +143 -0
  284. package/dist/response/deliver.js.map +1 -0
  285. package/dist/response/errors.cjs +225 -0
  286. package/dist/response/errors.cjs.map +1 -0
  287. package/dist/response/errors.js +224 -0
  288. package/dist/response/errors.js.map +1 -0
  289. package/dist/response/finish.cjs +39 -0
  290. package/dist/response/finish.cjs.map +1 -0
  291. package/dist/response/finish.js +35 -0
  292. package/dist/response/finish.js.map +1 -0
  293. package/dist/response/frame-loop.cjs +102 -0
  294. package/dist/response/frame-loop.cjs.map +1 -0
  295. package/dist/response/frame-loop.js +100 -0
  296. package/dist/response/frame-loop.js.map +1 -0
  297. package/dist/response/lifecycle.cjs +223 -0
  298. package/dist/response/lifecycle.cjs.map +1 -0
  299. package/dist/response/lifecycle.js +211 -0
  300. package/dist/response/lifecycle.js.map +1 -0
  301. package/dist/response/policy.cjs +126 -0
  302. package/dist/response/policy.cjs.map +1 -0
  303. package/dist/response/policy.js +120 -0
  304. package/dist/response/policy.js.map +1 -0
  305. package/dist/response/profiles.cjs +69 -0
  306. package/dist/response/profiles.cjs.map +1 -0
  307. package/dist/response/profiles.js +65 -0
  308. package/dist/response/profiles.js.map +1 -0
  309. package/dist/response/proxy.cjs +71 -0
  310. package/dist/response/proxy.cjs.map +1 -0
  311. package/dist/response/proxy.js +70 -0
  312. package/dist/response/proxy.js.map +1 -0
  313. package/dist/response/raw.cjs +228 -0
  314. package/dist/response/raw.cjs.map +1 -0
  315. package/dist/response/raw.js +227 -0
  316. package/dist/response/raw.js.map +1 -0
  317. package/dist/response/timing.cjs +157 -0
  318. package/dist/response/timing.cjs.map +1 -0
  319. package/dist/response/timing.js +150 -0
  320. package/dist/response/timing.js.map +1 -0
  321. package/dist/response/usage/codecs/anthropic.cjs +52 -0
  322. package/dist/response/usage/codecs/anthropic.cjs.map +1 -0
  323. package/dist/response/usage/codecs/anthropic.js +50 -0
  324. package/dist/response/usage/codecs/anthropic.js.map +1 -0
  325. package/dist/response/usage/codecs/cohere.cjs +36 -0
  326. package/dist/response/usage/codecs/cohere.cjs.map +1 -0
  327. package/dist/response/usage/codecs/cohere.js +35 -0
  328. package/dist/response/usage/codecs/cohere.js.map +1 -0
  329. package/dist/response/usage/codecs/converse.cjs +16 -0
  330. package/dist/response/usage/codecs/converse.cjs.map +1 -0
  331. package/dist/response/usage/codecs/converse.js +15 -0
  332. package/dist/response/usage/codecs/converse.js.map +1 -0
  333. package/dist/response/usage/codecs/gemini.cjs +31 -0
  334. package/dist/response/usage/codecs/gemini.cjs.map +1 -0
  335. package/dist/response/usage/codecs/gemini.js +31 -0
  336. package/dist/response/usage/codecs/gemini.js.map +1 -0
  337. package/dist/response/usage/codecs/interactions.cjs +22 -0
  338. package/dist/response/usage/codecs/interactions.cjs.map +1 -0
  339. package/dist/response/usage/codecs/interactions.js +21 -0
  340. package/dist/response/usage/codecs/interactions.js.map +1 -0
  341. package/dist/response/usage/codecs/ollama.cjs +17 -0
  342. package/dist/response/usage/codecs/ollama.cjs.map +1 -0
  343. package/dist/response/usage/codecs/ollama.js +17 -0
  344. package/dist/response/usage/codecs/ollama.js.map +1 -0
  345. package/dist/response/usage/codecs/openai.cjs +52 -0
  346. package/dist/response/usage/codecs/openai.cjs.map +1 -0
  347. package/dist/response/usage/codecs/openai.js +50 -0
  348. package/dist/response/usage/codecs/openai.js.map +1 -0
  349. package/dist/response/usage/codecs/openrouter.cjs +68 -0
  350. package/dist/response/usage/codecs/openrouter.cjs.map +1 -0
  351. package/dist/response/usage/codecs/openrouter.js +67 -0
  352. package/dist/response/usage/codecs/openrouter.js.map +1 -0
  353. package/dist/response/usage/codecs/realtime.cjs +19 -0
  354. package/dist/response/usage/codecs/realtime.cjs.map +1 -0
  355. package/dist/response/usage/codecs/realtime.js +18 -0
  356. package/dist/response/usage/codecs/realtime.js.map +1 -0
  357. package/dist/response/usage/codecs/responses.cjs +21 -0
  358. package/dist/response/usage/codecs/responses.cjs.map +1 -0
  359. package/dist/response/usage/codecs/responses.js +20 -0
  360. package/dist/response/usage/codecs/responses.js.map +1 -0
  361. package/dist/response/usage/estimate.cjs +23 -0
  362. package/dist/response/usage/estimate.cjs.map +1 -0
  363. package/dist/response/usage/estimate.js +21 -0
  364. package/dist/response/usage/estimate.js.map +1 -0
  365. package/dist/response/usage/fields.cjs +72 -0
  366. package/dist/response/usage/fields.cjs.map +1 -0
  367. package/dist/response/usage/fields.js +70 -0
  368. package/dist/response/usage/fields.js.map +1 -0
  369. package/dist/response/usage/recording.cjs +52 -0
  370. package/dist/response/usage/recording.cjs.map +1 -0
  371. package/dist/response/usage/recording.js +52 -0
  372. package/dist/response/usage/recording.js.map +1 -0
  373. package/dist/responses.cjs +304 -196
  374. package/dist/responses.cjs.map +1 -1
  375. package/dist/responses.d.cts.map +1 -1
  376. package/dist/responses.d.ts.map +1 -1
  377. package/dist/responses.js +303 -195
  378. package/dist/responses.js.map +1 -1
  379. package/dist/route-registry.cjs +45 -0
  380. package/dist/route-registry.cjs.map +1 -1
  381. package/dist/route-registry.d.cts.map +1 -1
  382. package/dist/route-registry.d.ts.map +1 -1
  383. package/dist/route-registry.js +41 -1
  384. package/dist/route-registry.js.map +1 -1
  385. package/dist/router.cjs +24 -4
  386. package/dist/router.cjs.map +1 -1
  387. package/dist/router.d.cts +7 -1
  388. package/dist/router.d.cts.map +1 -1
  389. package/dist/router.d.ts +7 -1
  390. package/dist/router.d.ts.map +1 -1
  391. package/dist/router.js +24 -5
  392. package/dist/router.js.map +1 -1
  393. package/dist/search.cjs +13 -11
  394. package/dist/search.cjs.map +1 -1
  395. package/dist/search.js +12 -10
  396. package/dist/search.js.map +1 -1
  397. package/dist/server.cjs +293 -248
  398. package/dist/server.cjs.map +1 -1
  399. package/dist/server.d.cts.map +1 -1
  400. package/dist/server.d.ts.map +1 -1
  401. package/dist/server.js +294 -249
  402. package/dist/server.js.map +1 -1
  403. package/dist/speech.cjs +20 -18
  404. package/dist/speech.cjs.map +1 -1
  405. package/dist/speech.d.cts.map +1 -1
  406. package/dist/speech.d.ts.map +1 -1
  407. package/dist/speech.js +19 -17
  408. package/dist/speech.js.map +1 -1
  409. package/dist/sse-writer.cjs +56 -30
  410. package/dist/sse-writer.cjs.map +1 -1
  411. package/dist/sse-writer.d.cts +0 -1
  412. package/dist/sse-writer.d.cts.map +1 -1
  413. package/dist/sse-writer.d.ts +0 -1
  414. package/dist/sse-writer.d.ts.map +1 -1
  415. package/dist/sse-writer.js +55 -31
  416. package/dist/sse-writer.js.map +1 -1
  417. package/dist/stream-collapse.cjs +118 -11
  418. package/dist/stream-collapse.cjs.map +1 -1
  419. package/dist/stream-collapse.d.cts +10 -9
  420. package/dist/stream-collapse.d.cts.map +1 -1
  421. package/dist/stream-collapse.d.ts +10 -9
  422. package/dist/stream-collapse.d.ts.map +1 -1
  423. package/dist/stream-collapse.js +118 -11
  424. package/dist/stream-collapse.js.map +1 -1
  425. package/dist/transcription.cjs +31 -43
  426. package/dist/transcription.cjs.map +1 -1
  427. package/dist/transcription.d.cts.map +1 -1
  428. package/dist/transcription.d.ts.map +1 -1
  429. package/dist/transcription.js +31 -43
  430. package/dist/transcription.js.map +1 -1
  431. package/dist/types.cjs.map +1 -1
  432. package/dist/types.d.cts +231 -9
  433. package/dist/types.d.cts.map +1 -1
  434. package/dist/types.d.ts +231 -9
  435. package/dist/types.d.ts.map +1 -1
  436. package/dist/types.js.map +1 -1
  437. package/dist/vector-mock.cjs +3 -8
  438. package/dist/vector-mock.cjs.map +1 -1
  439. package/dist/vector-mock.d.cts.map +1 -1
  440. package/dist/vector-mock.d.ts.map +1 -1
  441. package/dist/vector-mock.js +3 -8
  442. package/dist/vector-mock.js.map +1 -1
  443. package/dist/vector-stores.cjs +2 -4
  444. package/dist/vector-stores.cjs.map +1 -1
  445. package/dist/vector-stores.d.cts.map +1 -1
  446. package/dist/vector-stores.d.ts.map +1 -1
  447. package/dist/vector-stores.js +2 -4
  448. package/dist/vector-stores.js.map +1 -1
  449. package/dist/veo-video.cjs +16 -14
  450. package/dist/veo-video.cjs.map +1 -1
  451. package/dist/veo-video.js +10 -8
  452. package/dist/veo-video.js.map +1 -1
  453. package/dist/video.cjs +21 -19
  454. package/dist/video.cjs.map +1 -1
  455. package/dist/video.d.cts.map +1 -1
  456. package/dist/video.d.ts.map +1 -1
  457. package/dist/video.js +20 -18
  458. package/dist/video.js.map +1 -1
  459. package/dist/ws-framing.cjs +12 -6
  460. package/dist/ws-framing.cjs.map +1 -1
  461. package/dist/ws-framing.d.cts +2 -0
  462. package/dist/ws-framing.d.cts.map +1 -1
  463. package/dist/ws-framing.d.ts +2 -0
  464. package/dist/ws-framing.d.ts.map +1 -1
  465. package/dist/ws-framing.js +12 -6
  466. package/dist/ws-framing.js.map +1 -1
  467. package/dist/ws-gemini-live.cjs +131 -96
  468. package/dist/ws-gemini-live.cjs.map +1 -1
  469. package/dist/ws-gemini-live.d.cts +0 -1
  470. package/dist/ws-gemini-live.d.cts.map +1 -1
  471. package/dist/ws-gemini-live.d.ts +0 -1
  472. package/dist/ws-gemini-live.d.ts.map +1 -1
  473. package/dist/ws-gemini-live.js +130 -95
  474. package/dist/ws-gemini-live.js.map +1 -1
  475. package/dist/ws-live.cjs +6 -5
  476. package/dist/ws-live.cjs.map +1 -1
  477. package/dist/ws-live.js +5 -4
  478. package/dist/ws-live.js.map +1 -1
  479. package/dist/ws-realtime.cjs +108 -124
  480. package/dist/ws-realtime.cjs.map +1 -1
  481. package/dist/ws-realtime.d.cts.map +1 -1
  482. package/dist/ws-realtime.d.ts.map +1 -1
  483. package/dist/ws-realtime.js +105 -121
  484. package/dist/ws-realtime.js.map +1 -1
  485. package/dist/ws-responses.cjs +80 -59
  486. package/dist/ws-responses.cjs.map +1 -1
  487. package/dist/ws-responses.d.cts.map +1 -1
  488. package/dist/ws-responses.d.ts.map +1 -1
  489. package/dist/ws-responses.js +79 -58
  490. package/dist/ws-responses.js.map +1 -1
  491. package/package.json +4 -1
  492. package/skills/write-fixtures/SKILL.md +57 -16
@@ -1,17 +1,20 @@
1
1
  const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
2
+ const require_errors = require('./response/errors.cjs');
3
+ const require_policy = require('./response/policy.cjs');
2
4
  const require_helpers = require('./helpers.cjs');
3
5
  const require_sse_writer = require('./sse-writer.cjs');
4
6
  const require_chaos = require('./chaos.cjs');
5
7
  const require_router = require('./router.cjs');
6
8
  const require_url = require('./url.cjs');
7
9
  const require_recorder = require('./recorder.cjs');
10
+ const require_collect = require('./response/catalog/collect.cjs');
11
+ const require_render = require('./response/catalog/render.cjs');
8
12
  const require_fal = require('./fal.cjs');
9
13
  const require_video_proxy_shared = require('./video-proxy-shared.cjs');
10
14
  let node_crypto = require("node:crypto");
11
15
  node_crypto = require_runtime.__toESM(node_crypto);
12
16
 
13
17
  //#region src/openrouter-video.ts
14
- const DEFAULT_OPENROUTER_VIDEO_MODEL = "bytedance/seedance-2.0";
15
18
  /**
16
19
  * Video models OpenRouter has REMOVED (deprecation policy: a removed surface
17
20
  * never mocks success — it serves the rejection the real API serves now).
@@ -22,7 +25,6 @@ const DEFAULT_OPENROUTER_VIDEO_MODEL = "bytedance/seedance-2.0";
22
25
  * `{"error":{"message":"Model openai/sora-2 does not exist","code":400}}` —
23
26
  * the same rejection OpenRouter gives any unknown model id.
24
27
  */
25
- const OPENROUTER_VIDEO_SUNSET_MODELS = new Set(["openai/sora-2"]);
26
28
  const OPENROUTER_VIDEO_MAX_ENTRIES = 1e4;
27
29
  const OPENROUTER_VIDEO_TTL_MS = 36e5;
28
30
  /**
@@ -228,7 +230,7 @@ async function handleOpenRouterVideoStatus(req, res, jobId, fixtures, journal, d
228
230
  return;
229
231
  }
230
232
  if (job.kind === "record") {
231
- if (require_helpers.resolveStrictMode(defaults.strict, req.headers)) {
233
+ if (!require_policy.resolveRequestDecisions(defaults.strict, req.headers).upstream) {
232
234
  defaults.logger.error(`STRICT: video job ${jobId} is proxied live upstream (record mode) — refusing the upstream poll`);
233
235
  journal.add({
234
236
  method,
@@ -238,14 +240,14 @@ async function handleOpenRouterVideoStatus(req, res, jobId, fixtures, journal, d
238
240
  response: {
239
241
  status: 503,
240
242
  fixture: null,
241
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
243
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
242
244
  }
243
245
  });
244
- require_sse_writer.writeErrorResponse(res, 503, JSON.stringify({ error: {
246
+ require_sse_writer.writeErrorResponse(res, 503, require_errors.renderError("openai", "strict-miss", {
245
247
  message: `Strict mode: video job ${jobId} is proxied live upstream (record mode) — nothing reaches an upstream under strict mode`,
246
248
  type: "invalid_request_error",
247
249
  code: "no_fixture_match"
248
- } }));
250
+ }).body);
249
251
  return;
250
252
  }
251
253
  await proxyOpenRouterVideoRecordPoll({
@@ -386,7 +388,7 @@ async function handleOpenRouterVideoContent(req, res, jobId, journal, defaults,
386
388
  const queryIdx = path.indexOf("?");
387
389
  const indexParam = queryIdx === -1 ? null : new URLSearchParams(path.slice(queryIdx + 1)).get("index");
388
390
  if (job.kind === "record") {
389
- if (require_helpers.resolveStrictMode(defaults.strict, req.headers)) {
391
+ if (!require_policy.resolveRequestDecisions(defaults.strict, req.headers).upstream) {
390
392
  defaults.logger.error(`STRICT: video job ${jobId} content is proxied live upstream (record mode) — refusing the upstream fetch`);
391
393
  journal.add({
392
394
  method,
@@ -396,14 +398,14 @@ async function handleOpenRouterVideoContent(req, res, jobId, journal, defaults,
396
398
  response: {
397
399
  status: 503,
398
400
  fixture: null,
399
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
401
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
400
402
  }
401
403
  });
402
- require_sse_writer.writeErrorResponse(res, 503, JSON.stringify({ error: {
404
+ require_sse_writer.writeErrorResponse(res, 503, require_errors.renderError("openai", "strict-miss", {
403
405
  message: `Strict mode: video job ${jobId} is proxied live upstream (record mode) — nothing reaches an upstream under strict mode`,
404
406
  type: "invalid_request_error",
405
407
  code: "no_fixture_match"
406
- } }));
408
+ }).body);
407
409
  return;
408
410
  }
409
411
  await proxyOpenRouterVideoRecordContent({
@@ -486,13 +488,13 @@ async function proxyOpenRouterVideoRecordContent(args) {
486
488
  status: 502,
487
489
  fixture: null,
488
490
  source: "proxy",
489
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
491
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
490
492
  }
491
493
  });
492
- require_sse_writer.writeErrorResponse(res, 502, JSON.stringify({ error: {
494
+ require_sse_writer.writeErrorResponse(res, 502, require_errors.renderError("openai", "transport-failure", {
493
495
  message: `Proxy to upstream failed: ${msg}`,
494
496
  type: "proxy_error"
495
- } }));
497
+ }).body);
496
498
  };
497
499
  const record = defaults.record;
498
500
  if (!record) {
@@ -573,7 +575,7 @@ async function proxyOpenRouterVideoRecordContent(args) {
573
575
  status: contentRes.status,
574
576
  fixture: null,
575
577
  source: "proxy",
576
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
578
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
577
579
  }
578
580
  });
579
581
  res.writeHead(contentRes.status, { "Content-Type": contentRes.headers.get("content-type") ?? "application/json" });
@@ -602,7 +604,7 @@ async function proxyOpenRouterVideoRecordContent(args) {
602
604
  status: 200,
603
605
  fixture: null,
604
606
  source: "proxy",
605
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
607
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
606
608
  }
607
609
  });
608
610
  if (jobs.get(key) === job) jobs.set(key, job);
@@ -660,25 +662,6 @@ async function proxyOpenRouterVideoRecordContent(args) {
660
662
  reader.cancel().catch(() => {});
661
663
  }
662
664
  }
663
- const DEFAULT_OPENROUTER_VIDEO_MODELS = [DEFAULT_OPENROUTER_VIDEO_MODEL];
664
- function modelEntry(id) {
665
- return {
666
- id,
667
- name: id,
668
- supported_durations: [4, 8],
669
- supported_resolutions: ["720p", "1080p"],
670
- supported_aspect_ratios: [
671
- "16:9",
672
- "9:16",
673
- "1:1"
674
- ],
675
- supported_frame_images: [],
676
- supported_sizes: [],
677
- generate_audio: false,
678
- seed: true,
679
- pricing_skus: []
680
- };
681
- }
682
665
  /**
683
666
  * Synthesizes the OpenRouter video model listing from loaded fixtures —
684
667
  * video-endpoint fixtures with a string `match.model` (mirrors the Ollama
@@ -706,7 +689,7 @@ async function handleOpenRouterVideoModels(req, res, fixtures, journal, defaults
706
689
  const record = defaults.record;
707
690
  const upstreamBase = record?.providers.openrouter;
708
691
  let proxyAttemptFailed = false;
709
- if (upstreamBase && !require_helpers.resolveStrictMode(defaults.strict, req.headers)) {
692
+ if (upstreamBase && require_policy.resolveRequestDecisions(defaults.strict, req.headers).upstream) {
710
693
  let relay;
711
694
  try {
712
695
  const target = require_url.resolveUpstreamUrl(upstreamBase, "/api/v1/videos/models");
@@ -738,7 +721,7 @@ async function handleOpenRouterVideoModels(req, res, fixtures, journal, defaults
738
721
  status: 200,
739
722
  fixture: null,
740
723
  source: "proxy",
741
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
724
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
742
725
  }
743
726
  });
744
727
  res.writeHead(200, { "Content-Type": relay.contentType });
@@ -746,14 +729,9 @@ async function handleOpenRouterVideoModels(req, res, fixtures, journal, defaults
746
729
  return;
747
730
  }
748
731
  }
749
- const modelIds = /* @__PURE__ */ new Set();
750
- let sawVideoFixture = false;
751
- for (const f of fixtures) if (f.match.endpoint === "video") {
752
- sawVideoFixture = true;
753
- if (f.match.model && typeof f.match.model === "string" && !OPENROUTER_VIDEO_SUNSET_MODELS.has(f.match.model)) modelIds.add(f.match.model);
754
- }
755
- if (modelIds.size === 0 && sawVideoFixture) defaults.logger.warn("No video fixture contributes a string model — serving the default video model set");
756
- const ids = modelIds.size > 0 ? [...modelIds] : DEFAULT_OPENROUTER_VIDEO_MODELS;
732
+ const collection = require_collect.collect(fixtures, "video-active");
733
+ if (collection.ids.length === 0 && collection.diagnostics.sawVideoFixture) defaults.logger.warn("No video fixture contributes a string model — serving the default video model set");
734
+ const body = require_render.renderOpenRouterVideoModels(collection.ids);
757
735
  if (res.destroyed || res.writableEnded) return;
758
736
  journal.add({
759
737
  method,
@@ -764,11 +742,11 @@ async function handleOpenRouterVideoModels(req, res, fixtures, journal, defaults
764
742
  status: 200,
765
743
  fixture: null,
766
744
  ...proxyAttemptFailed ? { source: "internal" } : {},
767
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
745
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
768
746
  }
769
747
  });
770
748
  res.writeHead(200, { "Content-Type": "application/json" });
771
- res.end(JSON.stringify({ data: ids.map((id) => modelEntry(id)) }));
749
+ res.end(JSON.stringify(body));
772
750
  }
773
751
  async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, defaults, setCorsHeaders, jobs) {
774
752
  setCorsHeaders(res);
@@ -789,11 +767,11 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
789
767
  fixture: null
790
768
  }
791
769
  });
792
- require_sse_writer.writeErrorResponse(res, 400, JSON.stringify({ error: {
770
+ require_sse_writer.writeErrorResponse(res, 400, require_errors.renderError("openai", "validation", {
793
771
  message: `Malformed JSON: ${detail}`,
794
772
  type: "invalid_request_error",
795
773
  code: "invalid_json"
796
- } }));
774
+ }).body);
797
775
  return;
798
776
  }
799
777
  if (videoReq === null || typeof videoReq !== "object" || Array.isArray(videoReq)) {
@@ -807,10 +785,10 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
807
785
  fixture: null
808
786
  }
809
787
  });
810
- require_sse_writer.writeErrorResponse(res, 400, JSON.stringify({ error: {
788
+ require_sse_writer.writeErrorResponse(res, 400, require_errors.renderError("openai", "validation", {
811
789
  message: "Request body must be a JSON object",
812
790
  type: "invalid_request_error"
813
- } }));
791
+ }).body);
814
792
  return;
815
793
  }
816
794
  const parsedBody = validationJournalBody(videoReq);
@@ -825,11 +803,10 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
825
803
  fixture: null
826
804
  }
827
805
  });
828
- const message = videoReq.prompt === void 0 ? "Missing required parameter: 'prompt'" : "Invalid type for parameter: 'prompt' must be a non-empty string";
829
- require_sse_writer.writeErrorResponse(res, 400, JSON.stringify({ error: {
830
- message,
806
+ require_sse_writer.writeErrorResponse(res, 400, require_errors.renderError("openai", "validation", {
807
+ message: videoReq.prompt === void 0 ? "Missing required parameter: 'prompt'" : "Invalid type for parameter: 'prompt' must be a non-empty string",
831
808
  type: "invalid_request_error"
832
- } }));
809
+ }).body);
833
810
  return;
834
811
  }
835
812
  if (videoReq.model !== void 0 && (typeof videoReq.model !== "string" || !videoReq.model)) {
@@ -843,13 +820,13 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
843
820
  fixture: null
844
821
  }
845
822
  });
846
- require_sse_writer.writeErrorResponse(res, 400, JSON.stringify({ error: {
823
+ require_sse_writer.writeErrorResponse(res, 400, require_errors.renderError("openai", "validation", {
847
824
  message: "Invalid type for parameter: 'model' must be a non-empty string",
848
825
  type: "invalid_request_error"
849
- } }));
826
+ }).body);
850
827
  return;
851
828
  }
852
- if (videoReq.model !== void 0 && OPENROUTER_VIDEO_SUNSET_MODELS.has(videoReq.model)) {
829
+ if (videoReq.model !== void 0 && require_collect.OPENROUTER_VIDEO_SUNSET_MODELS.has(videoReq.model)) {
853
830
  journal.add({
854
831
  method,
855
832
  path,
@@ -867,7 +844,7 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
867
844
  return;
868
845
  }
869
846
  const syntheticReq = {
870
- model: videoReq.model ?? DEFAULT_OPENROUTER_VIDEO_MODEL,
847
+ model: videoReq.model ?? require_render.DEFAULT_OPENROUTER_VIDEO_MODEL,
871
848
  messages: [{
872
849
  role: "user",
873
850
  content: videoReq.prompt
@@ -889,9 +866,9 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
889
866
  path,
890
867
  headers: require_helpers.flattenHeaders(req.headers),
891
868
  body: syntheticReq
892
- }, fixture ? "fixture" : require_helpers.resolveStrictMode(defaults.strict, req.headers) ? "internal" : defaults.record?.providers.openrouter ? "proxy" : "internal", defaults.registry, defaults.logger)) return;
869
+ }, fixture ? "fixture" : require_policy.resolveRequestDecisions(defaults.strict, req.headers).fixtureMiss ? "internal" : defaults.record?.providers.openrouter ? "proxy" : "internal", defaults.registry, defaults.logger)) return;
893
870
  if (!fixture) {
894
- if (require_helpers.resolveStrictMode(defaults.strict, req.headers)) {
871
+ if (require_policy.resolveRequestDecisions(defaults.strict, req.headers).fixtureMiss) {
895
872
  const strictMessage = require_helpers.strictNoMatchMessage(skippedBySequenceOrTurn);
896
873
  defaults.logger.error(require_helpers.strictNoMatchLogLine(method, path, skippedBySequenceOrTurn));
897
874
  journal.add({
@@ -902,14 +879,14 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
902
879
  response: {
903
880
  status: 503,
904
881
  fixture: null,
905
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
882
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
906
883
  }
907
884
  });
908
- require_sse_writer.writeErrorResponse(res, 503, JSON.stringify({ error: {
885
+ require_sse_writer.writeErrorResponse(res, 503, require_errors.renderError("openai", "strict-miss", {
909
886
  message: strictMessage,
910
887
  type: "invalid_request_error",
911
888
  code: "no_fixture_match"
912
- } }));
889
+ }).body);
913
890
  return;
914
891
  }
915
892
  if (defaults.record) {
@@ -934,7 +911,7 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
934
911
  response: {
935
912
  status: 404,
936
913
  fixture: null,
937
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
914
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
938
915
  }
939
916
  });
940
917
  require_sse_writer.writeErrorResponse(res, 404, JSON.stringify({ error: {
@@ -973,10 +950,10 @@ async function handleOpenRouterVideoCreate(req, res, raw, fixtures, journal, def
973
950
  fixture
974
951
  }
975
952
  });
976
- require_sse_writer.writeErrorResponse(res, 500, JSON.stringify({ error: {
953
+ require_sse_writer.writeErrorResponse(res, 500, require_errors.renderError("openai", "unknown-response", {
977
954
  message: "Fixture response is not a video type",
978
955
  type: "server_error"
979
- } }));
956
+ }).body);
980
957
  return;
981
958
  }
982
959
  if (res.destroyed || res.writableEnded) return;
@@ -1044,13 +1021,13 @@ async function proxyOpenRouterVideoSubmit(args) {
1044
1021
  status: 502,
1045
1022
  fixture: null,
1046
1023
  source: "proxy",
1047
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
1024
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
1048
1025
  }
1049
1026
  });
1050
- require_sse_writer.writeErrorResponse(res, 502, JSON.stringify({ error: {
1027
+ require_sse_writer.writeErrorResponse(res, 502, require_errors.renderError("openai", "transport-failure", {
1051
1028
  message: `Proxy to upstream failed: ${msg}`,
1052
1029
  type: "proxy_error"
1053
- } }));
1030
+ }).body);
1054
1031
  return "handled";
1055
1032
  };
1056
1033
  let submitUrl;
@@ -1093,7 +1070,7 @@ async function proxyOpenRouterVideoSubmit(args) {
1093
1070
  status: fetched.status,
1094
1071
  fixture: null,
1095
1072
  source: "proxy",
1096
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
1073
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
1097
1074
  }
1098
1075
  });
1099
1076
  res.writeHead(fetched.status, { "Content-Type": fetched.contentType ?? "application/json" });
@@ -1147,7 +1124,7 @@ async function proxyOpenRouterVideoSubmit(args) {
1147
1124
  status: 202,
1148
1125
  fixture: null,
1149
1126
  source: "proxy",
1150
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
1127
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
1151
1128
  }
1152
1129
  });
1153
1130
  res.writeHead(202, { "Content-Type": "application/json" });
@@ -1207,7 +1184,7 @@ async function proxyOpenRouterVideoRecordPoll(args) {
1207
1184
  status,
1208
1185
  fixture: null,
1209
1186
  source: "proxy",
1210
- ...require_helpers.strictOverrideField(defaults.strict, req.headers)
1187
+ ...require_policy.strictOverrideField(defaults.strict, req.headers)
1211
1188
  }
1212
1189
  });
1213
1190
  };
@@ -1215,10 +1192,10 @@ async function proxyOpenRouterVideoRecordPoll(args) {
1215
1192
  logger.error(`OpenRouter video poll proxy failed: ${msg}`);
1216
1193
  if (res.destroyed || res.writableEnded) return;
1217
1194
  journalProxy(502);
1218
- require_sse_writer.writeErrorResponse(res, 502, JSON.stringify({ error: {
1195
+ require_sse_writer.writeErrorResponse(res, 502, require_errors.renderError("openai", "transport-failure", {
1219
1196
  message: `Proxy to upstream failed: ${msg}`,
1220
1197
  type: "proxy_error"
1221
- } }));
1198
+ }).body);
1222
1199
  };
1223
1200
  const record = defaults.record;
1224
1201
  if (!record) {