@draht/ai 2026.10.20 → 2026.10.23

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 (269) hide show
  1. package/dist/api/anthropic-messages.d.ts.map +1 -1
  2. package/dist/api/anthropic-messages.js +155 -111
  3. package/dist/api/anthropic-messages.js.map +1 -1
  4. package/dist/api/azure-openai-config.d.ts +15 -0
  5. package/dist/api/azure-openai-config.d.ts.map +1 -0
  6. package/dist/api/azure-openai-config.js +76 -0
  7. package/dist/api/azure-openai-config.js.map +1 -0
  8. package/dist/api/azure-openai-responses.d.ts +3 -6
  9. package/dist/api/azure-openai-responses.d.ts.map +1 -1
  10. package/dist/api/azure-openai-responses.js +19 -83
  11. package/dist/api/azure-openai-responses.js.map +1 -1
  12. package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  13. package/dist/api/bedrock-converse-stream.js +86 -22
  14. package/dist/api/bedrock-converse-stream.js.map +1 -1
  15. package/dist/api/classifier-shared.d.ts +21 -0
  16. package/dist/api/classifier-shared.d.ts.map +1 -0
  17. package/dist/api/classifier-shared.js +99 -0
  18. package/dist/api/classifier-shared.js.map +1 -0
  19. package/dist/api/cloudflare-workers-ai-system-one.d.ts.map +1 -1
  20. package/dist/api/cloudflare-workers-ai-system-one.js +15 -9
  21. package/dist/api/cloudflare-workers-ai-system-one.js.map +1 -1
  22. package/dist/api/google-generative-ai.js +4 -4
  23. package/dist/api/google-generative-ai.js.map +1 -1
  24. package/dist/api/google-shared.d.ts.map +1 -1
  25. package/dist/api/google-shared.js +3 -1
  26. package/dist/api/google-shared.js.map +1 -1
  27. package/dist/api/google-vertex.d.ts.map +1 -1
  28. package/dist/api/google-vertex.js +9 -9
  29. package/dist/api/google-vertex.js.map +1 -1
  30. package/dist/api/lazy.d.ts +7 -2
  31. package/dist/api/lazy.d.ts.map +1 -1
  32. package/dist/api/lazy.js +28 -8
  33. package/dist/api/lazy.js.map +1 -1
  34. package/dist/api/llama-cpp-classify.d.ts.map +1 -1
  35. package/dist/api/llama-cpp-classify.js +4 -1
  36. package/dist/api/llama-cpp-classify.js.map +1 -1
  37. package/dist/api/mistral-conversations.d.ts.map +1 -1
  38. package/dist/api/mistral-conversations.js +38 -18
  39. package/dist/api/mistral-conversations.js.map +1 -1
  40. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  41. package/dist/api/openai-codex-responses.js +21 -13
  42. package/dist/api/openai-codex-responses.js.map +1 -1
  43. package/dist/api/openai-completions.d.ts.map +1 -1
  44. package/dist/api/openai-completions.js +49 -38
  45. package/dist/api/openai-completions.js.map +1 -1
  46. package/dist/api/openai-decisions.d.ts +4 -0
  47. package/dist/api/openai-decisions.d.ts.map +1 -0
  48. package/dist/api/openai-decisions.js +162 -0
  49. package/dist/api/openai-decisions.js.map +1 -0
  50. package/dist/api/openai-decisions.lazy.d.ts +3 -0
  51. package/dist/api/openai-decisions.lazy.d.ts.map +1 -0
  52. package/dist/api/openai-decisions.lazy.js +4 -0
  53. package/dist/api/openai-decisions.lazy.js.map +1 -0
  54. package/dist/api/openai-responses-shared.d.ts +26 -0
  55. package/dist/api/openai-responses-shared.d.ts.map +1 -1
  56. package/dist/api/openai-responses-shared.js +82 -16
  57. package/dist/api/openai-responses-shared.js.map +1 -1
  58. package/dist/api/openai-responses.d.ts.map +1 -1
  59. package/dist/api/openai-responses.js +47 -18
  60. package/dist/api/openai-responses.js.map +1 -1
  61. package/dist/api/openrouter-images.d.ts.map +1 -1
  62. package/dist/api/openrouter-images.js +4 -3
  63. package/dist/api/openrouter-images.js.map +1 -1
  64. package/dist/api/pi-messages.d.ts.map +1 -1
  65. package/dist/api/pi-messages.js +3 -3
  66. package/dist/api/pi-messages.js.map +1 -1
  67. package/dist/api/simple-options.d.ts +2 -1
  68. package/dist/api/simple-options.d.ts.map +1 -1
  69. package/dist/api/simple-options.js +12 -2
  70. package/dist/api/simple-options.js.map +1 -1
  71. package/dist/api/system-one-shared.d.ts +0 -1
  72. package/dist/api/system-one-shared.d.ts.map +1 -1
  73. package/dist/api/system-one-shared.js +5 -89
  74. package/dist/api/system-one-shared.js.map +1 -1
  75. package/dist/api/transform-messages.d.ts +16 -1
  76. package/dist/api/transform-messages.d.ts.map +1 -1
  77. package/dist/api/transform-messages.js +28 -15
  78. package/dist/api/transform-messages.js.map +1 -1
  79. package/dist/api/typesafe-system-one.d.ts.map +1 -1
  80. package/dist/api/typesafe-system-one.js +2 -1
  81. package/dist/api/typesafe-system-one.js.map +1 -1
  82. package/dist/auth/oauth/anthropic.d.ts.map +1 -1
  83. package/dist/auth/oauth/anthropic.js +65 -7
  84. package/dist/auth/oauth/anthropic.js.map +1 -1
  85. package/dist/auth/oauth/load.d.ts +2 -0
  86. package/dist/auth/oauth/load.d.ts.map +1 -1
  87. package/dist/auth/oauth/load.js +5 -0
  88. package/dist/auth/oauth/load.js.map +1 -1
  89. package/dist/auth/oauth/openai-chatgpt.d.ts.map +1 -1
  90. package/dist/auth/oauth/openai-chatgpt.js +11 -14
  91. package/dist/auth/oauth/openai-chatgpt.js.map +1 -1
  92. package/dist/auth/oauth/openai-codex.d.ts.map +1 -1
  93. package/dist/auth/oauth/openai-codex.js +7 -5
  94. package/dist/auth/oauth/openai-codex.js.map +1 -1
  95. package/dist/auth/oauth/opencode-go.d.ts +3 -12
  96. package/dist/auth/oauth/opencode-go.d.ts.map +1 -1
  97. package/dist/auth/oauth/opencode-go.js +229 -34
  98. package/dist/auth/oauth/opencode-go.js.map +1 -1
  99. package/dist/auth/resolve.d.ts +16 -1
  100. package/dist/auth/resolve.d.ts.map +1 -1
  101. package/dist/auth/resolve.js +51 -27
  102. package/dist/auth/resolve.js.map +1 -1
  103. package/dist/auth/types.d.ts +5 -0
  104. package/dist/auth/types.d.ts.map +1 -1
  105. package/dist/auth/types.js.map +1 -1
  106. package/dist/bun-oauth.d.ts.map +1 -1
  107. package/dist/bun-oauth.js +2 -1
  108. package/dist/bun-oauth.js.map +1 -1
  109. package/dist/env-api-keys.js +1 -1
  110. package/dist/env-api-keys.js.map +1 -1
  111. package/dist/index.d.ts +2 -1
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +2 -1
  114. package/dist/index.js.map +1 -1
  115. package/dist/models.d.ts +9 -0
  116. package/dist/models.d.ts.map +1 -1
  117. package/dist/models.generated.d.ts +4 -4
  118. package/dist/models.generated.d.ts.map +1 -1
  119. package/dist/models.generated.js +4 -4
  120. package/dist/models.generated.js.map +1 -1
  121. package/dist/models.js +26 -14
  122. package/dist/models.js.map +1 -1
  123. package/dist/providers/all.js +2 -2
  124. package/dist/providers/all.js.map +1 -1
  125. package/dist/providers/azure.d.ts +3 -0
  126. package/dist/providers/azure.d.ts.map +1 -0
  127. package/dist/providers/azure.js +46 -0
  128. package/dist/providers/azure.js.map +1 -0
  129. package/dist/providers/azure.models.d.ts +6 -0
  130. package/dist/providers/azure.models.d.ts.map +1 -0
  131. package/dist/providers/azure.models.js +8 -0
  132. package/dist/providers/azure.models.js.map +1 -0
  133. package/dist/providers/compat-schema.d.ts +491 -0
  134. package/dist/providers/compat-schema.d.ts.map +1 -0
  135. package/dist/providers/compat-schema.js +386 -0
  136. package/dist/providers/compat-schema.js.map +1 -0
  137. package/dist/providers/data/.manifest.json +1 -1
  138. package/dist/providers/data/amazon-bedrock.json +1 -1
  139. package/dist/providers/data/anthropic.json +1 -1
  140. package/dist/providers/data/azure.json +1 -0
  141. package/dist/providers/data/baseten.json +1 -1
  142. package/dist/providers/data/cerebras.json +1 -1
  143. package/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  144. package/dist/providers/data/cloudflare-workers-ai.json +1 -1
  145. package/dist/providers/data/fireworks.json +1 -1
  146. package/dist/providers/data/github-copilot.json +1 -1
  147. package/dist/providers/data/google-vertex.json +1 -1
  148. package/dist/providers/data/google.json +1 -1
  149. package/dist/providers/data/groq.json +1 -1
  150. package/dist/providers/data/huggingface.json +1 -1
  151. package/dist/providers/data/kimi-coding.json +1 -1
  152. package/dist/providers/data/meta.json +1 -1
  153. package/dist/providers/data/minimax-cn.json +1 -1
  154. package/dist/providers/data/minimax.json +1 -1
  155. package/dist/providers/data/mistral.json +1 -1
  156. package/dist/providers/data/moonshotai-cn.json +1 -1
  157. package/dist/providers/data/nvidia.json +1 -1
  158. package/dist/providers/data/openai-codex.json +1 -1
  159. package/dist/providers/data/openai.json +1 -1
  160. package/dist/providers/data/opencode-go.json +1 -1
  161. package/dist/providers/data/opencode.json +1 -1
  162. package/dist/providers/data/openrouter.json +1 -1
  163. package/dist/providers/data/qwen-token-plan-cn.json +1 -1
  164. package/dist/providers/data/qwen-token-plan.json +1 -1
  165. package/dist/providers/data/radius.json +1 -1
  166. package/dist/providers/data/together.json +1 -1
  167. package/dist/providers/data/vercel-ai-gateway.json +1 -1
  168. package/dist/providers/data/xai.json +1 -1
  169. package/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
  170. package/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
  171. package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
  172. package/dist/providers/data/xiaomi.json +1 -1
  173. package/dist/providers/data/zai-coding-cn.json +1 -1
  174. package/dist/providers/faux.d.ts.map +1 -1
  175. package/dist/providers/faux.js +25 -8
  176. package/dist/providers/faux.js.map +1 -1
  177. package/dist/providers/kimi-coding.d.ts +1 -1
  178. package/dist/providers/kimi-coding.js +3 -3
  179. package/dist/providers/kimi-coding.js.map +1 -1
  180. package/dist/providers/model-schema.d.ts +91 -0
  181. package/dist/providers/model-schema.d.ts.map +1 -0
  182. package/dist/providers/model-schema.js +57 -0
  183. package/dist/providers/model-schema.js.map +1 -0
  184. package/dist/providers/openai.d.ts.map +1 -1
  185. package/dist/providers/openai.js +12 -3
  186. package/dist/providers/openai.js.map +1 -1
  187. package/dist/providers/opencode-go.d.ts +3 -1
  188. package/dist/providers/opencode-go.d.ts.map +1 -1
  189. package/dist/providers/opencode-go.js +4 -3
  190. package/dist/providers/opencode-go.js.map +1 -1
  191. package/dist/providers/opencode.d.ts.map +1 -1
  192. package/dist/providers/opencode.js +10 -2
  193. package/dist/providers/opencode.js.map +1 -1
  194. package/dist/providers/openrouter-api.d.ts +40 -0
  195. package/dist/providers/openrouter-api.d.ts.map +1 -0
  196. package/dist/providers/openrouter-api.js +41 -0
  197. package/dist/providers/openrouter-api.js.map +1 -0
  198. package/dist/providers/openrouter.d.ts +11 -1
  199. package/dist/providers/openrouter.d.ts.map +1 -1
  200. package/dist/providers/openrouter.js +52 -1
  201. package/dist/providers/openrouter.js.map +1 -1
  202. package/dist/providers/radius.d.ts.map +1 -1
  203. package/dist/providers/radius.js +4 -12
  204. package/dist/providers/radius.js.map +1 -1
  205. package/dist/telemetry.d.ts +288 -0
  206. package/dist/telemetry.d.ts.map +1 -0
  207. package/dist/telemetry.js +191 -0
  208. package/dist/telemetry.js.map +1 -0
  209. package/dist/types.d.ts +42 -310
  210. package/dist/types.d.ts.map +1 -1
  211. package/dist/types.js.map +1 -1
  212. package/dist/utils/estimate.js +1 -1
  213. package/dist/utils/estimate.js.map +1 -1
  214. package/dist/utils/event-stream.d.ts +10 -1
  215. package/dist/utils/event-stream.d.ts.map +1 -1
  216. package/dist/utils/event-stream.js +25 -0
  217. package/dist/utils/event-stream.js.map +1 -1
  218. package/dist/utils/identity.d.ts +65 -0
  219. package/dist/utils/identity.d.ts.map +1 -0
  220. package/dist/utils/identity.js +145 -0
  221. package/dist/utils/identity.js.map +1 -0
  222. package/dist/utils/json-parse.d.ts +10 -0
  223. package/dist/utils/json-parse.d.ts.map +1 -1
  224. package/dist/utils/json-parse.js +26 -1
  225. package/dist/utils/json-parse.js.map +1 -1
  226. package/dist/utils/model-operations.d.ts +3 -1
  227. package/dist/utils/model-operations.d.ts.map +1 -1
  228. package/dist/utils/model-operations.js +6 -0
  229. package/dist/utils/model-operations.js.map +1 -1
  230. package/dist/utils/overflow.d.ts +1 -0
  231. package/dist/utils/overflow.d.ts.map +1 -1
  232. package/dist/utils/overflow.js +6 -1
  233. package/dist/utils/overflow.js.map +1 -1
  234. package/dist/utils/provider-retry.d.ts +2 -0
  235. package/dist/utils/provider-retry.d.ts.map +1 -1
  236. package/dist/utils/provider-retry.js +2 -0
  237. package/dist/utils/provider-retry.js.map +1 -1
  238. package/dist/utils/retry.d.ts.map +1 -1
  239. package/dist/utils/retry.js +30 -10
  240. package/dist/utils/retry.js.map +1 -1
  241. package/dist/utils/transcript.d.ts +27 -10
  242. package/dist/utils/transcript.d.ts.map +1 -1
  243. package/dist/utils/transcript.js +34 -20
  244. package/dist/utils/transcript.js.map +1 -1
  245. package/dist/utils/validation.d.ts.map +1 -1
  246. package/dist/utils/validation.js +3 -0
  247. package/dist/utils/validation.js.map +1 -1
  248. package/dist/utils/version.d.ts +2 -0
  249. package/dist/utils/version.d.ts.map +1 -0
  250. package/dist/utils/version.js +5 -0
  251. package/dist/utils/version.js.map +1 -0
  252. package/package.json +5 -5
  253. package/dist/providers/azure-openai-responses.d.ts +0 -3
  254. package/dist/providers/azure-openai-responses.d.ts.map +0 -1
  255. package/dist/providers/azure-openai-responses.js +0 -14
  256. package/dist/providers/azure-openai-responses.js.map +0 -1
  257. package/dist/providers/azure-openai-responses.models.d.ts +0 -6
  258. package/dist/providers/azure-openai-responses.models.d.ts.map +0 -1
  259. package/dist/providers/azure-openai-responses.models.js +0 -8
  260. package/dist/providers/azure-openai-responses.models.js.map +0 -1
  261. package/dist/providers/data/azure-openai-responses.json +0 -1
  262. package/dist/utils/assistant-message-frame.d.ts +0 -77
  263. package/dist/utils/assistant-message-frame.d.ts.map +0 -1
  264. package/dist/utils/assistant-message-frame.js +0 -425
  265. package/dist/utils/assistant-message-frame.js.map +0 -1
  266. package/dist/utils/draht-user-agent.d.ts +0 -2
  267. package/dist/utils/draht-user-agent.d.ts.map +0 -1
  268. package/dist/utils/draht-user-agent.js +0 -12
  269. package/dist/utils/draht-user-agent.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ import { type Provider } from "../models.ts";
2
+ export declare function azureProvider(): Provider<"azure-openai-responses" | "openai-completions">;
3
+ //# sourceMappingURL=azure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.d.ts","sourceRoot":"","sources":["../../src/providers/azure.ts"],"names":[],"mappings":"AAKA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAsC7D,wBAAgB,aAAa,IAAI,QAAQ,CAAC,wBAAwB,GAAG,oBAAoB,CAAC,CAWzF"}
@@ -0,0 +1,46 @@
1
+ import { resolveAzureBaseUrl, resolveDeploymentName } from "../api/azure-openai-config.js";
2
+ import { azureOpenAIResponsesApi } from "../api/azure-openai-responses.lazy.js";
3
+ import { lazyStream } from "../api/lazy.js";
4
+ import { openAICompletionsApi } from "../api/openai-completions.lazy.js";
5
+ import { envApiKeyAuth } from "../auth/helpers.js";
6
+ import { createProvider } from "../models.js";
7
+ import { AZURE_MODELS } from "./azure.models.js";
8
+ function resolveAzureModel(model, options) {
9
+ return { ...model, baseUrl: resolveAzureBaseUrl(model, options) };
10
+ }
11
+ /** Send the deployment name as the request's model, keeping `model.id` as the catalog id. */
12
+ function withDeploymentName(model, options) {
13
+ const deploymentName = resolveDeploymentName(model, options);
14
+ if (deploymentName === model.id)
15
+ return options;
16
+ return {
17
+ ...options,
18
+ onPayload: async (payload, payloadModel) => {
19
+ const params = { ...payload, model: deploymentName };
20
+ return (await options?.onPayload?.(params, payloadModel)) ?? params;
21
+ },
22
+ };
23
+ }
24
+ /**
25
+ * Resolve the Azure endpoint and deployment before dispatch, inside `lazyStream` so an
26
+ * unconfigured endpoint errors on the stream instead of throwing out of `stream()`.
27
+ */
28
+ function azureStreams(streams) {
29
+ return {
30
+ stream: (model, context, options) => lazyStream(model, async () => streams.stream(resolveAzureModel(model, options), context, withDeploymentName(model, options))),
31
+ streamSimple: (model, context, options) => lazyStream(model, async () => streams.streamSimple(resolveAzureModel(model, options), context, withDeploymentName(model, options))),
32
+ };
33
+ }
34
+ export function azureProvider() {
35
+ return createProvider({
36
+ id: "azure",
37
+ name: "Azure",
38
+ auth: { apiKey: envApiKeyAuth("Azure OpenAI API key", ["AZURE_OPENAI_API_KEY"]) },
39
+ models: Object.values(AZURE_MODELS),
40
+ api: {
41
+ "azure-openai-responses": azureOpenAIResponsesApi(),
42
+ "openai-completions": azureStreams(openAICompletionsApi()),
43
+ },
44
+ });
45
+ }
46
+ //# sourceMappingURL=azure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.js","sourceRoot":"","sources":["../../src/providers/azure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,SAAS,iBAAiB,CAAC,KAAiB,EAAE,OAAkC;IAC/E,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,6FAA6F;AAC7F,SAAS,kBAAkB,CAA0B,KAAiB,EAAE,OAAsB;IAC7F,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,cAAc,KAAK,KAAK,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO;QACN,GAAG,OAAO;QACV,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,EAAE,GAAI,OAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;YACjE,OAAO,CAAC,MAAM,OAAO,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,MAAM,CAAC;QACrE,CAAC;KACI,CAAC;AACR,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,OAAwB;IAC7C,OAAO;QACN,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CACnC,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAC5B,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAC9F;QACF,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CACzC,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAC5B,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CACpG;KACF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC5B,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,sBAAsB,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE;QACjF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QACnC,GAAG,EAAE;YACJ,wBAAwB,EAAE,uBAAuB,EAAE;YACnD,oBAAoB,EAAE,YAAY,CAAC,oBAAoB,EAAE,CAAC;SAC1D;KACD,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { resolveAzureBaseUrl, resolveDeploymentName } from \"../api/azure-openai-config.ts\";\nimport { azureOpenAIResponsesApi } from \"../api/azure-openai-responses.lazy.ts\";\nimport { lazyStream } from \"../api/lazy.ts\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport type { Api, Model, ProviderStreams, StreamOptions } from \"../types.ts\";\nimport { AZURE_MODELS } from \"./azure.models.ts\";\n\nfunction resolveAzureModel(model: Model<Api>, options: StreamOptions | undefined): Model<Api> {\n\treturn { ...model, baseUrl: resolveAzureBaseUrl(model, options) };\n}\n\n/** Send the deployment name as the request's model, keeping `model.id` as the catalog id. */\nfunction withDeploymentName<T extends StreamOptions>(model: Model<Api>, options: T | undefined): T | undefined {\n\tconst deploymentName = resolveDeploymentName(model, options);\n\tif (deploymentName === model.id) return options;\n\treturn {\n\t\t...options,\n\t\tonPayload: async (payload, payloadModel) => {\n\t\t\tconst params = { ...(payload as object), model: deploymentName };\n\t\t\treturn (await options?.onPayload?.(params, payloadModel)) ?? params;\n\t\t},\n\t} as T;\n}\n\n/**\n * Resolve the Azure endpoint and deployment before dispatch, inside `lazyStream` so an\n * unconfigured endpoint errors on the stream instead of throwing out of `stream()`.\n */\nfunction azureStreams(streams: ProviderStreams): ProviderStreams {\n\treturn {\n\t\tstream: (model, context, options) =>\n\t\t\tlazyStream(model, async () =>\n\t\t\t\tstreams.stream(resolveAzureModel(model, options), context, withDeploymentName(model, options)),\n\t\t\t),\n\t\tstreamSimple: (model, context, options) =>\n\t\t\tlazyStream(model, async () =>\n\t\t\t\tstreams.streamSimple(resolveAzureModel(model, options), context, withDeploymentName(model, options)),\n\t\t\t),\n\t};\n}\n\nexport function azureProvider(): Provider<\"azure-openai-responses\" | \"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"azure\",\n\t\tname: \"Azure\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Azure OpenAI API key\", [\"AZURE_OPENAI_API_KEY\"]) },\n\t\tmodels: Object.values(AZURE_MODELS),\n\t\tapi: {\n\t\t\t\"azure-openai-responses\": azureOpenAIResponsesApi(),\n\t\t\t\"openai-completions\": azureStreams(openAICompletionsApi()),\n\t\t},\n\t});\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { type ChatModelCatalog, type ClassifierModelCatalog, type ImageModelCatalog } from "../model-catalog.ts";
2
+ import values from "./data/azure.json";
3
+ export declare const AZURE_MODELS: ChatModelCatalog<typeof values, "azure">;
4
+ export declare const AZURE_IMAGE_MODELS: ImageModelCatalog<typeof values, "azure">;
5
+ export declare const AZURE_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, "azure">;
6
+ //# sourceMappingURL=azure.models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.models.d.ts","sourceRoot":"","sources":["../../src/providers/azure.models.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAI3B,KAAK,iBAAiB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,MAAM,MAAM,mBAAmB,CAAuB;AAE7D,eAAO,MAAM,YAAY,EAAE,gBAAgB,CAAC,OAAO,MAAM,EAAE,OAAO,CAA4C,CAAC;AAE/G,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,CAAC,OAAO,MAAM,EAAE,OAAO,CAA6C,CAAC;AAEvH,eAAO,MAAM,uBAAuB,EAAE,sBAAsB,CAAC,OAAO,MAAM,EAAE,OAAO,CAGlF,CAAC"}
@@ -0,0 +1,8 @@
1
+ // This file is auto-generated by scripts/generate-models.ts
2
+ // Do not edit manually - run 'npm run generate-models' to update
3
+ import { flattenChatModelCatalog, flattenClassifierModelCatalog, flattenImageModelCatalog, } from "../model-catalog.js";
4
+ import values from "./data/azure.json" with { type: "json" };
5
+ export const AZURE_MODELS = flattenChatModelCatalog("azure", values);
6
+ export const AZURE_IMAGE_MODELS = flattenImageModelCatalog("azure", values);
7
+ export const AZURE_CLASSIFIER_MODELS = flattenClassifierModelCatalog("azure", values);
8
+ //# sourceMappingURL=azure.models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.models.js","sourceRoot":"","sources":["../../src/providers/azure.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,EAGN,uBAAuB,EACvB,6BAA6B,EAC7B,wBAAwB,GAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,MAAM,MAAM,mBAAmB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAA6C,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAE/G,MAAM,CAAC,MAAM,kBAAkB,GAA8C,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEvH,MAAM,CAAC,MAAM,uBAAuB,GAAmD,6BAA6B,CACnH,OAAO,EACP,MAAM,CACN,CAAC","sourcesContent":["// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport {\n\ttype ChatModelCatalog,\n\ttype ClassifierModelCatalog,\n\tflattenChatModelCatalog,\n\tflattenClassifierModelCatalog,\n\tflattenImageModelCatalog,\n\ttype ImageModelCatalog,\n} from \"../model-catalog.ts\";\nimport values from \"./data/azure.json\" with { type: \"json\" };\n\nexport const AZURE_MODELS: ChatModelCatalog<typeof values, \"azure\"> = flattenChatModelCatalog(\"azure\", values);\n\nexport const AZURE_IMAGE_MODELS: ImageModelCatalog<typeof values, \"azure\"> = flattenImageModelCatalog(\"azure\", values);\n\nexport const AZURE_CLASSIFIER_MODELS: ClassifierModelCatalog<typeof values, \"azure\"> = flattenClassifierModelCatalog(\n\t\"azure\",\n\tvalues,\n);\n"]}
@@ -0,0 +1,491 @@
1
+ import { type Static, type TProperties, Type } from "typebox";
2
+ export declare const SessionAffinityFormatSchema: Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>;
3
+ export declare const ThinkingTokenBudgetFieldSchema: Type.TUnion<[Type.TLiteral<"thinking_token_budget">, Type.TLiteral<"thinking_budget">, Type.TLiteral<"thinking_budget_tokens">]>;
4
+ export declare const ChatTemplateKwargValueSchema: Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull, Type.TObject<{
5
+ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">, Type.TLiteral<"thinking.budget">]>;
6
+ omitWhenOff: Type.TOptional<Type.TBoolean>;
7
+ }>]>;
8
+ export declare const OpenRouterRoutingSchema: Type.TObject<{
9
+ allow_fallbacks: Type.TOptional<Type.TBoolean>;
10
+ require_parameters: Type.TOptional<Type.TBoolean>;
11
+ data_collection: Type.TOptional<Type.TUnion<[Type.TLiteral<"deny">, Type.TLiteral<"allow">]>>;
12
+ zdr: Type.TOptional<Type.TBoolean>;
13
+ enforce_distillable_text: Type.TOptional<Type.TBoolean>;
14
+ order: Type.TOptional<Type.TArray<Type.TString>>;
15
+ only: Type.TOptional<Type.TArray<Type.TString>>;
16
+ ignore: Type.TOptional<Type.TArray<Type.TString>>;
17
+ quantizations: Type.TOptional<Type.TArray<Type.TString>>;
18
+ sort: Type.TOptional<Type.TUnion<[Type.TString, Type.TObject<{
19
+ by: Type.TOptional<Type.TString>;
20
+ partition: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
21
+ }>]>>;
22
+ max_price: Type.TOptional<Type.TObject<{
23
+ prompt: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
24
+ completion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
25
+ image: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
26
+ audio: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
27
+ request: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
28
+ }>>;
29
+ preferred_min_throughput: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{
30
+ p50: Type.TOptional<Type.TNumber>;
31
+ p75: Type.TOptional<Type.TNumber>;
32
+ p90: Type.TOptional<Type.TNumber>;
33
+ p99: Type.TOptional<Type.TNumber>;
34
+ }>]>>;
35
+ preferred_max_latency: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{
36
+ p50: Type.TOptional<Type.TNumber>;
37
+ p75: Type.TOptional<Type.TNumber>;
38
+ p90: Type.TOptional<Type.TNumber>;
39
+ p99: Type.TOptional<Type.TNumber>;
40
+ }>]>>;
41
+ }>;
42
+ export declare const VercelGatewayRoutingSchema: Type.TObject<{
43
+ only: Type.TOptional<Type.TArray<Type.TString>>;
44
+ order: Type.TOptional<Type.TArray<Type.TString>>;
45
+ }>;
46
+ export declare const AnthropicAllowedFallbackModelSchema: Type.TObject<{
47
+ provider: Type.TString;
48
+ model: Type.TString;
49
+ cost: Type.TObject<{
50
+ input: Type.TNumber;
51
+ output: Type.TNumber;
52
+ cacheRead: Type.TNumber;
53
+ cacheWrite: Type.TNumber;
54
+ tiers: Type.TOptional<Type.TArray<Type.TObject<{
55
+ input: Type.TNumber;
56
+ output: Type.TNumber;
57
+ cacheRead: Type.TNumber;
58
+ cacheWrite: Type.TNumber;
59
+ inputTokensAbove: Type.TNumber;
60
+ }>>>;
61
+ }>;
62
+ }>;
63
+ export declare const OpenAICompletionsCompatSchema: Type.TObject<{
64
+ supportsStore: Type.TOptional<Type.TBoolean>;
65
+ supportsDeveloperRole: Type.TOptional<Type.TBoolean>;
66
+ supportsReasoningEffort: Type.TOptional<Type.TBoolean>;
67
+ supportsUsageInStreaming: Type.TOptional<Type.TBoolean>;
68
+ supportsFinishReason: Type.TOptional<Type.TBoolean>;
69
+ maxTokensField: Type.TOptional<Type.TUnion<[Type.TLiteral<"max_completion_tokens">, Type.TLiteral<"max_tokens">]>>;
70
+ requiresToolResultName: Type.TOptional<Type.TBoolean>;
71
+ requiresAssistantAfterToolResult: Type.TOptional<Type.TBoolean>;
72
+ requiresThinkingAsText: Type.TOptional<Type.TBoolean>;
73
+ requiresReasoningContentOnAssistantMessages: Type.TOptional<Type.TBoolean>;
74
+ thinkingFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openrouter">, Type.TLiteral<"deepseek">, Type.TLiteral<"together">, Type.TLiteral<"baseten">, Type.TLiteral<"zai">, Type.TLiteral<"qwen">, Type.TLiteral<"chat-template">, Type.TLiteral<"qwen-chat-template">, Type.TLiteral<"string-thinking">, Type.TLiteral<"ant-ling">]>>;
75
+ chatTemplateKwargs: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull, Type.TObject<{
76
+ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">, Type.TLiteral<"thinking.budget">]>;
77
+ omitWhenOff: Type.TOptional<Type.TBoolean>;
78
+ }>]>>>;
79
+ chatTemplateArgs: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull, Type.TObject<{
80
+ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">, Type.TLiteral<"thinking.budget">]>;
81
+ omitWhenOff: Type.TOptional<Type.TBoolean>;
82
+ }>]>>>;
83
+ openRouterRouting: Type.TOptional<Type.TObject<{
84
+ allow_fallbacks: Type.TOptional<Type.TBoolean>;
85
+ require_parameters: Type.TOptional<Type.TBoolean>;
86
+ data_collection: Type.TOptional<Type.TUnion<[Type.TLiteral<"deny">, Type.TLiteral<"allow">]>>;
87
+ zdr: Type.TOptional<Type.TBoolean>;
88
+ enforce_distillable_text: Type.TOptional<Type.TBoolean>;
89
+ order: Type.TOptional<Type.TArray<Type.TString>>;
90
+ only: Type.TOptional<Type.TArray<Type.TString>>;
91
+ ignore: Type.TOptional<Type.TArray<Type.TString>>;
92
+ quantizations: Type.TOptional<Type.TArray<Type.TString>>;
93
+ sort: Type.TOptional<Type.TUnion<[Type.TString, Type.TObject<{
94
+ by: Type.TOptional<Type.TString>;
95
+ partition: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
96
+ }>]>>;
97
+ max_price: Type.TOptional<Type.TObject<{
98
+ prompt: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
99
+ completion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
100
+ image: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
101
+ audio: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
102
+ request: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
103
+ }>>;
104
+ preferred_min_throughput: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{
105
+ p50: Type.TOptional<Type.TNumber>;
106
+ p75: Type.TOptional<Type.TNumber>;
107
+ p90: Type.TOptional<Type.TNumber>;
108
+ p99: Type.TOptional<Type.TNumber>;
109
+ }>]>>;
110
+ preferred_max_latency: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{
111
+ p50: Type.TOptional<Type.TNumber>;
112
+ p75: Type.TOptional<Type.TNumber>;
113
+ p90: Type.TOptional<Type.TNumber>;
114
+ p99: Type.TOptional<Type.TNumber>;
115
+ }>]>>;
116
+ }>>;
117
+ vercelGatewayRouting: Type.TOptional<Type.TObject<{
118
+ only: Type.TOptional<Type.TArray<Type.TString>>;
119
+ order: Type.TOptional<Type.TArray<Type.TString>>;
120
+ }>>;
121
+ zaiToolStream: Type.TOptional<Type.TBoolean>;
122
+ thinkingTokenBudgetField: Type.TOptional<Type.TUnion<[Type.TLiteral<"thinking_token_budget">, Type.TLiteral<"thinking_budget">, Type.TLiteral<"thinking_budget_tokens">]>>;
123
+ supportsThinkingTokenBudget: Type.TOptional<Type.TBoolean>;
124
+ supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
125
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
126
+ supportsMidConvoToolAdditions: Type.TOptional<Type.TBoolean>;
127
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
128
+ cacheControlFormat: Type.TOptional<Type.TLiteral<"anthropic">>;
129
+ sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
130
+ sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
131
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
132
+ vllmPriority: Type.TOptional<Type.TNumber>;
133
+ }>;
134
+ export declare const OpenAIResponsesCompatSchema: Type.TObject<{
135
+ supportsDeveloperRole: Type.TOptional<Type.TBoolean>;
136
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
137
+ sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
138
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
139
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
140
+ supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
141
+ supportsAdditionalTools: Type.TOptional<Type.TBoolean>;
142
+ supportsToolSearch: Type.TOptional<Type.TBoolean>;
143
+ supportsExplicitPromptCacheMode: Type.TOptional<Type.TBoolean>;
144
+ supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
145
+ supportsMaxOutputTokens: Type.TOptional<Type.TBoolean>;
146
+ }>;
147
+ export declare const AnthropicMessagesCompatSchema: Type.TObject<{
148
+ supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>;
149
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
150
+ sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
151
+ sessionAffinityFormat: Type.TOptional<Type.TLiteral<"openrouter">>;
152
+ supportsCacheControlOnTools: Type.TOptional<Type.TBoolean>;
153
+ supportsTemperature: Type.TOptional<Type.TBoolean>;
154
+ forceAdaptiveThinking: Type.TOptional<Type.TBoolean>;
155
+ allowEmptySignature: Type.TOptional<Type.TBoolean>;
156
+ supportsStrictTools: Type.TOptional<Type.TBoolean>;
157
+ supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
158
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
159
+ supportsMidConvoToolChanges: Type.TOptional<Type.TBoolean>;
160
+ allowedFallbackModels: Type.TOptional<Type.TArray<Type.TObject<{
161
+ provider: Type.TString;
162
+ model: Type.TString;
163
+ cost: Type.TObject<{
164
+ input: Type.TNumber;
165
+ output: Type.TNumber;
166
+ cacheRead: Type.TNumber;
167
+ cacheWrite: Type.TNumber;
168
+ tiers: Type.TOptional<Type.TArray<Type.TObject<{
169
+ input: Type.TNumber;
170
+ output: Type.TNumber;
171
+ cacheRead: Type.TNumber;
172
+ cacheWrite: Type.TNumber;
173
+ inputTokensAbove: Type.TNumber;
174
+ }>>>;
175
+ }>;
176
+ }>>>;
177
+ }>;
178
+ export declare const BedrockCompatSchema: Type.TObject<{
179
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
180
+ }>;
181
+ export declare const MistralConversationsCompatSchema: Type.TObject<{
182
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
183
+ }>;
184
+ type UnionToIntersection<Union> = (Union extends unknown ? (value: Union) => void : never) extends (value: infer Intersection) => void ? Intersection : never;
185
+ type MergedCompatProperties<PropertyGroups extends readonly TProperties[], Overrides extends TProperties> = Omit<UnionToIntersection<PropertyGroups[number]>, keyof Overrides> & Overrides;
186
+ /** Compatibility schema for each API whose models accept compat. Mirrors the compat type of Model. */
187
+ export declare const CompatSchemasByApi: {
188
+ readonly "openai-completions": Type.TObject<{
189
+ supportsStore: Type.TOptional<Type.TBoolean>;
190
+ supportsDeveloperRole: Type.TOptional<Type.TBoolean>;
191
+ supportsReasoningEffort: Type.TOptional<Type.TBoolean>;
192
+ supportsUsageInStreaming: Type.TOptional<Type.TBoolean>;
193
+ supportsFinishReason: Type.TOptional<Type.TBoolean>;
194
+ maxTokensField: Type.TOptional<Type.TUnion<[Type.TLiteral<"max_completion_tokens">, Type.TLiteral<"max_tokens">]>>;
195
+ requiresToolResultName: Type.TOptional<Type.TBoolean>;
196
+ requiresAssistantAfterToolResult: Type.TOptional<Type.TBoolean>;
197
+ requiresThinkingAsText: Type.TOptional<Type.TBoolean>;
198
+ requiresReasoningContentOnAssistantMessages: Type.TOptional<Type.TBoolean>;
199
+ thinkingFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openrouter">, Type.TLiteral<"deepseek">, Type.TLiteral<"together">, Type.TLiteral<"baseten">, Type.TLiteral<"zai">, Type.TLiteral<"qwen">, Type.TLiteral<"chat-template">, Type.TLiteral<"qwen-chat-template">, Type.TLiteral<"string-thinking">, Type.TLiteral<"ant-ling">]>>;
200
+ chatTemplateKwargs: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull, Type.TObject<{
201
+ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">, Type.TLiteral<"thinking.budget">]>;
202
+ omitWhenOff: Type.TOptional<Type.TBoolean>;
203
+ }>]>>>;
204
+ chatTemplateArgs: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull, Type.TObject<{
205
+ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">, Type.TLiteral<"thinking.budget">]>;
206
+ omitWhenOff: Type.TOptional<Type.TBoolean>;
207
+ }>]>>>;
208
+ openRouterRouting: Type.TOptional<Type.TObject<{
209
+ allow_fallbacks: Type.TOptional<Type.TBoolean>;
210
+ require_parameters: Type.TOptional<Type.TBoolean>;
211
+ data_collection: Type.TOptional<Type.TUnion<[Type.TLiteral<"deny">, Type.TLiteral<"allow">]>>;
212
+ zdr: Type.TOptional<Type.TBoolean>;
213
+ enforce_distillable_text: Type.TOptional<Type.TBoolean>;
214
+ order: Type.TOptional<Type.TArray<Type.TString>>;
215
+ only: Type.TOptional<Type.TArray<Type.TString>>;
216
+ ignore: Type.TOptional<Type.TArray<Type.TString>>;
217
+ quantizations: Type.TOptional<Type.TArray<Type.TString>>;
218
+ sort: Type.TOptional<Type.TUnion<[Type.TString, Type.TObject<{
219
+ by: Type.TOptional<Type.TString>;
220
+ partition: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
221
+ }>]>>;
222
+ max_price: Type.TOptional<Type.TObject<{
223
+ prompt: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
224
+ completion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
225
+ image: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
226
+ audio: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
227
+ request: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
228
+ }>>;
229
+ preferred_min_throughput: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{
230
+ p50: Type.TOptional<Type.TNumber>;
231
+ p75: Type.TOptional<Type.TNumber>;
232
+ p90: Type.TOptional<Type.TNumber>;
233
+ p99: Type.TOptional<Type.TNumber>;
234
+ }>]>>;
235
+ preferred_max_latency: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{
236
+ p50: Type.TOptional<Type.TNumber>;
237
+ p75: Type.TOptional<Type.TNumber>;
238
+ p90: Type.TOptional<Type.TNumber>;
239
+ p99: Type.TOptional<Type.TNumber>;
240
+ }>]>>;
241
+ }>>;
242
+ vercelGatewayRouting: Type.TOptional<Type.TObject<{
243
+ only: Type.TOptional<Type.TArray<Type.TString>>;
244
+ order: Type.TOptional<Type.TArray<Type.TString>>;
245
+ }>>;
246
+ zaiToolStream: Type.TOptional<Type.TBoolean>;
247
+ thinkingTokenBudgetField: Type.TOptional<Type.TUnion<[Type.TLiteral<"thinking_token_budget">, Type.TLiteral<"thinking_budget">, Type.TLiteral<"thinking_budget_tokens">]>>;
248
+ supportsThinkingTokenBudget: Type.TOptional<Type.TBoolean>;
249
+ supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
250
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
251
+ supportsMidConvoToolAdditions: Type.TOptional<Type.TBoolean>;
252
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
253
+ cacheControlFormat: Type.TOptional<Type.TLiteral<"anthropic">>;
254
+ sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
255
+ sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
256
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
257
+ vllmPriority: Type.TOptional<Type.TNumber>;
258
+ }>;
259
+ readonly "openai-responses": Type.TObject<{
260
+ supportsDeveloperRole: Type.TOptional<Type.TBoolean>;
261
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
262
+ sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
263
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
264
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
265
+ supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
266
+ supportsAdditionalTools: Type.TOptional<Type.TBoolean>;
267
+ supportsToolSearch: Type.TOptional<Type.TBoolean>;
268
+ supportsExplicitPromptCacheMode: Type.TOptional<Type.TBoolean>;
269
+ supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
270
+ supportsMaxOutputTokens: Type.TOptional<Type.TBoolean>;
271
+ }>;
272
+ readonly "azure-openai-responses": Type.TObject<{
273
+ supportsDeveloperRole: Type.TOptional<Type.TBoolean>;
274
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
275
+ sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
276
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
277
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
278
+ supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
279
+ supportsAdditionalTools: Type.TOptional<Type.TBoolean>;
280
+ supportsToolSearch: Type.TOptional<Type.TBoolean>;
281
+ supportsExplicitPromptCacheMode: Type.TOptional<Type.TBoolean>;
282
+ supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
283
+ supportsMaxOutputTokens: Type.TOptional<Type.TBoolean>;
284
+ }>;
285
+ readonly "openai-codex-responses": Type.TObject<{
286
+ supportsDeveloperRole: Type.TOptional<Type.TBoolean>;
287
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
288
+ sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
289
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
290
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
291
+ supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
292
+ supportsAdditionalTools: Type.TOptional<Type.TBoolean>;
293
+ supportsToolSearch: Type.TOptional<Type.TBoolean>;
294
+ supportsExplicitPromptCacheMode: Type.TOptional<Type.TBoolean>;
295
+ supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
296
+ supportsMaxOutputTokens: Type.TOptional<Type.TBoolean>;
297
+ }>;
298
+ readonly "anthropic-messages": Type.TObject<{
299
+ supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>;
300
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
301
+ sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
302
+ sessionAffinityFormat: Type.TOptional<Type.TLiteral<"openrouter">>;
303
+ supportsCacheControlOnTools: Type.TOptional<Type.TBoolean>;
304
+ supportsTemperature: Type.TOptional<Type.TBoolean>;
305
+ forceAdaptiveThinking: Type.TOptional<Type.TBoolean>;
306
+ allowEmptySignature: Type.TOptional<Type.TBoolean>;
307
+ supportsStrictTools: Type.TOptional<Type.TBoolean>;
308
+ supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
309
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
310
+ supportsMidConvoToolChanges: Type.TOptional<Type.TBoolean>;
311
+ allowedFallbackModels: Type.TOptional<Type.TArray<Type.TObject<{
312
+ provider: Type.TString;
313
+ model: Type.TString;
314
+ cost: Type.TObject<{
315
+ input: Type.TNumber;
316
+ output: Type.TNumber;
317
+ cacheRead: Type.TNumber;
318
+ cacheWrite: Type.TNumber;
319
+ tiers: Type.TOptional<Type.TArray<Type.TObject<{
320
+ input: Type.TNumber;
321
+ output: Type.TNumber;
322
+ cacheRead: Type.TNumber;
323
+ cacheWrite: Type.TNumber;
324
+ inputTokensAbove: Type.TNumber;
325
+ }>>>;
326
+ }>;
327
+ }>>>;
328
+ }>;
329
+ readonly "bedrock-converse-stream": Type.TObject<{
330
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
331
+ }>;
332
+ readonly "mistral-conversations": Type.TObject<{
333
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
334
+ }>;
335
+ };
336
+ export declare const ProviderCompatSchema: Type.TObject<MergedCompatProperties<({
337
+ supportsStore: Type.TOptional<Type.TBoolean>;
338
+ supportsDeveloperRole: Type.TOptional<Type.TBoolean>;
339
+ supportsReasoningEffort: Type.TOptional<Type.TBoolean>;
340
+ supportsUsageInStreaming: Type.TOptional<Type.TBoolean>;
341
+ supportsFinishReason: Type.TOptional<Type.TBoolean>;
342
+ maxTokensField: Type.TOptional<Type.TUnion<[Type.TLiteral<"max_completion_tokens">, Type.TLiteral<"max_tokens">]>>;
343
+ requiresToolResultName: Type.TOptional<Type.TBoolean>;
344
+ requiresAssistantAfterToolResult: Type.TOptional<Type.TBoolean>;
345
+ requiresThinkingAsText: Type.TOptional<Type.TBoolean>;
346
+ requiresReasoningContentOnAssistantMessages: Type.TOptional<Type.TBoolean>;
347
+ thinkingFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openrouter">, Type.TLiteral<"deepseek">, Type.TLiteral<"together">, Type.TLiteral<"baseten">, Type.TLiteral<"zai">, Type.TLiteral<"qwen">, Type.TLiteral<"chat-template">, Type.TLiteral<"qwen-chat-template">, Type.TLiteral<"string-thinking">, Type.TLiteral<"ant-ling">]>>;
348
+ chatTemplateKwargs: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull, Type.TObject<{
349
+ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">, Type.TLiteral<"thinking.budget">]>;
350
+ omitWhenOff: Type.TOptional<Type.TBoolean>;
351
+ }>]>>>;
352
+ chatTemplateArgs: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull, Type.TObject<{
353
+ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">, Type.TLiteral<"thinking.budget">]>;
354
+ omitWhenOff: Type.TOptional<Type.TBoolean>;
355
+ }>]>>>;
356
+ openRouterRouting: Type.TOptional<Type.TObject<{
357
+ allow_fallbacks: Type.TOptional<Type.TBoolean>;
358
+ require_parameters: Type.TOptional<Type.TBoolean>;
359
+ data_collection: Type.TOptional<Type.TUnion<[Type.TLiteral<"deny">, Type.TLiteral<"allow">]>>;
360
+ zdr: Type.TOptional<Type.TBoolean>;
361
+ enforce_distillable_text: Type.TOptional<Type.TBoolean>;
362
+ order: Type.TOptional<Type.TArray<Type.TString>>;
363
+ only: Type.TOptional<Type.TArray<Type.TString>>;
364
+ ignore: Type.TOptional<Type.TArray<Type.TString>>;
365
+ quantizations: Type.TOptional<Type.TArray<Type.TString>>;
366
+ sort: Type.TOptional<Type.TUnion<[Type.TString, Type.TObject<{
367
+ by: Type.TOptional<Type.TString>;
368
+ partition: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
369
+ }>]>>;
370
+ max_price: Type.TOptional<Type.TObject<{
371
+ prompt: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
372
+ completion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
373
+ image: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
374
+ audio: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
375
+ request: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>;
376
+ }>>;
377
+ preferred_min_throughput: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{
378
+ p50: Type.TOptional<Type.TNumber>;
379
+ p75: Type.TOptional<Type.TNumber>;
380
+ p90: Type.TOptional<Type.TNumber>;
381
+ p99: Type.TOptional<Type.TNumber>;
382
+ }>]>>;
383
+ preferred_max_latency: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{
384
+ p50: Type.TOptional<Type.TNumber>;
385
+ p75: Type.TOptional<Type.TNumber>;
386
+ p90: Type.TOptional<Type.TNumber>;
387
+ p99: Type.TOptional<Type.TNumber>;
388
+ }>]>>;
389
+ }>>;
390
+ vercelGatewayRouting: Type.TOptional<Type.TObject<{
391
+ only: Type.TOptional<Type.TArray<Type.TString>>;
392
+ order: Type.TOptional<Type.TArray<Type.TString>>;
393
+ }>>;
394
+ zaiToolStream: Type.TOptional<Type.TBoolean>;
395
+ thinkingTokenBudgetField: Type.TOptional<Type.TUnion<[Type.TLiteral<"thinking_token_budget">, Type.TLiteral<"thinking_budget">, Type.TLiteral<"thinking_budget_tokens">]>>;
396
+ supportsThinkingTokenBudget: Type.TOptional<Type.TBoolean>;
397
+ supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
398
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
399
+ supportsMidConvoToolAdditions: Type.TOptional<Type.TBoolean>;
400
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
401
+ cacheControlFormat: Type.TOptional<Type.TLiteral<"anthropic">>;
402
+ sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
403
+ sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
404
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
405
+ vllmPriority: Type.TOptional<Type.TNumber>;
406
+ } | {
407
+ supportsDeveloperRole: Type.TOptional<Type.TBoolean>;
408
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
409
+ sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
410
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
411
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
412
+ supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
413
+ supportsAdditionalTools: Type.TOptional<Type.TBoolean>;
414
+ supportsToolSearch: Type.TOptional<Type.TBoolean>;
415
+ supportsExplicitPromptCacheMode: Type.TOptional<Type.TBoolean>;
416
+ supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
417
+ supportsMaxOutputTokens: Type.TOptional<Type.TBoolean>;
418
+ } | {
419
+ supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>;
420
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
421
+ sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
422
+ sessionAffinityFormat: Type.TOptional<Type.TLiteral<"openrouter">>;
423
+ supportsCacheControlOnTools: Type.TOptional<Type.TBoolean>;
424
+ supportsTemperature: Type.TOptional<Type.TBoolean>;
425
+ forceAdaptiveThinking: Type.TOptional<Type.TBoolean>;
426
+ allowEmptySignature: Type.TOptional<Type.TBoolean>;
427
+ supportsStrictTools: Type.TOptional<Type.TBoolean>;
428
+ supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
429
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
430
+ supportsMidConvoToolChanges: Type.TOptional<Type.TBoolean>;
431
+ allowedFallbackModels: Type.TOptional<Type.TArray<Type.TObject<{
432
+ provider: Type.TString;
433
+ model: Type.TString;
434
+ cost: Type.TObject<{
435
+ input: Type.TNumber;
436
+ output: Type.TNumber;
437
+ cacheRead: Type.TNumber;
438
+ cacheWrite: Type.TNumber;
439
+ tiers: Type.TOptional<Type.TArray<Type.TObject<{
440
+ input: Type.TNumber;
441
+ output: Type.TNumber;
442
+ cacheRead: Type.TNumber;
443
+ cacheWrite: Type.TNumber;
444
+ inputTokensAbove: Type.TNumber;
445
+ }>>>;
446
+ }>;
447
+ }>>>;
448
+ } | {
449
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
450
+ } | {
451
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
452
+ })[], {
453
+ supportsDeveloperRole: Type.TOptional<Type.TBoolean>;
454
+ supportsMidConvoSystemMessages: Type.TOptional<Type.TBoolean>;
455
+ sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
456
+ supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
457
+ supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
458
+ supportsStrictMode: Type.TOptional<Type.TBoolean>;
459
+ supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
460
+ sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
461
+ }>>;
462
+ export type ChatTemplateKwargValue = Static<typeof ChatTemplateKwargValueSchema>;
463
+ /** Top-level request field used to cap reasoning tokens on OpenAI-compatible servers. */
464
+ export type ThinkingTokenBudgetField = Static<typeof ThinkingTokenBudgetFieldSchema>;
465
+ export type SessionAffinityFormat = Static<typeof SessionAffinityFormatSchema>;
466
+ /** OpenRouter provider routing preferences. */
467
+ export interface OpenRouterRouting extends Static<typeof OpenRouterRoutingSchema> {
468
+ }
469
+ /** Vercel AI Gateway routing preferences. */
470
+ export interface VercelGatewayRouting extends Static<typeof VercelGatewayRoutingSchema> {
471
+ }
472
+ /** An Anthropic server-side refusal fallback model with local pricing metadata. */
473
+ export interface AnthropicAllowedFallbackModel extends Static<typeof AnthropicAllowedFallbackModelSchema> {
474
+ }
475
+ /** Compatibility settings for OpenAI-compatible completions APIs. */
476
+ export interface OpenAICompletionsCompat extends Static<typeof OpenAICompletionsCompatSchema> {
477
+ }
478
+ /** Compatibility settings for OpenAI Responses APIs. */
479
+ export interface OpenAIResponsesCompat extends Static<typeof OpenAIResponsesCompatSchema> {
480
+ }
481
+ /** Compatibility settings for Anthropic Messages-compatible APIs. */
482
+ export interface AnthropicMessagesCompat extends Static<typeof AnthropicMessagesCompatSchema> {
483
+ }
484
+ /** Compatibility settings for Amazon Bedrock models. */
485
+ export interface BedrockCompat extends Static<typeof BedrockCompatSchema> {
486
+ }
487
+ /** Compatibility settings for the Mistral chat API. */
488
+ export interface MistralConversationsCompat extends Static<typeof MistralConversationsCompatSchema> {
489
+ }
490
+ export {};
491
+ //# sourceMappingURL=compat-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat-schema.d.ts","sourceRoot":"","sources":["../../src/providers/compat-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAuB,IAAI,EAAE,MAAM,SAAS,CAAC;AAOnF,eAAO,MAAM,2BAA2B,wGAEtC,CAAC;AASH,eAAO,MAAM,8BAA8B,kIAGzC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;IAavC,CAAC;AAWH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqGnC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;EAkBtC,CAAC;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;EAO/C,CAAC;AAUF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkKzC,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;EA8DvC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqFzC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;EAQ/B,CAAC;AAEF,eAAO,MAAM,gCAAgC;;EAS5C,CAAC;AAoCF,KAAK,mBAAmB,CAAC,KAAK,IAAI,CAAC,KAAK,SAAS,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CAClG,KAAK,EAAE,MAAM,YAAY,KACrB,IAAI,GACN,YAAY,GACZ,KAAK,CAAC;AAET,KAAK,sBAAsB,CAAC,cAAc,SAAS,SAAS,WAAW,EAAE,EAAE,SAAS,SAAS,WAAW,IAAI,IAAI,CAC/G,mBAAmB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAC3C,MAAM,SAAS,CACf,GACA,SAAS,CAAC;AAmCX,sGAAsG;AACtG,eAAO,MAAM,kBAAkB;aAC9B,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aACpB,kBAAkB;;;;;;;;;;;;;aAClB,wBAAwB;;;;;;;;;;;;;aACxB,wBAAwB;;;;;;;;;;;;;aACxB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aACpB,yBAAyB;;;aACzB,uBAAuB;;;CACd,CAAC;AAOX,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAG/B,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACjF,yFAAyF;AACzF,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACrF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAC/E,+CAA+C;AAC/C,MAAM,WAAW,iBAAkB,SAAQ,MAAM,CAAC,OAAO,uBAAuB,CAAC;CAAG;AACpF,6CAA6C;AAC7C,MAAM,WAAW,oBAAqB,SAAQ,MAAM,CAAC,OAAO,0BAA0B,CAAC;CAAG;AAC1F,mFAAmF;AACnF,MAAM,WAAW,6BAA8B,SAAQ,MAAM,CAAC,OAAO,mCAAmC,CAAC;CAAG;AAE5G,qEAAqE;AACrE,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,OAAO,6BAA6B,CAAC;CAAG;AAChG,wDAAwD;AACxD,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,OAAO,2BAA2B,CAAC;CAAG;AAC5F,qEAAqE;AACrE,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,OAAO,6BAA6B,CAAC;CAAG;AAChG,wDAAwD;AACxD,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,OAAO,mBAAmB,CAAC;CAAG;AAC5E,uDAAuD;AACvD,MAAM,WAAW,0BAA2B,SAAQ,MAAM,CAAC,OAAO,gCAAgC,CAAC;CAAG"}