@code-yeongyu/senpi 2026.9.18 → 2026.9.19-2

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 (199) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/dist/bundle/chunks/{anthropic-messages-ZEJ3DPCP.js → anthropic-messages-WZCFP6BT.js} +1 -1
  3. package/dist/bundle/chunks/{app-server-command-ELSORC4D.js → app-server-command-QBJ4GPN7.js} +1 -1
  4. package/dist/bundle/chunks/bun-extension-importer-JQZRPNJH.js +10 -0
  5. package/dist/bundle/chunks/{chunk-Y6HDGVS5.js → chunk-34GCWLNV.js} +1 -1
  6. package/dist/bundle/chunks/{chunk-XJUVWITG.js → chunk-3FRTRCR6.js} +1 -1
  7. package/dist/bundle/chunks/chunk-5E5TLB76.js +8 -0
  8. package/dist/bundle/chunks/{chunk-AH72FRZ2.js → chunk-EHSDTQ6I.js} +13 -13
  9. package/dist/bundle/chunks/{chunk-VRAYXSST.js → chunk-FDLVINNY.js} +2 -2
  10. package/dist/bundle/chunks/{chunk-QNZ24YOQ.js → chunk-HGAX6JZ7.js} +3 -1
  11. package/dist/bundle/chunks/{chunk-QGBRSL64.js → chunk-HSH674C6.js} +1 -1
  12. package/dist/bundle/chunks/chunk-IUZUN32Z.js +13 -0
  13. package/dist/bundle/chunks/chunk-IXAUDPOK.js +2 -0
  14. package/dist/bundle/chunks/{chunk-NLOZDJQX.js → chunk-LF3XTYYF.js} +3 -3
  15. package/dist/bundle/chunks/{chunk-ANTGWIGI.js → chunk-MUC3MZTV.js} +1 -1
  16. package/dist/bundle/chunks/chunk-NQAVM5XL.js +2 -0
  17. package/dist/bundle/chunks/chunk-P7PWCGLJ.js +5 -0
  18. package/dist/bundle/chunks/{chunk-4C7LNOHI.js → chunk-PLZK7ABD.js} +1 -1
  19. package/dist/bundle/chunks/{chunk-CKNRCW35.js → chunk-RLRLQRI2.js} +1 -1
  20. package/dist/bundle/chunks/{chunk-7FXIHFZU.js → chunk-UAYBYTFN.js} +1 -1
  21. package/dist/bundle/chunks/{chunk-7A47FVQC.js → chunk-W4SRGDQ4.js} +3 -6
  22. package/dist/bundle/chunks/{chunk-QROWINIH.js → chunk-XK24AFYU.js} +1 -1
  23. package/dist/bundle/chunks/cli-main-MLJ2H637.js +3 -0
  24. package/dist/bundle/chunks/cursor-agent.js +38 -0
  25. package/dist/bundle/chunks/cursor.js +2 -0
  26. package/dist/bundle/chunks/devin-agent.js +5 -0
  27. package/dist/bundle/chunks/devin.js +75 -0
  28. package/dist/bundle/chunks/{help-fast-path-WQCATMI4.js → help-fast-path-RQDCLDQT.js} +1 -1
  29. package/dist/bundle/chunks/host-command-3LS772D5.js +2 -0
  30. package/dist/bundle/chunks/{host-lifecycle-EAXSS3F2.js → host-lifecycle-TA5XGUW5.js} +1 -1
  31. package/dist/bundle/chunks/host-lifecycle.js +20 -0
  32. package/dist/bundle/chunks/interactive-host-runtime-AITXUDCT.js +4 -0
  33. package/dist/bundle/chunks/interactive-mode-7C75IXNF.js +2 -0
  34. package/dist/bundle/chunks/{multi-session-host-OK6WMHB4.js → multi-session-host-2YCJKQOL.js} +1 -1
  35. package/dist/bundle/chunks/{openai-completions-2RS3VSPV.js → openai-completions-TOWYKX2U.js} +1 -1
  36. package/dist/bundle/chunks/{package-manager-cli-C2K4YRGI.js → package-manager-cli-4ANSELYT.js} +1 -1
  37. package/dist/bundle/chunks/{rotation-stream-536AQTIS.js → rotation-stream-KDLA7K6X.js} +1 -1
  38. package/dist/bundle/chunks/rpc-mode-OPFQIWFP.js +2 -0
  39. package/dist/bundle/chunks/{session-picker-BUHK3FCS.js → session-picker-DXCITGLS.js} +1 -1
  40. package/dist/bundle/chunks/session-worker.js +359 -346
  41. package/dist/bundle/chunks/{state-store-OYDXEIXU.js → state-store-HBBOD7I5.js} +1 -1
  42. package/dist/bundle/cli.js +1 -1
  43. package/dist/bundle/index.js +1 -1
  44. package/dist/bundle/rpc-entry.js +1 -1
  45. package/dist/cli/args.d.ts.map +1 -1
  46. package/dist/cli/args.js +2 -0
  47. package/dist/cli/args.js.map +1 -1
  48. package/dist/cli/deferred-commands.d.ts +7 -0
  49. package/dist/cli/deferred-commands.d.ts.map +1 -1
  50. package/dist/cli/deferred-commands.js +12 -0
  51. package/dist/cli/deferred-commands.js.map +1 -1
  52. package/dist/cli/host-command.d.ts +21 -0
  53. package/dist/cli/host-command.d.ts.map +1 -0
  54. package/dist/cli/host-command.js +148 -0
  55. package/dist/cli/host-command.js.map +1 -0
  56. package/dist/core/agent-session.d.ts +4 -0
  57. package/dist/core/agent-session.d.ts.map +1 -1
  58. package/dist/core/agent-session.js +57 -33
  59. package/dist/core/agent-session.js.map +1 -1
  60. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-7.d.ts +1 -1
  61. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-7.d.ts.map +1 -1
  62. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-7.js +2 -17
  63. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-7.js.map +1 -1
  64. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-8.d.ts +3 -0
  65. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-8.d.ts.map +1 -0
  66. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-8.js +5 -0
  67. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-8.js.map +1 -0
  68. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-code.d.ts +3 -0
  69. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-code.d.ts.map +1 -0
  70. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-code.js +28 -0
  71. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-code.js.map +1 -0
  72. package/dist/core/extensions/builtin/prompt-preset/presets.d.ts.map +1 -1
  73. package/dist/core/extensions/builtin/prompt-preset/presets.js +21 -1
  74. package/dist/core/extensions/builtin/prompt-preset/presets.js.map +1 -1
  75. package/dist/core/extensions/builtin/prompt-preset/settings.d.ts +1 -1
  76. package/dist/core/extensions/builtin/prompt-preset/settings.d.ts.map +1 -1
  77. package/dist/core/extensions/builtin/prompt-preset/settings.js +1 -0
  78. package/dist/core/extensions/builtin/prompt-preset/settings.js.map +1 -1
  79. package/dist/core/extensions/bun-extension-importer.d.ts.map +1 -1
  80. package/dist/core/extensions/bun-extension-importer.js +31 -5
  81. package/dist/core/extensions/bun-extension-importer.js.map +1 -1
  82. package/dist/core/extensions/bun-extension-registry.d.ts +9 -0
  83. package/dist/core/extensions/bun-extension-registry.d.ts.map +1 -1
  84. package/dist/core/extensions/bun-extension-registry.js +72 -16
  85. package/dist/core/extensions/bun-extension-registry.js.map +1 -1
  86. package/dist/core/extensions/extension-runtime-module.d.ts +5 -0
  87. package/dist/core/extensions/extension-runtime-module.d.ts.map +1 -0
  88. package/dist/core/extensions/extension-runtime-module.js +6 -0
  89. package/dist/core/extensions/extension-runtime-module.js.map +1 -0
  90. package/dist/core/model-resolver.d.ts.map +1 -1
  91. package/dist/core/model-resolver.js +1 -0
  92. package/dist/core/model-resolver.js.map +1 -1
  93. package/dist/index.d.ts +2 -1
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +3 -1
  96. package/dist/index.js.map +1 -1
  97. package/dist/main.d.ts.map +1 -1
  98. package/dist/main.js +7 -1
  99. package/dist/main.js.map +1 -1
  100. package/dist/modes/index.d.ts +3 -0
  101. package/dist/modes/index.d.ts.map +1 -1
  102. package/dist/modes/index.js +5 -0
  103. package/dist/modes/index.js.map +1 -1
  104. package/dist/modes/rpc/host-daemon-env.d.ts +18 -0
  105. package/dist/modes/rpc/host-daemon-env.d.ts.map +1 -0
  106. package/dist/modes/rpc/host-daemon-env.js +95 -0
  107. package/dist/modes/rpc/host-daemon-env.js.map +1 -0
  108. package/dist/modes/rpc/host-decision.d.ts +1 -1
  109. package/dist/modes/rpc/host-decision.d.ts.map +1 -1
  110. package/dist/modes/rpc/host-decision.js +2 -0
  111. package/dist/modes/rpc/host-decision.js.map +1 -1
  112. package/dist/modes/rpc/host-ensure.js +8 -1
  113. package/dist/modes/rpc/host-ensure.js.map +1 -1
  114. package/dist/modes/rpc/host-launch-spec.d.ts +43 -0
  115. package/dist/modes/rpc/host-launch-spec.d.ts.map +1 -0
  116. package/dist/modes/rpc/host-launch-spec.js +183 -0
  117. package/dist/modes/rpc/host-launch-spec.js.map +1 -0
  118. package/dist/modes/rpc/host-launch.d.ts +3 -1
  119. package/dist/modes/rpc/host-launch.d.ts.map +1 -1
  120. package/dist/modes/rpc/host-launch.js +24 -5
  121. package/dist/modes/rpc/host-launch.js.map +1 -1
  122. package/dist/modes/rpc/host-lifecycle.d.ts.map +1 -1
  123. package/dist/modes/rpc/host-lifecycle.js +36 -2
  124. package/dist/modes/rpc/host-lifecycle.js.map +1 -1
  125. package/dist/modes/rpc/host-probe.d.ts +7 -0
  126. package/dist/modes/rpc/host-probe.d.ts.map +1 -1
  127. package/dist/modes/rpc/host-probe.js +15 -4
  128. package/dist/modes/rpc/host-probe.js.map +1 -1
  129. package/dist/modes/rpc/host-process-metrics.d.ts +10 -0
  130. package/dist/modes/rpc/host-process-metrics.d.ts.map +1 -0
  131. package/dist/modes/rpc/host-process-metrics.js +83 -0
  132. package/dist/modes/rpc/host-process-metrics.js.map +1 -0
  133. package/dist/modes/rpc/host-runner.d.ts +38 -0
  134. package/dist/modes/rpc/host-runner.d.ts.map +1 -0
  135. package/dist/modes/rpc/host-runner.js +195 -0
  136. package/dist/modes/rpc/host-runner.js.map +1 -0
  137. package/dist/modes/rpc/host-status.d.ts +58 -0
  138. package/dist/modes/rpc/host-status.d.ts.map +1 -0
  139. package/dist/modes/rpc/host-status.js +117 -0
  140. package/dist/modes/rpc/host-status.js.map +1 -0
  141. package/docs/extensions.md +35 -0
  142. package/docs/providers.md +30 -0
  143. package/docs/rpc.md +177 -15
  144. package/docs/settings.md +1 -1
  145. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +84 -0
  146. package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
  147. package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
  148. package/node_modules/@earendil-works/pi-ai/README.md +9 -0
  149. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
  150. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +1 -0
  151. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
  152. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +2 -2
  153. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  154. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +2 -2
  155. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
  156. package/node_modules/@earendil-works/pi-ai/dist/providers/all.d.ts +150 -7
  157. package/node_modules/@earendil-works/pi-ai/dist/providers/all.d.ts.map +1 -1
  158. package/node_modules/@earendil-works/pi-ai/dist/providers/all.js +17 -3
  159. package/node_modules/@earendil-works/pi-ai/dist/providers/all.js.map +1 -1
  160. package/node_modules/@earendil-works/pi-ai/dist/providers/bai-stream.d.ts +13 -0
  161. package/node_modules/@earendil-works/pi-ai/dist/providers/bai-stream.d.ts.map +1 -0
  162. package/node_modules/@earendil-works/pi-ai/dist/providers/bai-stream.js +55 -0
  163. package/node_modules/@earendil-works/pi-ai/dist/providers/bai-stream.js.map +1 -0
  164. package/node_modules/@earendil-works/pi-ai/dist/providers/bai.d.ts +11 -0
  165. package/node_modules/@earendil-works/pi-ai/dist/providers/bai.d.ts.map +1 -0
  166. package/node_modules/@earendil-works/pi-ai/dist/providers/bai.js +94 -0
  167. package/node_modules/@earendil-works/pi-ai/dist/providers/bai.js.map +1 -0
  168. package/node_modules/@earendil-works/pi-ai/dist/providers/bai.models.d.ts +4 -0
  169. package/node_modules/@earendil-works/pi-ai/dist/providers/bai.models.d.ts.map +1 -0
  170. package/node_modules/@earendil-works/pi-ai/dist/providers/bai.models.js +6 -0
  171. package/node_modules/@earendil-works/pi-ai/dist/providers/bai.models.js.map +1 -0
  172. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  173. package/node_modules/@earendil-works/pi-ai/dist/providers/data/bai.json +1 -0
  174. package/node_modules/@earendil-works/pi-ai/dist/providers/data/mistral.json +1 -1
  175. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  176. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opengateway.json +1 -1
  177. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  178. package/node_modules/@earendil-works/pi-ai/dist/providers/data/venice.json +1 -1
  179. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  180. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.d.ts +142 -1
  181. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.d.ts.map +1 -1
  182. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js +156 -3
  183. package/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js.map +1 -1
  184. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +1 -1
  185. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  186. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  187. package/node_modules/@earendil-works/pi-ai/package.json +2 -2
  188. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  189. package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  190. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  191. package/package.json +7 -7
  192. package/dist/bundle/chunks/bun-extension-importer-SW7XGNSG.js +0 -10
  193. package/dist/bundle/chunks/chunk-AGXZF7RF.js +0 -2
  194. package/dist/bundle/chunks/chunk-F5JZNLDE.js +0 -8
  195. package/dist/bundle/chunks/cli-main-4TWJXJKM.js +0 -3
  196. package/dist/bundle/chunks/interactive-host-runtime-EDXG6A5L.js +0 -4
  197. package/dist/bundle/chunks/interactive-mode-PD7S7KFZ.js +0 -2
  198. package/dist/bundle/chunks/rpc-mode-TIJFUWXS.js +0 -2
  199. package/node_modules/@earendil-works/pi-ai/dist/providers/data/kimi-coding.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"models.generated.js","sourceRoot":"","sources":["../src/models.generated.ts"],"names":[],"mappings":"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","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 { ALIBABA_TOKEN_PLAN_MODELS } from \"./providers/alibaba-token-plan.models.ts\";\nimport { AMAZON_BEDROCK_MODELS } from \"./providers/amazon-bedrock.models.ts\";\nimport { ANT_LING_MODELS } from \"./providers/ant-ling.models.ts\";\nimport { ANTHROPIC_MODELS } from \"./providers/anthropic.models.ts\";\nimport { AZURE_OPENAI_RESPONSES_MODELS } from \"./providers/azure-openai-responses.models.ts\";\nimport { BASETEN_MODELS } from \"./providers/baseten.models.ts\";\nimport { CEREBRAS_MODELS } from \"./providers/cerebras.models.ts\";\nimport { CLOUDFLARE_AI_GATEWAY_MODELS } from \"./providers/cloudflare-ai-gateway.models.ts\";\nimport { CLOUDFLARE_WORKERS_AI_MODELS } from \"./providers/cloudflare-workers-ai.models.ts\";\nimport { DEEPSEEK_MODELS } from \"./providers/deepseek.models.ts\";\nimport { FIREWORKS_MODELS } from \"./providers/fireworks.models.ts\";\nimport { GITHUB_COPILOT_MODELS } from \"./providers/github-copilot.models.ts\";\nimport { GOOGLE_MODELS } from \"./providers/google.models.ts\";\nimport { GOOGLE_VERTEX_MODELS } from \"./providers/google-vertex.models.ts\";\nimport { GROQ_MODELS } from \"./providers/groq.models.ts\";\nimport { HUGGINGFACE_MODELS } from \"./providers/huggingface.models.ts\";\nimport { KIMI_CODING_MODELS } from \"./providers/kimi-coding.models.ts\";\nimport { MINIMAX_MODELS } from \"./providers/minimax.models.ts\";\nimport { MINIMAX_CN_MODELS } from \"./providers/minimax-cn.models.ts\";\nimport { MISTRAL_MODELS } from \"./providers/mistral.models.ts\";\nimport { MOONSHOTAI_MODELS } from \"./providers/moonshotai.models.ts\";\nimport { MOONSHOTAI_CN_MODELS } from \"./providers/moonshotai-cn.models.ts\";\nimport { NVIDIA_MODELS } from \"./providers/nvidia.models.ts\";\nimport { OPENAI_MODELS } from \"./providers/openai.models.ts\";\nimport { OPENAI_CODEX_MODELS } from \"./providers/openai-codex.models.ts\";\nimport { OPENCODE_MODELS } from \"./providers/opencode.models.ts\";\nimport { OPENCODE_GO_MODELS } from \"./providers/opencode-go.models.ts\";\nimport { OPENGATEWAY_MODELS } from \"./providers/opengateway.models.ts\";\nimport { OPENROUTER_MODELS } from \"./providers/openrouter.models.ts\";\nimport { QWEN_TOKEN_PLAN_MODELS } from \"./providers/qwen-token-plan.models.ts\";\nimport { QWEN_TOKEN_PLAN_CN_MODELS } from \"./providers/qwen-token-plan-cn.models.ts\";\nimport { QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS } from \"./providers/qwen-token-plan-individual.models.ts\";\nimport { TOGETHER_MODELS } from \"./providers/together.models.ts\";\nimport { VENICE_MODELS } from \"./providers/venice.models.ts\";\nimport { VERCEL_AI_GATEWAY_MODELS } from \"./providers/vercel-ai-gateway.models.ts\";\nimport { XAI_MODELS } from \"./providers/xai.models.ts\";\nimport { XIAOMI_MODELS } from \"./providers/xiaomi.models.ts\";\nimport { XIAOMI_TOKEN_PLAN_AMS_MODELS } from \"./providers/xiaomi-token-plan-ams.models.ts\";\nimport { XIAOMI_TOKEN_PLAN_CN_MODELS } from \"./providers/xiaomi-token-plan-cn.models.ts\";\nimport { XIAOMI_TOKEN_PLAN_SGP_MODELS } from \"./providers/xiaomi-token-plan-sgp.models.ts\";\nimport { ZAI_MODELS } from \"./providers/zai.models.ts\";\nimport { ZAI_CODING_CN_MODELS } from \"./providers/zai-coding-cn.models.ts\";\n\nexport const MODELS: {\n\treadonly \"alibaba-token-plan\": typeof ALIBABA_TOKEN_PLAN_MODELS;\n\treadonly \"amazon-bedrock\": typeof AMAZON_BEDROCK_MODELS;\n\treadonly \"ant-ling\": typeof ANT_LING_MODELS;\n\treadonly \"anthropic\": typeof ANTHROPIC_MODELS;\n\treadonly \"azure-openai-responses\": typeof AZURE_OPENAI_RESPONSES_MODELS;\n\treadonly \"baseten\": typeof BASETEN_MODELS;\n\treadonly \"cerebras\": typeof CEREBRAS_MODELS;\n\treadonly \"cloudflare-ai-gateway\": typeof CLOUDFLARE_AI_GATEWAY_MODELS;\n\treadonly \"cloudflare-workers-ai\": typeof CLOUDFLARE_WORKERS_AI_MODELS;\n\treadonly \"deepseek\": typeof DEEPSEEK_MODELS;\n\treadonly \"fireworks\": typeof FIREWORKS_MODELS;\n\treadonly \"github-copilot\": typeof GITHUB_COPILOT_MODELS;\n\treadonly \"google\": typeof GOOGLE_MODELS;\n\treadonly \"google-vertex\": typeof GOOGLE_VERTEX_MODELS;\n\treadonly \"groq\": typeof GROQ_MODELS;\n\treadonly \"huggingface\": typeof HUGGINGFACE_MODELS;\n\treadonly \"kimi-coding\": typeof KIMI_CODING_MODELS;\n\treadonly \"minimax\": typeof MINIMAX_MODELS;\n\treadonly \"minimax-cn\": typeof MINIMAX_CN_MODELS;\n\treadonly \"mistral\": typeof MISTRAL_MODELS;\n\treadonly \"moonshotai\": typeof MOONSHOTAI_MODELS;\n\treadonly \"moonshotai-cn\": typeof MOONSHOTAI_CN_MODELS;\n\treadonly \"nvidia\": typeof NVIDIA_MODELS;\n\treadonly \"openai\": typeof OPENAI_MODELS;\n\treadonly \"openai-codex\": typeof OPENAI_CODEX_MODELS;\n\treadonly \"opencode\": typeof OPENCODE_MODELS;\n\treadonly \"opencode-go\": typeof OPENCODE_GO_MODELS;\n\treadonly \"opengateway\": typeof OPENGATEWAY_MODELS;\n\treadonly \"openrouter\": typeof OPENROUTER_MODELS;\n\treadonly \"qwen-token-plan\": typeof QWEN_TOKEN_PLAN_MODELS;\n\treadonly \"qwen-token-plan-cn\": typeof QWEN_TOKEN_PLAN_CN_MODELS;\n\treadonly \"qwen-token-plan-individual\": typeof QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS;\n\treadonly \"together\": typeof TOGETHER_MODELS;\n\treadonly \"venice\": typeof VENICE_MODELS;\n\treadonly \"vercel-ai-gateway\": typeof VERCEL_AI_GATEWAY_MODELS;\n\treadonly \"xai\": typeof XAI_MODELS;\n\treadonly \"xiaomi\": typeof XIAOMI_MODELS;\n\treadonly \"xiaomi-token-plan-ams\": typeof XIAOMI_TOKEN_PLAN_AMS_MODELS;\n\treadonly \"xiaomi-token-plan-cn\": typeof XIAOMI_TOKEN_PLAN_CN_MODELS;\n\treadonly \"xiaomi-token-plan-sgp\": typeof XIAOMI_TOKEN_PLAN_SGP_MODELS;\n\treadonly \"zai\": typeof ZAI_MODELS;\n\treadonly \"zai-coding-cn\": typeof ZAI_CODING_CN_MODELS;\n} = {\n\t\"alibaba-token-plan\": ALIBABA_TOKEN_PLAN_MODELS,\n\t\"amazon-bedrock\": AMAZON_BEDROCK_MODELS,\n\t\"ant-ling\": ANT_LING_MODELS,\n\t\"anthropic\": ANTHROPIC_MODELS,\n\t\"azure-openai-responses\": AZURE_OPENAI_RESPONSES_MODELS,\n\t\"baseten\": BASETEN_MODELS,\n\t\"cerebras\": CEREBRAS_MODELS,\n\t\"cloudflare-ai-gateway\": CLOUDFLARE_AI_GATEWAY_MODELS,\n\t\"cloudflare-workers-ai\": CLOUDFLARE_WORKERS_AI_MODELS,\n\t\"deepseek\": DEEPSEEK_MODELS,\n\t\"fireworks\": FIREWORKS_MODELS,\n\t\"github-copilot\": GITHUB_COPILOT_MODELS,\n\t\"google\": GOOGLE_MODELS,\n\t\"google-vertex\": GOOGLE_VERTEX_MODELS,\n\t\"groq\": GROQ_MODELS,\n\t\"huggingface\": HUGGINGFACE_MODELS,\n\t\"kimi-coding\": KIMI_CODING_MODELS,\n\t\"minimax\": MINIMAX_MODELS,\n\t\"minimax-cn\": MINIMAX_CN_MODELS,\n\t\"mistral\": MISTRAL_MODELS,\n\t\"moonshotai\": MOONSHOTAI_MODELS,\n\t\"moonshotai-cn\": MOONSHOTAI_CN_MODELS,\n\t\"nvidia\": NVIDIA_MODELS,\n\t\"openai\": OPENAI_MODELS,\n\t\"openai-codex\": OPENAI_CODEX_MODELS,\n\t\"opencode\": OPENCODE_MODELS,\n\t\"opencode-go\": OPENCODE_GO_MODELS,\n\t\"opengateway\": OPENGATEWAY_MODELS,\n\t\"openrouter\": OPENROUTER_MODELS,\n\t\"qwen-token-plan\": QWEN_TOKEN_PLAN_MODELS,\n\t\"qwen-token-plan-cn\": QWEN_TOKEN_PLAN_CN_MODELS,\n\t\"qwen-token-plan-individual\": QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS,\n\t\"together\": TOGETHER_MODELS,\n\t\"venice\": VENICE_MODELS,\n\t\"vercel-ai-gateway\": VERCEL_AI_GATEWAY_MODELS,\n\t\"xai\": XAI_MODELS,\n\t\"xiaomi\": XIAOMI_MODELS,\n\t\"xiaomi-token-plan-ams\": XIAOMI_TOKEN_PLAN_AMS_MODELS,\n\t\"xiaomi-token-plan-cn\": XIAOMI_TOKEN_PLAN_CN_MODELS,\n\t\"xiaomi-token-plan-sgp\": XIAOMI_TOKEN_PLAN_SGP_MODELS,\n\t\"zai\": ZAI_MODELS,\n\t\"zai-coding-cn\": ZAI_CODING_CN_MODELS,\n};\n"]}
1
+ {"version":3,"file":"models.generated.js","sourceRoot":"","sources":["../src/models.generated.ts"],"names":[],"mappings":"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","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 { ALIBABA_TOKEN_PLAN_MODELS } from \"./providers/alibaba-token-plan.models.ts\";\nimport { AMAZON_BEDROCK_MODELS } from \"./providers/amazon-bedrock.models.ts\";\nimport { ANT_LING_MODELS } from \"./providers/ant-ling.models.ts\";\nimport { ANTHROPIC_MODELS } from \"./providers/anthropic.models.ts\";\nimport { AZURE_OPENAI_RESPONSES_MODELS } from \"./providers/azure-openai-responses.models.ts\";\nimport { BAI_MODELS } from \"./providers/bai.models.ts\";\nimport { BASETEN_MODELS } from \"./providers/baseten.models.ts\";\nimport { CEREBRAS_MODELS } from \"./providers/cerebras.models.ts\";\nimport { CLOUDFLARE_AI_GATEWAY_MODELS } from \"./providers/cloudflare-ai-gateway.models.ts\";\nimport { CLOUDFLARE_WORKERS_AI_MODELS } from \"./providers/cloudflare-workers-ai.models.ts\";\nimport { DEEPSEEK_MODELS } from \"./providers/deepseek.models.ts\";\nimport { FIREWORKS_MODELS } from \"./providers/fireworks.models.ts\";\nimport { GITHUB_COPILOT_MODELS } from \"./providers/github-copilot.models.ts\";\nimport { GOOGLE_MODELS } from \"./providers/google.models.ts\";\nimport { GOOGLE_VERTEX_MODELS } from \"./providers/google-vertex.models.ts\";\nimport { GROQ_MODELS } from \"./providers/groq.models.ts\";\nimport { HUGGINGFACE_MODELS } from \"./providers/huggingface.models.ts\";\nimport { MINIMAX_MODELS } from \"./providers/minimax.models.ts\";\nimport { MINIMAX_CN_MODELS } from \"./providers/minimax-cn.models.ts\";\nimport { MISTRAL_MODELS } from \"./providers/mistral.models.ts\";\nimport { MOONSHOTAI_MODELS } from \"./providers/moonshotai.models.ts\";\nimport { MOONSHOTAI_CN_MODELS } from \"./providers/moonshotai-cn.models.ts\";\nimport { NVIDIA_MODELS } from \"./providers/nvidia.models.ts\";\nimport { OPENAI_MODELS } from \"./providers/openai.models.ts\";\nimport { OPENAI_CODEX_MODELS } from \"./providers/openai-codex.models.ts\";\nimport { OPENCODE_MODELS } from \"./providers/opencode.models.ts\";\nimport { OPENCODE_GO_MODELS } from \"./providers/opencode-go.models.ts\";\nimport { OPENGATEWAY_MODELS } from \"./providers/opengateway.models.ts\";\nimport { OPENROUTER_MODELS } from \"./providers/openrouter.models.ts\";\nimport { QWEN_TOKEN_PLAN_MODELS } from \"./providers/qwen-token-plan.models.ts\";\nimport { QWEN_TOKEN_PLAN_CN_MODELS } from \"./providers/qwen-token-plan-cn.models.ts\";\nimport { QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS } from \"./providers/qwen-token-plan-individual.models.ts\";\nimport { TOGETHER_MODELS } from \"./providers/together.models.ts\";\nimport { VENICE_MODELS } from \"./providers/venice.models.ts\";\nimport { VERCEL_AI_GATEWAY_MODELS } from \"./providers/vercel-ai-gateway.models.ts\";\nimport { XAI_MODELS } from \"./providers/xai.models.ts\";\nimport { XIAOMI_MODELS } from \"./providers/xiaomi.models.ts\";\nimport { XIAOMI_TOKEN_PLAN_AMS_MODELS } from \"./providers/xiaomi-token-plan-ams.models.ts\";\nimport { XIAOMI_TOKEN_PLAN_CN_MODELS } from \"./providers/xiaomi-token-plan-cn.models.ts\";\nimport { XIAOMI_TOKEN_PLAN_SGP_MODELS } from \"./providers/xiaomi-token-plan-sgp.models.ts\";\nimport { ZAI_MODELS } from \"./providers/zai.models.ts\";\nimport { ZAI_CODING_CN_MODELS } from \"./providers/zai-coding-cn.models.ts\";\n\nexport const MODELS: {\n\treadonly \"alibaba-token-plan\": typeof ALIBABA_TOKEN_PLAN_MODELS;\n\treadonly \"amazon-bedrock\": typeof AMAZON_BEDROCK_MODELS;\n\treadonly \"ant-ling\": typeof ANT_LING_MODELS;\n\treadonly \"anthropic\": typeof ANTHROPIC_MODELS;\n\treadonly \"azure-openai-responses\": typeof AZURE_OPENAI_RESPONSES_MODELS;\n\treadonly \"bai\": typeof BAI_MODELS;\n\treadonly \"baseten\": typeof BASETEN_MODELS;\n\treadonly \"cerebras\": typeof CEREBRAS_MODELS;\n\treadonly \"cloudflare-ai-gateway\": typeof CLOUDFLARE_AI_GATEWAY_MODELS;\n\treadonly \"cloudflare-workers-ai\": typeof CLOUDFLARE_WORKERS_AI_MODELS;\n\treadonly \"deepseek\": typeof DEEPSEEK_MODELS;\n\treadonly \"fireworks\": typeof FIREWORKS_MODELS;\n\treadonly \"github-copilot\": typeof GITHUB_COPILOT_MODELS;\n\treadonly \"google\": typeof GOOGLE_MODELS;\n\treadonly \"google-vertex\": typeof GOOGLE_VERTEX_MODELS;\n\treadonly \"groq\": typeof GROQ_MODELS;\n\treadonly \"huggingface\": typeof HUGGINGFACE_MODELS;\n\treadonly \"minimax\": typeof MINIMAX_MODELS;\n\treadonly \"minimax-cn\": typeof MINIMAX_CN_MODELS;\n\treadonly \"mistral\": typeof MISTRAL_MODELS;\n\treadonly \"moonshotai\": typeof MOONSHOTAI_MODELS;\n\treadonly \"moonshotai-cn\": typeof MOONSHOTAI_CN_MODELS;\n\treadonly \"nvidia\": typeof NVIDIA_MODELS;\n\treadonly \"openai\": typeof OPENAI_MODELS;\n\treadonly \"openai-codex\": typeof OPENAI_CODEX_MODELS;\n\treadonly \"opencode\": typeof OPENCODE_MODELS;\n\treadonly \"opencode-go\": typeof OPENCODE_GO_MODELS;\n\treadonly \"opengateway\": typeof OPENGATEWAY_MODELS;\n\treadonly \"openrouter\": typeof OPENROUTER_MODELS;\n\treadonly \"qwen-token-plan\": typeof QWEN_TOKEN_PLAN_MODELS;\n\treadonly \"qwen-token-plan-cn\": typeof QWEN_TOKEN_PLAN_CN_MODELS;\n\treadonly \"qwen-token-plan-individual\": typeof QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS;\n\treadonly \"together\": typeof TOGETHER_MODELS;\n\treadonly \"venice\": typeof VENICE_MODELS;\n\treadonly \"vercel-ai-gateway\": typeof VERCEL_AI_GATEWAY_MODELS;\n\treadonly \"xai\": typeof XAI_MODELS;\n\treadonly \"xiaomi\": typeof XIAOMI_MODELS;\n\treadonly \"xiaomi-token-plan-ams\": typeof XIAOMI_TOKEN_PLAN_AMS_MODELS;\n\treadonly \"xiaomi-token-plan-cn\": typeof XIAOMI_TOKEN_PLAN_CN_MODELS;\n\treadonly \"xiaomi-token-plan-sgp\": typeof XIAOMI_TOKEN_PLAN_SGP_MODELS;\n\treadonly \"zai\": typeof ZAI_MODELS;\n\treadonly \"zai-coding-cn\": typeof ZAI_CODING_CN_MODELS;\n} = {\n\t\"alibaba-token-plan\": ALIBABA_TOKEN_PLAN_MODELS,\n\t\"amazon-bedrock\": AMAZON_BEDROCK_MODELS,\n\t\"ant-ling\": ANT_LING_MODELS,\n\t\"anthropic\": ANTHROPIC_MODELS,\n\t\"azure-openai-responses\": AZURE_OPENAI_RESPONSES_MODELS,\n\t\"bai\": BAI_MODELS,\n\t\"baseten\": BASETEN_MODELS,\n\t\"cerebras\": CEREBRAS_MODELS,\n\t\"cloudflare-ai-gateway\": CLOUDFLARE_AI_GATEWAY_MODELS,\n\t\"cloudflare-workers-ai\": CLOUDFLARE_WORKERS_AI_MODELS,\n\t\"deepseek\": DEEPSEEK_MODELS,\n\t\"fireworks\": FIREWORKS_MODELS,\n\t\"github-copilot\": GITHUB_COPILOT_MODELS,\n\t\"google\": GOOGLE_MODELS,\n\t\"google-vertex\": GOOGLE_VERTEX_MODELS,\n\t\"groq\": GROQ_MODELS,\n\t\"huggingface\": HUGGINGFACE_MODELS,\n\t\"minimax\": MINIMAX_MODELS,\n\t\"minimax-cn\": MINIMAX_CN_MODELS,\n\t\"mistral\": MISTRAL_MODELS,\n\t\"moonshotai\": MOONSHOTAI_MODELS,\n\t\"moonshotai-cn\": MOONSHOTAI_CN_MODELS,\n\t\"nvidia\": NVIDIA_MODELS,\n\t\"openai\": OPENAI_MODELS,\n\t\"openai-codex\": OPENAI_CODEX_MODELS,\n\t\"opencode\": OPENCODE_MODELS,\n\t\"opencode-go\": OPENCODE_GO_MODELS,\n\t\"opengateway\": OPENGATEWAY_MODELS,\n\t\"openrouter\": OPENROUTER_MODELS,\n\t\"qwen-token-plan\": QWEN_TOKEN_PLAN_MODELS,\n\t\"qwen-token-plan-cn\": QWEN_TOKEN_PLAN_CN_MODELS,\n\t\"qwen-token-plan-individual\": QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS,\n\t\"together\": TOGETHER_MODELS,\n\t\"venice\": VENICE_MODELS,\n\t\"vercel-ai-gateway\": VERCEL_AI_GATEWAY_MODELS,\n\t\"xai\": XAI_MODELS,\n\t\"xiaomi\": XIAOMI_MODELS,\n\t\"xiaomi-token-plan-ams\": XIAOMI_TOKEN_PLAN_AMS_MODELS,\n\t\"xiaomi-token-plan-cn\": XIAOMI_TOKEN_PLAN_CN_MODELS,\n\t\"xiaomi-token-plan-sgp\": XIAOMI_TOKEN_PLAN_SGP_MODELS,\n\t\"zai\": ZAI_MODELS,\n\t\"zai-coding-cn\": ZAI_CODING_CN_MODELS,\n};\n"]}
@@ -5,19 +5,162 @@ import type { Api, Model } from "../types.ts";
5
5
  import { ollamaProvider } from "./ollama.ts";
6
6
  import { radiusProvider } from "./radius.ts";
7
7
  export { ollamaProvider, radiusProvider };
8
- /** Providers present in the generated catalog. `KnownProvider` additionally
9
- * includes purely dynamic providers (e.g. "radius") that have no static
10
- * catalog entry. */
11
- export type BuiltinProvider = keyof typeof MODELS;
12
- type BuiltinModelApi<TProvider extends BuiltinProvider, TModelId extends keyof (typeof MODELS)[TProvider]> = (typeof MODELS)[TProvider][TModelId] extends {
8
+ /**
9
+ * Catalogs the fork owns by hand because models.dev does not describe them.
10
+ *
11
+ * A generation run emits neither their shard nor their data file, so they can
12
+ * never appear in `MODELS`; they are still shipped providers and every catalog
13
+ * read below must see them exactly like a generated one.
14
+ */
15
+ declare const FORK_OWNED_CATALOGS: {
16
+ readonly "kimi-coding": import("../model-catalog.ts").ModelCatalog<{
17
+ readonly "anthropic-messages": {
18
+ readonly k3: {
19
+ readonly id: "k3";
20
+ readonly name: "Kimi K3";
21
+ readonly api: "anthropic-messages";
22
+ readonly provider: "kimi-coding";
23
+ readonly baseUrl: "https://api.kimi.com/coding";
24
+ readonly compat: {
25
+ readonly allowEmptySignature: true;
26
+ readonly forceAdaptiveThinking: true;
27
+ };
28
+ readonly reasoning: true;
29
+ readonly thinkingLevelMap: {
30
+ readonly off: null;
31
+ readonly minimal: null;
32
+ readonly low: "low";
33
+ readonly medium: null;
34
+ readonly high: "high";
35
+ readonly xhigh: null;
36
+ readonly max: "max";
37
+ };
38
+ readonly input: readonly ["text", "image", "video"];
39
+ readonly cost: {
40
+ readonly input: 3;
41
+ readonly output: 15;
42
+ readonly cacheRead: 0.3;
43
+ readonly cacheWrite: 0;
44
+ };
45
+ readonly contextWindow: 1048576;
46
+ readonly maxTokens: 131072;
47
+ };
48
+ readonly "k3-256k": {
49
+ readonly id: "k3-256k";
50
+ readonly name: "Kimi K3-256K";
51
+ readonly api: "anthropic-messages";
52
+ readonly provider: "kimi-coding";
53
+ readonly baseUrl: "https://api.kimi.com/coding";
54
+ readonly compat: {
55
+ readonly forceAdaptiveThinking: true;
56
+ };
57
+ readonly reasoning: true;
58
+ readonly input: readonly ["text", "image"];
59
+ readonly cost: {
60
+ readonly input: 0;
61
+ readonly output: 0;
62
+ readonly cacheRead: 0;
63
+ readonly cacheWrite: 0;
64
+ };
65
+ readonly contextWindow: 262144;
66
+ readonly maxTokens: 131072;
67
+ readonly thinkingLevelMap: {
68
+ readonly off: null;
69
+ readonly minimal: null;
70
+ readonly low: "low";
71
+ readonly medium: null;
72
+ readonly high: "high";
73
+ readonly xhigh: null;
74
+ readonly max: "max";
75
+ };
76
+ };
77
+ readonly "kimi-for-coding": {
78
+ readonly id: "kimi-for-coding";
79
+ readonly name: "kimi-for-coding";
80
+ readonly api: "anthropic-messages";
81
+ readonly provider: "kimi-coding";
82
+ readonly baseUrl: "https://api.kimi.com/coding";
83
+ readonly compat: {
84
+ readonly allowEmptySignature: true;
85
+ readonly forceAdaptiveThinking: true;
86
+ };
87
+ readonly reasoning: true;
88
+ readonly input: readonly ["text", "image"];
89
+ readonly cost: {
90
+ readonly input: 0.95;
91
+ readonly output: 4;
92
+ readonly cacheRead: 0.19;
93
+ readonly cacheWrite: 0;
94
+ };
95
+ readonly contextWindow: 1048576;
96
+ readonly maxTokens: 32768;
97
+ readonly thinkingLevelMap: {
98
+ readonly off: null;
99
+ readonly minimal: null;
100
+ readonly low: "low";
101
+ readonly medium: null;
102
+ readonly high: "high";
103
+ readonly xhigh: null;
104
+ readonly max: "max";
105
+ };
106
+ };
107
+ readonly "kimi-for-coding-highspeed": {
108
+ readonly id: "kimi-for-coding-highspeed";
109
+ readonly name: "Kimi For Coding HighSpeed";
110
+ readonly api: "anthropic-messages";
111
+ readonly provider: "kimi-coding";
112
+ readonly baseUrl: "https://api.kimi.com/coding";
113
+ readonly compat: {
114
+ readonly forceAdaptiveThinking: true;
115
+ };
116
+ readonly reasoning: true;
117
+ readonly input: readonly ["text", "image"];
118
+ readonly cost: {
119
+ readonly input: 1.9;
120
+ readonly output: 8;
121
+ readonly cacheRead: 0.38;
122
+ readonly cacheWrite: 0;
123
+ };
124
+ readonly contextWindow: 262144;
125
+ readonly maxTokens: 32768;
126
+ };
127
+ readonly "kimi-k2-thinking": {
128
+ readonly id: "kimi-k2-thinking";
129
+ readonly name: "Kimi K2 Thinking";
130
+ readonly api: "anthropic-messages";
131
+ readonly provider: "kimi-coding";
132
+ readonly baseUrl: "https://api.kimi.com/coding";
133
+ readonly compat: {
134
+ readonly forceAdaptiveThinking: true;
135
+ };
136
+ readonly reasoning: true;
137
+ readonly input: readonly ["text"];
138
+ readonly cost: {
139
+ readonly input: 0.6;
140
+ readonly output: 2.5;
141
+ readonly cacheRead: 0.15;
142
+ readonly cacheWrite: 0;
143
+ };
144
+ readonly contextWindow: 262144;
145
+ readonly maxTokens: 32768;
146
+ };
147
+ };
148
+ }, "kimi-coding">;
149
+ };
150
+ type BuiltinCatalogs = typeof MODELS & typeof FORK_OWNED_CATALOGS;
151
+ /** Providers present in the generated catalog, plus the fork-owned ones.
152
+ * `KnownProvider` additionally includes purely dynamic providers
153
+ * (e.g. "radius") that have no static catalog entry. */
154
+ export type BuiltinProvider = keyof BuiltinCatalogs;
155
+ type BuiltinModelApi<TProvider extends BuiltinProvider, TModelId extends keyof BuiltinCatalogs[TProvider]> = BuiltinCatalogs[TProvider][TModelId] extends {
13
156
  api: infer TApi;
14
157
  } ? (TApi extends Api ? TApi : never) : never;
15
158
  /** Typed read of the generated built-in catalog. */
16
- export declare function getBuiltinModel<TProvider extends BuiltinProvider, TModelId extends keyof (typeof MODELS)[TProvider]>(provider: TProvider, modelId: TModelId): Model<BuiltinModelApi<TProvider, TModelId>>;
159
+ export declare function getBuiltinModel<TProvider extends BuiltinProvider, TModelId extends keyof BuiltinCatalogs[TProvider]>(provider: TProvider, modelId: TModelId): Model<BuiltinModelApi<TProvider, TModelId>>;
17
160
  export declare function getBuiltinProviders(): BuiltinProvider[];
18
161
  /** Generation timestamp shared by all built-in provider catalogs. */
19
162
  export declare function getBuiltinModelDataGeneratedAt(): number | undefined;
20
- export declare function getBuiltinModels<TProvider extends BuiltinProvider>(provider: TProvider): Model<BuiltinModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[];
163
+ export declare function getBuiltinModels<TProvider extends BuiltinProvider>(provider: TProvider): Model<BuiltinModelApi<TProvider, keyof BuiltinCatalogs[TProvider]>>[];
21
164
  /** All built-in providers, freshly constructed. */
22
165
  export declare function builtinProviders(): Provider[];
23
166
  /** A `Models` collection with every built-in provider registered. */
@@ -1 +1 @@
1
- {"version":3,"file":"all.d.ts","sourceRoot":"","sources":["../../src/providers/all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,KAAK,mBAAmB,EAAgB,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AACzG,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA2B9C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAY7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAY7C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAE1C;;oBAEoB;AACpB,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,MAAM,CAAC;AAElD,KAAK,eAAe,CACnB,SAAS,SAAS,eAAe,EACjC,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,IAC9C,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAqCjH,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,SAAS,SAAS,eAAe,EAAE,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,EACnH,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,QAAQ,GACf,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAG7C;AAED,wBAAgB,mBAAmB,IAAI,eAAe,EAAE,CAEvD;AAED,qEAAqE;AACrE,wBAAgB,8BAA8B,IAAI,MAAM,GAAG,SAAS,CAGnE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,eAAe,EACjE,QAAQ,EAAE,SAAS,GACjB,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CASvE;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,IAAI,QAAQ,EAAE,CAiD7C;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,aAAa,CAM1E;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,IAAI,cAAc,EAAE,CAEzD;AAED,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAMtF"}
1
+ {"version":3,"file":"all.d.ts","sourceRoot":"","sources":["../../src/providers/all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,KAAK,mBAAmB,EAAgB,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AACzG,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA6B9C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAY7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAY7C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAE1C;;;;;;GAMG;AACH,QAAA,MAAM,mBAAmB;aACxB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ,CAAC;AAEX,KAAK,eAAe,GAAG,OAAO,MAAM,GAAG,OAAO,mBAAmB,CAAC;AAIlE;;wDAEwD;AACxD,MAAM,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC;AAEpD,KAAK,eAAe,CACnB,SAAS,SAAS,eAAe,EACjC,QAAQ,SAAS,MAAM,eAAe,CAAC,SAAS,CAAC,IAC9C,eAAe,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAqCjH,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,SAAS,SAAS,eAAe,EAAE,QAAQ,SAAS,MAAM,eAAe,CAAC,SAAS,CAAC,EACnH,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,QAAQ,GACf,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAG7C;AAED,wBAAgB,mBAAmB,IAAI,eAAe,EAAE,CAEvD;AAED,qEAAqE;AACrE,wBAAgB,8BAA8B,IAAI,MAAM,GAAG,SAAS,CAGnE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,eAAe,EACjE,QAAQ,EAAE,SAAS,GACjB,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CASvE;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,IAAI,QAAQ,EAAE,CAkD7C;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,aAAa,CAM1E;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,IAAI,cAAc,EAAE,CAEzD;AAED,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAMtF"}
@@ -6,6 +6,7 @@ import { amazonBedrockProvider } from "./amazon-bedrock.js";
6
6
  import { antLingProvider } from "./ant-ling.js";
7
7
  import { anthropicProvider } from "./anthropic.js";
8
8
  import { azureOpenAIResponsesProvider } from "./azure-openai-responses.js";
9
+ import { baiProvider } from "./bai.js";
9
10
  import { basetenProvider } from "./baseten.js";
10
11
  import { cerebrasProvider } from "./cerebras.js";
11
12
  import { cloudflareAIGatewayProvider } from "./cloudflare-ai-gateway.js";
@@ -20,6 +21,7 @@ import { googleProvider } from "./google.js";
20
21
  import { googleVertexProvider } from "./google-vertex.js";
21
22
  import { groqProvider } from "./groq.js";
22
23
  import { huggingfaceProvider } from "./huggingface.js";
24
+ import { KIMI_CODING_MODELS } from "./kimi-coding.models.js";
23
25
  import { kimiCodingProvider } from "./kimi-coding.js";
24
26
  import { minimaxProvider } from "./minimax.js";
25
27
  import { minimaxCnProvider } from "./minimax-cn.js";
@@ -51,6 +53,17 @@ import { xiaomiTokenPlanSgpProvider } from "./xiaomi-token-plan-sgp.js";
51
53
  import { zaiProvider } from "./zai.js";
52
54
  import { zaiCodingCnProvider } from "./zai-coding-cn.js";
53
55
  export { ollamaProvider, radiusProvider };
56
+ /**
57
+ * Catalogs the fork owns by hand because models.dev does not describe them.
58
+ *
59
+ * A generation run emits neither their shard nor their data file, so they can
60
+ * never appear in `MODELS`; they are still shipped providers and every catalog
61
+ * read below must see them exactly like a generated one.
62
+ */
63
+ const FORK_OWNED_CATALOGS = {
64
+ "kimi-coding": KIMI_CODING_MODELS,
65
+ };
66
+ const BUILTIN_CATALOGS = { ...MODELS, ...FORK_OWNED_CATALOGS };
54
67
  const XIAOMI_MIMO_PROVIDERS = new Set([
55
68
  "xiaomi",
56
69
  "xiaomi-token-plan-cn",
@@ -84,11 +97,11 @@ function normalizeBuiltinModel(model) {
84
97
  }
85
98
  /** Typed read of the generated built-in catalog. */
86
99
  export function getBuiltinModel(provider, modelId) {
87
- const models = MODELS[provider];
100
+ const models = BUILTIN_CATALOGS[provider];
88
101
  return normalizeBuiltinModel(models?.[modelId]);
89
102
  }
90
103
  export function getBuiltinProviders() {
91
- return Object.keys(MODELS);
104
+ return Object.keys(BUILTIN_CATALOGS);
92
105
  }
93
106
  /** Generation timestamp shared by all built-in provider catalogs. */
94
107
  export function getBuiltinModelDataGeneratedAt() {
@@ -96,7 +109,7 @@ export function getBuiltinModelDataGeneratedAt() {
96
109
  return Number.isNaN(generatedAt) ? undefined : generatedAt;
97
110
  }
98
111
  export function getBuiltinModels(provider) {
99
- const models = MODELS[provider];
112
+ const models = BUILTIN_CATALOGS[provider];
100
113
  return models
101
114
  ? Object.values(models)
102
115
  .map((model) => normalizeBuiltinModel(model))
@@ -111,6 +124,7 @@ export function builtinProviders() {
111
124
  antLingProvider(),
112
125
  anthropicProvider(),
113
126
  azureOpenAIResponsesProvider(),
127
+ baiProvider(),
114
128
  basetenProvider(),
115
129
  cerebrasProvider(),
116
130
  cloudflareAIGatewayProvider(),
@@ -1 +1 @@
1
- {"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/providers/all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAiD,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAA4B,YAAY,EAAqC,MAAM,cAAc,CAAC;AAEzG,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,iBAAiB,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAY1C,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACrC,QAAQ;IACR,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;CACvB,CAAC,CAAC;AAEH,SAAS,qBAAqB,CAAmB,KAA8B;IAC9E,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,IAAI,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,eAAe,EAAE,CAAC;QAC/E,OAAO;YACN,GAAG,KAAK;YACR,MAAM,EAAE;gBACP,GAAG,KAAK,CAAC,MAAM;gBACf,2CAA2C,EAAE,IAAI;gBACjD,cAAc,EAAE,UAAU;gBAC1B,wBAAwB,EAAE,KAAK;aAC/B;SACc,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW,IAAI,KAAK,CAAC,EAAE,KAAK,iBAAiB,EAAE,CAAC;QACtE,OAAO;YACN,GAAG,KAAK;YACR,gBAAgB,EAAE;gBACjB,GAAG,KAAK,CAAC,gBAAgB;gBACzB,GAAG,EAAE,KAAK;aACV;SACD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,eAAe,CAC9B,QAAmB,EACnB,OAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAA2C,CAAC;IAC1E,OAAO,qBAAqB,CAAC,MAAM,EAAE,CAAC,OAAiB,CAAC,CAAgD,CAAC;AAC1G,CAAC;AAED,MAAM,UAAU,mBAAmB;IAClC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAsB,CAAC;AACjD,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,8BAA8B;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC/B,QAAmB;IAEnB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAA2C,CAAC;IAC1E,OAAO,MAAM;QACZ,CAAC,CAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;aACrB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;aAC5C,MAAM,CAAC,CAAC,KAAK,EAAuB,EAAE,CAAC,KAAK,KAAK,SAAS,CAExD;QACL,CAAC,CAAC,EAAE,CAAC;AACP,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,gBAAgB;IAC/B,OAAO;QACN,wBAAwB,EAAE;QAC1B,qBAAqB,EAAE;QACvB,eAAe,EAAE;QACjB,iBAAiB,EAAE;QACnB,4BAA4B,EAAE;QAC9B,eAAe,EAAE;QACjB,gBAAgB,EAAE;QAClB,2BAA2B,EAAE;QAC7B,2BAA2B,EAAE;QAC7B,cAAc,EAAE;QAChB,aAAa,EAAE;QACf,gBAAgB,EAAE;QAClB,iBAAiB,EAAE;QACnB,qBAAqB,EAAE;QACvB,cAAc,EAAE;QAChB,oBAAoB,EAAE;QACtB,YAAY,EAAE;QACd,mBAAmB,EAAE;QACrB,kBAAkB,EAAE;QACpB,eAAe,EAAE;QACjB,iBAAiB,EAAE;QACnB,eAAe,EAAE;QACjB,kBAAkB,EAAE;QACpB,oBAAoB,EAAE;QACtB,cAAc,EAAE;QAChB,cAAc,EAAE;QAChB,mBAAmB,EAAE;QACrB,cAAc,EAAE;QAChB,gBAAgB,EAAE;QAClB,kBAAkB,EAAE;QACpB,mBAAmB,EAAE;QACrB,kBAAkB,EAAE;QACpB,qBAAqB,EAAE;QACvB,uBAAuB,EAAE;QACzB,+BAA+B,EAAE;QACjC,cAAc,EAAE;QAChB,gBAAgB,EAAE;QAClB,cAAc,EAAE;QAChB,uBAAuB,EAAE;QACzB,WAAW,EAAE;QACb,cAAc,EAAE;QAChB,0BAA0B,EAAE;QAC5B,yBAAyB,EAAE;QAC3B,0BAA0B,EAAE;QAC5B,WAAW,EAAE;QACb,mBAAmB,EAAE;KACrB,CAAC;AACH,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,aAAa,CAAC,OAA6B;IAC1D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,sBAAsB;IACrC,OAAO,CAAC,wBAAwB,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAChE,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,KAAK,MAAM,QAAQ,IAAI,sBAAsB,EAAE,EAAE,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC","sourcesContent":["import { createImagesModels, type ImagesProvider, type MutableImagesModels } from \"../images-models.ts\";\nimport { MODELS } from \"../models.generated.ts\";\nimport { type CreateModelsOptions, createModels, type MutableModels, type Provider } from \"../models.ts\";\nimport type { Api, Model } from \"../types.ts\";\nimport { alibabaTokenPlanProvider } from \"./alibaba-token-plan.ts\";\nimport { amazonBedrockProvider } from \"./amazon-bedrock.ts\";\nimport { antLingProvider } from \"./ant-ling.ts\";\nimport { anthropicProvider } from \"./anthropic.ts\";\nimport { azureOpenAIResponsesProvider } from \"./azure-openai-responses.ts\";\nimport { basetenProvider } from \"./baseten.ts\";\nimport { cerebrasProvider } from \"./cerebras.ts\";\nimport { cloudflareAIGatewayProvider } from \"./cloudflare-ai-gateway.ts\";\nimport { cloudflareWorkersAIProvider } from \"./cloudflare-workers-ai.ts\";\nimport { cursorProvider } from \"./cursor.ts\";\nimport modelDataManifest from \"./data/.manifest.json\" with { type: \"json\" };\nimport { deepseekProvider } from \"./deepseek.ts\";\nimport { devinProvider } from \"./devin.ts\";\nimport { fireworksProvider } from \"./fireworks.ts\";\nimport { githubCopilotProvider } from \"./github-copilot.ts\";\nimport { googleProvider } from \"./google.ts\";\nimport { googleVertexProvider } from \"./google-vertex.ts\";\nimport { groqProvider } from \"./groq.ts\";\nimport { huggingfaceProvider } from \"./huggingface.ts\";\nimport { kimiCodingProvider } from \"./kimi-coding.ts\";\nimport { minimaxProvider } from \"./minimax.ts\";\nimport { minimaxCnProvider } from \"./minimax-cn.ts\";\nimport { mistralProvider } from \"./mistral.ts\";\nimport { moonshotaiProvider } from \"./moonshotai.ts\";\nimport { moonshotaiCnProvider } from \"./moonshotai-cn.ts\";\nimport { nvidiaProvider } from \"./nvidia.ts\";\nimport { ollamaProvider } from \"./ollama.ts\";\nimport { openaiProvider } from \"./openai.ts\";\nimport { openaiCodexProvider } from \"./openai-codex.ts\";\nimport { openaiImagesProvider } from \"./openai-images.ts\";\nimport { opencodeProvider } from \"./opencode.ts\";\nimport { opencodeGoProvider } from \"./opencode-go.ts\";\nimport { opengatewayProvider } from \"./opengateway.ts\";\nimport { openrouterProvider } from \"./openrouter.ts\";\nimport { openrouterImagesProvider } from \"./openrouter-images.ts\";\nimport { qwenTokenPlanProvider } from \"./qwen-token-plan.ts\";\nimport { qwenTokenPlanCnProvider } from \"./qwen-token-plan-cn.ts\";\nimport { qwenTokenPlanIndividualProvider } from \"./qwen-token-plan-individual.ts\";\nimport { radiusProvider } from \"./radius.ts\";\nimport { togetherProvider } from \"./together.ts\";\nimport { veniceProvider } from \"./venice.ts\";\nimport { vercelAIGatewayProvider } from \"./vercel-ai-gateway.ts\";\nimport { xaiProvider } from \"./xai.ts\";\nimport { xiaomiProvider } from \"./xiaomi.ts\";\nimport { xiaomiTokenPlanAmsProvider } from \"./xiaomi-token-plan-ams.ts\";\nimport { xiaomiTokenPlanCnProvider } from \"./xiaomi-token-plan-cn.ts\";\nimport { xiaomiTokenPlanSgpProvider } from \"./xiaomi-token-plan-sgp.ts\";\nimport { zaiProvider } from \"./zai.ts\";\nimport { zaiCodingCnProvider } from \"./zai-coding-cn.ts\";\n\nexport { ollamaProvider, radiusProvider };\n\n/** Providers present in the generated catalog. `KnownProvider` additionally\n * includes purely dynamic providers (e.g. \"radius\") that have no static\n * catalog entry. */\nexport type BuiltinProvider = keyof typeof MODELS;\n\ntype BuiltinModelApi<\n\tTProvider extends BuiltinProvider,\n\tTModelId extends keyof (typeof MODELS)[TProvider],\n> = (typeof MODELS)[TProvider][TModelId] extends { api: infer TApi } ? (TApi extends Api ? TApi : never) : never;\n\nconst XIAOMI_MIMO_PROVIDERS = new Set([\n\t\"xiaomi\",\n\t\"xiaomi-token-plan-cn\",\n\t\"xiaomi-token-plan-ams\",\n\t\"xiaomi-token-plan-sgp\",\n]);\n\nfunction normalizeBuiltinModel<TApi extends Api>(model: Model<TApi> | undefined): Model<TApi> | undefined {\n\tif (!model) return undefined;\n\n\tif (XIAOMI_MIMO_PROVIDERS.has(model.provider) && model.id === \"mimo-v2.5-pro\") {\n\t\treturn {\n\t\t\t...model,\n\t\t\tcompat: {\n\t\t\t\t...model.compat,\n\t\t\t\trequiresReasoningContentOnAssistantMessages: true,\n\t\t\t\tthinkingFormat: \"deepseek\",\n\t\t\t\tsupportsDisabledThinking: false,\n\t\t\t},\n\t\t} as Model<TApi>;\n\t}\n\n\tif (model.provider === \"anthropic\" && model.id === \"claude-opus-4-8\") {\n\t\treturn {\n\t\t\t...model,\n\t\t\tthinkingLevelMap: {\n\t\t\t\t...model.thinkingLevelMap,\n\t\t\t\tmax: \"max\",\n\t\t\t},\n\t\t};\n\t}\n\n\treturn model;\n}\n\n/** Typed read of the generated built-in catalog. */\nexport function getBuiltinModel<TProvider extends BuiltinProvider, TModelId extends keyof (typeof MODELS)[TProvider]>(\n\tprovider: TProvider,\n\tmodelId: TModelId,\n): Model<BuiltinModelApi<TProvider, TModelId>> {\n\tconst models = MODELS[provider] as Record<string, Model<Api>> | undefined;\n\treturn normalizeBuiltinModel(models?.[modelId as string]) as Model<BuiltinModelApi<TProvider, TModelId>>;\n}\n\nexport function getBuiltinProviders(): BuiltinProvider[] {\n\treturn Object.keys(MODELS) as BuiltinProvider[];\n}\n\n/** Generation timestamp shared by all built-in provider catalogs. */\nexport function getBuiltinModelDataGeneratedAt(): number | undefined {\n\tconst generatedAt = Date.parse(modelDataManifest.generatedAt);\n\treturn Number.isNaN(generatedAt) ? undefined : generatedAt;\n}\n\nexport function getBuiltinModels<TProvider extends BuiltinProvider>(\n\tprovider: TProvider,\n): Model<BuiltinModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[] {\n\tconst models = MODELS[provider] as Record<string, Model<Api>> | undefined;\n\treturn models\n\t\t? (Object.values(models)\n\t\t\t\t.map((model) => normalizeBuiltinModel(model))\n\t\t\t\t.filter((model): model is Model<Api> => model !== undefined) as Model<\n\t\t\t\tBuiltinModelApi<TProvider, keyof (typeof MODELS)[TProvider]>\n\t\t\t>[])\n\t\t: [];\n}\n\n/** All built-in providers, freshly constructed. */\nexport function builtinProviders(): Provider[] {\n\treturn [\n\t\talibabaTokenPlanProvider(),\n\t\tamazonBedrockProvider(),\n\t\tantLingProvider(),\n\t\tanthropicProvider(),\n\t\tazureOpenAIResponsesProvider(),\n\t\tbasetenProvider(),\n\t\tcerebrasProvider(),\n\t\tcloudflareAIGatewayProvider(),\n\t\tcloudflareWorkersAIProvider(),\n\t\tcursorProvider(),\n\t\tdevinProvider(),\n\t\tdeepseekProvider(),\n\t\tfireworksProvider(),\n\t\tgithubCopilotProvider(),\n\t\tgoogleProvider(),\n\t\tgoogleVertexProvider(),\n\t\tgroqProvider(),\n\t\thuggingfaceProvider(),\n\t\tkimiCodingProvider(),\n\t\tminimaxProvider(),\n\t\tminimaxCnProvider(),\n\t\tmistralProvider(),\n\t\tmoonshotaiProvider(),\n\t\tmoonshotaiCnProvider(),\n\t\tnvidiaProvider(),\n\t\topenaiProvider(),\n\t\topenaiCodexProvider(),\n\t\tollamaProvider(),\n\t\topencodeProvider(),\n\t\topencodeGoProvider(),\n\t\topengatewayProvider(),\n\t\topenrouterProvider(),\n\t\tqwenTokenPlanProvider(),\n\t\tqwenTokenPlanCnProvider(),\n\t\tqwenTokenPlanIndividualProvider(),\n\t\tradiusProvider(),\n\t\ttogetherProvider(),\n\t\tveniceProvider(),\n\t\tvercelAIGatewayProvider(),\n\t\txaiProvider(),\n\t\txiaomiProvider(),\n\t\txiaomiTokenPlanAmsProvider(),\n\t\txiaomiTokenPlanCnProvider(),\n\t\txiaomiTokenPlanSgpProvider(),\n\t\tzaiProvider(),\n\t\tzaiCodingCnProvider(),\n\t];\n}\n\n/** A `Models` collection with every built-in provider registered. */\nexport function builtinModels(options?: CreateModelsOptions): MutableModels {\n\tconst models = createModels(options);\n\tfor (const provider of builtinProviders()) {\n\t\tmodels.setProvider(provider);\n\t}\n\treturn models;\n}\n\n/** All built-in image-generation providers, freshly constructed. */\nexport function builtinImagesProviders(): ImagesProvider[] {\n\treturn [openrouterImagesProvider(), openaiImagesProvider()];\n}\n\n/** An `ImagesModels` collection with every built-in image-generation provider registered. */\nexport function builtinImagesModels(options?: CreateModelsOptions): MutableImagesModels {\n\tconst models = createImagesModels(options);\n\tfor (const provider of builtinImagesProviders()) {\n\t\tmodels.setProvider(provider);\n\t}\n\treturn models;\n}\n"]}
1
+ {"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/providers/all.ts"],"names":[],"mappings":"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","sourcesContent":["import { createImagesModels, type ImagesProvider, type MutableImagesModels } from \"../images-models.ts\";\nimport { MODELS } from \"../models.generated.ts\";\nimport { type CreateModelsOptions, createModels, type MutableModels, type Provider } from \"../models.ts\";\nimport type { Api, Model } from \"../types.ts\";\nimport { alibabaTokenPlanProvider } from \"./alibaba-token-plan.ts\";\nimport { amazonBedrockProvider } from \"./amazon-bedrock.ts\";\nimport { antLingProvider } from \"./ant-ling.ts\";\nimport { anthropicProvider } from \"./anthropic.ts\";\nimport { azureOpenAIResponsesProvider } from \"./azure-openai-responses.ts\";\nimport { baiProvider } from \"./bai.ts\";\nimport { basetenProvider } from \"./baseten.ts\";\nimport { cerebrasProvider } from \"./cerebras.ts\";\nimport { cloudflareAIGatewayProvider } from \"./cloudflare-ai-gateway.ts\";\nimport { cloudflareWorkersAIProvider } from \"./cloudflare-workers-ai.ts\";\nimport { cursorProvider } from \"./cursor.ts\";\nimport modelDataManifest from \"./data/.manifest.json\" with { type: \"json\" };\nimport { deepseekProvider } from \"./deepseek.ts\";\nimport { devinProvider } from \"./devin.ts\";\nimport { fireworksProvider } from \"./fireworks.ts\";\nimport { githubCopilotProvider } from \"./github-copilot.ts\";\nimport { googleProvider } from \"./google.ts\";\nimport { googleVertexProvider } from \"./google-vertex.ts\";\nimport { groqProvider } from \"./groq.ts\";\nimport { huggingfaceProvider } from \"./huggingface.ts\";\nimport { KIMI_CODING_MODELS } from \"./kimi-coding.models.ts\";\nimport { kimiCodingProvider } from \"./kimi-coding.ts\";\nimport { minimaxProvider } from \"./minimax.ts\";\nimport { minimaxCnProvider } from \"./minimax-cn.ts\";\nimport { mistralProvider } from \"./mistral.ts\";\nimport { moonshotaiProvider } from \"./moonshotai.ts\";\nimport { moonshotaiCnProvider } from \"./moonshotai-cn.ts\";\nimport { nvidiaProvider } from \"./nvidia.ts\";\nimport { ollamaProvider } from \"./ollama.ts\";\nimport { openaiProvider } from \"./openai.ts\";\nimport { openaiCodexProvider } from \"./openai-codex.ts\";\nimport { openaiImagesProvider } from \"./openai-images.ts\";\nimport { opencodeProvider } from \"./opencode.ts\";\nimport { opencodeGoProvider } from \"./opencode-go.ts\";\nimport { opengatewayProvider } from \"./opengateway.ts\";\nimport { openrouterProvider } from \"./openrouter.ts\";\nimport { openrouterImagesProvider } from \"./openrouter-images.ts\";\nimport { qwenTokenPlanProvider } from \"./qwen-token-plan.ts\";\nimport { qwenTokenPlanCnProvider } from \"./qwen-token-plan-cn.ts\";\nimport { qwenTokenPlanIndividualProvider } from \"./qwen-token-plan-individual.ts\";\nimport { radiusProvider } from \"./radius.ts\";\nimport { togetherProvider } from \"./together.ts\";\nimport { veniceProvider } from \"./venice.ts\";\nimport { vercelAIGatewayProvider } from \"./vercel-ai-gateway.ts\";\nimport { xaiProvider } from \"./xai.ts\";\nimport { xiaomiProvider } from \"./xiaomi.ts\";\nimport { xiaomiTokenPlanAmsProvider } from \"./xiaomi-token-plan-ams.ts\";\nimport { xiaomiTokenPlanCnProvider } from \"./xiaomi-token-plan-cn.ts\";\nimport { xiaomiTokenPlanSgpProvider } from \"./xiaomi-token-plan-sgp.ts\";\nimport { zaiProvider } from \"./zai.ts\";\nimport { zaiCodingCnProvider } from \"./zai-coding-cn.ts\";\n\nexport { ollamaProvider, radiusProvider };\n\n/**\n * Catalogs the fork owns by hand because models.dev does not describe them.\n *\n * A generation run emits neither their shard nor their data file, so they can\n * never appear in `MODELS`; they are still shipped providers and every catalog\n * read below must see them exactly like a generated one.\n */\nconst FORK_OWNED_CATALOGS = {\n\t\"kimi-coding\": KIMI_CODING_MODELS,\n} as const;\n\ntype BuiltinCatalogs = typeof MODELS & typeof FORK_OWNED_CATALOGS;\n\nconst BUILTIN_CATALOGS: BuiltinCatalogs = { ...MODELS, ...FORK_OWNED_CATALOGS };\n\n/** Providers present in the generated catalog, plus the fork-owned ones.\n * `KnownProvider` additionally includes purely dynamic providers\n * (e.g. \"radius\") that have no static catalog entry. */\nexport type BuiltinProvider = keyof BuiltinCatalogs;\n\ntype BuiltinModelApi<\n\tTProvider extends BuiltinProvider,\n\tTModelId extends keyof BuiltinCatalogs[TProvider],\n> = BuiltinCatalogs[TProvider][TModelId] extends { api: infer TApi } ? (TApi extends Api ? TApi : never) : never;\n\nconst XIAOMI_MIMO_PROVIDERS = new Set([\n\t\"xiaomi\",\n\t\"xiaomi-token-plan-cn\",\n\t\"xiaomi-token-plan-ams\",\n\t\"xiaomi-token-plan-sgp\",\n]);\n\nfunction normalizeBuiltinModel<TApi extends Api>(model: Model<TApi> | undefined): Model<TApi> | undefined {\n\tif (!model) return undefined;\n\n\tif (XIAOMI_MIMO_PROVIDERS.has(model.provider) && model.id === \"mimo-v2.5-pro\") {\n\t\treturn {\n\t\t\t...model,\n\t\t\tcompat: {\n\t\t\t\t...model.compat,\n\t\t\t\trequiresReasoningContentOnAssistantMessages: true,\n\t\t\t\tthinkingFormat: \"deepseek\",\n\t\t\t\tsupportsDisabledThinking: false,\n\t\t\t},\n\t\t} as Model<TApi>;\n\t}\n\n\tif (model.provider === \"anthropic\" && model.id === \"claude-opus-4-8\") {\n\t\treturn {\n\t\t\t...model,\n\t\t\tthinkingLevelMap: {\n\t\t\t\t...model.thinkingLevelMap,\n\t\t\t\tmax: \"max\",\n\t\t\t},\n\t\t};\n\t}\n\n\treturn model;\n}\n\n/** Typed read of the generated built-in catalog. */\nexport function getBuiltinModel<TProvider extends BuiltinProvider, TModelId extends keyof BuiltinCatalogs[TProvider]>(\n\tprovider: TProvider,\n\tmodelId: TModelId,\n): Model<BuiltinModelApi<TProvider, TModelId>> {\n\tconst models = BUILTIN_CATALOGS[provider] as Record<string, Model<Api>> | undefined;\n\treturn normalizeBuiltinModel(models?.[modelId as string]) as Model<BuiltinModelApi<TProvider, TModelId>>;\n}\n\nexport function getBuiltinProviders(): BuiltinProvider[] {\n\treturn Object.keys(BUILTIN_CATALOGS) as BuiltinProvider[];\n}\n\n/** Generation timestamp shared by all built-in provider catalogs. */\nexport function getBuiltinModelDataGeneratedAt(): number | undefined {\n\tconst generatedAt = Date.parse(modelDataManifest.generatedAt);\n\treturn Number.isNaN(generatedAt) ? undefined : generatedAt;\n}\n\nexport function getBuiltinModels<TProvider extends BuiltinProvider>(\n\tprovider: TProvider,\n): Model<BuiltinModelApi<TProvider, keyof BuiltinCatalogs[TProvider]>>[] {\n\tconst models = BUILTIN_CATALOGS[provider] as Record<string, Model<Api>> | undefined;\n\treturn models\n\t\t? (Object.values(models)\n\t\t\t\t.map((model) => normalizeBuiltinModel(model))\n\t\t\t\t.filter((model): model is Model<Api> => model !== undefined) as Model<\n\t\t\t\tBuiltinModelApi<TProvider, keyof BuiltinCatalogs[TProvider]>\n\t\t\t>[])\n\t\t: [];\n}\n\n/** All built-in providers, freshly constructed. */\nexport function builtinProviders(): Provider[] {\n\treturn [\n\t\talibabaTokenPlanProvider(),\n\t\tamazonBedrockProvider(),\n\t\tantLingProvider(),\n\t\tanthropicProvider(),\n\t\tazureOpenAIResponsesProvider(),\n\t\tbaiProvider(),\n\t\tbasetenProvider(),\n\t\tcerebrasProvider(),\n\t\tcloudflareAIGatewayProvider(),\n\t\tcloudflareWorkersAIProvider(),\n\t\tcursorProvider(),\n\t\tdevinProvider(),\n\t\tdeepseekProvider(),\n\t\tfireworksProvider(),\n\t\tgithubCopilotProvider(),\n\t\tgoogleProvider(),\n\t\tgoogleVertexProvider(),\n\t\tgroqProvider(),\n\t\thuggingfaceProvider(),\n\t\tkimiCodingProvider(),\n\t\tminimaxProvider(),\n\t\tminimaxCnProvider(),\n\t\tmistralProvider(),\n\t\tmoonshotaiProvider(),\n\t\tmoonshotaiCnProvider(),\n\t\tnvidiaProvider(),\n\t\topenaiProvider(),\n\t\topenaiCodexProvider(),\n\t\tollamaProvider(),\n\t\topencodeProvider(),\n\t\topencodeGoProvider(),\n\t\topengatewayProvider(),\n\t\topenrouterProvider(),\n\t\tqwenTokenPlanProvider(),\n\t\tqwenTokenPlanCnProvider(),\n\t\tqwenTokenPlanIndividualProvider(),\n\t\tradiusProvider(),\n\t\ttogetherProvider(),\n\t\tveniceProvider(),\n\t\tvercelAIGatewayProvider(),\n\t\txaiProvider(),\n\t\txiaomiProvider(),\n\t\txiaomiTokenPlanAmsProvider(),\n\t\txiaomiTokenPlanCnProvider(),\n\t\txiaomiTokenPlanSgpProvider(),\n\t\tzaiProvider(),\n\t\tzaiCodingCnProvider(),\n\t];\n}\n\n/** A `Models` collection with every built-in provider registered. */\nexport function builtinModels(options?: CreateModelsOptions): MutableModels {\n\tconst models = createModels(options);\n\tfor (const provider of builtinProviders()) {\n\t\tmodels.setProvider(provider);\n\t}\n\treturn models;\n}\n\n/** All built-in image-generation providers, freshly constructed. */\nexport function builtinImagesProviders(): ImagesProvider[] {\n\treturn [openrouterImagesProvider(), openaiImagesProvider()];\n}\n\n/** An `ImagesModels` collection with every built-in image-generation provider registered. */\nexport function builtinImagesModels(options?: CreateModelsOptions): MutableImagesModels {\n\tconst models = createImagesModels(options);\n\tfor (const provider of builtinImagesProviders()) {\n\t\tmodels.setProvider(provider);\n\t}\n\treturn models;\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import type { ProviderStreams } from "../types.ts";
2
+ /**
3
+ * The OpenAI Responses tool builder forwards `tool.parameters` unchanged
4
+ * (`api/openai-responses-shared.ts` via `getJsonSchemaToolParameters()`), so a
5
+ * union-root tool such as `workpool` reaches B.AI unrepaired. The other two
6
+ * B.AI wire APIs already normalize their own roots and need no transform:
7
+ * `api/openai-completions.ts` re-runs `normalizeToolParametersForOpenAICompat()`
8
+ * after `onPayload`, and `api/anthropic-messages.ts` builds `input_schema`
9
+ * through `resolveRootObjectSchema()`.
10
+ */
11
+ export declare function normalizeBaiResponsesPayload(payload: unknown): unknown;
12
+ export declare function baiResponsesStreams(streams: ProviderStreams): ProviderStreams;
13
+ //# sourceMappingURL=bai-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bai-stream.d.ts","sourceRoot":"","sources":["../../src/providers/bai-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAsC,MAAM,aAAa,CAAC;AAuBvF;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAKtE;AAaD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAM7E"}
@@ -0,0 +1,55 @@
1
+ import { normalizeToolParametersForOpenAICompat } from "../utils/tool-schema-compat.js";
2
+ function isJsonObject(value) {
3
+ return value !== null && typeof value === "object" && !Array.isArray(value);
4
+ }
5
+ /**
6
+ * Repair a function tool whose root parameters schema declares no `type`.
7
+ *
8
+ * B.AI rejects a union-root schema with `tools.function.parameters.type is
9
+ * required and must be "object"`. Adding a bare `type: "object"` in front of
10
+ * the `anyOf` would satisfy that validator and still leave the root without
11
+ * `properties`/`required`, which describes the tool to the model as taking no
12
+ * arguments at all; `normalizeToolParametersForOpenAICompat()` instead merges
13
+ * the union branches into one object schema, so the parameters survive.
14
+ */
15
+ function normalizeResponsesFunctionTool(tool) {
16
+ if (!isJsonObject(tool) || tool.type !== "function")
17
+ return tool;
18
+ if (!isJsonObject(tool.parameters) || tool.parameters.type !== undefined)
19
+ return tool;
20
+ return { ...tool, parameters: normalizeToolParametersForOpenAICompat(tool.parameters) };
21
+ }
22
+ /**
23
+ * The OpenAI Responses tool builder forwards `tool.parameters` unchanged
24
+ * (`api/openai-responses-shared.ts` via `getJsonSchemaToolParameters()`), so a
25
+ * union-root tool such as `workpool` reaches B.AI unrepaired. The other two
26
+ * B.AI wire APIs already normalize their own roots and need no transform:
27
+ * `api/openai-completions.ts` re-runs `normalizeToolParametersForOpenAICompat()`
28
+ * after `onPayload`, and `api/anthropic-messages.ts` builds `input_schema`
29
+ * through `resolveRootObjectSchema()`.
30
+ */
31
+ export function normalizeBaiResponsesPayload(payload) {
32
+ if (!isJsonObject(payload) || !Array.isArray(payload.tools))
33
+ return payload;
34
+ const sourceTools = payload.tools;
35
+ const tools = sourceTools.map((tool) => normalizeResponsesFunctionTool(tool));
36
+ return tools.some((tool, index) => tool !== sourceTools[index]) ? { ...payload, tools } : payload;
37
+ }
38
+ function withBaiResponsesPayload(options) {
39
+ const upstreamTransform = options?.onPayload;
40
+ return {
41
+ ...options,
42
+ onPayload: async (payload, model, request) => {
43
+ const transformed = await upstreamTransform?.(payload, model, request);
44
+ return normalizeBaiResponsesPayload(transformed ?? payload);
45
+ },
46
+ };
47
+ }
48
+ export function baiResponsesStreams(streams) {
49
+ return {
50
+ ...streams,
51
+ stream: (model, context, options) => streams.stream(model, context, withBaiResponsesPayload(options)),
52
+ streamSimple: (model, context, options) => streams.streamSimple(model, context, withBaiResponsesPayload(options)),
53
+ };
54
+ }
55
+ //# sourceMappingURL=bai-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bai-stream.js","sourceRoot":"","sources":["../../src/providers/bai-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sCAAsC,EAAE,MAAM,gCAAgC,CAAC;AAExF,SAAS,YAAY,CAAC,KAAc;IACnC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,8BAA8B,CAAC,IAAa;IACpD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACtF,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,sCAAsC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACzF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IAC5D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAClC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACnG,CAAC;AAED,SAAS,uBAAuB,CAAgD,OAAsB;IACrG,MAAM,iBAAiB,GAAG,OAAO,EAAE,SAAS,CAAC;IAC7C,OAAO;QACN,GAAG,OAAO;QACV,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC5C,MAAM,WAAW,GAAG,MAAM,iBAAiB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACvE,OAAO,4BAA4B,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;QAC7D,CAAC;KACI,CAAC;AACR,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAwB;IAC3D,OAAO;QACN,GAAG,OAAO;QACV,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACrG,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC;KACjH,CAAC;AACH,CAAC","sourcesContent":["import type { ProviderStreams, SimpleStreamOptions, StreamOptions } from \"../types.ts\";\nimport { normalizeToolParametersForOpenAICompat } from \"../utils/tool-schema-compat.ts\";\n\nfunction isJsonObject(value: unknown): value is Record<string, unknown> {\n\treturn value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\n/**\n * Repair a function tool whose root parameters schema declares no `type`.\n *\n * B.AI rejects a union-root schema with `tools.function.parameters.type is\n * required and must be \"object\"`. Adding a bare `type: \"object\"` in front of\n * the `anyOf` would satisfy that validator and still leave the root without\n * `properties`/`required`, which describes the tool to the model as taking no\n * arguments at all; `normalizeToolParametersForOpenAICompat()` instead merges\n * the union branches into one object schema, so the parameters survive.\n */\nfunction normalizeResponsesFunctionTool(tool: unknown): unknown {\n\tif (!isJsonObject(tool) || tool.type !== \"function\") return tool;\n\tif (!isJsonObject(tool.parameters) || tool.parameters.type !== undefined) return tool;\n\treturn { ...tool, parameters: normalizeToolParametersForOpenAICompat(tool.parameters) };\n}\n\n/**\n * The OpenAI Responses tool builder forwards `tool.parameters` unchanged\n * (`api/openai-responses-shared.ts` via `getJsonSchemaToolParameters()`), so a\n * union-root tool such as `workpool` reaches B.AI unrepaired. The other two\n * B.AI wire APIs already normalize their own roots and need no transform:\n * `api/openai-completions.ts` re-runs `normalizeToolParametersForOpenAICompat()`\n * after `onPayload`, and `api/anthropic-messages.ts` builds `input_schema`\n * through `resolveRootObjectSchema()`.\n */\nexport function normalizeBaiResponsesPayload(payload: unknown): unknown {\n\tif (!isJsonObject(payload) || !Array.isArray(payload.tools)) return payload;\n\tconst sourceTools = payload.tools;\n\tconst tools = sourceTools.map((tool) => normalizeResponsesFunctionTool(tool));\n\treturn tools.some((tool, index) => tool !== sourceTools[index]) ? { ...payload, tools } : payload;\n}\n\nfunction withBaiResponsesPayload<T extends StreamOptions | SimpleStreamOptions>(options: T | undefined): T {\n\tconst upstreamTransform = options?.onPayload;\n\treturn {\n\t\t...options,\n\t\tonPayload: async (payload, model, request) => {\n\t\t\tconst transformed = await upstreamTransform?.(payload, model, request);\n\t\t\treturn normalizeBaiResponsesPayload(transformed ?? payload);\n\t\t},\n\t} as T;\n}\n\nexport function baiResponsesStreams(streams: ProviderStreams): ProviderStreams {\n\treturn {\n\t\t...streams,\n\t\tstream: (model, context, options) => streams.stream(model, context, withBaiResponsesPayload(options)),\n\t\tstreamSimple: (model, context, options) => streams.streamSimple(model, context, withBaiResponsesPayload(options)),\n\t};\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { type Provider } from "../models.ts";
2
+ import type { Model } from "../types.ts";
3
+ export declare const BAI_BASE_URL = "https://api.b.ai/v1";
4
+ export type BaiApi = "openai-responses" | "openai-completions" | "anthropic-messages";
5
+ export interface BaiProviderOptions {
6
+ baseUrl?: string;
7
+ models?: readonly Model<BaiApi>[];
8
+ fetch?: typeof fetch;
9
+ }
10
+ export declare function baiProvider(options?: BaiProviderOptions): Provider<BaiApi>;
11
+ //# sourceMappingURL=bai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bai.d.ts","sourceRoot":"","sources":["../../src/providers/bai.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,QAAQ,EAA6B,MAAM,cAAc,CAAC;AACxF,OAAO,KAAK,EAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAI9C,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAElD,MAAM,MAAM,MAAM,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;AAEtF,MAAM,WAAW,kBAAkB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACrB;AAiFD,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,CA0B9E"}
@@ -0,0 +1,94 @@
1
+ import { anthropicMessagesApi } from "../api/anthropic-messages.lazy.js";
2
+ import { openAICompletionsApi } from "../api/openai-completions.lazy.js";
3
+ import { openAIResponsesApi } from "../api/openai-responses.lazy.js";
4
+ import { envApiKeyAuth } from "../auth/helpers.js";
5
+ import { createProvider } from "../models.js";
6
+ import { BAI_MODELS } from "./bai.models.js";
7
+ import { baiResponsesStreams } from "./bai-stream.js";
8
+ export const BAI_BASE_URL = "https://api.b.ai/v1";
9
+ function normalizeBaseUrl(baseUrl) {
10
+ return baseUrl.replace(/\/+$/u, "");
11
+ }
12
+ /**
13
+ * B.AI documents dot-version model IDs on most model pages (`gpt-5.6-sol`,
14
+ * `gemini-3.5-flash-lite`) but hyphenated ones for Claude (`claude-fable-5-1`),
15
+ * and its Claude Code guide states that "both hyphenated aliases and
16
+ * dot-version aliases are accepted". Which spelling `GET /v1/models` returns is
17
+ * therefore not fixed, so the catalog is indexed under both to keep discovery
18
+ * from silently dropping an entitled model.
19
+ */
20
+ function modelIdAliases(id) {
21
+ const dashed = id.replaceAll(".", "-");
22
+ return dashed === id ? [id] : [id, dashed];
23
+ }
24
+ function indexCatalog(catalog) {
25
+ const index = new Map();
26
+ for (const model of catalog) {
27
+ for (const alias of modelIdAliases(model.id)) {
28
+ if (!index.has(alias))
29
+ index.set(alias, model);
30
+ }
31
+ }
32
+ return index;
33
+ }
34
+ function remapBaiModels(models, catalogById) {
35
+ return models.flatMap((model) => {
36
+ const current = catalogById.get(model.id);
37
+ return current ? [current] : [];
38
+ });
39
+ }
40
+ async function fetchBaiModels(baseUrl, catalogById, fetchImpl, context) {
41
+ const apiKey = context.credential?.type === "api_key" ? context.credential.key?.trim() : undefined;
42
+ if (!apiKey)
43
+ return [];
44
+ const response = await fetchImpl(`${baseUrl}/models`, {
45
+ headers: {
46
+ accept: "application/json",
47
+ authorization: `Bearer ${apiKey}`,
48
+ },
49
+ signal: context.signal,
50
+ });
51
+ if (!response.ok) {
52
+ throw new Error(`Could not load B.AI model catalog: ${response.status}`);
53
+ }
54
+ const payload = (await response.json());
55
+ if (payload.success === false) {
56
+ throw new Error(`Could not load B.AI model catalog: ${payload.message?.trim() || "request rejected"}`);
57
+ }
58
+ if (!Array.isArray(payload.data)) {
59
+ throw new Error("Invalid B.AI model catalog response");
60
+ }
61
+ const discovered = payload.data.flatMap((entry) => {
62
+ const id = entry.id?.trim();
63
+ const model = id ? catalogById.get(id) : undefined;
64
+ return model ? [model] : [];
65
+ });
66
+ return [...new Map(discovered.map((model) => [model.id, model])).values()];
67
+ }
68
+ export function baiProvider(options = {}) {
69
+ const baseUrl = normalizeBaseUrl(options.baseUrl ?? BAI_BASE_URL);
70
+ const anthropicBaseUrl = baseUrl.replace(/\/v1$/u, "");
71
+ const catalog = [...(options.models ?? Object.values(BAI_MODELS))].map((model) => ({
72
+ ...model,
73
+ baseUrl: model.api === "anthropic-messages" ? anthropicBaseUrl : baseUrl,
74
+ }));
75
+ const catalogById = indexCatalog(catalog);
76
+ const fetchImpl = options.fetch ?? fetch;
77
+ return createProvider({
78
+ id: "bai",
79
+ name: "B.AI",
80
+ baseUrl,
81
+ auth: { apiKey: envApiKeyAuth("B.AI API key", ["BAI_API_KEY"]) },
82
+ models: [],
83
+ restoreModels: (models) => remapBaiModels(models, catalogById),
84
+ fetchModels: (context) => fetchBaiModels(baseUrl, catalogById, fetchImpl, context),
85
+ api: {
86
+ // Only the Responses tool builder forwards a union-root schema unrepaired;
87
+ // see the contract note in ./bai-stream.ts.
88
+ "openai-responses": baiResponsesStreams(openAIResponsesApi()),
89
+ "openai-completions": openAICompletionsApi(),
90
+ "anthropic-messages": anthropicMessagesApi(),
91
+ },
92
+ });
93
+ }
94
+ //# sourceMappingURL=bai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bai.js","sourceRoot":"","sources":["../../src/providers/bai.ts"],"names":[],"mappings":"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","sourcesContent":["import { anthropicMessagesApi } from \"../api/anthropic-messages.lazy.ts\";\nimport { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { openAIResponsesApi } from \"../api/openai-responses.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider, type RefreshModelsContext } from \"../models.ts\";\nimport type { Api, Model } from \"../types.ts\";\nimport { BAI_MODELS } from \"./bai.models.ts\";\nimport { baiResponsesStreams } from \"./bai-stream.ts\";\n\nexport const BAI_BASE_URL = \"https://api.b.ai/v1\";\n\nexport type BaiApi = \"openai-responses\" | \"openai-completions\" | \"anthropic-messages\";\n\nexport interface BaiProviderOptions {\n\tbaseUrl?: string;\n\tmodels?: readonly Model<BaiApi>[];\n\tfetch?: typeof fetch;\n}\n\ntype BaiModelsResponse = {\n\tsuccess?: boolean;\n\tmessage?: string;\n\tdata?: Array<{ id?: string }>;\n};\n\nfunction normalizeBaseUrl(baseUrl: string): string {\n\treturn baseUrl.replace(/\\/+$/u, \"\");\n}\n\n/**\n * B.AI documents dot-version model IDs on most model pages (`gpt-5.6-sol`,\n * `gemini-3.5-flash-lite`) but hyphenated ones for Claude (`claude-fable-5-1`),\n * and its Claude Code guide states that \"both hyphenated aliases and\n * dot-version aliases are accepted\". Which spelling `GET /v1/models` returns is\n * therefore not fixed, so the catalog is indexed under both to keep discovery\n * from silently dropping an entitled model.\n */\nfunction modelIdAliases(id: string): string[] {\n\tconst dashed = id.replaceAll(\".\", \"-\");\n\treturn dashed === id ? [id] : [id, dashed];\n}\n\nfunction indexCatalog(catalog: readonly Model<BaiApi>[]): Map<string, Model<BaiApi>> {\n\tconst index = new Map<string, Model<BaiApi>>();\n\tfor (const model of catalog) {\n\t\tfor (const alias of modelIdAliases(model.id)) {\n\t\t\tif (!index.has(alias)) index.set(alias, model);\n\t\t}\n\t}\n\treturn index;\n}\n\nfunction remapBaiModels(\n\tmodels: readonly Model<Api>[],\n\tcatalogById: ReadonlyMap<string, Model<BaiApi>>,\n): Model<BaiApi>[] {\n\treturn models.flatMap((model) => {\n\t\tconst current = catalogById.get(model.id);\n\t\treturn current ? [current] : [];\n\t});\n}\n\nasync function fetchBaiModels(\n\tbaseUrl: string,\n\tcatalogById: ReadonlyMap<string, Model<BaiApi>>,\n\tfetchImpl: typeof fetch,\n\tcontext: RefreshModelsContext,\n): Promise<Model<BaiApi>[]> {\n\tconst apiKey = context.credential?.type === \"api_key\" ? context.credential.key?.trim() : undefined;\n\tif (!apiKey) return [];\n\n\tconst response = await fetchImpl(`${baseUrl}/models`, {\n\t\theaders: {\n\t\t\taccept: \"application/json\",\n\t\t\tauthorization: `Bearer ${apiKey}`,\n\t\t},\n\t\tsignal: context.signal,\n\t});\n\tif (!response.ok) {\n\t\tthrow new Error(`Could not load B.AI model catalog: ${response.status}`);\n\t}\n\n\tconst payload = (await response.json()) as BaiModelsResponse;\n\tif (payload.success === false) {\n\t\tthrow new Error(`Could not load B.AI model catalog: ${payload.message?.trim() || \"request rejected\"}`);\n\t}\n\tif (!Array.isArray(payload.data)) {\n\t\tthrow new Error(\"Invalid B.AI model catalog response\");\n\t}\n\n\tconst discovered = payload.data.flatMap((entry) => {\n\t\tconst id = entry.id?.trim();\n\t\tconst model = id ? catalogById.get(id) : undefined;\n\t\treturn model ? [model] : [];\n\t});\n\treturn [...new Map(discovered.map((model) => [model.id, model])).values()];\n}\n\nexport function baiProvider(options: BaiProviderOptions = {}): Provider<BaiApi> {\n\tconst baseUrl = normalizeBaseUrl(options.baseUrl ?? BAI_BASE_URL);\n\tconst anthropicBaseUrl = baseUrl.replace(/\\/v1$/u, \"\");\n\tconst catalog = [...(options.models ?? Object.values(BAI_MODELS))].map((model) => ({\n\t\t...model,\n\t\tbaseUrl: model.api === \"anthropic-messages\" ? anthropicBaseUrl : baseUrl,\n\t}));\n\tconst catalogById = indexCatalog(catalog);\n\tconst fetchImpl = options.fetch ?? fetch;\n\n\treturn createProvider<BaiApi>({\n\t\tid: \"bai\",\n\t\tname: \"B.AI\",\n\t\tbaseUrl,\n\t\tauth: { apiKey: envApiKeyAuth(\"B.AI API key\", [\"BAI_API_KEY\"]) },\n\t\tmodels: [],\n\t\trestoreModels: (models) => remapBaiModels(models, catalogById),\n\t\tfetchModels: (context) => fetchBaiModels(baseUrl, catalogById, fetchImpl, context),\n\t\tapi: {\n\t\t\t// Only the Responses tool builder forwards a union-root schema unrepaired;\n\t\t\t// see the contract note in ./bai-stream.ts.\n\t\t\t\"openai-responses\": baiResponsesStreams(openAIResponsesApi()),\n\t\t\t\"openai-completions\": openAICompletionsApi(),\n\t\t\t\"anthropic-messages\": anthropicMessagesApi(),\n\t\t},\n\t});\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import values from "./data/bai.json";
2
+ import { type ModelCatalog } from "../model-catalog.ts";
3
+ export declare const BAI_MODELS: ModelCatalog<typeof values, "bai">;
4
+ //# sourceMappingURL=bai.models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bai.models.d.ts","sourceRoot":"","sources":["../../src/providers/bai.models.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,iBAAiB,CAAuB;AAC3D,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7E,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,OAAO,MAAM,EAAE,KAAK,CACvB,CAAC"}
@@ -0,0 +1,6 @@
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 values from "./data/bai.json" with { type: "json" };
4
+ import { flattenModelCatalog } from "../model-catalog.js";
5
+ export const BAI_MODELS = flattenModelCatalog("bai", values);
6
+ //# sourceMappingURL=bai.models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bai.models.js","sourceRoot":"","sources":["../../src/providers/bai.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAqB,MAAM,qBAAqB,CAAC;AAE7E,MAAM,CAAC,MAAM,UAAU,GACtB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,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 values from \"./data/bai.json\" with { type: \"json\" };\nimport { flattenModelCatalog, type ModelCatalog } from \"../model-catalog.ts\";\n\nexport const BAI_MODELS: ModelCatalog<typeof values, \"bai\"> =\n\tflattenModelCatalog(\"bai\", values);\n"]}